Page 1 sur 1

Pb avec if (isset($_GET['q'] retourne une erreur

Posté : 21 avr. 2014, 22:16
par fhardi
Hello,

J'aurai besoin de votre aide, j'ai l'erreur suivante quand j'ajoute if et le reste afin de recuperer le mot saisie :

Parse error: syntax error, unexpected T_IF, expecting ',' or ';' in /homez.109/lesite/www/result_test2.php on line 324

echo "<div id='search-box'>";

echo  '<form name="F" action="result_test2.php">';
  echo  '	<input type="hidden" name="cx" value="12345545:abcdef" />';
   echo  ' <input type="hidden" name="cof" value="FORID:9" />';
	echo   ' <input type="hidden" name="ie" value="UTF-8" />';
	 echo '<input type="hidden" name="Categorie" value="General"/>';
    echo "<input id='cse_search' name='q' placeholder='Recherche Generale' type='text' value="

if(isset($_GET['q']))
{
echo stripslashes($_GET['q']); 
}
		
	"/>";
	
   echo " <button id='search-button' type='submit'><span>Search</span></button>";
  echo "</form>";
echo "</div>";
j'ai l'impression de c'est bon, je ne vois pas d'ou peu venir le probleme

Merci pour votre aide

Re: Pb avec if (isset($_GET['q'] retourne une erreur

Posté : 21 avr. 2014, 22:34
par Aureusms
Tu n'as pas fini la ligne d'avant :
 echo "<input id='cse_search' name='q' placeholder='Recherche Generale' type='text' value="

Re: Pb avec if (isset($_GET['q'] retourne une erreur

Posté : 22 avr. 2014, 10:16
par fhardi
Tu n'as pas fini la ligne d'avant :
 echo "<input id='cse_search' name='q' placeholder='Recherche Generale' type='text' value="
Merci pour ta reponse j'ai ajouter un point virguel apres value, cependant je n'ai plus d'erreur, mais sur le formulaire ca me coupe toujours le mot recuperer commencant par apostrophe, ci-dessous la modification et j'ai aussi ajouter une pont d'interrogation comme ceci
";>";
    echo "<input id='cse_search' name='q' placeholder='Recherche Generale' type='text' value=";

	if(isset($_GET['q']))
{
echo stripslashes($_GET['q']); 
}
		
	";>";

Re: Pb avec if (isset($_GET['q'] retourne une erreur

Posté : 22 avr. 2014, 11:06
par moogli
salut,

- les attribut html sont plus généralement délimité par des " et non des ' (ce qui éviterais ton problème.
- sais tu ce que fait la fonction stripslashes ? Au cas où regarde la doc histoire de comprendre ce qu'elle fait (et aussi pourquoi c'est l'inverse que tu souhaite en fait ;) ).

@+

Re: Pb avec if (isset($_GET['q'] retourne une erreur

Posté : 22 avr. 2014, 11:44
par fhardi
salut,

- les attribut html sont plus généralement délimité par des " et non des ' (ce qui éviterais ton problème.
- sais tu ce que fait la fonction stripslashes ? Au cas où regarde la doc histoire de comprendre ce qu'elle fait (et aussi pourquoi c'est l'inverse que tu souhaite en fait ;) ).

@+
Salut moogli,

Merci pour ta reponse,
je sais ce que fait la fonction stripslashes, et c'est volontaire d'inclure du HTML dans du PHP, comme celui du formulaire et mon objectif est de creer un condition en PHP, comme par exemple, si l'url1 en cours est = a l'url2 on affiche tel formulaire, c'est pour cela que je les ai mi entre les balises echo ", avant je fontionnais comme ceci, j'avais juste a inclure du code PHP dans le formulaire afin de concerver les donnes saisie et ca marche perfect, mais en incluant le formulaire dans echo, les fonctions if(isset etc n'ont pas l'air de focntionner
  <form name="F" action="result_test2.php">
  	<input type="hidden" name="cx" value="12345545:abcdef" />
	<input type="hidden" name="cof" value="FORID:9" />
	 <input type="hidden" name="ie" value="UTF-8" />
	 <input type="hidden" name="Categorie" value="General"/>
    <input id='cse_search' name='q' placeholder='Recherche Generale' type='text' value="<?php
if(isset($_GET['q']))
{
echo stripslashes($_GET['q']); 
}
?>"/>
    <button id='search-button' type='submit'><span>Search</span></button>
  </form>
</div>
Si vous avez d'autre suggestions

Re: Pb avec if (isset($_GET['q'] retourne une erreur

Posté : 22 avr. 2014, 16:46
par moogli
as tu regardé le source html généré ?
sais ce qu'il ce passe si tu utilise le délimiteur d'attribut ( ' ou ") dans une chaîne que tu insère dans l'attribut ?

en clair <input value="totoutilise des "quote" /> ?

c'est ce réellement ce que tu souhaite alors libre à toi de pourrir ton code et de la rendre inutilisable :mrgreen: :mrgreen:

@+

Re: Pb avec if (isset($_GET['q'] retourne une erreur

Posté : 22 avr. 2014, 21:54
par fhardi
as tu regardé le source html généré ?
sais ce qu'il ce passe si tu utilise le délimiteur d'attribut ( ' ou ") dans une chaîne que tu insère dans l'attribut ?

en clair <input value="totoutilise des "quote" /> ?

c'est ce réellement ce que tu souhaite alors libre à toi de pourrir ton code et de la rendre inutilisable :mrgreen: :mrgreen:

@+
moogli
Tu as bien raison, j'ai regarder le code source de ma page et input value ne comporte pas de quote, voir code ci-dessous :
<div id='search-box'><form name="F" action="result_test2.php">       <input type="hidden" name="cx" value="12345545:abcdef" /> <input type="hidden" name="cof" value="FORID:9" /> <input type="hidden" name="ie" value="UTF-8" /><input type="hidden" name="Categorie" value="General"/><input id='cse_search' name='q' placeholder='Recherche Generale' type='text' value=Programme d'Apprentissage <button id='search-button' type='submit'><span>Search</span></button></form></div>
J'ai enfin trouver et placer correctement les quotes comme ceci et ca fonctionne correctenent :
echo '<input type="hidden" name="ie" value="UTF-8" />';
echo '<input type="hidden" name="Categorie" value="General"/>';
echo '<input id="cse_search" name="q" placeholder="Recherche Generale" type="text" value=" ';
/**/
if(isset($_GET['q']))
{
echo stripslashes($_GET['q']); 
}
echo ' ">';	
/**/
echo '<button id="search-button" type="submit">';
Resultat :
<input id="cse_search" name="q" placeholder="Recherche Generale" type="text" value=" Programme d'Apprentissage "><button id="search-button" type="submit"><span>Search</span></button></form></div>
Merci de m'avoir mis sur la voie