Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Co tu jest nie tak ?
Forum PHP.pl > Forum > PHP
PlayRoll
Mam tu pewnien skrypt:

  1. <?php
  2.  
  3. if ((empty($_POST['name']) or empty($_POST['nkatalog']) or empty($_POST['lzdj'])) and !empty($_POST['submit'])){
  4.  
  5. echo" Formularz 1 <br>
  6. <form method=\"post\">
  7. Nazwa galerii :<input type=\"text\" name=\"name\" value=\"".$_POST['name']."\" maxlength=\"30\"/> - dowolny tekst do 30 znaków<br><br>
  8. Nazwa katalogu:<input type=\"text\" name=\"nkatalog\" value=\"".$_POST['nkatalog']."\" maxlength=\"15\"/> - wyłącznie małe znaki, bez polskich liter i spacji<br><br>
  9. Liczba Zdjęć :<input type=\"text\" name=\"lzdj\" value=\"".$_POST['lzdj']."\" maxlength=\"3\" size=\"3\"/><br><br>
  10. <input type=\"submit\" value=\"Wykonaj\"
  11.  
  12. ";
  13. }
  14.  
  15. elseif (empty($_POST['name']) or empty($_POST['nkatalog']) or empty($_POST['lzdj'])) {
  16.  
  17. echo" Formularz 2 <br>
  18. <form method=\"post\">
  19. Nazwa galerii :<input type=\"text\" name=\"name\" maxlength=\"30\"/> - dowolny tekst do 30 znaków<br><br>
  20. Nazwa katalogu:<input type=\"text\" name=\"nkatalog\" maxlength=\"15\"/> - wyłącznie małe znaki, bez polskich liter i spacji<br><br>
  21. Liczba Zdjęć :<input type=\"text\" name=\"lzdj\" maxlength=\"3\" size=\"3\"/><br><br>
  22. <input type=\"submit\" value=\"Wykonaj\"
  23.  
  24. ";
  25.  
  26. }
  27.  
  28. elseif (!empty($_POST['name']) && !empty($_POST['nkatalog']) && !empty($_POST['lzdj'])) {
  29.  
  30. echo "wszystko OK";
  31.  
  32. };
  33.  
  34.  
  35.  
  36.  
  37.  
  38. ?>



Ma on w razie kiedy wszystkie zmienne POST są puste wyświetlić formularz 2, a kiedy jakaś zmienna nie zostanie podana ma on wyświetlić formularz nr.1. A kiedy wszystko będzie podane ma wykonać polecenie które będą w miejscu gdzie jest teraz "wszystko OK". ale nie chce za zadne skarby świata wyświetlić 1 formularza kiedy nie wszystkie dane sa podane a reszta działa dobrze. Wie ktoś co jest nie tak?
webdice
W pierwszej instrukcji zamiast OR daj AND.

EDIT: Odwrotnie, w drugiej instrukcji muszą być same AND.
em1X
  1. <input type="submit" value="wykonaj">


Przecież pola typu submit nie są wysyłane do tablicy POST. To nie jest żadne pole tylko zwykły przycisk. Po co chcesz sprawdzać coś co nie istnieje ?

Chryste, ale kombinuesz. Tak nie lepiej? :

  1. <?php
  2. $name =& $_POST['name'];
  3. $katalog =& $_POST['nkatalog'];
  4. $zdj =& $_POST['lzdj'];
  5.  
  6. if ($name == "" || $katalog == "" || $zdj == "")
  7. {
  8.  print '<form method="post">
  9.  Nazwa galerii :<input type="text" name="name" value="'.$name.'" maxlength="30" /> - dowolny tekst do 30 znaków<br><br>
  10.  Nazwa katalogu:<input type="text" name="nkatalog" value="'.$katalog.'" maxlength="15" /> - wyłącznie małe znaki, bez polskich liter i spacji<br><br>
  11.  Liczba Zdjęć :<input type="text" name="lzdj" value="'.$zdj.'" maxlength="3" size="3" /><br><br>
  12.  <input type="submit" value="Wykonaj" />
  13.  print ';
  14.  
  15.  return;
  16. }
  17.  
  18. print "Wszystko ok!";
  19. ?>
krowal
Cytat
Przecież pola typu submit nie są wysyłane do tablicy POST. To nie jest żadne pole tylko zwykły przycisk. Po co chcesz sprawdzać coś co nie istnieje ?


