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.

7 réponses

  1. Felice_ Messages postés 271 Statut Membre 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
    1. Gardeboue Messages postés 49 Date d'inscription   Statut Membre Dernière intervention   1
       
      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
      1. Felice_ Messages postés 271 Statut Membre 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
  2. Gardeboue Messages postés 49 Date d'inscription   Statut Membre Dernière intervention   1
     
    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
    1. Felice_ Messages postés 271 Statut Membre 11
       
      Tu es sous apache ?

      Tu as configuré quoi comme extension, dessus ?

      Ton fichier HTML porte quelle extension ?
      0
    2. Gardeboue Messages postés 49 Date d'inscription   Statut Membre Dernière intervention   1 > Felice_ Messages postés 271 Statut Membre
       
      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
    3. Felice_ Messages postés 271 Statut Membre 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
    4. Gardeboue Messages postés 49 Date d'inscription   Statut Membre Dernière intervention   1 > Felice_ Messages postés 271 Statut Membre
       
      oups heu en fait le site est chez un hébergeur
      0
    5. Felice_ Messages postés 271 Statut Membre 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
  3. Gardeboue Messages postés 49 Date d'inscription   Statut Membre Dernière intervention   1
     
    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
    1. Felice_ Messages postés 271 Statut Membre 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
  4. Gardeboue Messages postés 49 Date d'inscription   Statut Membre Dernière intervention   1
     
    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
    1. Felice_ Messages postés 271 Statut Membre 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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Gardeboue Messages postés 49 Date d'inscription   Statut Membre Dernière intervention   1
     
    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
    1. Felice_ Messages postés 271 Statut Membre 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
  7. Gardeboue Messages postés 49 Date d'inscription   Statut Membre Dernière intervention   1
     
    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
  8. Gardeboue Messages postés 49 Date d'inscription   Statut Membre Dernière intervention   1
     
    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