![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 569 Pomógł: 0 Dołączył: 17.08.2003 Skąd: Dąbrowa Górnicza Ostrzeżenie: (0%) ![]() ![]() |
Mam problem z ładowaniem plików poprzez formularz. Nie ukrywając ucze sie tego wiec zaczynam przepisywac kody z ksiazki i modyfikowac je. Oto kod do formularza (a.php)
[php:1:74a8460f4a]<?php echo"<form action="b.php" method="post" enctype="multipart/form-data"> Wyślij plik: <input type="file" name="thefile"><br><br> <input type="submit" name="Submit" value="Wyślij"> </form>"; ?>[/php:1:74a8460f4a] Oraz plik do obsługi przesyłania pliku (b.php) [php:1:74a8460f4a]<?php $aErrors = ""; if ( !empty( $_FILES['thefile']['name'] ) ) // nie wybrano pliku { if ( ( $_FILES['thefile']['type'] == "image/gif" ) || ( $_FILES['thefile']['type'] == "image/pjpeg" ) || ( $_FILES['thefile']['type'] == "image/jpeg" ) ) { if ( $_FILES['thefile']['size'] < ( 1024 * 100 ) ) { $aCurBasePath = dirname( $PATH_TRANSLATED ); $aNewName = $aCurBasePath . "/uppics/" . $_FILES['thefile']['name']; $file = $_FILES['thefile']; copy( $file , $aNewName ); } else { $aErrors .= "Za duzy plik !!!"; } } else { $aErrors .= "Plik nie jest typu gif ani jpeg"; } } else { $aErrors .= "Nie wybrano pliku"; } if ( $aErrors != "" ) { print( "<b>Wystapil blad</b>: $aErrors<br>" ); } else { print( "Przeslany plik:<br><br>" ); print( "<img src="uppics/".$_FILES['thefile']['name'] border="0">" ); } ?>[/php:1:74a8460f4a] Jak juz czytalem niektore posty ze względu na register_globals kozystalem z $_FILES, lecz nie wiem co ma byc ze zmienna $PATH_TRANSLATED poniewaz wyskakuje mi komunikat Cytat Notice: Undefined variable: PATH_TRANSLATED in /var/www/html/test/b.php on line 12
Notice: Array to string conversion in /var/www/html/test/b.php on line 16 Warning: copy(Array) [function.copy]: failed to create stream: No such file or directory in /var/www/html/test/b.php on line 16 Czy ktos moze mi pomoc i powiedziec co jest nie tak ? Dane servera (moze pomoze): Linux MDK 9.1 Apache 2.0 php 4.3.1 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Przyjaciele php.pl Postów: 786 Pomógł: 0 Dołączył: 18.03.2002 Skąd: Wroclaw/Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Hej
Cytat Reszta komunikatów to zwykłe notice (notatki) kóre najlepiej jest po prostu wyłaczyć - w php.ini -> error_reporting Ekhem - notice to raczej "ostrzeżenie" - to bardziej oddaje charakter. Po drugie akurat w tym wypadku przekazuje dosc istotne informacje - w linii 16 np kontekst tablicy zostanie zmieniony na string (to znaczy na sile zastapi sie jedno drugim) - co wcale nie musi sie okazac tym czego tygrysy pragna ;) I rzeczywisice w linii 15 odwolujesz sie do $_FILES['thefile']; a pewnei bardziej chcialbys do samego pliku - czyli $_FILES['thefile']["tmp_name"];
Wg mnie E_NOTICE (czyli wlasnie tego typu ostrzezenia) ucza dobrych nawykow w programowaniu - sprawdzania zmiennych, zachowywania regul etc. Jesli kiedys przyjdzie komus poprawiac po kims kod (albo chocicaz go zrozumiec) zaswiadczam ze lepiej sie "czyta" taki ktory byl pisany uzgledniajac E_NOTICE. Trudniej wowczas rowniez o blad, a istniejace latiwej wychwycic i poprawic. Pozdrawiam |
|
|
![]() ![]() |
![]() |
Aktualny czas: 4.10.2025 - 01:22 |