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

Résolu
Gardeboue Messages postés 49 Date d'inscription   Statut Membre Dernière intervention   -  
Gardeboue Messages postés 49 Date d'inscription   Statut Membre Dernière intervention   -
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.
A voir également:

7 réponses

Felice_ Messages postés 265 Date d'inscription   Statut Membre Dernière intervention   11
 
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   Statut Membre Dernière intervention  
 
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   Statut Membre Dernière intervention   11 > Gardeboue Messages postés 49 Date d'inscription   Statut Membre Dernière intervention  
 
À 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   Statut Membre Dernière intervention  
 
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   Statut Membre Dernière intervention   11
 
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   Statut Membre Dernière intervention   > Felice_ Messages postés 265 Date d'inscription   Statut Membre Dernière intervention  
 
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   Statut Membre Dernière intervention   11 > Gardeboue Messages postés 49 Date d'inscription   Statut Membre Dernière intervention  
 
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   Statut Membre Dernière intervention   > Felice_ Messages postés 265 Date d'inscription   Statut Membre Dernière intervention  
 
oups heu en fait le site est chez un hébergeur
0
Felice_ Messages postés 265 Date d'inscription   Statut Membre Dernière intervention   11 > Gardeboue Messages postés 49 Date d'inscription   Statut Membre Dernière intervention  
 
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   Statut Membre Dernière intervention  
 
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   Statut Membre Dernière intervention   11
 
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   Statut Membre Dernière intervention  
 
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   Statut Membre Dernière intervention   11
 
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   Statut Membre Dernière intervention  
 
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   Statut Membre Dernière intervention   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   Statut Membre Dernière intervention  
 
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   Statut Membre Dernière intervention  
 
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