Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/227.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php会话重定向到登录_Php - Fatal编程技术网

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新手,仍在学习如何散列和验证密码。 但在我到达那里之前,我需要帮助我的代码出了什么问题。 我可以注册,它将值保存到我的数据库中。 但是当进入myhome.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()