Variable Php vers une apge php

Résolu
Bonjour,

Suite a mon formulaire et ma fonction mail() que j'ai enfin reussi ^^ , j'aimerai recupérer la valeur des variables qui apparais dans mon formulaire et les afficher sur une autre page php,
Mon problème et que mon formulaire est en POST et que je ne sais pas comment récupérer mes variables pour les utiliser sur l'autre page php :

Voila mon code :

<?php

if($_POST) {

$nom =$_POST['Nom']."\n";
$prenom =$_POST['Prenom']."\n";
$datedeb =$_POST['Date_dbt']."\n";
$datefin =$_POST['Date_fin']."\n";
$type =$_POST['type']."\n";
$rem =$_POST['Remarque']."\n";
$message =$nom.$prenom.$datedeb.$datefin.$type.$rem;

ini_set("SMTP", "smtp.sfr.fr");
ini_set("smtp_port", 25);
ini_set("sendmail_from","***@***");

mail("***@***", "test avec formulaire", "Voici les informations concernant la personne absente : "."\n"."Nom : ".$nom."Prenom : ".$prenom."Date de debut : ".$datedeb."Date de fin : ".$datefin."Type de l absence : ".$type."Remarque : ".$rem."\n"."Veuillez cliquer sur ce lien afin de valider ou non cette absence :"."http://localhost/my%20portable%20files/formulaireManager.php");

}
?>

<html>
<head>
<link type="text/css" rel="stylesheet"/>
<meta charset="utf-8">
<title>Demande d'abscence</title>

</head>

<body>
<form method="post" action="" >
<h1>Demande d'absence</h1>

<fieldset>

<legend>Informations personnelles</legend>
<br>
<label for="Nom">Nom</label>
<br>
<input name="Nom">
</input>

<br>
<br>
<label for="Prenom">Prenom</label>
<br>
<input name="Prenom">
</input>

</fieldset>

<br>

<fieldset>
<br>

<legend>Date de l'absence</legend>
<label for="Date_dbt">Date de debut de l'absence</label>
<br>
<input type="date" name="Date_dbt">
</input>
<br>
<br>

<label for="Date_fin">Date de fin de l'absence</label>
<br>
<input type="date" name="Date_fin">
</input>
<br>

</fieldset>
<br>
<fieldset>

<legend>Type de l'absence</legend>
<br>
<label for="type">Type</label>
<br>
<select name="type">
<option value="rien"></option>
<option value="CP">Conge paye</option>
<option value="CS">Conge sans solde</option>
<option value="CC">Conge Conventionnel</option>
<option value="AM">Arret maladie</option>
<option value="RTT">RTT</option>
<option value="CF">Conge Formation</option>
<option value="AA">Absence Autorise / Recuperation</option>
</select>

<br>

</fieldset>
<br>
<fieldset>

<legend>Remarque Particuliaire</legend>
<br>
<label for="Remarque">Remarque (450 caracteres maximum)</label>
<br>
<textarea rows="5" maxlength="450" name='Remarque'></textarea>
<br>

</fieldset>

<br>

<button class="Env" name="Envoyer" type="submit">Envoyer</button>
<button class="Res" name="Effacer" type="reset">Effacer</button>

</form>
</body>
</html>

J'aimerais recupérer les valeurs qui sont dans les variables $nom, $prenom ... etc et les afficher dans une autre page .php ( celle qui sera cliquer dans le liend e la methode mail )

Merci

