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

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

Marsh Posté le 13-07-2011 à 12:02:26    

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?????????

Reply

Marsh Posté le 13-07-2011 à 12:02:26   

Reply

Marsh Posté le 13-07-2011 à 12:16:53    

Essayer en remplaçant

echo ("<Script language=javascript>alert(".$a1." );</script>" );}


par

echo ("<Script language=javascript>alert(\"".$a1."\" );</script>" );}


parce que je soupçonne le Alert() de croire qu'un nom qui commence par un caractère alphabétique serait le nom d'une variable au lieu d'être une chaine de caractère, alors qu'il n'y a pas de confusion dans le cas d'un nombre. Donc, il faudrait juste ajouter des guillemets, mais en les faisant précéder d'une barre oblique.
Sinon, d'habitude, je procède plus simplement pour vérifier mes données en faisant juste

Citation :

echo $a1


 
N.B. Pour afficher du code dans un message sur le forum, il est plus joli d'utiliser les balises, comme je l'ai fait, soit en sélectionnant les lignes de codes et en cliquant sur l'icone Fixe, soit en encadrant les lignes de code par les balises [fixed] et [/fixed].

Reply

Marsh Posté le 13-07-2011 à 12:18:31    

Déjà ce qui choque c'est qu'il manque

Code :
  1. value=""

à ton champs lib

Reply

Marsh Posté le 13-07-2011 à 12:38:04    

Scarf3ss3 a écrit :

Déjà ce qui choque c'est qu'il manque

Code :
  1. value=""

à ton champs lib

 

Moi ce n'est vraiment ça qui me choque [:pingouino] (et accessoirement tu racontes n'importe quoi :o )


Message édité par Dj YeLL le 13-07-2011 à 12:38:34

---------------
Gamertag: CoteBlack YeLL
Reply

Marsh Posté le 13-07-2011 à 12:45:54    

billgatesanonym a écrit :

Essayer en remplaçant

echo ("<Script language=javascript>alert(".$a1." );</script>" );}


par

echo ("<Script language=javascript>alert(\"".$a1."\" );</script>" );}


parce que je soupçonne le Alert() de croire qu'un nom qui commence par un caractère alphabétique serait le nom d'une variable au lieu d'être une chaine de caractère, alors qu'il n'y a pas de confusion dans le cas d'un nombre. Donc, il faudrait juste ajouter des guillemets, mais en les faisant précéder d'une barre oblique.
Sinon, d'habitude, je procède plus simplement pour vérifier mes données en faisant juste

Citation :

echo $a1


 
N.B. Pour afficher du code dans un message sur le forum, il est plus joli d'utiliser les balises, comme je l'ai fait, soit en sélectionnant les lignes de codes et en cliquant sur l'icone Fixe, soit en encadrant les lignes de code par les balises [fixed] et [/fixed].


 
merci pour la réponse mais lors de l'exécution j'ai l'erreur suivante: Parse error: syntax error, unexpected T_NS_SEPARATOR.  

Reply

Marsh Posté le 13-07-2011 à 12:56:51    

Ou essayer avec des apostrophes :

echo ("<Script language=javascript>alert('".$a1."' );</script>" );}

Reply

Marsh Posté le 13-07-2011 à 12:58:25    

ça reste laid mais bon ...
 

Code :
  1. <?php
  2. if(isset($_POST['lib']))
  3.    $text = htmlspecialchars($_POST['lib']);
  4. else
  5.    $text = 'lib n\'existe pas';
  6. ?>
  7.  
  8. <script type="text/javascript">
  9. alert("<?php echo $text; ?>" );
  10. </script>
  11.  
  12. <form method="post" name="f"  action="gproduit.php">
  13.    <input type="text" name="lib" size="20" />
  14.    <input type="submit" value="VALIDER" name="VALID">
  15. </form>


---------------
Gamertag: CoteBlack YeLL
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed