Ré afficher les données d'un champ texte d'un formulaire

Résolu/Fermé
Gardeboue Messages postés 49 Date d'inscription mardi 9 mai 2017 Statut Membre Dernière intervention 7 janvier 2019 - 9 mai 2017 à 09:33
Gardeboue Messages postés 49 Date d'inscription mardi 9 mai 2017 Statut Membre Dernière intervention 7 janvier 2019 - 10 mai 2017 à 23:51
Bien le bonjour à tous,

J'essaye de me dépatouiller avec un problème de syntaxe au niveau de l'argument value sur un champ de mon formulaire.
Je souhaite récupérer les infos déjà rentrées par l'utilisateur lors du retour sur le formulaire en cas de saisies erronée.

Voici mon bout de code partiel.


<fieldset><legend>Vos coordonnées :</legend>
		<p><label for="nom">Nom :</label>
<input type="text" id="nom" size="30" tabindex="1" name="nom" value="<?php  if (!empty($_POST['nom'])) {  echo htmlspecialchars($_POST['nom'],ENT_QUOTES);  } ?>" />



une autre variante:

value="<?php if(isset($_POST['nom'])) { echo htmlentities($_POST['nom']);}?>" /> 



Mais le soucis c'est que mon champ m'affiche le code entre guillemet en texte et non ma variable, normal puisque c'est entre guillemets , c'est donc considéré comme du texte simple.

J'ai fouillé partout et toutes les soluces que j'ai trouvé me donne le même résultat toujours à cause de ces guillemets.

Mon formulaire fonctionne (donc mon php est ok)

Je précise que je suis plutôt néophyte en la matière.

Merci à toute âme charitable qui pourra m'aider.

7 réponses

Felice_ Messages postés 265 Date d'inscription mardi 25 avril 2017 Statut Membre Dernière intervention 20 juillet 2017 11
Modifié le 9 mai 2017 à 09:59
Tu as exécuter ton code sur un serveur ?

Ton bout de code html il est à la racine ou entre des balises PHP ?

Une page blanche comme ceci, exécuter sur le serveur affichera bien Hello :
<fieldset><legend>Vos coordonnées :</legend>
		<p><label for="nom">Nom :</label>
<input type="text" id="nom" size="30" tabindex="1" name="nom"
       value="<?php  echo 'Hello'; ?>" />
1
Gardeboue Messages postés 49 Date d'inscription mardi 9 mai 2017 Statut Membre Dernière intervention 7 janvier 2019
9 mai 2017 à 10:19
Salut Felice

Oui je teste à chaque fois sur le serveur
mon code est en racine dans mon fichier html et le php est dans un fichier à part

J'avais essayé ta version mais même résultat à cause des guillemets
0
Felice_ Messages postés 265 Date d'inscription mardi 25 avril 2017 Statut Membre Dernière intervention 20 juillet 2017 11 > Gardeboue Messages postés 49 Date d'inscription mardi 9 mai 2017 Statut Membre Dernière intervention 7 janvier 2019
9 mai 2017 à 10:45
À mon avis, ton code PHP n'est pas lu par ton serveur…

Essai simplement dans un fichier blanc genre de test :
<?php

echo 'Hello';

?>
0
Gardeboue Messages postés 49 Date d'inscription mardi 9 mai 2017 Statut Membre Dernière intervention 7 janvier 2019
9 mai 2017 à 11:18
essai non concluant
je me retrouve toujours avec ceci en toute lettre dans mon champ

<?php echo 'Hello'; ?>

J'ai l'impression qu'effectivement le php n'est pas exécuté à l'ouverture de la page html mais cependant bien exécuté lors de la validation du formulaire vu qu'il fonctionne bien

Il doit me manquer quelque chose dans le html pour aller lire le php
y'aurait-il pas un bout de php à mettre dans le html?

Désolé de mon ignorance (je suis autodidacte)
0
Felice_ Messages postés 265 Date d'inscription mardi 25 avril 2017 Statut Membre Dernière intervention 20 juillet 2017 11
Modifié le 9 mai 2017 à 11:21
Tu es sous apache ?

Tu as configuré quoi comme extension, dessus ?

Ton fichier HTML porte quelle extension ?
0
Gardeboue Messages postés 49 Date d'inscription mardi 9 mai 2017 Statut Membre Dernière intervention 7 janvier 2019 > Felice_ Messages postés 265 Date d'inscription mardi 25 avril 2017 Statut Membre Dernière intervention 20 juillet 2017
9 mai 2017 à 13:18
oui le serveur est sur apache
je n'ai rien configuré de particulier
mon fichier est un .html

Ne faut-il pas entourer l'html d'un peu de php?
0
Felice_ Messages postés 265 Date d'inscription mardi 25 avril 2017 Statut Membre Dernière intervention 20 juillet 2017 11 > Gardeboue Messages postés 49 Date d'inscription mardi 9 mai 2017 Statut Membre Dernière intervention 7 janvier 2019
9 mai 2017 à 13:49
Ben tu as deux choix :
1) Soit tu changes l'extension de « html » à « php ».

2) Soit tu configures apache, tu cherches une ligne du type :
AddType application/x-httpd-php .php3 .php4 .php5 .php6 .php7 .php

Dans le fichier « httpd.conf » d'apache.

Faut rajouter donc « .html »
0
Gardeboue Messages postés 49 Date d'inscription mardi 9 mai 2017 Statut Membre Dernière intervention 7 janvier 2019 > Felice_ Messages postés 265 Date d'inscription mardi 25 avril 2017 Statut Membre Dernière intervention 20 juillet 2017
9 mai 2017 à 15:01
oups heu en fait le site est chez un hébergeur
0
Felice_ Messages postés 265 Date d'inscription mardi 25 avril 2017 Statut Membre Dernière intervention 20 juillet 2017 11 > Gardeboue Messages postés 49 Date d'inscription mardi 9 mai 2017 Statut Membre Dernière intervention 7 janvier 2019
9 mai 2017 à 15:27
Ben comme dit, changes l’extension de html à php.

