Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: taki mały problem z php
Forum PHP.pl > Forum > PHP
integer000
  1. <?php 
  2.  
  3. $pole1 = trim($_POST['pole1']); 
  4. $pole2 = trim($_POST['pole2']); 
  5.  
  6. if(empty($pole1) and empty($pole2)) { 
  7.  
  8. // formularz 
  9. echo '<form action="" method="post"> 
  10. link: <input type="text" name="pole2" value="http://" style="width: 200px;" /><br /> 
  11. nazwa: <input type="text" name="pole1" style="width: 200px;" /><br /> 
  12. <input type="submit" value="Zapisz" /> <input type="reset" value="Reset" /> 
  13. </form>'; 
  14.  
  15. } 
  16.  
  17.  if ($pole1 != "") { 
  18.  // dane pochodzace z formularza 
  19. $dane = $pole1."`".$pole2."n"; 
  20. // przypisanie zmniennej $file nazwy pliku 
  21. $file = "baza.txt"; 
  22. // uchwyt pliku, otwarcie do dopisania 
  23. $fp = fopen($file, "a"); 
  24. // blokada pliku do zapisu 
  25. flock($fp, 2); 
  26. // zapisanie danych do pliku 
  27. fwrite($fp, $dane); 
  28. // odblokowanie pliku 
  29. flock($fp, 3); 
  30. // zamkniecie pliku 
  31. fclose($fp); 
  32.  
  33. echo "Dane zostaly zapisane!<br />"; 
  34. echo "<a href="index.php">Zobacz wpisane dane</a>"; 
  35.  
  36. }
  37.  else if ($pole1 = "null") { 
  38. echo "Karta jest pusta "; 
  39. echo "<a href="index.php">wróc</a>"; 
  40. }  
  41.  
  42. ?> <br><br><br> 
  43. <?php 
  44.  
  45. echo "<table border=1 cellspacing=0 cellpadding=0 width=550px>"; 
  46.  
  47. // wczytanie zawartosci pliku do tablicy 
  48. $file = file("baza.txt"); 
  49. // przechodzimy przez tablice za pomoca petli foreach 
  50. foreach($file as $value) { 
  51. // rozbijamy poszczególne linie na czesci 
  52. $exp = explode("`",$value); 
  53. // wyswietlamy rozbity tekst 
  54. echo "<tr><td> <a href=$exp[1]>" .$exp[0]. "</a></td></tr>"; 
  55. } 
  56.  
  57. echo "</table>"; 
  58. ?>


kiedy w pole 1 i 2 jest wpisany jakiś tekst to po naciśnięciu przycisku zapisz pojawia się "Dane zostały zapisane".

ale kiedy w polu 1 nie ma nic to po naciśnięciu przycisku ma się pojawiać "Karta jest pusta", ale dopiero po naciśnięciu przycisku a w tym kodzie jest to widoczne cały czas, jak tylko się załaduje strona.


jak zmodyfikować ten kod tak że jeśli w polach nie jest nic wpisane i naciśnie się zapisz to żeby pojawiał się napis "karta jest pusta" i żeby do poliu baza.txt nic się nie dodawało. dopiero jeśli się coś wpisze w pole "pole1" i "pole2" i naciśnie przycisk to ma pojawiać się napis "Dane zostały zapisane" i wartości dodawały się do pliku baza.txt.
zbig13
  1. <?php
  2.  else if ($pole1 = "null") { 
  3. ?>


Przeanalizuj sobie dokładnie tą linię. Ty przypisujesz do zmiennej $pole1 wartość null, a nie sprawdzasz czy $pole == NULL. Pamiętaj, że: aby porównać czy zmienna ma określoną wartość trzeba użyć dwóch znaków ==.
A poza tym lepiej sprawdzaj wypełnienie pola funkcją empty" title="Zobacz w manualu php" target="_manual().

Zrób tak:

  1. <?php
  2.  
  3.  else if ( empty($pole1) ) { 
  4.  
  5. ?>

albo jak chcesz zostać przy swoim przykładzie:
  1. <?php
  2.  
  3.  else if ($pole1 == null) { 
  4.  
  5. ?>

A i nie stawiaj NULL w cudzysłowach " ", bo wtedy php interpretuje to jako ciąg znaków.
integer000
Poprawiłęm, ale nadal jak się załaduje strona są widoczne:
- 2 pola tekstowe
- 2 przyciski
- napis "Karta jest pusta wróc"
- tabelka

a napis "Karta jest pusta wróc " powinien być widoczny tylko wtedy jak się naciśnie przycisk Zapisz a w polach nic niema!
revyag
Po co Ci ten if przy else ?
Jeśli pierwszy warunek nie jest spełniony to znaczy że pole jest puste, więc nie trzeba dodatkowo sprawdzać czy jest null.
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.