IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Problème d'appel de fonction ???


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Inscrit en
    Mai 2005
    Messages
    172
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 172
    Points : 74
    Points
    74
    Par défaut Problème d'appel de fonction ???
    Bonjour,

    je continu avec les problemes pour mon code.
    Mon but est de mettre en place un formulaire de modification.
    Apres avoir sélectionné la personne a modifié (via un menu déroulant), les information apparaissent dans un formulaire.
    pour l'instant, tout ce passe bien, mais à partir du moment ou je veux valider une modification, j'ai le droit à un joli message d'erreur :
    <form action="../op/op.UsrMgr.php" method="post" enctype="multipart/form-data" name="form
    Fatal error: Call to a member function on a non-object in /home/prome/public_html/mydms_dev/out/out.UsrMgr.php on line 116
    mon code le voila:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
     
    <?if($action == "edituser"){
        $us=getSelectedUser();
    ?>
     
        <form action="../op/op.UsrMgr.php" method="post" enctype="multipart/form-data" name="form<?print $us->getID();?>" onsubmit="return checkForm('<?print $us->getID();?>');">
        <input type="Hidden" name="userid" value="<?print $us->getID();?>">
        <input type="Hidden" name="action" value="edituser">
        <table border="0">
            <tr>
                <td colspan="2"><hr size="1" width="100%" color="#000080" noshade></td>
            </tr>
            <tr>
                <td class="inputDescription" valign="top"><?printMLText("user_login");?>:</td>
                <td class="standardText"><input name="login" value="<?print $us->getLogin();?>"></td>
            </tr>
            <tr>
                <td class="inputDescription" valign="top"><?printMLText("password");?>:</td>
                <td><input type="Password" name="pwd"></td>
            </tr>
            <tr>
                <td class="inputDescription"><?printMLText("confirm_pwd");?>:</td>
                <td><input type="Password" name="pwdconf"></td>
            </tr>
            <tr>
                <td class="inputDescription" valign="top"><?printMLText("user_name");?>:</td>
                <td class="standardText"><input name="name" value="<?print $us->getFullName();?>"></td>
            </tr>
            <tr>
                <td class="inputDescription" valign="top"><?printMLText("email");?>:</td>
                <td class="standardText"><input name="email" value="<?print $us->getEmail();?>"></td>
            </tr>
            <tr>
                <td class="inputDescription" valign="top"><?printMLText("comment");?>:</td>
                <td class="standardText"><textarea name="comment" rows="4" cols="30"><?print $us->getComment();?></textarea></td>
            </tr>
            <tr>
                <td class="inputDescription" valign="top"><?printMLText("user_image");?>:</td>
                <td class="standardText">
                    <?
                        if ($us->hasImage())
                            print "<img src=\"".$us->getImageURL()."\">";
                        else
                            printMLText("no_user_image");
                    ?>
                </td>
            </tr>
            <tr>
                <td class="inputDescription" valign="top"><?printMLText("new_user_image");?>:</td>
                <td class="standardText"><input type="file" name="userfile" accept="image/jpeg"></td>
            </tr>
            <tr>
                <td colspan="2"><br><input type="Submit"></td>
            </tr>
        </table>
        </form>
        <hr size="1" width="80%" color="#000080" noshade>
        <a class="standardText" href="../op/op.UsrMgr.php?userid=<?print $us->getID();?>&action=removeuser"><img src="images/del.gif" width="15" height="15" border="0" align="absmiddle" alt=""> <?printMLText("rm_user");?></a>
     
        </td>
        </tr>
    </table>
    et le code de ma fonction getSelectedUser():
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    function getSelectedUser()
    {
        GLOBAL $db;
        $full = $_POST["fullname"];
        $queryStr = "SELECT * FROM tblUsers WHERE fullName = '".$full."'";
        $resArr = $db->getResultArray($queryStr);
        if (is_bool($resArr) && $resArr == false)
            return false;
        else if (count($resArr) != 1)
            return false;
     
        $resArr = $resArr[0];
     
        return new User($resArr["id"], $resArr["login"], $resArr["pwd"], $resArr["fullName"], $resArr["email"], $resArr["comment"], $resArr["isAdmin"]);    
    }

  2. #2
    Membre habitué Avatar de nesbla
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    220
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 220
    Points : 139
    Points
    139
    Par défaut
    Y'a quoi à la ligne 116 de ton fichier out.UsrMgr.php ?
    ··· Champion des excuses bidons ··· Je viens d'apprendre que les ventes de voitures ont encore baissé de 7% en France. Y'en a marre de ces pirates qui téléchargent les voitures sur internet !

  3. #3
    Membre expert Avatar de Amara
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 688
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 688
    Points : 3 115
    Points
    3 115
    Par défaut
    +1

    C'est le getId qui lui plaît pas non ?
    Pas de questions techniques par MP, le forum est là pour ça et est plus efficace.

    Orthographe : une connexion (avec un x), un langage (sans u), une requête (un seul t), 'une quote' (avec qu), une syntaxe (sans h)

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    74
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Mars 2006
    Messages : 74
    Points : 46
    Points
    46
    Par défaut
    Je ne sais pas si ca peut t'aider mais essaye plutot ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    name="form<?=$us->getID();?>"
    Bon courage ........

  5. #5
    Membre régulier
    Inscrit en
    Mai 2005
    Messages
    172
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 172
    Points : 74
    Points
    74
    Par défaut
    ouaip ... ce qu'il aime pas, c'est le
    Je ne comprend pas pourquoi! Je vais pourtant des appel similaire, exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $us->getFullName()
    et ça fonctionne tres bien.

  6. #6
    Membre expert Avatar de Amara
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 688
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 688
    Points : 3 115
    Points
    3 115
    Par défaut
    Citation Envoyé par Dargos
    Je ne sais pas si ca peut t'aider mais essaye plutot ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    name="form<?=$us->getID();?>"
    Bon courage ........

    Ca doit donner quoi au final ça ?
    Pas de questions techniques par MP, le forum est là pour ça et est plus efficace.

    Orthographe : une connexion (avec un x), un langage (sans u), une requête (un seul t), 'une quote' (avec qu), une syntaxe (sans h)

  7. #7
    Membre régulier
    Inscrit en
    Mai 2005
    Messages
    172
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 172
    Points : 74
    Points
    74
    Par défaut
    ça marche pas
    name="form<?=$us->getID();?>"

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    74
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Mars 2006
    Messages : 74
    Points : 46
    Points
    46
    Par défaut
    enlève le ';'
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    name="form<?=$us->getID()?>"

  9. #9
    Membre expert Avatar de Amara
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 688
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 688
    Points : 3 115
    Points
    3 115
    Par défaut
    Elle est bien définie ta fonction getId() ? Et elle te renvoie bien une chaîne ?
    Pas de questions techniques par MP, le forum est là pour ça et est plus efficace.

    Orthographe : une connexion (avec un x), un langage (sans u), une requête (un seul t), 'une quote' (avec qu), une syntaxe (sans h)

  10. #10
    Membre expert Avatar de Amara
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 688
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 688
    Points : 3 115
    Points
    3 115
    Par défaut
    Citation Envoyé par Dargos
    enlève le ';'
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    name="form<?=$us->getID()?>"
    Pas de questions techniques par MP, le forum est là pour ça et est plus efficace.

    Orthographe : une connexion (avec un x), un langage (sans u), une requête (un seul t), 'une quote' (avec qu), une syntaxe (sans h)

  11. #11
    Membre régulier
    Inscrit en
    Mai 2005
    Messages
    172
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 172
    Points : 74
    Points
    74
    Par défaut
    La fonction getID est normalement bien défini :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
     
    class User
    {
        var $_id;
        var $_login;
        var $_pwd;
        var $_fullName;
        var $_email;
        var $_comment;
        var $_isAdmin;
     
        function User($id, $login, $pwd, $fullName, $email, $comment, $isAdmin)
        {
            $this->_id = $id;
            $this->_login = $login;
            $this->_pwd = $pwd;
            $this->_fullName = $fullName;
            $this->_email = $email;
            $this->_comment = $comment;
            $this->_isAdmin = $isAdmin;
        }
     
        function getID() { return $this->_id; }
     
        function getLogin() { return $this->_login; }
    toutes les autres fonctions de type "get" fonctionne tres bien autrement (mise à part getID()).

    J'ai essayé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    name="form<?=$us->getID()?>"
    Mais ça me renvoie toujours le meme message d'erreur.

  12. #12
    Membre régulier
    Inscrit en
    Mai 2005
    Messages
    172
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 172
    Points : 74
    Points
    74
    Par défaut
    Même probleme avec la suppression : c'est vraiment le us->getID() qu'il aime pas ...une idée?

  13. #13
    Membre expert Avatar de Amara
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 688
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 688
    Points : 3 115
    Points
    3 115
    Par défaut
    Les propositions de Dragod sont syntaxiquement erronées de toute façon je pense.

    Par contre là je sèche, si tu es sûr que dans les mêms conditions d'utilisation les autres getters fonctionnent c'est vraiment bizarre... Remplaçe le getID qui merde par un getLogin pour voir si ça passe...
    Pas de questions techniques par MP, le forum est là pour ça et est plus efficace.

    Orthographe : une connexion (avec un x), un langage (sans u), une requête (un seul t), 'une quote' (avec qu), une syntaxe (sans h)

  14. #14
    Membre régulier
    Inscrit en
    Mai 2005
    Messages
    172
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 172
    Points : 74
    Points
    74
    Par défaut
    Les autres getters fonctionnent du fait que les informations apparaissent dans mon formulaire ...
    Je en comprend vraiment pas, et je ne vois pas comment contourner le probleme.

  15. #15
    Membre régulier
    Inscrit en
    Mai 2005
    Messages
    172
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 172
    Points : 74
    Points
    74
    Par défaut
    J'ai fait ce que tu m'as dit en remplaçant le getID() par un getLogin() et j'obtient exactement la meme erreur ... pourquoi?
    Je ne comprend pas .. j'utilise le getLogin() juste apres et il me donne un résultat.

  16. #16
    Membre expert Avatar de Amara
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 688
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 688
    Points : 3 115
    Points
    3 115
    Par défaut
    Citation Envoyé par grumly22
    J'ai fait ce que tu m'as dit en remplaçant le getID() par un getLogin() et j'obtient exactement la meme erreur ... pourquoi?
    Je ne comprend pas .. j'utilise le getLogin() juste apres et il me donne un résultat.
    Tu as bien changé tous les getID par des getLogin dans ta ligne form pour tester ?
    Pas de questions techniques par MP, le forum est là pour ça et est plus efficace.

    Orthographe : une connexion (avec un x), un langage (sans u), une requête (un seul t), 'une quote' (avec qu), une syntaxe (sans h)

  17. #17
    Membre régulier
    Inscrit en
    Mai 2005
    Messages
    172
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 172
    Points : 74
    Points
    74
    Par défaut
    ouaip
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <form action="../op/op.UsrMgr.php" method="post" enctype="multipart/form-data" name="form<?print $us->getLogin();?>" onsubmit="return checkForm('<?print $us->getLogin();?>');">
        <input type="Hidden" name="userid" value="<?print $us->getLogin();?>">
        <input type="Hidden" name="action" value="edituser">
    , j'obtiens un truc du genre:
    <form action="../op/op.UsrMgr.php" method="post" enctype="multipart/form-data" name="form
    Fatal error: Call to a member function on a non-object in /home/prome/public_html/mydms_dev/out/out.UsrMgr.php on line 116

  18. #18
    Membre régulier
    Inscrit en
    Mai 2005
    Messages
    172
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 172
    Points : 74
    Points
    74
    Par défaut
    Ne cherche plus ... j'ai trouvé mon erreur.
    C'était un truc tellement con que j'ai envie de me cacher ... je vais me cacher.

    Le truc, c'est que j'avais 2 formulaires, et j'avais oublier de fermer le premier (donc 2 balises <form> d'ouverte en même temps).



    Je vais donc aller me cacher ...

    Je vous fais plus chier pour aujourd'hui.

    Merki pour tout et à demain

  19. #19
    Membre expert Avatar de Amara
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 688
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 688
    Points : 3 115
    Points
    3 115
    Par défaut
    Bon, on va dire que l'essentiel est que le problème est résolu (d'ailleurs mets le tag approprié stp), c'est vrai que c'est rageant de passer du temps à chercher pour rien mais bon ça peut arriver à tout le monde et c'est les erreurs bêtes comme celle-là qui font peut-être le plus progresser. Bon courage pour la suite
    Pas de questions techniques par MP, le forum est là pour ça et est plus efficace.

    Orthographe : une connexion (avec un x), un langage (sans u), une requête (un seul t), 'une quote' (avec qu), une syntaxe (sans h)

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. problème d'appel de fonction en utilisant innerHTML
    Par crakazoid dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 18/05/2006, 19h08
  2. Problème d'appel de fonction
    Par claralavraie dans le forum Langage SQL
    Réponses: 1
    Dernier message: 16/12/2005, 20h17
  3. Réponses: 7
    Dernier message: 10/09/2005, 16h49
  4. [DLL] problème pour appeler une fonction d'une DLL
    Par bigboomshakala dans le forum MFC
    Réponses: 34
    Dernier message: 19/07/2004, 11h30
  5. Réponses: 4
    Dernier message: 19/04/2004, 13h41

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo