2015-09-07 197 views
-1

我是一個新的程序員,我只是在服務器編程方面學習一些PHP。但我很難理解cookies和會話。我目前正在進行這一項練習,並且需要一些語法幫助,以及所有內容都將落實到位。另外,我不確定如何格式化所需日期,我需要確保我的if語句是正確的。下面是我工作的第一部分中的官方說明,其次是代碼,我到目前爲止有:PHP cookie和會話

的login.php

使用的login.php文件,只允許註冊用戶登錄在(現在是硬編碼值)。注意:永遠不要在現實生活中將用戶和密碼信息放在url變量中!

- 如果他們登錄正確: 記錄這一事實在一個名爲「的loggedIn」與「真」,

-set用「的loggedIn」的名字的cookie和值的$ _SESSION變量日期和時間值(格式如:2015年1月25日上午10:00 - 使用http://php.net/manual/en/function.date.php作爲參考),在10分鐘後過期,然後發送到admin.php。

- 如果他們不登錄正確打印一條消息說「無效登錄」

- 如果他們以前已登錄(如果會話變量存在),那麼只需將它們重新定向到管理PHP頁面

- 他們將通過URL提供的用戶名和密碼: kelvin.ist.rit.edu/~username/341/lab2/login.php?user=admin &密碼=密碼

- 使用$ _GET ['user']和$ _GET ['password']來獲取用戶名和密碼 。

- 如果他們不提供這兩個值,顯示消息「無效登錄」

<?php 

error_reporting(E_ALL); 
session_start(); 


$username = "student"; 
$password = "student"; 

if(empty($_SESSION['loggedIn'])) { 
    $_SESSION['loggedIn'] = true; 

    $loggedIn = $_COOKIE['loggedIn'] = string date (string $format [, int 
     $timestamp = time()+600]); //expires 10 minutes from now 

    header("Location: admin.php"); 
    exit; 

} else { 
    echo "<h2>Invalid Login</h2>"; 

} 

if(!empty($_SESSION['loggedIn'])) { 
    header("Location: admin.php"); 
    exit; 

    $_GET['username']; 
    $_GET['password']; 

} else { 
    echo "<h2>Invalid Login</h2>"; 

} 


setcookie("test_cookie",$path, $domain, $loggedIn, $expire); 

?> 
+0

餅乾和會話不是一回事。另外,這不是你在PHP中投入的方式。 – PHPglue

+0

@ system0verl0ad我在下面回答你的問題嗎?不投反對票 – pogeybait

回答

0

,如果有任何語法錯誤,我沒有測試,所以藉口但這應該工作。乾杯。

<?php 
    session_start(); 
    $message = null; 

    if(isset($_SESSION['loggedIn']) && $_SESSION['loggedIn'] == 'true') 
    { 
     header("Location: admin.php"); 
     exit(); 
    } 

    if($_SERVER['REQUEST_METHOD'] == 'GET') 
    { 
     if(sizeof($_GET) && isset($_GET['username']) && isset($_GET['password']) && $_GET['username'] && $_GET['password']) 
     { 
      if($_GET['username'] == 'username' && $_GET['password'] == '1234') 
      { 
       $_SESSION['loggedIn'] = 'true'; 
       setcookie ("loggedIn", date("F d,Y h:ia"), time()+60*10, "/", $_SERVER['SERVER_NAME']); 
       header("Location: admin.php"); 
       exit(); 
      } else { 
       $message = 'Invalid Login'; 
      } 
     } else { 
      $message = 'Invalid Login'; 
     } 
    } 

?> 
<!DOCTYPE HTML> 
<html> 
    <head> 
     <title>Login</title> 
    </head> 

    <body> 
     <?php if($message) echo '<div class="warning">' . $message . '</div>'; ?> 
     <form method="get"> 
      <label for="username">Username</label> 
      <input type="text" name="username" id="username" value="username" /> 

      <label for="password">Password</label> 
      <input type="password" name="password" id="password" value="1234" /> 

      <input type="submit" name="submit" value="Login" /> 

     </form> 
    </body> 
</html>