PHP会话不会将变量传递给其他页面

问题描述:

I know that if i want to pass variables in php from a page to another one I can use sessions, but I don't know what is wrong with this code, it's just doesn't work, I want to pass the $cout variable from page 1 to page 2

PAGE 1

<?php 
session_start();


if(isset($_POST['date']))
{
    $dat = $_POST['date'];
    $matricule = $_POST['matricule'];
    $kilometrage = $_POST['kilometrage'];
    $num_fact = $_POST['num_fact'];
    $Fournisseur = $_POST['Fournisseur'];
    $num_bon = $_POST['num_bon'];
    $Fonctionnaire = $_POST['Fonctionnaire'];
    $cout = $_POST['cout'];

    //here is all what I did 
    $_SESSION['cout'] = $_POST['cout'];

    header("Location: PAGE2.php")    ;

}

?>

and here is PAGE 2:

<?php 
session_start();
 $cout = $_SESSION['cout'];
 echo $cout ;?>

and here is the form

<form method="post" action="page1.php" >
            <input type="date" placeholder="La Date Ex: 2014-07-17" name="date"><br>
            <input type="text" placeholder="Matricule" name="matricule"><br>
            <input type="text" placeholder="Kilometrage" name="kilometrage"><br>
            <input type="text" placeholder="Numero de facteur" name="num_fact"><br>
            <input type="text" placeholder="Fournisseur" name="Fournisseur" ><br>
            <input type="text" placeholder="N° de bon à delivrer au fornisseurs ou facture" name="num_bon"><br>
            <input type="text" placeholder="Fonctionnaire ayant effectué la Réparation" name="Fonctionnaire" ><br>
            <input type="text" placeholder="le coût de la reparation en DH" name="cout" ><br>
            <input type="submit" value="Valider">
        </form>`

Your code seems correct, but dependant on the existence of $_POST['date'] variable.

When you submit the form - please make sure that it is not empty.

EDIT2:

I have made two files on my own, your code works fine.

You'll need to look for error on part of server php config, or pathways.

Try following: (assuming page1.php and page2.php are in root folder of your site)

in html
<form action="/page1.php" ..

in page1
header("Location: /page2.php");

Try isset($_POST['submit']) in place of isset($_POST['date']). I think you are not filling date.

May be your temp folder is write protected. Check session_save_path() is writable or not.