Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Co tu jest nie tak ?, Ja już nie wiem gdzie jest błąd :/
PlayRoll
post 9.10.2007, 20:35:56
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
webdice
post 9.10.2007, 20:41:49
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 9.10.2007, 23:03:17
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


--------------------
eh, co polska wódka to polska wódka
Go to the top of the page
+Quote Post
krowal
post 10.10.2007, 08:52:14
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.


--------------------
Nawet świnka może wejść na drzewo kiedy jest chwalona :)
Go to the top of the page
+Quote Post
PlayRoll
post 10.10.2007, 18:24:16
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 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
Go to the top of the page
+Quote Post
em1X
post 10.10.2007, 18:36:16
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 ? 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. ?>


--------------------
eh, co polska wódka to polska wódka
Go to the top of the page
+Quote Post
PlayRoll
post 10.10.2007, 19:41:55
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 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

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
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 12.06.2025 - 22:22