Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> dodawanie zdjęcia przez formularz
maciu
post
Post #1





Grupa: Zarejestrowani
Postów: 238
Pomógł: 1
Dołączył: 27.08.2003

Ostrzeżenie: (0%)
-----


Poprzez formularz (name=zdjecie) dodaje zdjęcie, które następnie ma sięwgrać na serwer. Kod wygląda tak:
[php:1:5c0f5c04ec]
$zdjecie = $_FILES['zdjecie']['tmp_name'];
$zdjecie_size = $_FILES['zdjecie']['size'];
$zdjecie_type = $_FILES['zdjecie']['type'];
$zdjecie_error = $_FILES['zdjecie']['error'];


if ($zdjecie_error > 0) {
switch ($zdjecie_error)
{
case 1: echo '<B>BŁĄD:</B> Rozmiar pliku przekroczył wartość upload_max_filesize'; break;
case 2: echo '<B>BŁĄD:</B>Rozmiar pliku przekroczył wartość max_file_size'; break;
case 3: echo '<B>BŁĄD:</B>Plik wysłany tylko częściowo'; break;
case 4: echo '<B>BŁĄD:</B>Nie wysłano żadnego pliku'; break;
}
exit;
}
[/php:1:5c0f5c04ec]

Problem polega na tym, że jeśli do formularza nie dodam żadnego zdjęcia, to wyświetlają się błędy, związene z tym, że zmienna zdjecie jest pusta, a przecież powinien się wyświetlić alert 'nie wysłano żadnego pliku'.
Widzicie jakieś błędy w kodzie, który podałem?
Go to the top of the page
+Quote Post
Aiker
post
Post #2





Grupa: Zarejestrowani
Postów: 63
Pomógł: 0
Dołączył: 9.09.2003
Skąd: K-ce

Ostrzeżenie: (0%)
-----


No bo przeciez jak zmienna "Zdjecie" jest pusta
[php:1:03656134df]<?php
$zdjecie = $_FILES['zdjecie']['tmp_name'];
$zdjecie_size = $_FILES['zdjecie']['size'];
$zdjecie_type = $_FILES['zdjecie']['type'];
$zdjecie_error = $_FILES['zdjecie']['error'];
?>[/php:1:03656134df]
to te zmienne nie istniejeja bo nie zostaly podane
i wtedy instrujcja if nie jest wykonywana (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif)
Dodatkowy if zalatwil by sprawe:D
Go to the top of the page
+Quote Post
.dragonfly
post
Post #3





Grupa: Zarejestrowani
Postów: 217
Pomógł: 0
Dołączył: 5.10.2003
Skąd: Londyn / UK

Ostrzeżenie: (0%)
-----


Jesli chcesz sprawdzac czy zmienna nie jest pusta to daj $zmienna!="" , ablo czy wogole jest ustawiona przez isset()
Go to the top of the page
+Quote Post
kicaj
post
Post #4





Grupa: Zarejestrowani
Postów: 1 640
Pomógł: 28
Dołączył: 13.02.2003
Skąd: Międzyrzecz/Poznań

Ostrzeżenie: (0%)
-----


$_FILES['nazwa'] == "none" -> pusta
Go to the top of the page
+Quote Post
maciu
post
Post #5





Grupa: Zarejestrowani
Postów: 238
Pomógł: 1
Dołączył: 27.08.2003

Ostrzeżenie: (0%)
-----


Cytat
No bo przeciez jak zmienna "Zdjecie" jest pusta
[php:1:84feed4eaf]<?php
$zdjecie = $_FILES['zdjecie']['tmp_name'];
$zdjecie_size = $_FILES['zdjecie']['size'];
$zdjecie_type = $_FILES['zdjecie']['type'];
$zdjecie_error = $_FILES['zdjecie']['error'];
?>[/php:1:84feed4eaf]
to te zmienne nie istniejeja bo nie zostaly podane
i wtedy instrujcja if nie jest wykonywana (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif)
Dodatkowy if zalatwil by sprawe:D


jeżeli dobrze zrozumiałem Twoje słowa, to po co w takim razie jest tablica $_FILES['zdjecie']['error']; skoro i tak mam wcześniej sprawdzić, czy zmienna nie jest pusta? Preceż to non sens
Go to the top of the page
+Quote Post
Cudi
post
Post #6


Administrator planeta/IRC


Grupa: Przyjaciele php.pl
Postów: 385
Pomógł: 0
Dołączył: 19.04.2003
Skąd: Zabrze

Ostrzeżenie: (0%)
-----


Błędów nie ma, ścieżka do pliku była pusta. więc pewnie php nawet nie utworzyło miejsca w $_FILES dla tego pliku. Daj dodatkową instrukcje warunkową if:
[php:1:8d7ceaa776]<?php
if( isset( $_FILES['zdjecie'] )
{
// i tu cały kod
}
?>[/php:1:8d7ceaa776]
Go to the top of the page
+Quote Post
Aiker
post
Post #7





Grupa: Zarejestrowani
Postów: 63
Pomógł: 0
Dołączył: 9.09.2003
Skąd: K-ce

Ostrzeżenie: (0%)
-----


Troszke zle sie wyrazilem poprostu jak nie podasz zmiennej w formularzu to wogule nie tworzy tych tablic &_FILES bo nie ma z czego czyli zmiene sa puste
Go to the top of the page
+Quote Post
maciu
post
Post #8





Grupa: Zarejestrowani
Postów: 238
Pomógł: 1
Dołączył: 27.08.2003

Ostrzeżenie: (0%)
-----


kurcze, na localhoscie wszystko mi dobrze działa, a na serwerze warunek
[php:1:5521eaaf20]
if( isset( $_FILES['zdjecie'] )
{
// i tu cały kod
}
[/php:1:5521eaaf20]
nie działa gdy zmienna $zdjecie jest pusta. Domyślacie sięmoże i jakie ustawienia serwera może chodzić, że na jednym działa a na drugim nie?
Dodam że na localhoscie mam ustawione:
error_reporting = E_ALL & ~E_NOTICE
register_globals = Off
Go to the top of the page
+Quote Post
marcinkooter
post
Post #9





Grupa: Zarejestrowani
Postów: 15
Pomógł: 0
Dołączył: 23.11.2010

Ostrzeżenie: (0%)
-----


tez mam ten problem
Go to the top of the page
+Quote Post
ciekawskiii
post
Post #10





Grupa: Zarejestrowani
Postów: 467
Pomógł: 39
Dołączył: 7.11.2010
Skąd: Raz tu, raz tam

Ostrzeżenie: (30%)
XX---


Sprawdzaj filesize albo nazwa pliku, jezeli filesize == 0 to blad albo jezeli nazwa pliku ma 0 znakow to blad
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: 23.12.2025 - 06:01