2012-12-15 50 views
0

我從來沒有真正使用會話,所以它可能是一個愚蠢的錯誤。當我用if(isset($ _ SESSION)它輸出假的,我認爲這是與在foreach。我沒有得到任何錯誤,任何責任。難道anyody抽出時間來幫我?有誰知道爲什麼這個會話沒有在下一頁設置?

<?php 
    session_start(); 
    if(isset($_POST['register'])) 
    { 
     require_once('../resources/library/register.class.php'); 
     //require_once('../resources/library/sessions.class.php'); 
     $obj_reg = new register(); 

     $name = $_POST['user']; 
     $pass = $_POST['pass']; 
     $email = $_POST['email']; 

     $checking = $obj_reg->checking($name, $pass); 


     //An foreach for converting POST data inside SESSION variables 
     //isset checks if the array value contain post variables 
     $posts = array($name, $pass, $email); 
     foreach ($posts as $p) 
     { 
      if(isset($_POST['p'])){ 
        $_SESSION['p'] = $_POST['p']; 

     } 


     } 
    } 
    ?> 

<form method="post" action="index.php?page=register.php"> 
    <table> 
    <tr><td>username:</td><td> <input type="text" name="user"></td></tr> 
    <tr><td>password:</td><td> <input type="password" name="pass"/></td></tr> 
    <tr><td>email:</td><td> <input type="text" name="email"/></td></tr> 
    <?=(!empty($checking)) ? $checking : '' ?> 
</table> 
    <input type="hidden" name="token" value="<?=$token;?>"/> 
    <input type="submit" name="register" value="register"/> 
</form> 


<?php 
    session_start(); 
    if(isset($_SESSION['p'])) 
    { 
     echo "mama"; 
    } 
    else 
    { 
     echo "why?"; 
    } 

?> 
+0

第一個腳本中的'session_start'在哪裏?每次訪問會話變量時都需要調用它。 – ATaylor

+0

我這樣做了,我不小心沒有選擇它作爲代碼 – user1889741

+1

你知道,你沒有一個名爲'p'的字段,是嗎?嘗試檢查'pass'而不是'p',看看這是否有用。 – ATaylor

回答

3

你需要調用session_start頁需要$_SESSION

我想你也意味着使用$_SESSION[$p] = $_POST[$p]而不是字符串'p'

+0

'$ posts = array('user','pass','email');'更合理,或者你需要一個動態變量($$ p而不是$ _POST [$ p])。否則你迭代POST值,而不是鍵。 – julp

+0

那不是問題 – user1889741

相關問題