2014-10-27 56 views
0

目前我來存儲會話,並把它傳遞給下一個形式的問題,但很難,因爲我嘗試啓動會話,存儲會話內部的變量,這是行不通的。請說明這一點,謝謝!無法會話數據存儲到一個表格

MainForm.php

<?php 
session_start(); 
require("inputValidation.php"); // This php file is just a file that does validation for my side 
$validForm = true; 
if ($_POST) 
{ 
} 
?> 
<form class="form" action="nextform.php" role="form" method="post"> 
<input type="text" class="form-control" id="name" name="name" value= "<?php 
         if (isset($_POST['name'])) 
          { 
          if (!validateRequired($_POST['name'])) 
          { 
           $_SESSION['test'] = $_POST['name']; 
           $validForm = false;   
          } 
          if (validateRequired($_POST['name'])) 
          { 
           $_SESSION['test'] = $_POST['name']; 
           $validForm = true; 
          } 
         } 
         ?> 
<input name="submit" type="submit" value="Submit" class="btn btn-primary"> 

nextform.php

print_r ($_SESSION); 

問題是,即使我輸入文本框的名稱內的任何值,我只會被重定向直nextform .php沒有得到我的會話價值。這是爲什麼?有什麼方法可以在不改變action="nextform.php"的情況下獲得我的會話價值?

謝謝!

對不起,我還是新的會話和PHP所以忍耐一下:)

+1

你在哪裏設置$ _ POST [「名」],是集?在session_start();需要成爲nextform.php中的第一件事 - 會話需要在您想要使用它的每個頁面中啓動! – baao 2014-10-27 16:58:43

回答

1

你wan't做的是移動整個

if (isset($_POST['name'])) 
{ 
    //... you code 
} 

到提交表單的頁面基本上什麼,在你的情況下,nextform.php

您的網頁應該是這樣的:

MainForm.php

<form class="form" action="nextform.php" role="form" method="post"> 
<input type="text" class="form-control" id="name" name="name" value= ""> 
<input name="submit" type="submit" value="Submit" class="btn btn-primary"> 

nextform.php

<?php 
session_start(); 
require("inputValidation.php"); // This php file is just a file that does validation for my side 
$validForm = true; 

if (isset($_POST['name'])) 
{ 
    if (!validateRequired($_POST['name'])) 
    { 
     $_SESSION['test'] = $_POST['name']; 
     $validForm = false;   
    } 
    if (validateRequired($_POST['name'])) 
    { 
     $_SESSION['test'] = $_POST['name']; 
     $validForm = true; 
    } 
} 

if($validForm) { 
    echo "Validation success"; 
    print_r ($_SESSION); 
} else { 
    echo "Form validation failed."; 
} 
?> 

基本上你可以在頁面裏訪問POST參數表格已提交,請參見action="nextform.php"

在這裏,您可以檢查表單是否已提交併進行適當的驗證,並將用戶重定向到某個位置,或根據需要僅顯示相應的消息,即Validation failedValidation success

+0

一個評論,你使用'validateRequired()'的方式有點奇怪,因爲無論它是否失敗,你仍然將會話設置爲發佈的值,但我想這在這裏並不重要,因爲你在玩代碼。 – Kypros 2014-10-27 17:08:32

+0

嗨@Krypos,謝謝你的時間。我會稍後再嘗試並更新。 – Newbie 2014-10-27 23:29:12