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

EDI, CMS, Outils, Scripts et API PHP Discussion :

Erreur introuvable dans le script php


Sujet :

EDI, CMS, Outils, Scripts et API PHP

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 18
    Points : 9
    Points
    9
    Par défaut Erreur introuvable dans le script php
    Bonjour,

    J'ai téléchargé un tutoriel sur l'initiation en php.

    Voici ma configuration matériel et logiciel:
    -Windows XP (plus tard sur Mac OS)
    -Editeur php utilisé : le bloc notes de windows
    -Easyphp installé

    Le tutoriel propose dans l'annexe des scripts d'exemple (très intéressants).
    En voulant pas bruler les étapes, j'ai décidé d'appliquer progressivement chacun les annexes et le faire évidemment fonctionner (afin d'avoir une habitude du langage, des scripts, etc ... et c'est pas bien compliqué pour le moment...)

    Premier exercice, premier blocage:

    A l'aide d'un éditeur, écrivez le script suivant et sauvegardez le sous le nom form1.php3 dans un sous répertoire de votre espace de travail.

    dans form1.php3 :
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <form method="post" action="form2.php3">
    Nom :<input type="test" name="nom" size="10"><br>
    Prénom :<input type="test" name="prenom" size="10">
    Age :<input type="test" name="age" size="10">
    <input type="submit" value"=OK">
    </form>


    dans form2.php3:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <?
    Echo "Bonjour $prenom $nom, vous avez $age ans";
    ?>
    lorsque j'exécute le script form1.php, voici le message d'erreur que j'ai trouvé :
    Notice: Undefined variable: prenom in c:\program files\easyphp1-8\www\01_projet_prise en main\form2.php3 on line 2

    Notice: Undefined variable: nom in c:\program files\easyphp1-8\www\01_projet_prise en main\form2.php3 on line 2

    Notice: Undefined variable: age in c:\program files\easyphp1-8\www\01_projet_prise en main\form2.php3 on line 2
    Bonjour , vous avez ans


    J'ai vérifié la casse, et il n'y a pas de problèmes ..

    Pourriez vous m'indiquer l'erreur et me l'expliquer s'il vous plait ?

    D'avance merci de vos réponses.




    ultrabody

  2. #2
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 777
    Points
    17 777
    Par défaut
    La configuration actuelle et recommandée (register_globals à Off) fait qu'il faut faire appel au tableau superglobal du même nom que la méthode par laquelle les variables sont passées. En outre vous devez remplacer tout ce qui vient d'un formulaire (méthode POST), pour une "variable" $nom par exemple, par $_POST['nom']. Il en va de même pour l'URL (méthode GET donc le tableau correspondant sera $_GET), les sessions ($_SESSIONS), les cookies ($_COOKIE), les fichiers envoyés par formulaire ($_FILES).


    Julp.

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 18
    Points : 9
    Points
    9
    Par défaut
    je n'ai pas tout saisi..

    la méthode POST nécessite l'utilisation d'un tableau ? c'est bien ça ?

    dans le fichier form2.php
    dois je déclarer la méthode post ?

    j'ai remplacé comme vous l'avez expliqué précédemment les variables $prenom, $nom et $age par $_POST['prenom'] , $_POST['nom'] et $_['age'].

    ceci dit j'ai encore un message d'erreur :
    Parse error: parse error, expecting `T_STRING' or `T_VARIABLE' or `T_NUM_STRING' in c:\program files\easyphp1-8\www\01_projet_prise en main\form2.php3 on line 4

    J'ai ajouté la méthode dans form2.php mais rien a changé...

    Je pense que j'ai dû oublié l'étape du tableau, dont je n'ai pas très bien saisi...

  4. #4
    Membre averti Avatar de camyo
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Juin 2004
    Messages
    400
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Juin 2004
    Messages : 400
    Points : 386
    Points
    386
    Par défaut
    C'est pas bien ce que je fait

    il vaut mieux apprendre a pecher que donner du poisson

    dans form2.php:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    if (isset($_POST['prenom']))
    {
    	$prenom = $_POST['prenom'];
                 $nom = $_POST['nom'];
    	$age = $_POST['age'];
     
    Echo "Bonjour ".$prenom." ".$nom.", vous avez ".$age." ans";
     
     }

  5. #5
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 777
    Points
    17 777
    Par défaut
    Est-ce volontaire l'utilisation de l'extension php3 ?

    Lorsque vous postez des données par un formulaire, PHP les récupère et les met à disposition du développeur par l'intermédiaire du tableau $_POST. C'est ce que vous indiquez sur la page du formulaire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <form method="POST" ...>
    Ensuite $_POST est un tableau, l'indice (ou clé) permettant l'accès au contenu du champ est son nom :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="text" name="prenom" ... />
    Vous récupérerez donc le contenu de ce champ dans $_POST['prenom'].

    Donc en PHP vous n'avez rien à faire, ce tableau est automatiquement disponible et rempli. C'est à vous de l'exploiter ou non selon vos désirs.

    (Remettez votre code au fur et à mesure sinon il est difficile pour nous de localiser l'erreur).


    Julp.

  6. #6
    Expert confirmé
    Avatar de N1bus
    Homme Profil pro
    Dev. Web & OpenERP
    Inscrit en
    Janvier 2003
    Messages
    2 827
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Dev. Web & OpenERP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 827
    Points : 5 673
    Points
    5 673
    Par défaut
    tu as une explication ici :
    http://php.developpez.com/faq/?page=...vers_easyphp17
    Pourquoi mon application ne fonctionne plus sans erreur avec EasyPhp 1.7 ?


    Pour ton erreur, il faudrait que tu nous montre un bout de code.

    En général, il manque une balise de fermeture ou une accolade ou un point-virgule

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 18
    Points : 9
    Points
    9
    Par défaut
    Merci merci51 pour le bout de code que je n'ai pas encore testé ... disons que ça sera la dernière solution !! ^^

    Pour le bout de code, je craignais de faire des posts trop long ( du spam ??).
    Effectivement, il est plus simple de voir l'erreur lorsque nous avons le code ^^

    dans form1.php3
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <form method="post" action="form2.php3">
    Nom :<input type="test" name="nom" size="10"><br>
    Prénom :<input type="test" name="prenom" size="10">
    Age :<input type="test" name="age" size="10">
    <input type="submit" value"=OK">
    </form>


    dans form2.php3:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <form
    method="POST"
    <?
    Echo "Bonjour $_POST['prenom'] $_POST['nom'], vous avez $_POST['age'] ans";
    ?>
    </form>
    Pourquoi l'extension php3 ?
    j'ai suivi "betement" le tutoriel que j'ai trouvé sur internet .... j'ai vérifié la date du tuto ... : janvier 2002 ...

  8. #8
    Membre expérimenté

    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    1 138
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 138
    Points : 1 504
    Points
    1 504
    Par défaut
    pour informations, quand tu recuperes tes données dans form2.php3, tu n'as pas besoin de réecrire la balise form.
    Cette balise, comme son nom l'indique, ne sert juste que pour délimiter ton formulaire et donc n'intervient dans la récupération des données provenant du form.

    En gros pour résumé ce qui a été dit:
    1er : tu fais ton formulaire html classique de cette manière:
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <form action="tonfichierphptraitement.php" method="post">
    Nom : <input name="nomvariable1" type="text" size="30">
    Commentaire:<textarea name="nomvariable2" cols="30" rows="15"></textarea>
    Age: <select name="nomvariable3" size="1"><option value="15"></option></select>
    <input type="submit" value="Envoyer vers php">
    </form>

    2eme : Quand tu cliques sur le bouton "Envoyer vers php" tu recuperes tes variables dans le fichier "tonfichierphptraitement.php":
    Penser a bien executer php entre des balises <?php et ?>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    <?php
    if(isset($_POST['nomvariable1'])){
      $nom=$_POST['nomvariable1'];
    }
    if(isset($_POST['nomvariable2'])){
      $age=$_POST['nomvariable2'];
    }
    if(isset($_POST['nomvariable3'])){
      $commentaire=$_POST['nomvariable3'];
    }
    //affichage des variables
    echo "nom ".$nom." qui a ".$age." ans vous laisse ce message".$commentaire;
    ?>
    3eme: Une fois tes variables récupérés, tu peux tester leur validité (caracteres spéciaux, champs numériques seulement, etc...) selon tes contraintes et par exemple, effectuer une insertion dans une base de données ou dans une session.

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    104
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 104
    Points : 115
    Points
    115
    Par défaut
    Une chose m'a tapé l'oeil, soit je ne connais pas, soit le type "test" d'un champ n'existe pas, il s'agit de "text".

    ???

  10. #10
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 18
    Points : 9
    Points
    9
    Par défaut
    je n'en ai aucune idée, celà doit être logiquement text je pense....

  11. #11
    Rédacteur
    Avatar de RideKick
    Homme Profil pro
    Directeur technique
    Inscrit en
    Septembre 2006
    Messages
    5 914
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Septembre 2006
    Messages : 5 914
    Points : 12 572
    Points
    12 572
    Par défaut
    Citation Envoyé par Cemos
    Une chose m'a tapé l'oeil, soit je ne connais pas, soit le type "test" d'un champ n'existe pas, il s'agit de "text".

    ???
    Effectivement cela risque d etre la source de l'erreur !

Discussions similaires

  1. Code erreur dans un script PHP d'upload
    Par la_saucisse dans le forum Free
    Réponses: 0
    Dernier message: 10/09/2009, 00h22
  2. [PHP-JS] erreur dans le script php
    Par islem dans le forum Langage
    Réponses: 1
    Dernier message: 04/09/2006, 17h06
  3. Récupérer des variables Perl dans un script PHP
    Par barabath dans le forum Langage
    Réponses: 2
    Dernier message: 10/04/2006, 01h27
  4. Réponses: 2
    Dernier message: 03/04/2006, 18h38
  5. [SQL] Traitement de plusieurs requêtes .SQL dans un script PHP?
    Par M4x dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 19/03/2006, 19h59

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