Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Formularz
Forum PHP.pl > Forum > Przedszkole
Widmo696
Witam!
mam pytanie czy wie ktoś jak można zrobić żeby przed wysłaniem formularza sprawdzało czy wszystkie pola są wypełnione?

Formularz wygląda tak:

  1. <FORM ACTION="wyslij.php" METHOD="GET" ENCTYPE="text/plain">
  2. <table border="0"><tr><td>
  3. <font style="veranda" size="2">
  4. Imię i Nazwisko: </td> <td>
  5. </font>
  6. <INPUT TYPE="text" NAME="nick" style="border-style: groove; border-color: #000000;border-size: 1"></td></tr> <tr><td>
  7. <font style="veranda" size="2">
  8. Adres email: </td> <td>
  9. </font>
  10. <INPUT TYPE="text" NAME="email" style="border-style: groove; border-color: #000000"></td></tr> <tr><td>
  11. <font style="veranda" size="2">
  12. Treść<BR>wiadomości: </td> <td><TEXTAREA NAME="tresc" COLS="50" ROWS="10" style="border-style: groove; border-color: #000000"></TEXTAREA></td></tr> <BR><BR>
  13. </font>
  14. <td>
  15. <INPUT TYPE="submit" VALUE="Wyślij" style="font-size: 9px; font-family: verdana; BORDER-RIGHT: #BBBBBB 1px solid; BORDER-TOP: #BBBBBB 1px solid; BORDER-LEFT: #BBBBBB 1px solid; BORDER-BOTTOM: #BBBBBB 1px solid; background-color: #FFFFFF; height: 18px;"> <INPUT TYPE="reset" VALUE="Wyczyść" style="font-size: 9px; font-family: verdana; BORDER-RIGHT: #BBBBBB 1px solid; BORDER-TOP: #BBBBBB 1px solid; BORDER-LEFT: #BBBBBB 1px solid; BORDER-BOTTOM: #BBBBBB 1px solid; background-color: #FFFFFF; height: 18px;">
  16. </td>