Sinon regarde du coter de .htaccess.

Voir au niveau de l'administration de ton hébergeur
0
Gardeboue Messages postés 49 Date d'inscription mardi 9 mai 2017 Statut Membre Dernière intervention 7 janvier 2019
9 mai 2017 à 21:36
Je reviens à toi
bon effectivement tu as raison, en fait je sors de la page pour afficher le message d'information que le contenu du formulaire est erroné puis je ré-ouvre le formulaire par un lien. J'avais cru comprendre que le $_POST gardait la variable en mémoire suffisamment longtemps pour le cas présent (peut-être à tord) certes moins longtemps que la durée de vie en $_SESSION qui doit être de 30mn en gros. Bref pour le coup j'ai quand même essayé de remplacer mes POST en SESSION dans mon value mais toujours pas de retour avec mes variables.

J'ai démarré une session dans mon php en tout début de code après le <?php mais là dessus je suis pas serein de l'endroit exact ou il faut le placer.

A savoir que le formulaire est toujours en état de bon fonctionnement.
Je t'avoue que je patauge.
0
Felice_ Messages postés 265 Date d'inscription mardi 25 avril 2017 Statut Membre Dernière intervention 20 juillet 2017 11
Modifié le 9 mai 2017 à 21:52
Tes données de session doivent correspondes aux valeurs de tes posts.

Tu les affectes donc au niveau de l'action.

Et dans le formulaire c'est en effet les sessions qui remplaces tes posts.
0
Gardeboue Messages postés 49 Date d'inscription mardi 9 mai 2017 Statut Membre Dernière intervention 7 janvier 2019
Modifié le 10 mai 2017 à 15:24
Bonjour Felice si tu es toujours là

Pfff c'est un truc de fou

J'ai bien affecté mes $_SESSION = $_POST dans le php
et rien. du coup j'ai fais l'essais de faire un truc tout con:
dans le php j'ai forcé la variable:

<?php
session_start();
$_SESSION['nom'] = 'bidule';
?>


et je me suis fait un autre php avec ça:

<?php
echo $_SESSION['nom'];
echo 'Banane';
?>


je vais lire le premier php puis le deuxième, et ben je te le donne en mille, il n'y a que Banane qui s'affiche.
çà devrait le faire pourtant !!!!
pourquoi je récupère pas cette foutue variable ???
0
Felice_ Messages postés 265 Date d'inscription mardi 25 avril 2017 Statut Membre Dernière intervention 20 juillet 2017 11
10 mai 2017 à 22:18
Dans ton second code rajoute la fonction « session_start » :
<?php
session_start();
echo $_SESSION['nom'];
echo 'Banane';
?>


Sinon il faut affecter chaques champs est non un tableau complet, exemple :
$_SESSION['nom'] = $_POST['nom'];
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Gardeboue Messages postés 49 Date d'inscription mardi 9 mai 2017 Statut Membre Dernière intervention 7 janvier 2019
10 mai 2017 à 23:02
Oui entre temps j'ai refais un essais en rajoutant la session_start que je pensais effectivement avoir oublié et puis même résultat.
et pour ta deuxième remarque c'est bien ce que j'avais fais avant de forcer la variable.
j'ai que 4 champs dans mon formulaire donc j'avais bien fais ceci mais sans résultat:

<?php
session_start();
$_SESSION['nom'] = $_POST['nom'];
$_SESSION['email'] = $_POST['email'];
$_SESSION['objet'] = $_POST['objet'];
$_SESSION['message'] = $_POST['message'];  
?>


Est ce que la position de cela est important: je l'ai mis tout de suite en tête de code?

J'ai l'impression que quelque chose deconne au niveau du serveur web mais pourtant le formulaire en lui même fonctionne bien et toutes les données sont bien transmises par mail, c'est juste ces données qui transitent pas d'une page à une autre.
Je sais vraiment plus quoi faire.

Merci de ta patience
0
Felice_ Messages postés 265 Date d'inscription mardi 25 avril 2017 Statut Membre Dernière intervention 20 juillet 2017 11
10 mai 2017 à 23:11
Essai une fois avec :
<?php
session_start();

$_SESSION['nom'] = $_POST['nom'];
$_SESSION['email'] = $_POST['email'];
$_SESSION['objet'] = $_POST['objet'];
$_SESSION['message'] = $_POST['message'];

session_write_close();
?>


Et avant le doctype…
0
Gardeboue Messages postés 49 Date d'inscription mardi 9 mai 2017 Statut Membre Dernière intervention 7 janvier 2019
10 mai 2017 à 23:30
désolé pareil
J'avais pas mis çà côté html mais uniquement en php
mais rien de mieux
a part que dans cette section si je force une variable comme je l'avais fais je la récupère bien au retour sur le formulaire. donc çà veux dire qu'en fait les $_POST sont vide
0
Gardeboue Messages postés 49 Date d'inscription mardi 9 mai 2017 Statut Membre Dernière intervention 7 janvier 2019
Modifié le 11 mai 2017 à 00:09
YAHOOOOO

çà marche en fait dans le html il faut uniquement mettre session_start, normal puisqu'en sortant du php les variables sont vidées.

En tout cas un grand merci à toi çà a été laborieux mais j'aurais jamais trouvé l'histoire du html non implémenté dans le httpd-php du serveur.
Je vais quand même essayé de voir avec mon hebergeur.

Merci encore à toi
0