如果在IIS上启用了“ Windows身份验证”,则无法读取PHP会话数组

时间:2019-10-07 07:29:24

标签: php iis session-variables

我尝试创建一个小的登录页面(site1),登录名应存储在会话变量中。然后站点2应该读取会话变量。但是在site2上,如果我在IIS服务器上启用“ Windows身份验证”,则会话变量为空->如果禁用“ Windows身份验证”->会话变量则正确填写。

我还需要配置其他内容,以便可以使用会话变量并启用“ Windows身份验证”吗?

site1.php

<?php session_start(); ?>

<?php include ("seitenlocation.php"); ?>
<form method="post" action="?login=1" accept-charset="UTF-8" id="login">
  <input type="text" id="benutzer" name="benutzer" value="myname" required>
    <button type="submit">Go</button>
</form>

seitenlocation.php

<?php
session_start();

if(isset($_GET['login'])) {
    $benutzer = $_POST['benutzer'];
    $_SESSION['uname'] = $benutzer;
    header('Location: site2.php');
}

site2.php

<?php
session_start();
echo var_dump($_SESSION['uname']);

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

您需要对两个站点使用相同的身份验证。如果将匿名用于站点1,将Windows用于站点2,则会话将为空。 如果两个站点都使用Windows,它将显示相同的会话ID。

enter image description here

enter image description here

enter image description here

简而言之,您需要为两个站点设置相同的身份验证。