我有几个文件夹(每个客户端一个),我保存了只能由他自己接收的图像。
这些文件夹是通过htpasswd保护的,我试图在用户正常登录后通过cUrl登录并保持此会话处于活动状态,并允许用户导航并仅访问他的文件夹图像。
在我的Authentification控制器中,我这样做:
$username = 'username';
$password = 'password';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'routeToOneFileInHisFolder');
curl_setopt($ch, CURLOPT_USERPWD, "$username:$password");
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
curl_exec($ch);
$info = curl_getinfo($ch);
curl_close($ch);
我还尝试为COOKIEJAR和COOKIEFILE设置curl_setopt,但没有不同的结果。我不知道我的方法是否错误,或者我是否遗漏了一些代码。
答案 0 :(得分:1)
您可以使用$ _SESSION,即....
//put this in the top of your php
session_start();
//then store the user and password in the session...
$_SESSION['username'] = 'username';
$_SESSION['password'] = 'password';
// replace in your code anywhere the $username and $password variables
// with the new $_SESSION['username'] and $_SESSION['password']
答案 1 :(得分:1)
最后我可以解决这个问题。虽然它不是一种非常安全的方法,但它对我的问题来说是一个很好的解决方案。
感谢Aberel,我开始调查cookies和http auth。之后,我可以使用PHP设置cookie(或使用JS,没有差异),并使用每个文件夹中的.htaccess进行检查。 .htaccess看起来像这样:
+--------------------+---------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+--------------------+---------------------+------+-----+---------+----------------+
| id | int(10) unsigned | NO | PRI | NULL | auto_increment |
| group_id | int(10) unsigned | NO | | NULL | |
| encoding | tinyint(3) unsigned | NO | | 0 | |
| content | text | NO | | NULL | |
| active_period | datetime | YES | | NULL | |
| status | tinyint(3) unsigned | NO | | 1 | |
| flag | tinyint(1) | YES | | 1 | |
| description | text | YES | | NULL | |
| updated_by | varchar(255) | YES | | NULL | |
| updated_at | datetime | YES | | NULL | |
+--------------------+---------------------+------+-----+---------+----------------+
COOKIENAME可以是任何内容,也可以是您识别每个用户的randomHash。
感谢您的帮助