Php会话重定向到登录
php新手,仍在学习如何散列和验证密码。 但在我到达那里之前,我需要帮助我的代码出了什么问题。 我可以注册,它将值保存到我的数据库中。 但是当进入myhome.php或任何其他使用Php会话重定向到登录,php,Php,php新手,仍在学习如何散列和验证密码。 但在我到达那里之前,我需要帮助我的代码出了什么问题。 我可以注册,它将值保存到我的数据库中。 但是当进入myhome.php或任何其他使用 <?php session_start(); if (!isset($_SESSION['username'])) { $_SESSION['msg'] = "You must log in first"; header('location: login.php'); }
<?php
session_start();
if (!isset($_SESSION['username'])) {
$_SESSION['msg'] = "You must log in first";
header('location: login.php');
}
if (isset($_GET['logout'])) {
session_destroy();
unset($_SESSION['username']);
header("location: login.php");
}
?>
但是一切都重定向到login.php并重置值,就好像我希望它破坏会话一样。验证会话是否有问题?基本上,我刚刚使用或操作符将两个if条件组合在一起。试着用这个
<?php
session_start();
if ((!isset($_SESSION['username'])) || isset($_GET['logout'] )) {
session_destroy();
unset($_SESSION['username']);
header("location: login.php");
}
?>
在您的登录/注册页面中,尝试使用启动新会话
session_start()
一旦会话打开,我们就可以设置会话变量。
让我知道结果如何。您也可以尝试回显两个if条件中的值,以确定是哪一部分条件导致了问题。请查看代码执行不安全sql操作。此外,您不应使用md5哈希在中保存密码。改为使用with来验证密码。我一直试图使用该链接对密码进行哈希处理,但我仍然有一个未定义的变量问题。登录后工作正常,谢谢,但我将代码添加到另一个页面,如“purchase.php”,并直接返回登录。是的,它的工作方式如下:,在登录页面上,您必须检查用户输入的密码,以及密码是否匹配以重定向到主页。我发布的代码是针对另一个页面的,如果用户试图通过URL访问该页面,则应重定向到登录页面。好的,哦,看到了,这是我的问题,用户可以创建并登录其帐户,但如果他们刷新主页或尝试阅读服务条款,则会将他们引导回登录页面。我如何将此应用于每个页面并执行重定向?找不到会话发现了我的问题,我有一个php脚本,用于在loggout下取消会话,而不是登录页面的ref,并取消会话通知:未定义变量:在/home/u572108555/public_html/includes/errors.php的第1行警告:count():参数必须是在第1行的/home/u572108555/public_html/includes/errors.php中实现可数的数组或对象。。。。My errors.php being-将($errors&&count($errors)>0)添加到if条件,然后重试。使用以下错误更新您的问题。它可能与会话创建有关,也可能与会话创建无关
session_start()