PHP - Est-ce bien normal ?

Bonjour,

J’ai un petit problème en php…
J’ai un formulaire avec une liste déroulante, dans cette liste il y a un certain nombre de données, certaines composées d’un seul mot et certaines de 2 mots.
Quand j’envoie le formulaire, tout ce passe bien pour les données à un seul mot, par contre seul le premier mot des données à 2 mots est transmis.
Quelqu’un pourrait-il m’expliquer le pourquoi et comment faire pour que les 2 mots passent ?
D’avance merci.

Voici le code du formulaire :

?>

Listing
<? $sql = "Select * from Carnet order by Prenom"; $res=mysql_query($sql);

echo"";
while($perso=mysql_fetch_array($res))
{
$prenom=$perso[‘Prenom’];
?>

><? echo $prenom; ?> <? } ?>

Lorsque je récupère la variable $nom, il n’y a que le premier mot de la variable $prenom

Parce que ton code HTML n’est pas bon.

Je relève les erreurs suivantes:

  1. <? == non portable == désactivé par défaut sur toute nouvelle installation de php == utilise <?php
  2. form, pas FORM. ou alors c’est <FORM et
  3. post, pas POST
  4. Pas de tableaux pour la mise en page => aberrant
  5. (ton vrai problème) si tu affiche un prénom comprenant des espaces, tu va envoyer au navigateur , qui lui va comprendre qu’il y a deux attributs: value, et Dupont. Tu dois donc mettre des double quotes (") : . La fonction htmlspecialchars (cf doc) sert à éviter que si tu as un " dans le prénom tu ai le même problème.

Merci pour ton aide et ta rapide réponse…
Maintenant ça marche…:):):):):):):slight_smile:
Juste deux détails, concernant le <?, autrefois il était conseillé de ne mettre que <? au lieu de <?php (qui fonctionnait aussi mais plus long…). Je prends donc note que maintenant ça a changé…
Concernant la mise en page… tu n’as eu qu’une partie du code… le tout est dans un tableau !!

Encore merci.