Hej, mam taki oto skrypt (zostawiłem tylko to, co istotne przy szukaniu błędu, żeby było szybciej i łatwiej):
<?php
//tutaj mi generuje unikalną zmienną $name
function zapisz_plik()
{
{
{
echo 'problem: Nie udalo sie skopiowac pliku do katalogu.'; return false;
}
}
else
{
echo 'problem: Mozliwy atak podczas przesylania pliku.'; echo 'Plik nie zostal zapisany.'; return false;
}
return true;
}
function sprawdz_bledy(){
if ($_FILES['userfile']['error'] > 0){
switch ($_FILES['userfile']['error']){
// jest wiekszy niz domyslny maksymalny rozmiar,
// podany w pliku konfiguracyjnym
case 1
: {echo 'Rozmiar pliku jest zbyt duzy.'; break;}
// jest wiekszy niz wartosc pola formularza
// MAX_FILE_SIZE
case 2
: {echo 'Rozmiar pliku jest zbyt duzy.'; break;}
// plik nie zostal wyslany w calosci
case 3
: {echo 'Plik wyslany tylko czesciowo.'; break;}
// plik nie zostal wyslany
case 4
: {echo 'Nie wyslano zadnego pliku.'; break;}
// pozostale bledy
default: {echo 'Wystapil blad podczas wysylania.'; break;}
}
return false;
}
return true;
}
function sprawdz_typ(){
if ($_FILES['userfile']['type'] != 'image/jpeg')
return false;
else
return true;
}
$last_id = mysql_query("SELECT * FROM `images` ORDER BY `id` DESC LIMIT 1"); $id = $fetching['id'] + 1;
if ($tytul){
if (!sprawdz_typ
()) exit('Bledny typ'); if (!sprawdz_bledy
()) exit();
$do_bazy = mysql_query("INSERT INTO `images` (`id`, `autor`, `tytul`, `opis`, `adres`) VALUES ('$id', '$autor', '$tytul', '$opis', '$name')") or
die(mysql_errno());
if (zapisz_plik
()) exit('nie zapisano pliku'); }
$location = '/home/xxxx/domains/xxxx/public_html/imager/photos/' . $name . '.jpg';
?>
<form enctype="multipart/form-data" method="POST">
<label>Zdjęcie: </label><input name="userfile" type="file" /><br />
<label>Tytuł: </label><input type="text" name="tytul" size="40"><br />
<input type="hidden" name="MAX_FILE_SIZE" value="500000" /> /* maksymalna wielkosc pliku w bajtach */
<label>Opis: </label><TEXTAREA name="opis" rows="10" cols="51" wrap="virtual"></TEXTAREA><br />
<input type="submit" value="Wyslij" />
</form>
Komunikat błędu:
Warning
: move_uploaded_file() [function.move
-uploaded
-file]: open_basedir restriction in effect
. File() is not within the allowed path
(s
): (/home
/xxxxxxxxx
/:/tmp
:/usr
/local
/lib
/php
/:/usr
/sbin
/:/usr
/bin
/:/usr
/local
/bin
/:/usr
/local
/sbin
/:/bin
/:/sbin
/) in
/home
/xxxxxx
/domains
/xxxxxxxxx
/public_html
/imager
/dodaj
.php on line
50
Linia 50 to ta: if(!move_uploaded_file($_FILES['userfile']['tmp_name'], $location))
Dziękuję za pomoc!
Ten post edytował Age1869 30.08.2011, 22:34:55