Précédent   Forum des professionnels en informatique > PHP > Outils > EasyPHP
EasyPHP Forum d'entraide sur EasyPHP : installation, utilisation, etc. Avant de poster -> Cours EasyPHP
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 05/03/2007, 18h33   #1
Invité de passage
 
Inscription : avril 2004
Messages : 10
Détails du profil
Informations forums :
Inscription : avril 2004
Messages : 10
Points : 1
Points : 1
Envoyer un message via MSN à ultrabody
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 :
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 :
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é :
Citation:
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
ultrabody est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/03/2007, 18h39   #2
En attente de confirmation mail
 
Inscription : juin 2002
Messages : 6 164
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 6 164
Points : 6 404
Points : 6 404
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.
julp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/03/2007, 19h16   #3
Invité de passage
 
Inscription : avril 2004
Messages : 10
Détails du profil
Informations forums :
Inscription : avril 2004
Messages : 10
Points : 1
Points : 1
Envoyer un message via MSN à ultrabody
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...
ultrabody est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/03/2007, 19h31   #4
Membre régulier
 
Avatar de camyo
 
Inscription : juin 2004
Messages : 213
Détails du profil
Informations personnelles :
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations forums :
Inscription : juin 2004
Messages : 213
Points : 70
Points : 70
C'est pas bien ce que je fait

il vaut mieux apprendre a pecher que donner du poisson

dans form2.php:
Code :
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";
 
 }
camyo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/03/2007, 19h35   #5
En attente de confirmation mail
 
Inscription : juin 2002
Messages : 6 164
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 6 164
Points : 6 404
Points : 6 404
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 :
<form method="POST" ...>
Ensuite $_POST est un tableau, l'indice (ou clé) permettant l'accès au contenu du champ est son nom :
Code :
<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.
julp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/03/2007, 19h36   #6
Rédacteur/Modérateur
 
Avatar de N1bus
 
Inscription : janvier 2003
Messages : 2 018
Détails du profil
Informations personnelles :
Âge : 47
Localisation : France, Charente Maritime (Poitou Charente)

Informations forums :
Inscription : janvier 2003
Messages : 2 018
Points : 1 992
Points : 1 992
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
N1bus est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/03/2007, 19h49   #7
Invité de passage
 
Inscription : avril 2004
Messages : 10
Détails du profil
Informations forums :
Inscription : avril 2004
Messages : 10
Points : 1
Points : 1
Envoyer un message via MSN à ultrabody
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 :
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 :
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 ...
ultrabody est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/03/2007, 01h08   #8
Membre Expert
 
Inscription : octobre 2002
Messages : 1 141
Détails du profil
Informations personnelles :
Âge : 32
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : octobre 2002
Messages : 1 141
Points : 1 204
Points : 1 204
Envoyer un message via MSN à Raideman
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 :
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 :
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.
Raideman est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/03/2007, 15h17   #9
Membre habitué
 
Inscription : mars 2007
Messages : 104
Détails du profil
Informations personnelles :
Âge : 24

Informations forums :
Inscription : mars 2007
Messages : 104
Points : 104
Points : 104
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".

???
Cemos est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/03/2007, 08h50   #10
Invité de passage
 
Inscription : avril 2004
Messages : 10
Détails du profil
Informations forums :
Inscription : avril 2004
Messages : 10
Points : 1
Points : 1
Envoyer un message via MSN à ultrabody
je n'en ai aucune idée, celà doit être logiquement text je pense....
ultrabody est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/03/2007, 10h21   #11
Rédacteur
 
Avatar de RideKick
 
Homme
Directeur technique
Inscription : septembre 2006
Messages : 5 959
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

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

Informations forums :
Inscription : septembre 2006
Messages : 5 959
Points : 10 889
Points : 10 889
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 !
__________________
Pas de questions techniques en MP please

Mon site perso
RideKick est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 14h52.


 
 
 
 
Partenaires

Hébergement Web