2010-01-26 57 views
2

我无法弄清楚我在这里做错了什么。我为创建的文件创建的目录拥有全部写入权限。我不断收到“目录不存在”感谢您的帮助!为什么我不断收到“目录不存在?”

<? 
//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); 




?> 
+3

你应该接受你的问题的答案。 – SLaks 2010-01-26 03:23:54

+0

尝试打印该文件夹中现有文件的内容以确保路径正确。 – SLaks 2010-01-26 03:36:37

回答

3

最有可能的脚本是假设不同的工作目录,你假定什么,因为你使用的是相对路径。

你会好起来的指定路径绝对或至少相对于$_SERVER['DOCUMENT_ROOT']即使你:

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

的是,优点是,它是你的文档根目录以外的,所以它不会是直接由您的Web服务器提供服务。无论脚本的位置如何,它都可以正常工作,并且无论在什么目录下安装Web应用程序都可以工作,这可能是开发和生产部署的一个问题。

+0

这是一个有效的点,但我没有服务器权限,它仍然抛出同样的错误......我有一个类似的脚本,几乎与这一个相同,它的工作原理。这个似乎并不想工作 – Ryan 2010-01-26 03:32:01

0

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

您需要先创建它。 (手动或PHP)
另外,当前目录可能不是你认为的那样。

0

尝试使用file_put_contents()这样的:

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

如果通过值要这个价值,你也应该使用FILE_APPEND标志。

0

看起来好像你没有给出根目录下的路径,服务器正在从当前位置查找。尝试从根源上开辟道路。

相关问题