Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/250.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
将memberid与目录匹配的PHP_Php_Mysql - Fatal编程技术网

将memberid与目录匹配的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!"); 现在我遇到麻烦的下一步是,每个文件只能由其帐

所以在一个基本的php帐户系统中,当用户注册时,我会自动为该用户创建一个文件夹和文件

“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()