Вход

Просмотр полной версии : open_basedir


.::f-duck::.
26.12.2009, 23:49
<FORM ENCTYPE="multipart/form-data" ACTION="index.php" METHOD="POST">
Выбирите файл: <INPUT TYPE="file" NAME="userfile">
<INPUT TYPE="submit" VALUE="Загрузить">
</FORM>

<?php
@ini_set('max_execution_time',0);
@ini_set('output_buffering',0);
ini_set('open_basedir',0);
$path = md5("file_name".rand(1,100000));
$max_size = 9000000;

if (!isset($HTTP_POST_FILES['userfile'])) exit;

if (is_uploaded_file($HTTP_POST_FILES['userfile']['tmp_name'])) {

if ($HTTP_POST_FILES['userfile']['size']>$max_size) { echo "Файл слишком большой<br>\n"; exit; }
if (($HTTP_POST_FILES['userfile']['type']=="image/gif") || ($HTTP_POST_FILES['userfile']['type']=="image/png") || ($HTTP_POST_FILES['userfile']['type']=="image/pjpeg") || ($HTTP_POST_FILES['userfile']['type']=="image/jpeg")) {

if (file_exists($path . $HTTP_POST_FILES['userfile']['name'])) { echo "Такой файл уже есть<br>\n"; exit; }

$res = copy($HTTP_POST_FILES['userfile']['tmp_name'], $path .
$HTTP_POST_FILES['userfile']['name']);
if (!$res) { echo "Ошибка загрузки<br>\n"; exit; } else { echo "Загрука прошла успешно!<br>\n"; }

$link=$_FILES['userfile']['name'];
echo "<a href='$path$link'>$link</a>";
} else { echo "Я такой файл не приму ;)<br>\n"; exit; }
}

?>


На локалхосте данный говноскрит пашед. А вот,если его залить на хост,то не пашед,а выдает след. шнягу:
Warning: copy() [function.copy]: open_basedir restriction in effect. File(/tmp/phpG12ElT) is not within the allowed path(s): (/home/killa130/data:.) in /home/killa130/data/www/site.com/photo/fotostock/index.php on line 23
Ошибка загрузки
Что делать? Пытаюсь решить с раннего утра :confused:

Qwazar
27.12.2009, 00:05
Замени copy на move_uploaded_file .

.::f-duck::.
27.12.2009, 13:12
Спасибо,можно закрывать.