使用PHP

时间:2016-12-07 01:05:12

标签: php session login

当用户使用其用户名/密码组合登录我的网站时,将运行以下代码:

 if($user == $_POST['username'] && $password == $_POST['password']){
    session_start();
    $_SESSION['username'] = $username;
   }

然后在另一个我限制访问登录用户的页面上,我之前有任何其他代码这个php:

 <?php
session_start();
if(!isset($_SESSION['username'])) {
    echo '<script>alert("You do not have access to this page. Please log in first.");</script>';
    header("Location: createAccount.php");
    exit();}
?>

如果用户没有,那基本上应该将用户发送到createAccount.php页面。代码似乎很简单,但由于某种原因不起作用。我对会话的理解是否存在缺陷?

1 个答案:

答案 0 :(得分:1)

启动任何其他输出后,您无法发送标头。

<?php
session_start();
if(!isset($_SESSION['username'])) {
    header("Location: createAccount.php");
    exit();}
?>

应该适合你 - 如果这是在文件的最开始..如果你想,你可以设置一个会话错误消息变量,并在createAccount.php检查它是否存在并打印一个漂亮的“你必须登录或创建帐户“消息。

相关问题