Z góry dziękuje za pomoc
Lee
musisz przy przycusku Wyślij oddać name="wyslij" albo name="dodaj" itp a potem robisz w pliku wyslij.php
  1. <?php
  2. if (isset($_POST['wyslij']){
  3. $email = $_POST['email'];
  4. if (empty($email)) die ('Nie wypełniłeś pola email');
  5. }
  6. ?>

etc. łapiesz o co chodzi ? warunkiem sprawdzasz
  1. <?php
  2. if (empty($zmienmna_z_dana)) echo 'komunikat';
  3. ?>


p.s: pisane z palca więc gdzieś mogłem błąd popełnić
ikioloak
Pojedyncze pole sprawdzisz w JS tak:
Kod
function check()
{
if (document.forms[0].elements['nick'].value != '') {
    alert('Wypelnij pole nick!');
    return false;
}
}


i przy <form> dasz onsubmit="return check()". Reszte juz powinienes sam wymyslec

@lee ty napisales jak sprawdzic PO wyslaniu, a chodzilo o PRZED.
Lee
@UP
Mój błąd, źle przeczytałem
Widmo696
Raczej rozumiem ale gdzie mam to umieścić? wiem w jakim pliku ale nie wiem w jakim miejscu
Cysiaczek
Np. w nagłówku. Podstawy się kłaniają.
  1. function check()
  2. {
  3. if (document.forms[0].elements['nick'].value != '') {
  4. alert('Wypelnij pole nick!');
  5. return false;
  6. }
  7. }
  8. </head>
Widmo696
Tylko że ja już to w head wstawiałem i jakoś nie sprawdza czy wpisałem czy nie bo nie wpisuje i wysyła poprawnie maila
ikioloak
Nie wiem czy zauwazyles ale machnalem sie w operatorze. Zamiast == dalem !=. Tak caly kod wyglada:
  1. function check()
  2. {
  3. if (document.forms[0].elements['nick'].value == '') {
  4. alert('Wypelnij pole nick!');
  5. return false;
  6. }
  7. return true;
  8. }
  9. </head>
  10. <form onsubmit="return check()">
  11. <input type="text" name="nick">
  12. <input type="submit">
  13. </form>
  14. </body>
  15. </html>
Widmo696
Jestem początkujący dopiero. Umieściłęm to wszystko ale dalej nci nie działa i wysyła maile bez wpisania nicku

tak wygląda moja strona kiedy wpisałem:

  1. <?php
  2. <!-- (C) stat.pl / podstrony -->
  3. <script type="text/javascript">
  4. <!--
  5. document.writeln('<'+'scr'+'ipt type="text/javascript" src="http://s2.hit.stat.pl/_'+(new Date()).getTime()+'/script.js?id=16LlpOuokeprWlQ0cL5Jx6Sc78X6uQM6n0_Y7seJXtL.j7/l=11"></'+'scr'+'ipt>');
  6. //-->
  7. </script>
  8.  
  9. <script>
  10. function check()
  11. {
  12. if (document.forms[0].elements['nick'].value == '') {
  13. alert('podaj swoje imię i nazwisko!');
  14. return false;
  15. }
  16. return true;
  17. }
  18. </script>
  19.  
  20.  
  21. <center><font style="veranda" size="1">
  22. Aby si&#281; skontaktować z administratorem strony, prosimy wypełnić poniższy formularz:<br>
  23. </font></center>
  24.  
  25. <center>
  26. <FORM ACTION="wyslij.php" METHOD="GET" ENCTYPE="text/plain"> 
  27. <table border="0"><tr><td>
  28. <font style="veranda" size="2">
  29. Imi&#281; i Nazwisko: </td> <td>
  30. </font>
  31. <form onsubmit="return check()">
  32. <INPUT TYPE="text" NAME="nick" style="border-style: groove; border-color: #000000;border-size: 1"></td></tr> <tr><td>
  33. <font style="veranda" size="2">
  34. </fontm>
  35. Adres email: </td> <td>
  36. </font>
  37. <INPUT TYPE="text" NAME="email" style="border-style: groove; border-color: #000000"></td></tr> <tr><td>
  38. <font style="veranda" size="2">
  39. Tre&#347;ć<BR>wiadomości: </td> <td><TEXTAREA NAME="tresc" COLS="50" ROWS="10" style="border-style: groove; border-color: #000000"></TEXTAREA></td></tr> <BR><BR> 
  40. </font>
  41. </center>
  42. <td>
  43. <INPUT TYPE="submit" VALUE="Wyślij" style="font-size: 9px; font-family: verdana; BORDER-RIGHT: #BBBBBB 1px solid; BORDER-TOP: #BBBBBB 1px solid; BORDER-LEFT: #BBBBBB 1px solid; BORDER-BOTTOM: #BBBBBB 1px solid; background-color: #FFFFFF; height: 18px;"> <INPUT TYPE="reset" VALUE="Wyczyść" style="font-size: 9px; font-family: verdana; BORDER-RIGHT: #BBBBBB 1px solid; BORDER-TOP: #BBBBBB 1px solid; BORDER-LEFT: #BBBBBB 1px solid; BORDER-BOTTOM: #BBBBBB 1px solid; background-color: #FFFFFF; height: 18px;">
  44. </td>
  45.  
  46. <td>
  47. <font style="veranda" size="1">
  48. *Wszystkie pola s&#261; obowiązkowe <br>
  49. **Ca&#322;kowity zakaz wysyłania spamu!
  50. </font>
  51. </td>
  52. ?>


Nie wiem czy to coś da ale jest to plik inc


Wie ktoś może co jest nie tak?
skowron-line
  1. <FORM ACTION="wyslij.php" METHOD="GET" ENCTYPE="text/plain">
  2. <table border="0"><tr><td>
  3. <font style="veranda" size="2">
  4. Imię i Nazwisko: </td> <td>
  5. </font>
  6. <INPUT TYPE="text" NAME="nick" style="border-style: groove; border-color: #000000;border-size: 1"></td></tr> <tr><td>
  7. <font style="veranda" size="2">
  8. Adres email: </td> <td>
  9. </font>
  10. <INPUT TYPE="text" NAME="email" style="border-style: groove; border-color: #000000"></td></tr> <tr><td>
  11. <font style="veranda" size="2">
  12. Treść<BR>wiadomości: </td> <td><TEXTAREA NAME="tresc" COLS="50" ROWS="10" style="border-style: groove; border-color: #000000"></TEXTAREA></td></tr> <BR><BR>
  13. </font>
  14. <td>
  15. <INPUT TYPE="submit" VALUE="Wyślij" style="font-size: 9px; font-family: verdana; BORDER-RIGHT: #BBBBBB 1px solid; BORDER-TOP: #BBBBBB 1px solid; BORDER-LEFT: #BBBBBB 1px solid; BORDER-BOTTOM: #BBBBBB 1px solid; background-color: #FFFFFF; height: 18px;"> <INPUT TYPE="reset" VALUE="Wyczyść" style="font-size: 9px; font-family: verdana; BORDER-RIGHT: #BBBBBB 1px solid; BORDER-TOP: #BBBBBB 1px solid; BORDER-LEFT: #BBBBBB 1px solid; BORDER-BOTTOM: #BBBBBB 1px solid; background-color: #FFFFFF; height: 18px;">
  16. </td>

  1. <?php
  2. if(empty($_POST['nick'] OR empty($_POST['mail'])){
  3. if(empty($_POST['nick'])){
  4. echo"nie ma nicka";
  5.  }
  6. if(empty($_POST['mail'])){
  7.  echo"nie ma maila";
  8. }
  9. }else{
  10. //wysylanie maila
  11. }
  12. ?>
Widmo696
Nie wiem czy ja jestem taki głupi czy to jest takie trudne
Wygląda to tak i nie działa:


  1. <!-- (C) stat.pl / podstrony -->
  2. <script type="text/javascript">
  3. <!--
  4. document.writeln('<'+'scr'+'ipt type="text/javascript" src="http://s2.hit.stat.pl/_'+(new Date()).getTime()+'/script.js?id=16LlpOuokeprWlQ0cL5Jx6Sc78X6uQM6n0_Y7seJXtL.j7/l=11"></'+'scr'+'ipt>');
  5. //-->
  6. </script>
  7.  
  8.  
  9. <?php
  10. if(empty($_POST['nick'] OR empty($_POST['mail'])){
  11. if(empty($_POST['nick'])){
  12. echo"nie ma nicka";
  13.  }
  14. if(empty($_POST['mail'])){
  15.  echo"nie ma maila";
  16. }
  17. }else{
  18. //wysylanie maila
  19. }
  20. ?>
  21.  
  22.  
  23. <center><font style="veranda" size="1">
  24. Aby się skontaktować z administratorem strony, prosimy wypełnić poniższy formularz:<br>
  25. </font></center>
  26.  
  27. <center>
  28. <FORM ACTION="wyslij.php" METHOD="GET" ENCTYPE="text/plain">
  29. <table border="0"><tr><td>
  30. <font style="veranda" size="2">
  31. Imię i Nazwisko: </td> <td>
  32. </font>
  33. <INPUT TYPE="text" NAME="nick" style="border-style: groove; border-color: #000000;border-size: 1"></td></tr> <tr><td>
  34. <font style="veranda" size="2">
  35. Adres email: </td> <td>
  36. </font>
  37. <INPUT TYPE="text" NAME="email" style="border-style: groove; border-color: #000000"></td></tr> <tr><td>
  38. <font style="veranda" size="2">
  39. Treść<BR>wiadomości: </td> <td><TEXTAREA NAME="tresc" COLS="50" ROWS="10" style="border-style: groove; border-color: #000000"></TEXTAREA></td></tr> <BR><BR>
  40. </font>
  41. </center>
  42. <td>
  43. <INPUT TYPE="submit" VALUE="Wyślij" style="font-size: 9px; font-family: verdana; BORDER-RIGHT: #BBBBBB 1px solid; BORDER-TOP: #BBBBBB 1px solid; BORDER-LEFT: #BBBBBB 1px solid; BORDER-BOTTOM: #BBBBBB 1px solid; background-color: #FFFFFF; height: 18px;"> <INPUT TYPE="reset" VALUE="Wyczyść" style="font-size: 9px; font-family: verdana; BORDER-RIGHT: #BBBBBB 1px solid; BORDER-TOP: #BBBBBB 1px solid; BORDER-LEFT: #BBBBBB 1px solid; BORDER-BOTTOM: #BBBBBB 1px solid; background-color: #FFFFFF; height: 18px;">
  44. </td>
  45.  
  46.  
  47. <td>
  48. <font style="veranda" size="1">
  49. *Wszystkie pola są obowiązkowe <br>
  50. **Całkowity zakaz wysyłania spamu!
  51. </font>
  52. </td>




Zwraca mi taki komunikat:

Cytat
Parse error: syntax error, unexpected T_LOGICAL_OR, expecting ')' in /home/widmo/domains/vof.e12.pl/public_html/strony/kontakt.inc on line 9
ikioloak
Widmo kod ktory ci podalem to jest prawie gotowiec - wystarczy ze nie bedziesz bezmyslnie kopiowal tylko zastanowisz sie chwile co gdzie wrzucic. skowron-line dal walidacje po wyslaniu formularza, a nie przed.
Widmo696
Ale ja próbowałem dawać na dół wtedy jest ten sam błąd tylko że inną linijke wskazuje
A jak zrobiłem ten prawie gotowiec to napisałem u góry że nie działał
skowron-line
brakuje nawiasu w pierwszym warunku if
  1. <?php
  2. if(empty($_POST['nick'] OR empty($_POST['mail'])){
  3. ?>

ma byc
  1. <?php
  2. if(empty($_POST['nick']) OR empty($_POST['mail'])){
  3. ?>

moj blad
Widmo696
Gdy dodaje ten nawias mi pisze w formularzu to co powinno pisac jak się nie wpisze danych, a mail i tak wysyła


  1. <!-- (C) stat.pl / podstrony -->
  2. <script type="text/javascript">
  3. <!--
  4. document.writeln('<'+'scr'+'ipt type="text/javascript" src="http://s2.hit.stat.pl/_'+(new Date()).getTime()+'/script.js?id=16LlpOuokeprWlQ0cL5Jx6Sc78X6uQM6n0_Y7seJXtL.j7/l=11"></'+'scr'+'ipt>');
  5. //-->
  6.  
  7. <center><font style="veranda" size="1">
  8. Aby się skontaktować z administratorem strony, prosimy wypełnić poniższy formularz:<br>
  9.  
  10. <FORM ACTION="wyslij.php" METHOD="GET" ENCTYPE="text/plain">
  11. <table border="0"><tr><td>
  12. <font style="veranda" size="2">
  13. Imię i Nazwisko: </td> <td>
  14. </font>
  15. <form onsubmit="return check()">
  16. <INPUT TYPE="text" NAME="nick" style="border-style: groove; border-color: #000000;border-size: 1"></td></tr> <tr><td>
  17. <font style="veranda" size="2">
  18. </fontm>
  19. Adres email: </td> <td>
  20. </font>
  21. <INPUT TYPE="text" NAME="email" style="border-style: groove; border-color: #000000"></td></tr> <tr><td>
  22. <font style="veranda" size="2">
  23. Treść<BR>wiadomości: </td> <td><TEXTAREA NAME="tresc" COLS="50" ROWS="10" style="border-style: groove; border-color: #000000"></TEXTAREA></td></tr> <BR><BR>
  24. </font>
  25. <td>
  26. <INPUT TYPE="submit" VALUE="Wyślij" style="font-size: 9px; font-family: verdana; BORDER-RIGHT: #BBBBBB 1px solid; BORDER-TOP: #BBBBBB 1px solid; BORDER-LEFT: #BBBBBB 1px solid; BORDER-BOTTOM: #BBBBBB 1px solid; background-color: #FFFFFF; height: 18px;"> <INPUT TYPE="reset" VALUE="Wyczyść" style="font-size: 9px; font-family: verdana; BORDER-RIGHT: #BBBBBB 1px solid; BORDER-TOP: #BBBBBB 1px solid; BORDER-LEFT: #BBBBBB 1px solid; BORDER-BOTTOM: #BBBBBB 1px solid; background-color: #FFFFFF; height: 18px;">
  27. </td>
  28.  
  29. <td>
  30. <font style="veranda" size="1">
  31. *Wszystkie pola są obowiązkowe <br>
  32. **Całkowity zakaz wysyłania spamu!
  33. </font>
  34. </td>
  35.  
  36.  
  37. <?php
  38. if(empty($_POST['nick']) OR empty($_POST['mail'])){
  39. if(empty($_POST['nick'])){
  40. echo"Proszę podać Imię i Nazwisko";
  41. }
  42. if(empty($_POST['mail'])){
  43. echo"Proszę podać adres email";
  44. }
  45. }else{
  46. //wysylanie maila
  47. }
  48. ?>
skowron-line
  1. <?php
  2. if(empty($_POST['nick']) OR empty($_POST['mail'])){
  3. if(empty($_POST['nick'])){
  4. echo"Proszę podać Imię i Nazwisko";
  5. }
  6. if(empty($_POST['mail'])){
  7. echo"Proszę podać adres email";
  8. }
  9. }else{
  10. //wysylanie maila
  11. }
  12. ?>

daj tak tego exit on chyba zatrzymuje dalsze wykonanie sie kodu wiec nie wysle
ale niewiem na 100%
Lonas
Ja bym to zrobił tak

  1. <?php
  2. $nick = $_POST['nick'];
  3.  
  4.  
  5.  
  6. if(isset($nick){
  7. //wysylanie maila
  8. }else{
  9. echo"Proszę podać Imię i Nazwisko";
  10. }
  11. ?>
Widmo696
skowron-line to niestety w ogóle nie działa pokazuje mi się tylko napis na nad formularzem żeby wypełnić te pola ale po co to pisze skoro nic nie wysłąłęm a poza tym i tak wysyła bez sprawdzenia

Lonas niestety gdy to dodam mam błąd w tej linijce:

  1. <?php
  2. if(isset($nick){
  3. ?>
Lonas
Zapomniałęm o nawiasie

  1. <?php
  2. $nick = $_POST['nick'];
  3.  
  4.  
  5.  
  6. if(isset($nick)){
  7. //wysylanie maila
  8. }else{
  9. echo"Proszę podać Imię i Nazwisko";
  10. }
  11. ?>
Widmo696
Niestety dalej nie działa
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.