Erreur: undefined index...

Signaler
Messages postés
31
Date d'inscription
vendredi 11 octobre 2002
Statut
Membre
Dernière intervention
1 septembre 2004
-
Messages postés
2
Date d'inscription
samedi 26 juin 2004
Statut
Membre
Dernière intervention
26 juin 2004
-
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

Messages postés
140
Date d'inscription
dimanche 18 avril 2004
Statut
Membre
Dernière intervention
20 mars 2006

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
Messages postés
31
Date d'inscription
vendredi 11 octobre 2002
Statut
Membre
Dernière intervention
1 septembre 2004

ok dac.
j'ai essayé mais l'erreur (la même) subsiste....
comment faire?
Messages postés
140
Date d'inscription
dimanche 18 avril 2004
Statut
Membre
Dernière intervention
20 mars 2006

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
Messages postés
31
Date d'inscription
vendredi 11 octobre 2002
Statut
Membre
Dernière intervention
1 septembre 2004

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?
Messages postés
140
Date d'inscription
dimanche 18 avril 2004
Statut
Membre
Dernière intervention
20 mars 2006

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
Messages postés
31
Date d'inscription
vendredi 11 octobre 2002
Statut
Membre
Dernière intervention
1 septembre 2004

boh je trouverai bien j'espere ;)
en tout cas merci pour ton aide!
à+!
Messages postés
2
Date d'inscription
samedi 26 juin 2004
Statut
Membre
Dernière intervention
26 juin 2004

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
Messages postés
2
Date d'inscription
samedi 26 juin 2004
Statut
Membre
Dernière intervention
26 juin 2004

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 :)