Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] Konczenie funkcji if
redelek
post 12.08.2008, 11:49:32
Post #1





Grupa: Zarejestrowani
Postów: 658
Pomógł: 37
Dołączył: 4.06.2005
Skąd: Wawa

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


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


--------------------
Pozdrawiam
Piotrek R
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
golaod
post 12.08.2008, 12:00:37
Post #2





Grupa: Zarejestrowani
Postów: 419
Pomógł: 42
Dołączył: 12.08.2008
Skąd: Wrocław

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


  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. ?>
Go to the top of the page
+Quote Post
redelek
post 12.08.2008, 12:01:43
Post #3





Grupa: Zarejestrowani
Postów: 658
Pomógł: 37
Dołączył: 4.06.2005
Skąd: Wawa

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


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ć ?


--------------------
Pozdrawiam
Piotrek R
Go to the top of the page
+Quote Post
webasek
post 12.08.2008, 12:03:26
Post #4





Grupa: Zarejestrowani
Postów: 274
Pomógł: 35
Dołączył: 18.07.2008
Skąd: Kielce

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


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.


--------------------
"Tylko dwie rzeczy są nieskończone: wszechświat oraz ludzka głupota,
choć nie jestem pewien co do tej pierwszej." Albert Einstein

Wirtualny Rynek Predykcyjny
Go to the top of the page
+Quote Post
ferrero2
post 12.08.2008, 12:04:33
Post #5





Grupa: Zarejestrowani
Postów: 171
Pomógł: 32
Dołączył: 5.08.2008
Skąd: Lublin

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


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


--------------------
---------------------------
"Jeżeli trzeci dzień z rzędu nie chce Ci się pracować tzn że dziś jest ŚRODA !
Algorytmy , Programowanie , Tworzenie WWW - SPRAWDŹ
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: 19.07.2025 - 09:09