Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/289.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
允许在受保护目录中使用PHP脚本_Php_.htaccess_Attachment_Phpmailer_.htpasswd - Fatal编程技术网

允许在受保护目录中使用PHP脚本

允许在受保护目录中使用PHP脚本,php,.htaccess,attachment,phpmailer,.htpasswd,Php,.htaccess,Attachment,Phpmailer,.htpasswd,我有一个名为“templates”的文件夹,它是CHMOD 777,由htpasswd保护。这意味着我仍然可以使用我的PHP上载脚本将文件上载到该文件夹中,来自外部的人无法访问这些文件 我还得到了一个使用phpmailer类的脚本。此脚本发送电子邮件并附加位于受保护文件夹中的文件 我的问题是,现在我启用了此保护,我确实收到了电子邮件,但没有附件。我只在没有htpasswd保护时收到附件 你知道我能做什么吗?PHP在Web服务器的htpasswd保护范围之外运行-一旦脚本运行,它就可以自由支配文件

我有一个名为“templates”的文件夹,它是CHMOD 777,由htpasswd保护。这意味着我仍然可以使用我的PHP上载脚本将文件上载到该文件夹中,来自外部的人无法访问这些文件

我还得到了一个使用phpmailer类的脚本。此脚本发送电子邮件并附加位于受保护文件夹中的文件

我的问题是,现在我启用了此保护,我确实收到了电子邮件,但没有附件。我只在没有htpasswd保护时收到附件


你知道我能做什么吗?

PHP在Web服务器的htpasswd保护范围之外运行-一旦脚本运行,它就可以自由支配文件系统(至少是Web服务器的userid/groupid可以触及的内容)。除非您提供要作为URL附加的文件的路径,否则该文件上的任何操作都将通过正常的文件系统操作,而不是通过Web服务器,因此htpasswd保护不会进入图片中


如果没有附加文件,我会检查脚本,看看您是否提供了文件的适当路径,以及Web服务器的用户ID是否对该文件具有读取权限。

确保您的脚本以文件系统上的路径访问附件文件,如

/var/www/example.com/httpdocs/uploads/foo.jpg
不作为URL

http://example.com/uploads/foo.jpg
确认脚本可以访问该文件

<?php
if(!is_readable($file)) {
   $user = get_current_user();
   echo 'Error: '.$user.' cannot access '.$file;
   exit();
}
?>

如果文件和mailer脚本位于同一台服务器上,则应使用保护。如何附加文件?