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