2014-11-06 183 views
-2

我的會話機制似乎打破了,所以我嘗試了這個非常短的代碼。這裏有什麼問題?我錯過了什麼嗎?爲什麼這個簡單的PHP會話不起作用?

的index.php

<?php session_start();?> 
<!DOCTYPE html> 
<html> 
<head> 
    <meta charset="UTF-8"> 
    <title></title> 
</head> 
<body> 
    <?php 
     echo '<form action="update.php?'. session_id().'" method="POST"><fieldset><input type="text" value="hello"/><input type="submit" value="OK"/></fieldset></form>'; 
     print_r($_SESSION); 
    ?> 
</body> 
</html> 

update.php

<?php 
    session_start(); 
    print_r($_POST); 
    foreach($_POST as $key => $value) 
     $_SESSION[$key]=$value; 
    session_write_close(); 
    print_r($_SESSION); 
?> 

<a href="index.php?<?php echo session_id();?>">hello</a> 
+2

定義 '破'。定義'不起作用'。 – Utkanos 2014-11-06 22:26:36

+0

你的結論提供的錯誤信息是「它不工作」。 – Vanitas 2014-11-06 22:29:37

+0

簡單地說,print_r返回它不應該放置的空數組。 – Lapsusone 2014-11-06 22:57:27

回答

0

如果您的文章沒有工作,可能是因爲從輸入你沒有名字:

的index.php

<?php session_start();?> 
<!DOCTYPE html> 
<html> 
<head> 
    <meta charset="UTF-8"> 
    <title></title> 
</head> 
<body> 
     <form action="update.php" method="POST"> 
       <fieldset> 
        <input type="hidden" name="session_key" value="<?php echo session_id(); ?>" /> 
        <input type="text" name="message" value="hello"/> 
        <input name="submit" type="submit" value="OK"/> 
       </fieldset> 
     </form> 

     <?php print_r($_SESSION); ?> 
</body> 
</html> 

update.php

session_start(); 
    print_r($_POST); 
    foreach($_POST as $key => $value) 
     $_SESSION[$key] = $value; 
    session_write_close(); 
    print_r($_SESSION); 

<a href="index.php?id=<?php echo session_id();?>">hello</a> 
+0

儘管如此,在表單頁上打印$ _SESSION是個不錯的主意,if空。它會顯示'array()'。如果這僅用於調試目的,請在旁邊添加註釋以在生產中刪除。 – 2014-11-06 22:58:31

相關問題