Mylisz się, jeśli tylko nadasz takiemu polu nazwę (name="costam") to zostanie wysłane. Wykorzystuje się to gdy chcesz zrobić dwa przyciski submitujące w jednym formularzu i później chcesz rozróżnić który był wciśnięty.
PlayRoll
Cytat(krowal @ 10.10.2007, 09:52:14 ) *
Mylisz się, jeśli tylko nadasz takiemu polu nazwę (name="costam") to zostanie wysłane. Wykorzystuje się to gdy chcesz zrobić dwa przyciski submitujące w jednym formularzu i później chcesz rozróżnić który był wciśnięty.


Dzięki wielkie bo już wiem czego brakuje, nazwy przycisku wysyłania smile.gif

em1X podoba mi sie twój skrypt dlatego go zastosuje ale lekko go ubogacę ponieważ chcę aby podczas braku jednej ze zmiennych i istnieniu "submit" wyświetliło taki tekst: "wszystkie pola muszą być podane!"

Dziękuje za pomoc wszystkim smile.gif
em1X
po co kombinujesz z tym submit ? sciana.gif sciana.gif sciana.gif

  1. <?php
  2. $name =& $_POST['name'];
  3. $katalog =& $_POST['nkatalog'];
  4. $zdj =& $_POST['lzdj'];
  5.  
  6. if ($name == "" || $katalog == "" || $zdj == "")
  7. {
  8.  if (count($_POST) != 0)
  9. print 'Wypełnij wszystkie pola!<br><br>';
  10.  
  11.  print '<form method="post">
  12.  Nazwa galerii :<input type="text" name="name" value="'.$name.'" maxlength="30" /> - dowolny tekst do 30 znaków<br><br>
  13.  Nazwa katalogu:<input type="text" name="nkatalog" value="'.$katalog.'" maxlength="15" /> - wyłącznie małe znaki, bez polskich liter i spacji<br><br>
  14.  Liczba Zdjęć :<input type="text" name="lzdj" value="'.$zdj.'" maxlength="3" size="3" /><br><br>
  15.  <input type="submit" value="Wykonaj" />
  16.  print ';
  17.  
  18.  return;
  19. }
  20.  
  21. print "Wszystko ok!";
  22. ?>
PlayRoll
Cytat(em1X @ 10.10.2007, 19:36:16 ) *
po co kombinujesz z tym submit ? sciana.gif sciana.gif sciana.gif


Po to:
  1. <?php
  2. $name =& $_POST['name'];
  3. $katalog =& $_POST['nkatalog'];
  4. $zdj =& $_POST['lzdj'];
  5. $ok = 0;
  6. $katname = ereg_replace (" ","_",$katalog);
  7.  
  8. for ($x = 1; $x < 100; $x++)
  9. {
  10.  
  11. if ($zdj == $x) $ok = 1;
  12.  
  13. };
  14.  
  15.  
  16. if ($name == "" || $katalog == "" || $zdj == "" || $ok == 0 )
  17. {
  18.  print '<center><table><form method="post"><tr><td>
  19.  Nazwa galerii :</td><td><input type="text" name="name" value="'.$name.'" maxlength="30" /></td><td> - dowolny tekst do 30 znaków</td></tr>
  20.  <tr><td>Nazwa katalogu:</td><td><input type="text" name="nkatalog" value="'.$katalog.'" maxlength="15" /></td><td> - wyłącznie małe znaki, bez polskich liter i spacji</td></tr>
  21.  <tr><td>Liczba Zdjęć: </td><td><input type="text" name="lzdj" value="'.$zdj.'" maxlength="3" size="3" /></td><td>';
  22.  
  23.  if (($ok == 0) and !empty($_POST['submit'])) {
  24.  
  25.  print'<font color=red>-Liczba zdjęć musi być cyfrą z przedziału od 1 do 99</font>';
  26.  
  27.  };
  28.  print'</table>';
  29.  
  30.  if ((empty($name) or empty($katalog) or empty ($zdj)) and !empty($_POST['submit']))
  31.  {
  32.  
  33. echo "<br><font color=red>Wypełnij wszystkie pola!<br>";
  34.  
  35.  };
  36.  
  37.  
  38.  print'
  39.  <input type="submit" name ="submit" value="Wykonaj" />
  40.  ';
  41.  
  42.  
  43.  
  44.  return;
  45. }
  46.  
  47. print "Wszystko ok!";
  48. ?>


Może da się to i winny sposób osiągnąć ale jak dla mnie ten jest całkiem OK biggrin.gif
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.