Erreur: undefined index...

alanbraxe31 Messages postés 31 Date d'inscription vendredi 11 octobre 2002 Statut Membre Dernière intervention 1 septembre 2004 - 28 mai 2004 à 13:43
flySystem Messages postés 2 Date d'inscription samedi 26 juin 2004 Statut Membre Dernière intervention 26 juin 2004 - 26 juin 2004 à 13:46
bonjour à tous!

voici mon script:

<form method="post" action="liste.php">

</form>
<?

// connexion au serveur mysql
mysql_connect("localhost","root","");
mysql_select_db("test");

// recherche
if($rechercher && strlen(trim($motsclef)) > 0) // test fonction
{
....
}

et toujours la même erreur:

Notice: Undefined index: rechercher in d:\easyphp1-7\www\liste.php on line 22

quelle est le problème avec ma fonction rechercher?
comment corriger cette erreur svp?

http://sarace12.free.fr

8 réponses

scoder Messages postés 140 Date d'inscription dimanche 18 avril 2004 Statut Membre Dernière intervention 20 mars 2006
28 mai 2004 à 14:00
dans les dernières versions de php, si tu veux récupérer une variable d'un formulaire utilisant la méthode POST, tu dois utiliser
$rechercher=$_POST['rechercher'];

tu ne peux plus récupérer tes variables comme tu le faisais avant
0
alanbraxe31 Messages postés 31 Date d'inscription vendredi 11 octobre 2002 Statut Membre Dernière intervention 1 septembre 2004
28 mai 2004 à 14:35
ok dac.
j'ai essayé mais l'erreur (la même) subsiste....
comment faire?
0
scoder Messages postés 140 Date d'inscription dimanche 18 avril 2004 Statut Membre Dernière intervention 20 mars 2006
28 mai 2004 à 14:44
quand tu écris
$rechercher=$_POST['rechercher'];
veille à bien écrire POST en majuscules. Si c'est pas ça ton problème alors je ne sais pas trop.... je ne pratique pas depuis très lontemps alors je pourrai pas t'aider plus dsl
0
alanbraxe31 Messages postés 31 Date d'inscription vendredi 11 octobre 2002 Statut Membre Dernière intervention 1 septembre 2004
28 mai 2004 à 14:53
je suis novice en php.
je suppose que l'erreur est due à ça (= fonction rechercher) mais je ne vois pas comment intégrer la solution que tu me propose.

tu peux me dire à quel endroit je dois l'insérer dans mon script, et si il ya des choses à supprimer ou remplacer?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
scoder Messages postés 140 Date d'inscription dimanche 18 avril 2004 Statut Membre Dernière intervention 20 mars 2006
28 mai 2004 à 16:00
arf désolé je vois pas trop je ne pratique pas depuis lontemps. recherche sur le forum tu trouveras surement moi je ne peux pas t'en dire +

bon courage
0
alanbraxe31 Messages postés 31 Date d'inscription vendredi 11 octobre 2002 Statut Membre Dernière intervention 1 septembre 2004
28 mai 2004 à 16:33
boh je trouverai bien j'espere ;)
en tout cas merci pour ton aide!
à+!
0
flySystem Messages postés 2 Date d'inscription samedi 26 juin 2004 Statut Membre Dernière intervention 26 juin 2004
26 juin 2004 à 11:37
1er probleme.
Comme indiqué ci-dessus, il faut maintenant utiliser $_POST qui est un tableau super global pour récupérer la valeur des variables html.

exemple :
code html :
code PHP : $monResultat = $_POST["monTexte"];

2eme probleme.
Ensuite, les plus récentes version de php demande en plus l'initialisation des variables avant toutes choses.
C'est à dire qu'avant d'utiliser une variable, on la déclare et on l'initialise.

Dans ton cas, tu devrais avoir une erreur de type "undefined variable". Mais en passant par $_POST tu auras bien "undefined index".

En fait, $_POST est un tableau associatif car on associe des valeurs à un index de noms dans le tableau. Ainsi, pour utiliser $_POST["monTexte"] il faut l'avoir déclaré et initialisé avant comme suit :
$_POST[] = array('monTexte'=>"quelquechose");
Ici, on a déclaré que $_POST[] est un tableau associatif dont l'association 'monTexte' prend la valeur "quelquechose".

exemple de code qui devrait fonctionner :
html :
...

...
PHP :
<?php$_POST array('motsclef'> "rien");
/*doit etre déclaré avant utilisation aillleurs que dans la page ou tu l'utilises sinon tu vas remplacer la valeur de la variable récupérée par la valeur d'initialisation...*/
...
$motsclef = $_POST["motsclef"];
if($rechercher && strlen(trim($motsclef)) > 0)
{
}
La récupération de la variable est OK
0
flySystem Messages postés 2 Date d'inscription samedi 26 juin 2004 Statut Membre Dernière intervention 26 juin 2004
26 juin 2004 à 13:46
C'est encore moi !

Désolé pour l'usine à gaz.
Les infos que j'ai données sont exactes par rapport au fait de devoir déclarer avant d'utiliser et que $_POST est un tableau super global. Mais en fait, il n'y a pas besoin de le déclarer à nouveau, puisqu'il existe déjà et que si un formulaire html à envoyé des variables alors ce tableau les a récupérées.
Il suffit alors de tester si des variables ont été passées avec isset()

html:
...

...
PHP :
...
if (isset($_POST["motsclef"])
{
$motsclef=$_POST["motsclef"]
}

isset() vérifit que la variable existe et a été renseignée.
Si c'est le cas, alors on la récupère.

Personne n'est parfait :)
0