将memberid与目录匹配的PHP
所以在一个基本的php帐户系统中,当用户注册时,我会自动为该用户创建一个文件夹和文件将memberid与目录匹配的PHP,php,mysql,Php,Mysql,所以在一个基本的php帐户系统中,当用户注册时,我会自动为该用户创建一个文件夹和文件 “1000”和“954 V045”只是混淆,成员位于中间,自动增加,所以每个帐户都是唯一的。 mkdir("1000" . $id . "954V045"); $myfile = fopen("1000" . $id . "954V045/usersfile.php", "w") or die("Unable to open file!"); 现在我遇到麻烦的下一步是,每个文件只能由其帐
“1000”和“954 V045”只是混淆,成员位于中间,自动增加,所以每个帐户都是唯一的。
mkdir("1000" . $id . "954V045");
$myfile = fopen("1000" . $id . "954V045/usersfile.php", "w") or die("Unable to open file!");
现在我遇到麻烦的下一步是,每个文件只能由其帐户持有人打开,否则任何拥有帐户的人都可以打开任何其他人的文件
因此,我需要在users目录中每个文件的顶部都有类似的代码,说明会话memberID是否不等于目录,而不是重定向回generic页面
因此,memberID为32的用户应该只能访问目录100032954V045中的文件。memberID为42的用户应该只能访问目录100042954V045中的文件
if($_SESSION['memberID'] != ) {
header ('Location: memberpage.php');
}
我猜答案将涉及basename(DIR),但我不知道如何剥离“1000”和“954V045”这样做:
<?php
$parent = trim(strrchr(__DIR__, DIRECTORY_SEPARATOR), DIRECTORY_SEPARATOR);//stores folder name
$id = substr($parent, 4, -7);
// 4 = length of "1000"
// 7 = length 954V045, it should be negative always!
if($_SESSION['memberID'] != $id) {
header ('Location: memberpage.php');
exit();//do not forget to add this
}
?>
substr
中的负第三个参数忽略了字符串末尾的那个么多字符。请在此处阅读更多信息:
您还需要将exit()