Souci de formulaire en GET

Eléphant du PHP | 109 Messages

15 août 2009, 21:23

Bonjour,

Suite a mon précédent topic pour mon petit moteur de recherche sur mon site, j'expose un tout autre problème.
apparemment, les variables que je transmet d'un formulaire jusqu'à la page qui expose les résultat via la méthode GET ne fonctionnent pas.
<?php
$_GET['request'] = $request;
//Je prends ma variable qui doit contenir se que l'utilisateur recherche

mysql_connect("plouf", "plaf", "plif") or die(mysql_error());
mysql_select_db("plof") or die(mysql_error());
?>

<html>
<body>
<form method="GET" action="search.php"><input type="text" size="50" name="request"> </form>

<hr>
<?php
$reponse = mysql_query("SELECT * FROM Requete WHERE name REGEXP '$request'");

while($donnee == mysql_fecht_array($reponse))
{
$flag = 0;
?>
<font size="4"> <a href="<?php echo $donnee['url']; ?>"><?php echo $donnee['name']; ?></a></font><br><br>
<?php
$flag++;
}
}

if($flag == 0)
{
  ?>
  <font size="5" color="red">Il n'y a pas de résultat corresondant à "<?php echo $request; ?>"</font>
  <br><br>
  Nous vous conseillons d'essayer avec d'autre mots.
 
  <?php
 }

?>
Quand je fait une recherche, il s'affiche le message "Il n'y a pas de résultat correspondant à...etc", se qui est normal vu que ma base de donnée est vide. Mais se qui m'étonne c'est que le message se fini comme suit :
...correspondant à "" (rien entre les guillemets)
la variable request ne s'est pas affichée.

Alors j'en viens a me demander si le fait qu'il n'y a pas de résultat a ma recherche ne viens pas plutôt du fait qu'il n'y avais rien a rechercher plutôt qu'a trouver.

Sachant que le fichier que je vous est montrer est search.php, que les identifiants de BDD sont corrects et qu'il y a un autre formulaire similaire à celui-ci pour accéder a cette page et qui ne fonctionne pas lui non plus (méthode GET lui aussi), d'où peux bien provenir mon problème?
ANSI <font> <font> <font> <li> <p> <title> Mar I/O .NET

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

15 août 2009, 21:56

Lorsque tu fais :
$_GET['request'] = $request;
Tu demandes à php d'écraser la valeur transmise via la méthode get par la variable $request (qui n'est pas définie)
$request = $_GET['request'];
serait plus logique pour récupérer la valeur transmise en get dans ta variable $request :)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Eléphant du PHP | 109 Messages

15 août 2009, 22:04

Sa marche impecablement bien, je n'avais jamais vu ça comme cela.

Merci! :mrgreen:
ANSI <font> <font> <font> <li> <p> <title> Mar I/O .NET