2014-04-13 53 views
0

我正在學習會話處理,同時在多個php頁面之間提交表單數據。 對於簡單的例子,我有一個PHP表單myform.php,要求用戶輸入密碼並指向myaction.php。我想在用戶輸入密碼之前開始會話。如果他在一分鐘內輸入密碼爲1234,則顯示「有效」。如果他在1分鐘後輸入密碼,則應顯示「會話超時」。 這是我的代碼不起作用。php中的會話超時程序不工作

myfrom.php

<?php 
    session_start(); 
    $_SESSION['start'] = time(); 
    $_SESSION['expire'] = $_SESSION['start'] + (01 * 60); 
?> 

<html> 
    <form nmethod="post" action="myaction.php"> 
    <input type="text" name="myvalue"/> 
    <input type="submit" value="SignIn" name="submit1"> 
    </form> 
</html> 

myaction.php

<?php 
    if ($_POST['submit1']) 
    { 
     $v1 = "1234"; 
     $v2 = $_POST['myvalue']; 
     $_SESSION['now'] = time(); 
     if ($_SESSION['now'] > $_SESSION['expire']) 
     { 
      echo 'Session Timeout!'; 
      header('refresh:05;Location: http://localhost/myform.php'); 
     } 
     else if(($_SESSION['now'] <= $_SESSION['expire']) && ($v1==$v2)) 
      echo 'Valid Password!'; 
     else 
      echo 'Invalid password!'; 
    } 
?> 

我有什麼錯?

+3

'session_start();'myaction.php'上的位置? –

回答

0

我認爲你有一個錯字的第一件事

<form nmethod="post" 

有額外的「N」方法之前,將其刪除。

第二件事你必須使用start_session(),只要你想使用會話中的任何東西。