Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] problem z wgrywaniem plików na serwer
sweter
post
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
Go to the top of the page
+Quote Post
Foxx
post
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?
Go to the top of the page
+Quote Post
sweter
post
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)
Go to the top of the page
+Quote Post
Foxx
post
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...
Go to the top of the page
+Quote Post
guilty82
post
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
Go to the top of the page
+Quote Post
sweter
post
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?
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 4.10.2025 - 01:19