Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] Sprawdzanie zawartości formularza
oomaster
post 27.01.2011, 14:06:50
Post #1





Grupa: Zarejestrowani
Postów: 305
Pomógł: 3
Dołączył: 4.08.2006
Skąd: GDA

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


Witam,

Mam formularz w nim różne pola i pole do uploadu zdjęcia. Chciałbym zeby skrypt sprawdzał czy zdjęcie zostało dodane lub nie i odpowiedni nic nie robił lub nadpisywał zdjęcie.

Oto moje rozwiązanie:

  1. if(!empty($_FILES['foto']['name'])) {
  2. unlink("img/".$fotos);
  3. if($_FILES['foto']['error'] != 0){
  4. echo '<div class="alert_error">Zdjęcie nie zostało załadowane.</div><br/>';
  5. } else {
  6. move_uploaded_file($_FILES['foto']['tmp_name'],"../img/".$los.$_FILES['foto']['name']);
  7. $name = $los.$_FILES['foto']['name'];
  8. }
  9. }

  1. <input type="file" name="foto" />


Ale coś te !empty nie działa bo czy jest zdjęcie czy go nie ma to i tak skrypt się wykonuje?
Go to the top of the page
+Quote Post
Robert007
post 27.01.2011, 14:20:41
Post #2





Grupa: Zarejestrowani
Postów: 167
Pomógł: 2
Dołączył: 1.07.2009
Skąd: Poznań

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


zamast empty to uzyj isset

empty wykonuje się ponieważ zmienna istnieje. A isset jedynie jak jest zawartość
Go to the top of the page
+Quote Post
oomaster
post 27.01.2011, 14:24:02
Post #3





Grupa: Zarejestrowani
Postów: 305
Pomógł: 3
Dołączył: 4.08.2006
Skąd: GDA

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


  1. if(isset($_FILES['foto']['name'])) {


Znowu to samo :-/

Ten post edytował oomaster 27.01.2011, 14:24:28
Go to the top of the page
+Quote Post
nospor
post 27.01.2011, 14:28:58
Post #4





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




zrob sobie
print_r($_FILES)
a swiat stanie się piekniejszy...


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
gorden
post 27.01.2011, 14:32:17
Post #5





Grupa: Zarejestrowani
Postów: 486
Pomógł: 101
Dołączył: 27.06.2010

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


Dodaj do formularza submit (jeśli go masz, nadaj name):
  1. <input type=submit name="upload_submit">


Warunek:
  1. if(isset($_POST['upload_submit']) && $_POST['foto']['name'] !== null) {


Ten post edytował gorden 27.01.2011, 14:33:06
Go to the top of the page
+Quote Post
oomaster
post 28.01.2011, 11:15:31
Post #6





Grupa: Zarejestrowani
Postów: 305
Pomógł: 3
Dołączył: 4.08.2006
Skąd: GDA

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


Problem dalej jest. Najpier wyświetlam czy $_FILES['foto']['name'] coś ma w sobie i ma jakąś treść a mimo to warunek if nie działa, dlaczego?

  1. echo $_FILES['foto']['name'];
  2. if($_FILES['foto']['name']==1) { echo"ok"; }


Dla przykładu tworzę kod:

  1. $ok="caos";
  2. if($ok == 1){ echo"ok"; } else { echo"bad";}


I o dziwo ciągle wyświetla bad !? A powinno ok przecież. Dlaczego?
Go to the top of the page
+Quote Post
nospor
post 28.01.2011, 11:18:47
Post #7





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




blinksmiley.gif
A od kiedy caos == 1?

Jak juz cos to tak:
if($ok){ echo"ok"; } else { echo"bad";}


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
cojack
post 28.01.2011, 11:30:33
Post #8





Grupa: Zarejestrowani
Postów: 898
Pomógł: 80
Dołączył: 31.05.2008

Ostrzeżenie: (20%)
X----


Jeżeli posiadasz w formularzu input typu file, to zawsze po wysłaniu bez znaczenia czy wybrałeś plik czy nie będziesz posiadał tablice $_FILES, musisz sprawdzić czy zostało wysłane:

  1. if(!is_uploaded_file($_FILES['nazwa_pola_z_formularza']['tmp_name']) || ($_FILES['nazwa_pola_z_formularza']['error'] !== UPLOAD_ERR_OK))
  2. {
  3. die('Nie można było wysłać pliku na serwer');
  4. }


To jest w przypadku jeżeli plik jest wymagany w formularzu, dostosuj to sobie jak chcesz.

Ten post edytował cojack 28.01.2011, 11:31:28


--------------------
cojack blog - mój blog (na jakiś czas off).
"jak czegoś nie wiem, to nie myślę że wiem" - moja domena
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 01:31