![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 623 Pomógł: 11 Dołączył: 1.01.2009 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Mam taki skrypt służący do wgrywania plików na serwer przez użytkowników:
Kod $nazwa_pliku = $_FILES['zdjecie']['name']; include_once("../elementy/dane_do_logowania.php"); if(@preg_match("# #",$nazwa_pliku)){ echo "Nazwa pliku nie może zawierać spacji"; }else{ if(isset($_SESSION['login'])){ if(!is_uploaded_file($_FILES['zdjecie']['tmp_name'])){ echo "Pliku nie prezeslano"; unlink($_FILES['zdjecie']['tmp_name']); }else{ /*przetwarzanie pliku*/ $maksymalny_rozmiar_pliku=153600; if($_FILES['zdjecie']['size'] > $maksymalny_rozmiar_pliku){ echo "Rozmiar pliku nie może przekroczyć 150 kB"; unlink($_FILES['zdjecie']['tmp_name']); }else{ /*przetwarzanie pliku*/ if($_FILES['zdjecie']['type'] != "image/gif" AND $_FILES['zdjecie']['type'] != "image/pjpeg" AND $_FILES['zdjecie']['type'] != "image/jpeg" AND $_FILES['zdjecie']['type'] != "image/png"){ echo "Można pzesyłać jednynie pliki z rozszerzeniem .jpg i .gif"; unlink($_FILES['zdjecie']['tmp_name']); }else{ /*format pliku jest poprawny*/ copy($_FILES['zdjecie']['tmp_name'], "./".$_SESSION['login']."/galeria/".$_FILES['zdjecie']['name'].""); unlink($_FILES['zdjecie']['tmp_name']); echo "OK<br /> <center> <img src=\"./".$_SESSION['login']."/galeria/".$_FILES['zdjecie']['name']."\" width=\"200\" border=\"0\" /> </center> "; include_once("../elementy/dane_logowania.php"); $pol = @mysql_connect($host,$login_host,$haslo_host); if (!$pol){ include_once("../elementy/error.php"); echo $error_connect; exit; } $wyb = @mysql_select_db($nazwa_bazy_danych); @mysql_query('SET CHARACTER latin2'); @mysql_query('SET NAMES latin2'); @mysql_query('SET CHARACTER_SET latin2'); if (!$wyb){ include_once("../elementy/error.php"); echo $error_select; exit; } $zap = "INSERT INTO `zdjecia` ( `id` , `autor` , `link` , `opis` ) VALUES ( NULL , '".$_SESSION['login']."', '$nazwa_pliku', '$opis' );"; $wyn = mysql_query($zap); if (!$wyn){ include_once("../elementy/error.php"); echo $error_query; exit; } @mysql_close($pol); } } } } } } Niestety nie chce on działać, tzn. wpisywany jest nowy rekord do tabeli, ale plik nie jest kopiowany na serwer (IMG:http://forum.php.pl/style_emoticons/default/sad.gif) Dodam, że gdy ćwiczyłem na lokalnym serwerze to wszystko działało bez zarzutu. Dopiero jak wżuciłem stroną na cba.pl pojawił się ten błąd:( Wiecie czemu? Ten post edytował ayeo 24.02.2009, 06:22:22
Powód edycji: poprawienie taga
|
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 896 Pomógł: 76 Dołączył: 15.11.2003 Skąd: Sosnowiec/Kraków Ostrzeżenie: (0%) ![]() ![]() |
A działał kiedykolwiek? Gdziekolwiek? Wyświetla jakiś błąd? Komunikat? Jakiekolwiek objawy?
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 623 Pomógł: 11 Dołączył: 1.01.2009 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Jak sprawdzałem na swoim localhost'cie to było wszystko OK.
Dopiero jak wrzuciłem stroną na prawdziwy serwer pojawił się ten problem (IMG:http://forum.php.pl/style_emoticons/default/sad.gif) |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 896 Pomógł: 76 Dołączył: 15.11.2003 Skąd: Sosnowiec/Kraków Ostrzeżenie: (0%) ![]() ![]() |
Wyrzuć @ sprzed wszystkich funkcji i poczytaj jakie błędy wyświetla skrypt.
Czy to problem z dodawaniem informacji do bazy czy z kopiowaniem plików. Czy prawa dostępu do katalogów na serwerze sa ustawione prawidłowo... |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 176 Pomógł: 31 Dołączył: 26.03.2007 Ostrzeżenie: (0%) ![]() ![]() |
zamiast copy() sprobuj move_uploaded_file() i sprawdz chmod() dla katalogu do ktorego kopiujesz pliki
|
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 623 Pomógł: 11 Dołączył: 1.01.2009 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Zadziałało funkcją move_uploaded_file() i atrybutoami ustawionymi na 777, ale to nie jest chyba zbyt bezpieczne?
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 4.10.2025 - 01:19 |