2014-10-27 52 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