会话和会话变量不起作用

时间:2019-11-24 07:58:59

标签: php

我在Php中有一个登录脚本。如果凭据正确,则将启动会话,设置会话变量,然后将其重定向到配置文件页面。在个人资料页面中,我有一个脚本,如果用户尚未登录,该脚本会将用户重定向回登录页面。

现在,每当我输入正确的用户凭据并单击登录时,它就会将我重定向回登录页面。为了解决该问题,我注释了负责重定向回登录页面的代码。结果,我可以访问配置文件页面,但无法访问会话变量。 有时这段代码可以完美运行,而有时却显示出上述问题。

登录密码如图所示:

session_start();
require_once 'includes/config.php'; 
   if(isset($_POST['login'])){ 
    $user = trim($_POST['username']); 
    $pass = trim($_POST['password']);
    $ch = $_POST['position'];
    $stmt = $db->prepare("SELECT C_Name, PAN_id, Password FROM master_registration WHERE PAN_id = ?");
    $stmt->bindParam(1,$user);
    $stmt->execute();
    $row = $stmt->fetch();
           $username = $row["PAN_id"];
           $Name = $row["C_Name"];
           $hash = $row["Password"];
           if(password_verify($pass, $hash)) {
                session_start();
                $_SESSION["loggedin"] = true;
                $_SESSION["username"] = $username;
                $_SESSION["Name"] = $Name;
                header("Location: main_folder/master/profile.php");

Login page code

个人资料页面代码如下图所示:

 session_start();
 require_once '../../includes/config.php';
 if(!isset($_SESSION['loggedin']) && $_SESSION['loggedin'] !== true){
     header("location:../../index.php");
     exit;
 }
 $user = $_SESSION['username'];

profile page code

这看起来不错,但是会话中存在问题,并且它可以在localhost中运行,但是当我在CPanel中托管时,问题就开始了。

请帮助任何人...

2 个答案:

答案 0 :(得分:0)

有时Cpanel需要在PHP SESSION上配置php.ini
首先,您可以检查CPanel session.save_path 和enabel output_buffering 。 使用 phpinfo()
您的代码正确无误。但是如果尝试session_start();灌装config.php文件

答案 1 :(得分:-1)

使用此代码更改您的个人资料图片代码... 您的逻辑不正确,这就是为什么每次都要重定向

['St. Louis Rams (2005–2006)', 'Cincinnati Bengals (2007–2008)', 'Buffalo Bills (2009–2012)', 'Tennessee Titans (2013)', 'Houston Texans (2014)', 'New York Jets (2015–2016)', 'Tampa Bay Buccaneers (2017–2018)', 'Miami Dolphins (2019–present)', 'Ivy League Player of the Year (2004)', 'First-team All–Ivy League (2004)', 'George H. “Bulger” LoweAward (2004)']
相关问题