Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Co tu jest nie tak ?, Ja już nie wiem gdzie jest błąd :/
PlayRoll
post
Post #1





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 28.07.2007

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


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?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 6)
webdice
post
Post #2


Developer


Grupa: Moderatorzy
Postów: 3 045
Pomógł: 290
Dołączył: 20.01.2007




W pierwszej instrukcji zamiast OR daj AND.

EDIT: Odwrotnie, w drugiej instrukcji muszą być same AND.

Ten post edytował webdicepl 9.10.2007, 20:43:00
Go to the top of the page
+Quote Post
em1X
post
Post #3





Grupa: Zarejestrowani
Postów: 984
Pomógł: 41
Dołączył: 16.03.2002
Skąd: Płock

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


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


Ten post edytował em1X 9.10.2007, 23:11:54
Go to the top of the page
+Quote Post
krowal
post
Post #4





Grupa: Zarejestrowani
Postów: 561
Pomógł: 72
Dołączył: 15.11.2006

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


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.
Go to the top of the page
+Quote Post
PlayRoll
post
Post #5





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 28.07.2007

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


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 (IMG:http://forum.php.pl/style_emoticons/default/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 (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
em1X
post
Post #6





Grupa: Zarejestrowani
Postów: 984
Pomógł: 41
Dołączył: 16.03.2002
Skąd: Płock

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


po co kombinujesz z tym submit ? (IMG:http://forum.php.pl/style_emoticons/default/sciana.gif) (IMG:http://forum.php.pl/style_emoticons/default/sciana.gif) (IMG:http://forum.php.pl/style_emoticons/default/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. ?>
Go to the top of the page
+Quote Post
PlayRoll
post
Post #7





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 28.07.2007

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


Cytat(em1X @ 10.10.2007, 19:36:16 ) *


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 (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif)

Ten post edytował PlayRoll 10.10.2007, 19:51:31
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 23.08.2025 - 16:07