5 réponses

  1. bonjour,
    pour mes projets à moi, j'avais trouvé une variable php qui m'a bien servi : $_SESSION
    https://www.php.net/manual/fr/reserved.variables.session.php

    En gros, sur chacune de tes pages, tu rajoute une ligne php semblable à celle-ci :
    <?php session_start(); ?>

    (à placer au début de ta page, avant même le doctype)

    Puis tu enregistre ta variable comme ceci :

    <?php $ma_variable = $_SESSION['ma_variable_session']; ?>
    // admettons que $ma_variable contienne le mot "bonjour"


    Pour lire la variable enregistrée, rien de plus simple :

    <?php echo $_SESSION['ma_variable_session']; ?>
    // renvoie : "bonjour"


    Normalement tout fonctionne, grâce à cette astuce, la variable stockée dans $_SESSION sera conservée pendant toute la durée de la session d'un utilisateur (sera donc conservée dans toutes les pages php a condition que session_start() y soit renseigné au début https://www.php.net/manual/fr/function.session-start.php)
    1. Merci de ta réponse rapide ^^
      J'ai effectivement essayer mais sans succès :(
      Voila se que j'ai rajouté sur la 1er page:
      <?php
      session_start(); // ligne que j'ai ajouté

      if($_POST) {

      $ma_variable = $_SESSION['Nom'];

      $nom =$_POST['Nom']."\n";
      $prenom =$_POST['Prenom']."\n";
      $datedeb =$_POST['Date_dbt']."\n";
      $datefin =$_POST['Date_fin']."\n";
      $type =$_POST['type']."\n";
      $rem =$_POST['Remarque']."\n";
      $message =$nom.$prenom.$datedeb.$datefin.$type.$rem;

      et sur la 2eme page :

      <?php
      session_start();
      echo $_SESSION['Nom'];

      A soir que j'utilise EasyPhp pour tout ca et que une fois le formulaire envoyer ( par mail ) il y a un lien dans le mail qui me permetterai d'ouvrire ma 2eme page php ou j'y afficherai le nom et le prenom de la personne qui a rempli le formulaire
      1. dans la ligne 4 de ce que tu m'a envoyé il y a ceci :
        $ma_variable = $_SESSION['Nom']; 
        sauf que $ma_variable c'était pour l'exemple :)
        Si tu veux récupérer le nom par exemple, tu dois écrire ceci

        $nom = $_SESSION['Nom']; 
      2. Effectivement plus aucune erreur ^^ il m'ouvre enfin ma 2eme page mais il n'affiche rien T_T
        En tout cas merci beaucoup pour cette aide précieuse ^^
      3. sur ta seconde page est-ce que tu a inséré les codes type ?
        <?php session_start(); ?>

        // code html

        <?php echo $_SESSION['Nom']; ?>

        // code html
      4. Ma 2eme page ne contient rien du tout ^^ juste ca :
        <?php
        session_start();
        echo $_SESSION['Nom'];

        Ou normalement je suppose qu'il devrai m'afficher le nom de la personne que j'ai rentré dans le formulaire
      5. tu a bien pensé à fermer la balise php au moins ? je demande car je vois que tu ne l'a pas cité dans ton message ^^
    2. Salut,

      Tu as fait l'inverse pour enregistrer une variable de session, la variable à affecter doit être à gauche du symbole =.

      Donc pour enregistrer la valeur de $_POST['Nom'] en session :
      $_SESSION['Nom'] = $_POST['Nom'];
      


      Bonne journée
      1. mince, il se peut aussi que j'ai malencontreusement inversé,
        si c'est la solution, désolé de ma maladresse :p
      2. Bonjour,

        Meme en faisant ca sur la 1er page:
        <?php
        session_start();

        if($_POST) {

        $nom =$_POST['Nom']."\n";
        $_SESSION['nom'] = $_POST['Nom'];

        // code

        et sur la 2eme :

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

        echo $_SESSION['Nom'];

        ?>

        rien ne s'affiche sur la 2eme page
    3. Problème résolut ^^
      Ça marche enfin :D

      Merci beaucoup pour cette aide précieuse ^^
      Bonne journée :)
      1. comment as-tu fait ?
      2. Comme tu le l'a indiqué , j'ai inversé :
        1er page :
        $nom =$_POST['Nom']."\n";
        $_SESSION['Nom'] = $_POST['Nom'];

        2eme page :

        echo $_SESSION['Nom'];

        Maintenant un autre problème ce pose ^^mais je vais essayer de le résoudre '-'
        Le contenu des variables s'affiche bien sur ma 2eme page une fois que j'ai cliquer sur le lien dans le mail ^^ mais malheureusement elle ne reste pas sur la page.
        J'aimerais que ces informations ( nom , prénom etc ) reste sur la pages constamment et donc si je rempli une 2eme fois ce formulaire, la 2eme page affiche non seulement les information que j'ai rentré la 1er fois dans le formulaire mais également les informations que j'ai remplis la 2eme fois dans le formulaire
      3. @trunks02Tu pourrais essayer avec une base de donnée ?
        Je ne sais pas si c'est la meilleure solution, mais c'est celle que je choisirais personnellement, après je ne veux pas véhiculer de mauvaises habitudes aux autres :)
      4. Ca serrais effectivement très pratique et j'y ai déjà pensé avant même de commencer ce projet, car je bosse avec easyPHP, malheureusement c'est un projet que je doit envoyer a une certaine personne et si je lui envoie ça, elle ne dispose d'aucune base de donnée ^^

        C'est pour cela que je cherche une autre solution pour garder ces variables permanente sans passer par une base de donné.
      5. et tu ne peux pas héberger ce dit projet sur un serveur ?
        sinon tu pourrais essayer de créer une base de données locale avec json ou xml, je ne sais pas si c'est possible, j'ai jamais essayé, mais j'ai oui dire que l'on pouvais le faire .
    4. Re,

      je verrais plus tard pour ce détail ^^ merci de l'aide :)
      J'aimerai également savoir si c'est possible de mettre plusieurs adresser sur le sendmail_from dans le fichier php.ini ?

      En faite j'aimerais mettre plusieurs adresse mail ^^ c'est possible ?
      Merci