2014-04-13 2 views
0

여러 PHP 페이지간에 양식 데이터를 제출하는 동안 세션 처리를 배우고 있습니다. 예를 들어, 사용자에게 암호를 입력하고 myaction.php로 이동하도록 요청하는 PHP 양식 myform.php가 있습니다. 사용자가 암호를 입력하기 전에 세션을 시작하고 싶습니다. 1 분 안에 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

'myaction.php'에'session_start();'가 어디에 있습니까? –

답변

0

난 당신이 오타가 생각하는 우선

<form nmethod="post" 

추가가 "N"방법 전에 제거합니다.

두 번째로 세션에서 아무 것도 사용할 때마다 start_session()을 사용해야합니다.