gpt4 book ai didi

php - 登录脚本中的 session 问题

转载 作者:行者123 更新时间:2023-11-29 14:13:40 25 4
gpt4 key购买 nike

在该站点的帮助下,我现在的登录脚本基本上可以正常工作,但是当我尝试检查受限页面上的 session 时出现问题,完整代码如下。

登录脚本本身

    <?php

function validateUser()
{

session_regenerate_id (); //this is a security measure
$_SESSION['valid'] = 1;
$_SESSION['userid'] = $userid;
}


?>

<?php

ob_start(); // Start output buffering

error_reporting(E_ALL & ~E_NOTICE);
ini_set('display_errors', TRUE);
ini_set('display_startup_errors', TRUE);

session_start(); //must call session_start before using any $_SESSION variables
$username = $_POST['username'];
$password = $_POST['password'];
//connect to the database here

$hostname_PropSuite = "localhost";
$database_PropSuite = "propsuite";
$username_PropSuite = "root";
$password_PropSuite = "root";
$PropSuite = mysql_pconnect($hostname_PropSuite, $username_PropSuite, $password_PropSuite) or trigger_error(mysql_error(),E_USER_ERROR);
mysql_select_db($database_PropSuite, $PropSuite);

$username = mysql_real_escape_string($username);

$query = "SELECT password, salt FROM admin_users WHERE username = '$username';";

$result = mysql_query($query) or die(mysql_error());

if(mysql_num_rows($result) < 1) //no such user exists
{
header('Location: http://localhost/PropSuite/index.php?login=fail');

die();
}
$userData = mysql_fetch_array($result, MYSQL_ASSOC);
$hash = hash('sha256', $userData['salt'] . hash('sha256', $password) );
if($hash != $userData['password']) //incorrect password
{
header('Location: http://localhost/PropSuite/index.php?login=fail');

die();
}
else
{
validateUser(); //sets the session data for this user
}
//redirect to another page or display "login success" message
header('Location: http://localhost/PropSuite/main');
die()




//redirect to another page or display "login success" message


?>

我试图限制的页面。

<?php

error_reporting(E_ALL & ~E_NOTICE);
ini_set('display_errors', TRUE);
ini_set('display_startup_errors', TRUE);



function isLoggedIn()
{
if(isset($_SESSION['valid']) && $_SESSION['valid'])
return true;
return false;
}

//if the user has not logged in
if(!isLoggedIn())
{
header('Location: http://localhost/PropSuite/index.php');
die();
}
//page content follows
?>

当我按登录时发生的情况是,它会将我带回登录页面,因此它似乎会执行登录脚本,然后当它到达主页时,会将我带回登录页面。我很困惑.com:-(

预先感谢您的帮助

最佳答案

在您尝试限制的页面中,我没有看到 session_start

<?php 
session_start();
error_reporting(E_ALL & ~E_NOTICE);
ini_set('display_errors', TRUE);
ini_set('display_startup_errors', TRUE);
.....
?>

顺便说一句,在你的其他脚本中你应该这样写

 <?php
.....
$username = isset($_POST['username'])?$_POST['username']:'';
$password = isset($_POST['password'])?$_POST['password']:'';
...
?>

关于php - 登录脚本中的 session 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13050460/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com