Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Konczenie funkcji if
Forum PHP.pl > Forum > Przedszkole
redelek
Witam,

Jak delikatnie zakończyć sprawdzanie czy dane są poprawne.

Mam taki kod

  1. <?php
  2. if(isset($_POST['wyslij'])){
  3.  
  4. $album=$_POST['f_album'];
  5. $dir_album=$fotki_dir.$album;
  6. $autor=$_POST['f_autor'];
  7. $opis=$_POST['f_opis'];
  8. $plik_nazwa = $_FILES['f_plik']['name'];
  9. $plik_nazwa = $fotki_dir.$album.'/'.$plik_nazwa;
  10. $plik_tmp = $_FILES['f_plik']['tmp_name'];
  11. $plik_pojemnosc = $_FILES['f_plik']['size'];
  12. $plik_typ = $_FILES['f_plik']['type'];
  13. $dt_dodania = $_POST['f_data'];
  14. $poj_MB=round(($plik_pojemnosc/1048576),2).'MB';  
  15. if ($plik_pojemnosc <= 0)
  16. {
  17. echo ("Plik jest pusty nie mogę go przesłać<br />");
  18. echo "<a href=index.php>Wracaj ...</a>";
  19. }
  20.  
  21.  
  22. if (file_exists($plik_nazwa))
  23. { 
  24. echo ("Plik o takiej nazwie jest już na serwerku <b><i>".$plik_nazwa."</b></i><br />");
  25.  
  26. }
  27. if (is_dir($dir_album)) {
  28. echo "Taki album już istnieje";
  29. } else {
  30. //echo "brak katalogu!";
  31. mkdir ($dir_album, 0755);
  32. }
  33.  
  34. @move_uploaded_file($plik_tmp, $plik_nazwa);
  35. mysql_select_db('baza');
  36. $zapytanie=mysql_query("insert into image_album values('','$album','$plik_nazwa','$opis', '$autor', '$data_dodania', '$poj_MB')") or die (mysql_error());
  37.  
  38.  
  39. }else {
  40. // tu wyświetla się formularz
  41. ?>


Problem jest w tym, że pomimo , że plik lub album istnieje wykonywany jest upload pliku i dodanie do bazy danych.
Niby jest to oczywiste w tym przypadku, ale czy można to jakoś zmienić. Chodzi mi o to , że jeśli plik istnieje to skrypt zakończy działanie, ale reszta strony wczyta się bez problemów( czyli stopka i inne menu).

Możecie mnie naprowadzić na właściwy tor?

Pozdrawiam
Redelek
golaod
  1. <?php
  2. if (file_exists($plik_nazwa))
  3. { 
  4. echo ("Plik o takiej nazwie jest już na serwerku <b><i>".$plik_nazwa."</b></i><br />");
  5. }
  6. else
  7. {
  8. @move_uploaded_file($plik_tmp, $plik_nazwa);
  9. mysql_select_db('baza');
  10. $zapytanie=mysql_query("insert into image_album values('','$album','$plik_nazwa','$opis', '$autor', '$data_dodania', '$poj_MB')") or die (mysql_error());
  11. }
  12. ?>
redelek
Oki znalazłem rozwiązanie.
Może i nie fajne ale działa.

do każdego if dopisałem $error++
na końcu dorobiłem

  1. <?php
  2. if ($error==0){
  3. @move_uploaded_file($plik_tmp, $plik_nazwa);
  4. mysql_select_db('baza');
  5. $zapytanie=mysql_query("insert into image_album values('','$album','$plik_nazwa','$opis', '$autor', '$data_dodania', '$poj_MB')") or die (mysql_error());}
  6. ?>


Czy takie rozwiązanie jest dobre i czy może być ?
webasek
dodaje bo nie ma przerwania if w

  1. <?php
  2. if (file_exists($plik_nazwa))
  3. { 
  4. echo ("Plik o takiej nazwie jest już na serwerku <b><i>".$plik_nazwa."</b></i><br />");
  5.  
  6. }
  7. if (is_dir($dir_album)) {
  8. echo "Taki album już istnieje";
  9. } else {
  10. //echo "brak katalogu!";
  11. mkdir ($dir_album, 0755);
  12. }
  13.  
  14. @move_uploaded_file($plik_tmp, $plik_nazwa);
  15. mysql_select_db('baza');
  16. ?>


wypisze wszystko co trzeba ale tez doda. Można ifami się pobawić i else if lub wprowadzić zmienną, która będzie przechowywać 1 jeśli ma dodać i zero jeśli nie. I sprawdzać przy dodawaniu czy zero czy jeden. Zmienna ustawiana w

  1. <?php
  2. if (file_exists($plik_nazwa))
  3. { 
  4. echo ("Plik o takiej nazwie jest już na serwerku <b><i>".$plik_nazwa."</b></i><br />");
  5.  $zmienna = 0;
  6.  
  7. }
  8. ?>


oraz
  1. <?php
  2. if (is_dir($dir_album)) {
  3. echo "Taki album już istnieje";
  4.  $zmienna = 0;
  5. }
  6. ?>


i potem sprawdzanie.
ferrero2
Używaj ELSEIF
a tak pozatym to przecież instrukcję

Kod
  @move_uploaded_file($plik_tmp, $plik_nazwa);
  mysql_select_db('baza');
  $zapytanie=mysql_query("insert into image_album values('','$album','$plik_nazwa','$opis', '$autor', '$data_dodania', '$poj_MB')") or die (mysql_error());


możesz wsadzić w if-a i po sprawie

Kod
...
        if (is_dir($dir_album)) {
                echo "Taki album już istnieje";
        } else {
            //echo "brak katalogu!";
            mkdir ($dir_album, 0755);
      @move_uploaded_file($plik_tmp, $plik_nazwa);
  mysql_select_db('baza');
  $zapytanie=mysql_query("insert into image_album values('','$album','$plik_nazwa','$opis', '$autor', '$data_dodania', '$poj_MB')") or die (mysql_error());

        }

...


Niewiem po co CI ten znak tłumienia ?


Pozdrawiam
Mariusz
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.