Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/280.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
使用PHP设置变量“服务器[”PHP“AUTH”u USER“”_Php_Zend Framework - Fatal编程技术网

使用PHP设置变量“服务器[”PHP“AUTH”u USER“”

使用PHP设置变量“服务器[”PHP“AUTH”u USER“”,php,zend-framework,Php,Zend Framework,我需要一些关于php_auth的帮助我使用了php的HTTP身份验证,它似乎工作得很好(当你转到url时,它要求用户名和密码,并且工作得很好),但我需要做的是从另一个页面传递用户名和密码进行身份验证,并自动进行身份验证。类似于从另一个页面使用PHP设置变量_SERVER[“PHP_AUTH_USER”] 编辑:我忘了提到我的问题是,两个页面是完全不同的应用程序 两者都保持单独的会话。应用程序“A”和应用程序“B” 可以托管在同一域上,也可以不托管在同一域上 您可以通过会话在请求之间传递有关用户的

我需要一些关于php_auth的帮助我使用了php的HTTP身份验证,它似乎工作得很好(当你转到url时,它要求用户名和密码,并且工作得很好),但我需要做的是从另一个页面传递用户名和密码进行身份验证,并自动进行身份验证。类似于从另一个页面使用PHP设置变量_SERVER[“PHP_AUTH_USER”]


编辑:我忘了提到我的问题是,两个页面是完全不同的应用程序 两者都保持单独的会话。应用程序“A”和应用程序“B” 可以托管在同一域上,也可以不托管在同一域上


您可以通过会话在请求之间传递有关用户的任何数据

//on one page
session_start();
$_SESSION['logged_in_user'] = $_SERVER['PHP_AUTH_USER'];

//on the 'another page'
session_start();
$user = $_SESSION['logged_in_user'];

您应该为此使用$\u会话$_会话用于从页面传递变量

当需要访问会话变量时,在每个脚本上:

session_start();
$_SESSION['user'] = $_SERVER['PHP_AUTH_USER'];
在另一个脚本上:

session_start();
$user = $_SESSION['user'];

看看这里和那里的php参考:

我使用了zend函数setAuth(用户名、密码);完成工作

$client = new Zend_Http_Client();
$client->setAuth($username, $password);
$response = $client->request('POST');
setAuth函数的工作原理是将身份验证参数嵌入/编码为url的标头

// Set HTTP authentication if needed
if (is_array($this->auth)) {
     $auth = self::encodeAuthHeader($this->auth['user'], $this->auth['password'],      $this->auth['type']);
       $headers[] = "Authorization: {$auth}";
}

我试过了,但无法使用我的代码。下面是一段代码
//应用程序1的页面:$\u会话['USERNAME']='USERNAME'$_会话['PASSWORD']='PASSWORD'$客户端->设置URI(“http://application2.com/some/"); $响应=$client->request('POST')//应用程序2的页面:如果(isset($_会话['USERNAME'))$_服务器['PHP\u AUTH\u USER']=$_会话['USERNAME'];返回(isset($_SERVER['PHP\u AUTH\u USER']))$_服务器['PHP_AUTH_USER']:null;//但是函数总是返回null
我使用的是zend,会话是自动启动的。会话是否不能与请求uri一起使用?下次,请提供您正在执行的操作的详细信息。我们是根据你上周写的回答的。您说过您希望在页面之间传递详细信息,而不是在不同主机上的不同站点之间。由于这不是实际情况,您浪费了每个人的时间,也没有得到所需的帮助。我的问题是,两个页面是完全不同的应用程序,并且都维护单独的会话。应用程序“A”和应用程序“B”可能托管在同一域上,也可能不托管在同一域上。