Récupération d'un formulaires - pb avec espaces [PHP] - PHP - Programmation
Marsh Posté le 26-06-2003 à 10:48:54
tu dois avoir une erreur dans ton html, montres nous le code qui réaffiche le formulaire.
Marsh Posté le 26-06-2003 à 11:54:45
donc le formulaire est envoyé en POST a une autre page, à partir de la un if pour verifier si l'un des champs obligatoire est vide, et si tout est rempli, voila un bout du formulaire qui est redonné
<TD ALIGN=LEFT VALIGN=MIDDLE><INPUT TYPE=text NAME=artistemp3 SIZE=40 class=liste value=$artistemp3>
je lui redonne la valeur entrée lors de la premiere saisie via le value=$var
ca marche nickel kan il y a pas d'espace possible, mais la c'est censé etre un artiste et un titre de musique, donc il y a souvent des espaces...
Marsh Posté le 26-06-2003 à 12:10:20
tadzoa a écrit : donc le formulaire est envoyé en POST a une autre page, à partir de la un if pour verifier si l'un des champs obligatoire est vide, et si tout est rempli, voila un bout du formulaire qui est redonné |
en perl je fais ca, je fais un if sur la chaine en remplacant les " " par "". Si la chaine n'a aucun caractère apres ca, soit "", bin je réaffiche le formulaire avec les données
Marsh Posté le 26-06-2003 à 13:12:24
tadzoa a écrit : donc le formulaire est envoyé en POST a une autre page, à partir de la un if pour verifier si l'un des champs obligatoire est vide, et si tout est rempli, voila un bout du formulaire qui est redonné |
echo '<TD ALIGN="LEFT" VALIGN="MIDDLE"><INPUT TYPE="text" NAME="artistemp3" SIZE="40" class="liste" value="' . $artistemp3 . '" />';
ca marchera tout de suite mieux
Marsh Posté le 26-06-2003 à 13:16:45
Code :
|
ça sera mieux comme ça
Marsh Posté le 26-06-2003 à 14:06:48
si j'ai jarté les " c'est paske c'est dans un echo()
en fait j'ai un peu changé la syntaxe pour simplifier..
Sur la deuxieme page (apres premier envoi de formulaire), pour chaque champ, il vérifié s'il est vide.
Si le champ est vide, il remet le INPUT pour pouvoir entrer de nouveau ce qu'on a oublié
Si le champ est renseigné, il affiche le résultat, et j'utilise un INPUT HIDDEN pour que la variable soit envoyée lors de la validation du formulaire pour la deuxieme fois.
Donc en gros ca donne ca :
<TR>
<TD ALIGN=RIGHT VALIGN=MIDDLE class=resultg>Artiste : </TD>
<? if(empty($artistemp3))
{
echo("<TD ALIGN=LEFT VALIGN=MIDDLE><INPUT TYPE=text NAME=artistemp3 SIZE=40 class=liste></td>" );
}
else
{
echo("<td class=resultd>$artistemp3<INPUT TYPE=hidden NAME=artistemp3 VALUE=$artistemp3></td>" );
} ?>
</TR>
Ca ne change toujours rien, il manque toujours ce qui est apres l'espace, une fois le formulaire envoyé.
J'essaie le
value=' . $artistemp3 . '
et je vous tiens au courant
Marsh Posté le 26-06-2003 à 14:09:37
tu le fais expres ?
pour que les espaces soient traités, dans ton HTML, tu dois avoir
<input type="type" name="nom" value="toto">
en gros, tu dois mettre des GUILLEMETS autour des parametres des champs...
echo '<input type="type" name="nom" value="' . $toto . '">';
Marsh Posté le 26-06-2003 à 17:46:56
sinon, il te suffit d'échapper les " par un \
par exemple :
Code :
|
Marsh Posté le 26-06-2003 à 18:07:29
a mon avis c pas tellement tout c la le probleme...
faut que tu fasse un htmlentities(urlencode($tavar)) pour les champs du formulaire... et pour le récupérer tu fais un urldecode($tavar)
le htmlentities est pas obligatoire ... mais bon il est préférable de le mettre...
Marsh Posté le 26-06-2003 à 22:45:09
passe bien ton formulaire en méthode POST et fais
Code :
|
Après pense aussi à mettre tes paramètres html en minuscules.
Marsh Posté le 26-06-2003 à 10:30:29
Je suis en train de faire un truc tout con pour récuperer les valeurs d'un form...
Quand un champ obligatoire est pas rempli, il annonce dans une deuxieme page via empty() que tel ou tel champ n'est pas rempli, champ par champ, et si l'un des champs oblig. n'est pas rempli il recolle le formulaire en dessous, avec dans les champs les valeurs déja remplies précédemment, pour éviter d'avoir à les resaisir. Seuls les endroits ou c'etait pas rempli restent vides donc.
La problème que j'ai, c'est que certains de mes champs peuvent comporter des expressions à espaces, et si un autre champ n'est pas rempli et que le formulaire se raffiche, seul le premier mot de l'expression est réaffiché, tout ce qui est apres l'espace "saute" et donc le formulaire m'envoie des données incomplètes.
Comment faire ?