2010-12-08 56 views
4

我有一个托管在Apache上的网站,其中包含一些受保护的内容。我想为在另一个应用程序中进行身份验证的用户提供对受保护内容的访问。内容使用htaccess和htpasswd进行保护。php curl - 需要使用卷曲提供对受保护目录的访问

我想使用curl来设置用户名和密码,然后将用户重定向到受保护的文件夹。如果受保护的内容是单个文件,我可以轻松完成此操作,但我的解决方案似乎只适用于一个页面。只要用户点击链接并尝试访问另一个页面,会话就会丢失。目录中有数百页。

这里是我使用的代码:

$ch=curl_init(); 
curl_setopt($ch, CURLOPT_URL,'http://domain.com/protected_folder/'); 
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC); 
curl_setopt($ch, CURLOPT_USERPWD, "username:password"); 
curl_setopt($ch, CURLOPT_FOLLOWLOCATION,1); 
curl_exec($ch); 
curl_close($ch); 

我有两个问题的结果:

  1. 一个完整的重定向不这样做,所以被点击任何链接引用回php文件所在的文件夹,而不是受保护的文件夹。地址栏仍然显示php脚本的路径。
  2. 看起来会话立即丢失。任何尝试访问受保护文件夹中的资源都会通过登录框提示。

关于如何解决这两个问题的任何想法将不胜感激。

回答

0

你是否结婚使用htaccess认证?如果您通过PHP使用身份验证,您将拥有更大的灵活性。

http://php.net/manual/en/features.http-auth.php

+0

也许会工作,但我相信我的PHP是没有强大到足以理解如何基于该链接的信息实现它。我试图保护的文件是基本的html文件。我结束了实现这样的事情:http://www.askapache.com/htaccess/tricks-for-controlling-htaccess-basic-authentication-with-php-and-mod_rewrite.html – 2010-12-11 02:09:33