Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php] Sprawdzanie wypełnienia formularza
-Himp-
post 30.05.2006, 15:04:54
Post #1





Goście







Sprawdzam to w taki sposób
  1. <?php
  2. if(!empty($add_text))
  3. {
  4. if(empty($add_text) or empty($add_title) or empty($add_email) or empty($add_nick))
  5. {
  6. ?>

Gdy zostawie puste pote tekst strona się tylko przeładowuje. Natomiast gdy dodam else i wpisze w nim wyświetlanie błędu. Komunikat jest wyświetlany cały czas. Jak zrobić tak, żeby wartość zmiennej $add_text była sprawdzana dopiero po kliknięciu na wyslij lub jak inaczej to sprawdzać?
Go to the top of the page
+Quote Post
Cysiaczek
post 30.05.2006, 15:17:18
Post #2





Grupa: Moderatorzy
Postów: 4 465
Pomógł: 137
Dołączył: 26.03.2004
Skąd: Gorzów Wlkp.




Możesz troszkę jaśniej?


--------------------
To think for yourself you must question authority and
learn how to put yourself in a state of vulnerable, open-mindedness;
chaotic, confused, vulnerability, to inform yourself.
Think for yourself. Question authority.
Go to the top of the page
+Quote Post
-Gość-
post 30.05.2006, 15:39:54
Post #3





Goście







Nie rozumiem, po co zagniezdzasz 2 ify ...
Moze dlatego, ze nie rozumiem co chcesz zrobic.
Najprostsze sprawdzenie formularza mozesz zrobic np. tak:

  1. <?php
  2. $add_test=$_POST['add_text']; 
  3. if ($add_text !="" ) {
  4. blablabla } 
  5. else { 
  6. echo 'Nie wypelniono pol'; }
  7. ?>
Go to the top of the page
+Quote Post
-kg-
post 30.05.2006, 19:37:47
Post #4





Goście







Kod

  1. <?php
  2. if(empty($add_text) or empty($add_title) or empty($add_email) or empty($add_nick))
  3. ?>


wykonuje się tylko w przypadku, gdy zmienna $add_text nie jest pusta, więc jeśli było coś w niej wpisane to sprawdzanie pozostałych pól, co prawdopodobnie chcesz zrobić, nie jest w ogóle wykonywane.

Cytat
Jak zrobić tak, żeby wartość zmiennej $add_text była sprawdzana dopiero po kliknięciu na wyslij lub jak inaczej to sprawdzać?

Domyślam się że chodzi o to żeby część kodu (a konkretnie sprawdzanie pól) wykonywała się tylko w przypadku wysłania formularza, a nie podczas jego wyświetlania. W takim przypadku najprościej zrobić to w taki sposób:

  1. <?php
  2. if (!empty($_POST['submit']) {
  3. // tutaj sprawdzanie pozostalych zmiennych z tablicy $_POST
  4. }
  5. ?>


gdzie 'submit' jest nazwą przycisku którego używasz do wysłania formularza (<input TYPE="submit" NAME="submit" VALUE="Wyślij formularz">).
Go to the top of the page
+Quote Post
-Himp-
post 30.05.2006, 21:06:45
Post #5





Goście







No tak dzięki smile.gif Ale jeśli zrobię tak...
  1. <?php
  2. if (!empty($_POST['submit']) {
  3. // tutaj sprawdzanie pozostalych zmiennych z tablicy $_POST
  4. }
  5. ?>

i kliknę na wyślij (nie wpisując nic do formularza) to zmienna
Cytat
$_POST['submit']
będzie pusta, a co za tym idzie nie wyświetli sie komunikat 'wypełnij wszytskie pola' smile.gif Natomiast dodająć else jestem skazany na wieczne wyswietlanie się komunikatu biggrin.gif
Go to the top of the page
+Quote Post
KG-
post 30.05.2006, 21:13:25
Post #6





Grupa: Zarejestrowani
Postów: 61
Pomógł: 0
Dołączył: 30.05.2006

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


Mylisz się, w tym przypadku zmienna $_POST['submit'] będzie zawsze ustawiona po kliknięciu na przycisk, nawet jeśli cały formularz jest pusty (pod warunkiem że celem formularza jest ten plik i że nazwa przycisku ma wartość (w tym akurat przykładzie) "submit").

Ten post edytował KG- 30.05.2006, 21:14:33
Go to the top of the page
+Quote Post
-Himp-
post 30.05.2006, 21:42:02
Post #7





Goście







A jednak miałeś rację smile.gif Wielkie dzięki smile.gif
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: 21.06.2025 - 01:43