大家好我遇到了一些问题...问题是我想从表单中获取信息并将其保存在数据库中,数据是(评论,上传图片和电子邮件)当我这样做时它会发出警告< / p>
代码
// move file from temp location on server to your uploads folder
move_uploaded_file($F1["tmp_name"], "Uploads/$F1[name]");
print "Stored in: Uploads/$F1[name]";
// save location of upload to text file uploads.txt for later use
$datafile = fopen("uploads.txt","a");
flock($datafile,1);
fwrite($datafile, "Uploads/$F1[name]\n");
flock($datafile,3);
fclose($datafile);
// divide size by 1024 to get it in KB
/* if ($F1["size"] / 1024 > 50) {
print "Your gif file is too large! Less that 50KB please!";
exit(0);
}*/
if (!(IsSet($_FILE["fname"]))) {
$query="insert into guestbook (comments, email, img,display) values
('$_POST[comments]','$_POST[email]','some address ', '0')";}
else
$query="insert into guestbook (comments, email, img, display) values
('$_POST[comments]','$_POST[email]','some addres', '$_POST[0]')";
我得到的警告是
警告:move_uploaded_file(Uploads / holder.jpg):无法打开流:第48行(地址)中没有此类文件或目录
警告:move_uploaded_file():无法将第48行(某些地址)的'/ tmp / php4OAZMC'移动到'Uploads / holder.jpg' 存储在:Uploads / holder.jpg
我该如何解决?
提前致谢
答案 0 :(得分:1)
我认为它需要一个绝对路径来保存文件,而不是相对于脚本位置,即
/home/meme/www/example.com/Uploads/
另外,请检查上载目录的权限。还有一个小小的提示,将来保存你的培根 - 保持目录和文件名小写;那么当你的代码正在寻找一个不存在的文件或目录,因为你的文件系统是区分大小写的时候,你不会在将来的某个时候陷入困境!
答案 1 :(得分:0)
上传/文件夹是否已存在?如果没有,请先尝试创建它。这可能会导致错误。
另外,检查move_uploaded_file()是否有效是一个好主意。如果有效,则返回true
,否则返回false
。
另外,如前所述,也尝试使用绝对路径。
答案 2 :(得分:0)
您还应该确保您的Uploads文件夹正确设置了权限 - 出于测试目的,请使用您喜欢的FTP客户端将Uploads文件夹chmod为777。
确保当您准备好将上传文件付诸实践时,请确保正确保护文件夹(确保不是任何人都可以写入文件夹),并确保为文件类型添加过滤器。
答案 3 :(得分:0)
您的插入查询是一个空洞的安全漏洞,只是在等待SQL注入。您可以使用以下内容来降低遭遇黑客攻击的可能性:
$ comments = mysql_real_escape_string($ _ POST ['comments']); $ email = mysql_real_escape_string($ _ POST ['email']); $ query =“插入留言簿(评论,电子邮件,img,显示)值 ('{$ comments}','{$ email}','some address','0')“;