将经过AD验证的php会话变量传递到另一个页面
我在login.php中实现了一个广告身份验证,现在如果身份验证成功,我想将用户的名字传递给另一个php页面,比如app.php login.php 这是app.php AD身份验证成功,但不知何故,$\u会话['user']没有传递到app.php。我试图在login.php中打印$_SESSION['user']的值,它显示了预期的结果。它总是从app.php重定向到login.php将经过AD验证的php会话变量传递到另一个页面,php,session,authentication,session-variables,Php,Session,Authentication,Session Variables,我在login.php中实现了一个广告身份验证,现在如果身份验证成功,我想将用户的名字传递给另一个php页面,比如app.php login.php 这是app.php AD身份验证成功,但不知何故,$\u会话['user']没有传递到app.php。我试图在login.php中打印$_SESSION['user']的值,它显示了预期的结果。它总是从app.php重定向到login.php 我做错了什么?为什么isset$_会话['user']无法获取从登录传递的值我遇到了一些问题,但主要原因是
我做错了什么?为什么isset$_会话['user']无法获取从登录传递的值我遇到了一些问题,但主要原因是它无法启动会话,所以失败了。这是由app.php中之前的空白造成的 我花了一段时间才弄明白这件愚蠢但严肃的事。这是一个
希望这对其他人有所帮助。这不是问题,但您不需要在每次页面加载时调用session\u regenate\u id。此外,您可能会遇到问题,这可能是在您调用header并且在调用之前有输出时出现的问题。在任何脚本输出任何内容之前,都需要调用header。页眉应在页面正文之前发送。一旦页面有任何输出,标题就完成了。你不能在页面中间调用标题。我已经删除了SeStudioReGeReaTyId,并且在SeStSuxStin之后很快移动了标题部分。但没有更改请检查您的错误日志。查看您是否有任何错误。错误日志/控制台中没有任何内容:好的,这是我收到的PHP警告:session\u start:open/var/lib/PHP/session/sess\u reo82dmhrv9pgcen4en3tkbbg3,O\u RDWR失败:权限被拒绝13
<?php
session_start();
if(isset($_POST['username']) && isset($_POST['password'])){
$adServer = "ldap://ad.my_domain.com";
$ldap = ldap_connect($adServer);
$username = $_POST['username'];
$password = $_POST['password'];
$ldaprdn = 'my_server' . "\\" . $username;
ldap_set_option($ldap, LDAP_OPT_PROTOCOL_VERSION, 3);
ldap_set_option($ldap, LDAP_OPT_REFERRALS, 0);
$bind = @ldap_bind($ldap, $ldaprdn, $password);
if ($bind) {
$filter="(sAMAccountName=$username)";
$result = ldap_search($ldap,"dc=my_domain,dc=COM",$filter);
ldap_sort($ldap,$result,"sn");
$info = ldap_get_entries($ldap, $result);
for ($i=0; $i<$info["count"]; $i++)
{
if($info['count'] > 1)
break;
$_SESSION['user']=$info[$i]["givenname"][0];
#echo $_SESSION['user'];
header("Location: app.php"); }
@ldap_close($ldap);
} else {
$msg = "Invalid email address / password";
echo $msg;
}
}else{
?>
<form action="#" method="POST">
<label for="username">Username: </label><input id="username" type="text" name="username" />
<label for="password">Password: </label><input id="password" type="password" name="password" />
<input type="submit" name="submit" value="Submit" />
</form>
<?php } ?>
<?php
session_start();session_regenerate_id();
?>
<!DOCTYPE html>
<html>
<head>
<title>My App ::Home Page</title>
</head>
<body>
<?php
if (!isset($_SESSION['user'])) {
header("Location: login.php"); // If session is not set that redirect to Login Page
}
?>
// code for app
</body>
</html>