gpt4 book ai didi

未设置 PHP session

转载 作者:可可西里 更新时间:2023-11-01 12:52:44 24 4
gpt4 key购买 nike

我有一个代码,它通过 AJAX 登录,然后将数据传递到 .php 文件以根据 SQL 检查它。对于测试,用户名和密码是我 - 我但是即使从检查中返回它也没有让我登录,似乎没有设置 session 。

日志.php

<script type="text/javascript">
$(document).ready(function()
{
$("#login_form").submit(function()
{
//remove all the class add the messagebox classes and start fading
$("#msgbox").removeClass().addClass('messagebox').text('Validating....').fadeIn(1000);
//check the username exists or not from ajax
$.post("ejaxlog.php",{ username:$('#username').val(),password:$('#password').val(),rand:Math.random() } ,function(data)
{
if($.trim(data)=='yes') //if correct login detail
{
$("#msgbox").fadeTo(200,0.1,function() //start fading the messagebox
{
//add message and change the class of the box and start fading
$(this).html('Logging in.....').addClass('messageboxok').fadeTo(900,1,
function()
{
//redirect to secure page
document.location='http://www.google.com';
});

});
}
else
{
$("#msgbox").fadeTo(200,0.1,function() //start fading the messagebox
{
//add message and change the class of the box and start fading
$(this).html('Your login detail sucks...').addClass('messageboxerror').fadeTo(900,1);
});
}

});
return false; //not to post the form physically
});
//now call the ajax also focus move from
$("#password").blur(function()
{
$("#login_form").trigger('submit');
});
});
</script>

<link type="text/css" href="formboxes.css" rel="stylesheet">

</head>

<body>
<?
echo $_SESSION['u_name'];?>
<form method="post" action="" id="login_form">
<div align="center">

<div >
User Name : <input name="username" type="text" id="username" value="" maxlength="20" />

</div>
<div style="margin-top:5px" >
Password :
&nbsp;&nbsp;
<input name="password" type="password" id="password" value="" maxlength="20" />

</div>
<div class="buttondiv">
<input name="Submit" type="submit" id="submit" value="Login" style="margin-left:-10px; height:23px" /> <span id="msgbox" style="display:none"></span>

</div>

</div>
</form>

这然后通过下一个代码检查 MySQL,它是否成功,它回显我在我的 HTTP header 中看到的"is"(所以必须是正确的),但它没有将我重定向到“eindex.php”,如中指定的log.php 文件。

 <?php
session_start();
require("../mcfrdb.php");
// Included database once using the require method
?>

<?php


$username = mysql_real_escape_string(stripslashes($_POST['username']));
$pass = mysql_real_escape_string(stripslashes($_POST['password']));


$result = mysql_query("SELECT user, pass FROM mcfruse WHERE user='$username'")or die(mysql_error());
$row=mysql_fetch_array($result);

if(mysql_num_rows($result)>0)
{

if(strcmp($row['pass'],$pass)==0)
{
echo "yes";
$_SESSION['name']=$username;
}
else
echo "no";
}
else
echo "no";

我的 HTML 在使用 Firebug 时说

是的

所以 yes 被回显,这意味着它通过了正确的密码并通过了验证,但它仍然说“登录详细信息糟透了”并且没有将我重定向到 eindex.php

eindex.php

<?php
session_start();
if(!isset($_SESSION['name']))
header("Location:../index.php");
//if logout then destroy the session and redirect the user
if(isset($_GET['logout']))
{
session_destroy();
header("Location:../index.php");
}

require("../mcfrdb.php");
?>

我已经检查了几次代码,但找不到任何东西。所有答复和任何帮助表示赞赏。非常感谢。

编辑:即使添加了 md5 pwd 散列(从这段代码中省略)我仍然得到"is",当我回显用户名和散列时,它们是机器人匹配的,但是 session 仍然没有被设置并且没有重定向我.在 if($.trim(data)=='yes')

最佳答案

您通过 AJAX 访问的任何页面都是一个单独的请求,您需要调用 session_start() 以便填充 super 全局 session 。

关于未设置 PHP session ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7449944/

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