pb récupération du contenu d'un champs texte

Petit nouveau ! | 6 Messages

13 juil. 2011, 12:18

salut,
j'essaye de passer en paramètre le contenu d'un champs text

<?PHP
if (isset($_POST['lib']))
{
$a1=$_POST['lib'];
echo ("<Script language=javascript>alert(".$a1." );</script>" );}

else{
echo ("<Script language=javascript>alert('lib n''existe pas');</script>" );
}
?>
<form method="POST" name=f action='gproduit.php'>

<input type="text" name="lib" size="20">
<input type="submit" value="VALIDER" name="VALID"></p>
</form>

a l'exécution si je tape des chiffres ca passe et si ce sont des caractères il ne passe rien ????????????????
svp quelqu'un a une idée?????????

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

13 juil. 2011, 18:15

Le problème n'est pas au niveau de php qui récupère bien tes données (chiffres ou autre), mais du code javascript généré par php que tu utilises ensuite...

En effet, quand tu génères du javascript avec php (ou quand tu écris du js à la main), les chaines de caractères doivent être délimitées par des apostrophes ou des guillemets. Hors ici, dans la chaine que tu génères elles ne sont pas présentes. Il n'y a pas de soucis pour les nombres, mais pour les autres valeurs, tu génères une erreur javascript puisque le navigateur pense qu'il s'agit de variables non définies...

Tu peux le constater facilement en regardant le code source de la page générée par php. Tu verras ta chaine apparaitre, et tu devrais également voir l'erreur de syntaxe javascript générée :)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...