Php imagegif()未上载到站点

Php imagegif()未上载到站点,php,Php,所以,我正在为我的网站制作一个头像脚本,并试图通过URL将头像上传到网站。我已经确定了所有的东西(fopen或者类似的东西)都是允许的,但是它似乎没有上传。我有一种感觉,问题是进程文件在/settings/process.php中,而它正试图上传到/useravatar,但我不是很确定。此外,query()、getuserdata()和getmydata()在代码中工作正常,因为它们是包含在session.php中的函数 这是我的密码: include('../session.php'); $p

所以,我正在为我的网站制作一个头像脚本,并试图通过URL将头像上传到网站。我已经确定了所有的东西(fopen或者类似的东西)都是允许的,但是它似乎没有上传。我有一种感觉,问题是进程文件在/settings/process.php中,而它正试图上传到/useravatar,但我不是很确定。此外,query()、getuserdata()和getmydata()在代码中工作正常,因为它们是包含在session.php中的函数

这是我的密码:

include('../session.php');
$pictureurl = $_POST['urlava'];
# CHECK THAT FILE IS NOT ACCESED DIRECTLY
if(isset($pictureurl)){
// CHECK IF POST IS "HTTP://" ONLY
if($pictureurl == 'http://'){
# IF YES, END SCRIPT
die("Error!");
}
# CHECK IF IT'S AN URL (HTTP/HTTPS)
$checkifurl = parse_url($pictureurl);
if($checkifurl['scheme'] == "http" || $checkifurl['scheme'] == "https"){
# CHECK IF IT'S AN IMAGE (PNG/JPG/JPEG/GIF/MPO)
$url = pathinfo($pictureurl);
if($url['extension'] == 'png' || $url['extension'] == 'jpg' || $url['extension'] == 'jpeg' || $url['extension'] == 'gif' || $url['extension'] == 'mpo'){
# DELETE CURRENT AVATAR
if(getuserdata($_SESSION['username'], avatar) == '/images/default.png'){
}else{
$file = substr(getmydata(avatar), 1);
unlink($file);
}
$randomstring = generateRandStr(5);
# CREATE NEW AVATAR
$img = file_get_contents($pictureurl);
$im = imagecreatefromstring($img);
$width = imagesx($im);
$height = imagesy($im);
$newwidth = '50';
$newheight = '50';
$thumb = imagecreatetruecolor($newwidth, $newheight);
    $filename = "/useravatar/".strtolower(getmydata(username))."-".$randomstring.".gif"; // I think the problem is here
imagecopyresampled($thumb, $im, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);
imagegif($thumb,$filename); // But it can also be here
imagedestroy($thumb);
imagedestroy($im);
# UPDATE AVATAR
query("UPDATE members SET avatar='$filename' WHERE username='$_SESSION[username]'");

}
}
}
header("Location: avatar.php?updated=1");

它可能看起来很凌乱,因为它可能是。这个脚本以前工作过,所以我不确定为什么现在不工作。如果有人能帮忙,那就太好了。提前感谢。

问题在于权限

 Warning: unlink(): open_basedir restriction in effect. File() is not within the allowed path(s): (/var/customers/webs/ni235658_1/ring/ar7comm/:/var/customers/tmp/ni235658_1/:/usr/share/php/:/usr/share/php5/:/tmp/) in /var/customers/webs/ni235658_1/ring/ar7comm/settings/process.php on line 23

 Warning: imagegif(): Unable to open '/useravatar/-57Kkf.gif' for writing: No such file or directory in /var/customers/webs/ni235658_1/ring/ar7comm/settings/process.php on line 36
查看:单击POST插入Url,并使用图像Url设置参数urlava

尝试添加完整路径:

 imagegif($thumb, dirname(__FILE__) . '/' . $filename);

检查文件和目录权限。添加错误报告(E_ALL)和ini_集合(“显示错误”,true);找到它out@AdrianPreuß它什么也不返回。你有一个工作示例(在线)来检查吗?是的,但你必须注册到我的网站才能这样做。注册后脚本是否每次都返回“错误”?否。仍然得到相同的结果。是的,你能调试吗?settingsuseravatar/-5o08X.gif必须设置斜杠,但您已将其从$filename中删除!(见更新)对不起,这对我来说是胡说八道。哦,还有,它不应该只是插入-随机,它应该是/*username*-随机我知道你现在说的,但是编辑,它不起作用。哦,上传到文件夹的权限是什么?执行的用户必须有写权限。为了进行测试,您可以将其设置为0766或0777。我尝试了这一点,我还发现数据库正在将其作为我的用户的化身列插入:/useravatar/angelrulez7-uWP0B.gif,但服务器上不存在。