为什么我一直得到“目录不存在?”

时间:2010-01-26 03:21:30

标签: php

我无法弄清楚我在这里做错了什么。我创建的文件的目录权限具有全面的写权限。我一直得到“目录不存在”感谢您的帮助!

<?
//creates variables and calls the information from the server
$Name = $_POST['name'];
$desc = $_POST['desc'];
$website =$_POST['web'];
$email =$_POST['email'];
$cname =$_POST['cname'];
echo "your registered name is: ". $Name . ".<br/>";
echo "your registered description is: " . $desc . ".<br/>";
echo "your website address is: " . $website . ".<br/>";
echo "your Confirmation email has been sent to: " . $email . ".<br/>";

echo "your information has been stored, thank you! ";

$cname = trim($cname);

$filename = "data/clubinfo/$cname.txt";
$fp = fopen($filename,'a');
fwrite($fp,$Name);
fwrite($fp,"\n");
fwrite($fp,$email);
fwrite($fp,"\n");
fwrite($fp,$desc);
fwrite($fp,"\n");
fwrite($fp, $website);
fwrite($fp, "\n");
fwrite($fp,"__");
fwrite($fp, "\n");
fclose($fp);




 ?>

4 个答案:

答案 0 :(得分:3)

由于您正在使用相对路径,因此脚本最有可能假定您所假设的工作目录不同。

你最好绝对地或者至少相对于$_SERVER['DOCUMENT_ROOT']指定路径,即使你这样做:

$filename = $_SERVER['DOCUMENT_ROOT'] . "../data/clubinfo/$cname.txt";

这样做的好处是它在文档根目录之外,因此不会由Web服务器直接提供。无论您的脚本位于何处,它都可以正常工作,无论您在哪个目录下安装Web应用都可以使用,这可能是dev vs prod部署的问题。

答案 1 :(得分:0)

当前目录中不存在data/clubinfo文件夹。

您需要先创建它。 (手工或PHP)
或者,当前目录可能不是您认为的目的。

答案 2 :(得分:0)

尝试使用file_put_contents(),如下所示:

file_put_contents("data/clubinfo/$cname.txt", implode("\n", $_POST));

如果您希望按值增加此值,则还应使用FILE_APPEND标记。

答案 3 :(得分:0)

看起来你没有从根目录中给出路径,服务器正在查看当前位置。尝试让路径脱离根源。