2015-09-07 118 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>