alanbraxe31
Messages postés31Date d'inscriptionvendredi 11 octobre 2002StatutMembreDernière intervention 1 septembre 2004
-
28 mai 2004 à 13:43
flySystem
Messages postés2Date d'inscriptionsamedi 26 juin 2004StatutMembreDernière intervention26 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?
scoder
Messages postés140Date d'inscriptiondimanche 18 avril 2004StatutMembreDernière intervention20 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
scoder
Messages postés140Date d'inscriptiondimanche 18 avril 2004StatutMembreDernière intervention20 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
alanbraxe31
Messages postés31Date d'inscriptionvendredi 11 octobre 2002StatutMembreDerniè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?
Vous n’avez pas trouvé la réponse que vous recherchez ?
flySystem
Messages postés2Date d'inscriptionsamedi 26 juin 2004StatutMembreDernière intervention26 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
flySystem
Messages postés2Date d'inscriptionsamedi 26 juin 2004StatutMembreDernière intervention26 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.