Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/249.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Can';t读取PHP会话数组if";windows身份验证“;已在IIS上启用_Php_Iis_Session Variables - Fatal编程技术网

Can';t读取PHP会话数组if";windows身份验证“;已在IIS上启用

Can';t读取PHP会话数组if";windows身份验证“;已在IIS上启用,php,iis,session-variables,Php,Iis,Session Variables,我尝试创建一个小的登录页面(site1),登录名应该存储在session变量中。然后站点2应该读取会话变量。但是在site2上,如果我在IIS服务器上启用“windows身份验证”->如果我禁用“windows身份验证”->会话变量填写正确,则会话变量为空 是否还有其他需要配置的内容,以便使用会话变量和启用的“windows身份验证” site1.php <?php session_start(); ?> <?php include ("seitenlocation.php"

我尝试创建一个小的登录页面(site1),登录名应该存储在session变量中。然后站点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');
}

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


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

所有3个文件都在同一个文件夹->中,因此我为该文件夹启用了“windows身份验证”。在您的示例中,“echo$_SESSION['uname'];”也是空的。是的,所有3个文件都在同一个文件夹中。是的,我看到了会话id-但我需要$_SESSION['uname'];我还获得了会话用户名。是否仅为site2.php页面启用了windows身份验证?如果您这样做了,那么您需要对这两个页面使用相同的身份验证。如果您使用不同的身份验证,它将不起作用。您以前和现在使用的是哪个iis和php版本?您可以使用fiddler来比较成功和失败的结果。telerik.com/fiddler
<?php
session_start();
echo var_dump($_SESSION['uname']);