|
|
|
| Ребята! Слёзно прошу помогите!!! Намучился я уже с этим скриптом! Не работает и всё! У меня есть задача: сделать web-интерфейс загрузки картинок пользователями. Вот скрипт на сервере посмотрите http://www.studzona.ru/inc/upload.php Выдаёт сошибки:
Warning: filesize(): open_basedir restriction in effect. File(/var/tmp/phpBAzGL3) is not within the allowed path(s): (/home/studzona:/usr/lib/php:/usr/local/lib/php:/tmp) in /home/studzona/public_html/inc/upload.php on line 34
Warning: copy(): open_basedir restriction in effect. File(/var/tmp/phpBAzGL3) is not within the allowed path(s): (/home/studzona:/usr/lib/php:/usr/local/lib/php:/tmp) in /home/studzona/public_html/inc/upload.php on line 80
Хостерам уже десяток писем отправлял. Сначала они сказали мне права на папку tmp 777 выставить - выставил... ничего! Потом пути в функциях filesize() на абсолютные поставить /home/studzona/pablic_html поставил и опять ничего....
Скрипт пишет, что фото скопированно, но это нетак. На локалке всё работает. А на сервере нет.
В чем дело подскажите! Или пришлите скрипт который бы стопудово работал у меня. Буду очень и очень признателен! Может я чего-то напутал, али не понимаю... Поможите пожалуста... очень надо.
Вот код скрипта загрузки картинок studzona.ru/inc/upload.php
<?PHP
$max_size_gall_photo="1000000"; //максимальный размер картинки
$path_image_smgall="/home/studzona/public_html/"; //директория
echo "<table cellSpacing=1 bgcolor=#c6c6c6 cellPadding=2 class=text align=center>
<tr><td bgcolor=#ffffff align=center colspan=2>загрузить фото...</td></tr>";
if (!empty($add_comment)) {
$error_com = "";
if(empty($image)){
$error_com .="<br>» Вы не загрузили маленькое фото!";
}
if(empty($nameimage)){
$error_com .="<br>» Вы не дали имя картинке!";
}
if(!empty($nameimage)) {
if (!eregi("^[a-z0-9_]{1,20}$",$nameimage))
{
$error_com .="<br>» Имя фотки должно быть латиским от 1 до 20 символов без пробелов!";
}
if(strlen($nameimage)>25)
{
$error_com .="<br>» Имя фотки не должно быть более 25 символов!";
}
}
//проверяем маленькую картинку
if(!empty($image)) {
$extensions = array(".jpg", ".gif");
if(!$image){ $image = $HTTP_POST_FILES['image']['tmp_name']; }
$userfile_size=filesize("$image");
$image_name="$nameimage.jpg";
$img_name_arr = explode(".",$image_name);
$type = end($img_name_arr);
if ($max_size_gall_photo< $userfile_size)
{
$error_com .= "<br>» Маленькое фото слишком тяжёлое!!! $file_sizers_format<br>";
}
$ext = strrchr($image_name,'.');
if (!in_array($ext,$extensions))
{
$error_com .= "<br>» Файл имеет неправильный тип.<br>";
}
if ($type != "gif" and $type != "jpg" and $type != "jpeg" and $type != "jpe")
{
$error_com .= "<br>» Файл имеет неправильный тип.<br>";
}
if($image_name == ""){ $error_com = "<font color=red>Нет файла для загрузки !!!</font>";
$error_com .="<br>» Нет файла для загрузки !!!";
}
if(file_exists($path_image_smgall."/".$image_name)){
$error_com .= "<br>» Фото уже загружено !!!</font>";
// unlink("$image", $path_image_smgall."/".$image_name);
}
if($type != "gif" and $type != "jpg" and $type != "png" and $type != "bmp" and $type != "jpeg" and $type != "jpe"){
$error_com .= "<br>This type of file is not allowed !!!</font>";}
}
if(!empty($error_com)) {
echo "<tr><td colspan=2 bgcolor=#ffffff align=center><font color=#ff0000>ERROR</font></td></tr>
<tr><td colspan=2 bgcolor=#ffffff><font color=#ff5400>$error_com</font><br></tr> ";
}
if(empty($error_com)) {
echo "<tr><td colspan=2 align=center bgcolor=#ffffff><b>Фото добавлено!</font></b></td></tr>";
//копируем картинку
if(!empty($image)){
if(empty($error_com))
copy($image, $path_image_smgall."/".$image_name);
}
}
}
//error
echo'
<form method=post action='.$PHP_SELF.' ENCTYPE="multipart/form-data" name=addnews>
<tr bgcolor=#ffffff><td valign=top align=right><big>*</big> маленькое фото:<br>
</td><td><input type=file name=image ></td></tr>
<tr bgcolor=#ffffff><td align=right>
<big>*</big>новое имя картинки без .jpg : </td><td> <input type=text name=nameimage size=34 maxlength=110 value="'.@$nameimage.'"></td>
</tr>
<tr bgcolor=#ffffff><td colspan=2 width=300 >
<big>*</big> обязательные поля для заполнения <br>
</td></tr>
<tr bgcolor=#ffffff><td colspan=2 align=center>
<input type=submit name=add_comment style="width:100%" value="Добавить фото"></td></tr>
</table></center><br>';
//comment
?>
|
| |
|
|
|
|
|
|
|
для: StudZona.ru
(14.11.2005 в 05:11)
| | Это дело рук хостеров, у вас в сообщении английским языком сказано, что к файлам можно обращаться в директориях
/home/studzona
/usr/lib/php
/usr/local/lib/php
/tmp
|
В конфигурационном файле php.ini в директиве upload_tmp_dir прописано /var/tmp
upload_tmp_dir = /var/tmp
|
вместо
Или /var/tmp следует прописать в директиве open_basedir.
PS Вы им как-нибудь аккуратно об этом сообщите, не раздражая их... со словами "возможно", "мне кажется" и т.п. Системные администраторы серверов часто бывают не программистами и хорошо знают как следует защищать сервер, но плохо представляют, что требуется программистам для комфортной работы. | |
|
|
|
|
|
|
|
для: cheops
(14.11.2005 в 15:10)
| | Спасибо! Я так и думал!!!! Вы ребята реальные профи! Просто лучшие. | |
|
|
|