-1

ユーザーが詳細を入力し、結果が同じページに表示されるフォームがあります。その後、これらの結果を送信できます。

First_page.php

<?php
session_start();

if (isset($_POST['applySubmit'])) { 
    $_SESSION['amountdiv'] = $amountdiv;
    $_SESSION['fixedrate'] = $fixedrate;
    $_SESSION['deliverydiv'] = $deliverydiv;
    $_SESSION['date'] = $date;  
    $_SESSION['total'] = $total;    
    $_SESSION['grandtotal'] = $grandtotal;      
    $_SESSION['reference'] = $reference;
}
?>

これについては多くの例を見てきましたが、この投稿PHP Pass variable to next pageからこの例を使用しています。私が抱えている問題は、詳細を出力したい2ページ目に何も表示されないことです。

Second_page.php

<?php
session_start();
//*************Session form details to carry through*****************//
$amountdiv = $_SESSION['amountdiv'];
$fixedrate = $_SESSION['fixedrate'];
$deliverydiv = $_SESSION['deliverydiv'];
$date = $_SESSION['date'];  
$total = $_SESSION['total'];    
$grandtotal = $_SESSION['grandtotal'];
$reference = $_SESSION['reference'];
?> 

次に、この情報を画面に表示したいのですが、何も表示されません。

<td class="blaah1"><?php echo $_SESSION['amountdiv'] ;?></td>
<td class="blaah1"><?php echo $_SESSION['grandtotal'] ;?></td>
<td class="blaah3"><?php echo $_SESSION['date'] ; ?></td>

何も表示されないのはなぜですか?

4

4 に答える 4

0

ここ :

if (isset($_POST['applySubmit'])) { 
    $_SESSION['amountdiv'] = $amountdiv;
    $_SESSION['fixedrate'] = $fixedrate;
    $_SESSION['deliverydiv'] = $deliverydiv;
    $_SESSION['date'] = $date;  
    $_SESSION['total'] = $total;    
    $_SESSION['grandtotal'] = $grandtotal;      
    $_SESSION['reference'] = $reference;
}

これらの変数に値を割り当てている場所: $amountdiv, $fixedrate... すべての変数が null に見えます。

if次に、最初のページの条件内でコードが実行されるかどうかを確認します。

于 2013-03-15T10:26:59.187 に答える
0
<form method="POST" action="Second_page.php">
    <input type="text" name="amountdiv" />
    <input type="text" name="fixedrate" />
    <input type="text" name="deliverydiv" />
    <input type="text" name="date" />
    <input type="text" name="total" />
    <input type="text" name="grandtotal" />
    <input type="text" name="reference" />
    <input type="submit" name="applySubmit" />
</form>

Second_page.php

<?php
   echo "<pre>";
   print_r($_POST);
   echo "</pre>";
?>

<td class="blaah1"><?php echo $_POST['amountdiv'] ;?></td>
<td class="blaah1"><?php echo $_POST['grandtotal'] ;?></td>
<td class="blaah3"><?php echo $_POST['date'] ; ?></td>
于 2013-03-15T10:27:22.407 に答える
0

これらの変数に何かを割り当てる必要があります。現時点では、$amountdiv何かを割り当てる前に使用しているように見えるので、null.

<?php
session_start();

if (isset($_POST['applySubmit'])) { 
    $amountdiv = $_POST['applySubmit'];
    $_SESSION['amountdiv'] = $amountdiv;

しかし、実際には、すべてが 1 つのステップで可能です。

<?php
session_start();

if (isset($_POST['applySubmit'])) { 
    $_SESSION['amountdiv'] = $_POST['amountdiv'];

明らかに、入力の検証とクリーニングも行う必要があります。例えば

<?php
session_start();

if (isset($_POST['applySubmit'])) { 
    $_SESSION['amountdiv'] = (int)$_POST['amountdiv'];

またはfilter_var()filter_input()または独自のカスタム フィルター/クリーン関数を使用します。

于 2013-03-15T10:45:32.810 に答える
-1

Firstpage.php

  <?php
    session_start();

    extract($_POST);

    if (isset($_POST['applySubmit'])) { 
        $_SESSION['amountdiv'] = $amountdiv;
        $_SESSION['fixedrate'] = $fixedrate;
        $_SESSION['deliverydiv'] = $deliverydiv;
        $_SESSION['date'] = $date;  
        $_SESSION['total'] = $total;    
        $_SESSION['grandtotal'] = $grandtotal;      
        $_SESSION['reference'] = $reference;
    }
    ?>
  1. session_start() の前にスペースを入れないでください。
  2. この「extract($_POST);」を使用します firstpage.phpで=>正常に動作しています。
于 2013-03-15T10:23:05.280 に答える