Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Formularz..., sprawdzenie, czy rządane pola są wypełnione
k0b3
post
Post #1





Grupa: Zarejestrowani
Postów: 138
Pomógł: 0
Dołączył: 1.08.2006
Skąd: Kielce

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


Witam!

Jestem nowy na forum i dopiero zaczynam uczyć sie php...

Robie stronkę i mam problem z formularzem. Czytałem dużo postów na ten temat, były zbliżone odpowiedzi, ale skrypty caly czas nie działały, albo ja je zle zamieszczałem w kodzie.

Stworzyłem dwa pliczki

form.php
  1. <form action="post.php" method="post">
  2.  
  3.  
  4. <table border="0" cellpadding="3" cellspacing="1" width="700">
  5. <tr>
  6. <th colspan="2">Formularz ustanowienia meczu </th>
  7. </tr>
  8. <tr>
  9. <td height="22" colspan="2" class="nav2" align="center"><i> Chcesz zagrac z nami spara? Napisz do nas!</i></td>
  10. </tr>
  11.  
  12. <tr>
  13. <td class="row1" width="23%"><span class="explaintitle">Nazwa Klanu: </span>*</td>
  14. <td class="row2" width="77%">
  15. <input type="text" class="post" style="width:530px" name="clanname" size="50" maxlength="50" /></td>
  16. </tr>
  17.  
  18. <tr>
  19. <td height="32" class="row1"><span class="explaintitle">Ades e-mail:</span></td>
  20. <td class="row2"><input type="text" class="post" style="width:530px" name="email" size="25" maxlength="255" value="{EMAIL}" /></td>
  21. </tr>
  22. <tr>
  23. <td height="32" class="row1"><span class="explaintitle">Numer Gadu-Gadu: </span>*</td>
  24. <td class="row2"><input type="text" class="post" style="width:530px" name="gg" size="25" maxlength="255" /></td>
  25. </tr>
  26. <tr>
  27. <td height="32" class="row1"><span class="explaintitle">IP serwera</span></td>
  28. <td class="row2"><input type="text" class="post" style="width:530px" name="ip_serwera" size="25" maxlength="255" /></td>
  29. </tr>
  30. <tr>
  31. <td height="32" class="row1"><span class="explaintitle">Uwagi:</span></td>
  32. <td class="row2"><textarea name="uwagi" style="width: 530px" rows="5" cols="30" class="post"></textarea></td>
  33. </tr>
  34.  
  35. <tr>
  36. <td class="cat" colspan="2" align="center">
  37. <input type="submit" name="submit" value="Wyslij" class="mainoption" />
  38.  
  39. <input type="reset" value="Wyczysc" name="reset" class="button" />
  40. </td>
  41. </tr>
  42. </form>


oraz skrypt odpowiedzialny za wysłanie wiadomości

post.php
  1. <?php
  2. $clanname=$_POST["clanname"];
  3. $mail=$_POST["email"];
  4. $gg=$_POST["gg"];
  5. $ip_serwera=$_POST["ip_serwera"];
  6. $uwagi=$_POST["uwagi"];
  7. $tekst="<b>-=FORMULARZ USTANOWIENIA MECZU=-</b>
  8. <br /><br />
  9. <b>Nazwa Klanu:</b> <i>$clanname</i> 
  10. <br />
  11. <b>Adres e-mail:</b>  <i>$mail</i>
  12. <br />
  13. <b>Numer Gadu-Gadu:</b>  <i>$gg</i>
  14. <br />
  15. <b>IP Serwera:</b>  <i>$ip_serwera</i>
  16. <br />
  17. <b>Uwagi:</b>
  18. <br /><i>$uwagi</i>";
  19. $subject = "$clanname -> chce sie umowic na spara! :rn";
  20. $headers = "MIME-Version: 1.0rn".
  21.  "Content-type: text/html; charset=iso-8859-2rn".
  22.  "From: <".$from.">rn".
  23.  "Date: ".date("r")."rn";
  24. $result=mail("kobemat@o2.pl", $subject, $tekst, $headers);
  25. IF ($result) {
  26.  
  27. include "wyslano.html";
  28.  
  29. }
  30.  
  31. else {
  32.  
  33. include "error.html";
  34.  
  35. }
  36.  
  37.  
  38. ?>


Wszystko działa. Po wypełnieniu formularza dostaje maila na pocztę.. jest oK! (IMG:http://forum.php.pl/style_emoticons/default/snitch.gif)
Chciałbym by pola oznaczone * czyli clanname oraz email nie byly puste. Jak ktos ich nie wypełni pojawi sie strona z tym samym formularzem i a nad nią mala tabelka z informacja: Nie wypełniłeś wymaganych pol...


Z góry dzięki za pomoc...

Pozdrawiam!
Go to the top of the page
+Quote Post
kamikaze_
post
Post #2





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 3.05.2006

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


Sprawdzaj przy pomocy funkcji empty() czy zmienne przesłane formularzem są ustawione. Jeśli nie będziesz wyświetlał informacje o tym i formularz jeszcze raz.

np.

  1. <?php
  2. if( empty( $_POST['gg']) )
  3. {
  4.  $errors[] = 'gg';
  5. }
  6.  
  7. [...]
  8.  
  9. if( count( $errors ) )
  10. {
  11. // kod wyswietlajacy bledy z tabeli $errors (czyli ktore pola trzeba uzupelnic) oraz formularz
  12. }
  13. ?>
Go to the top of the page
+Quote Post
dawhol
post
Post #3





Grupa: Zarejestrowani
Postów: 256
Pomógł: 0
Dołączył: 19.07.2006
Skąd: Ostrów Wielkopolski

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


Na poczatku dajesz takie cos:
  1. <? if (isset($_POST["clanname"]) && isset($_POST['email'])) 
  2. {
  3. $clanname = $_POST["clanname"];
  4. $email = $_POST["email"];
  5. } else 
  6. { echo ('Nie wypelniles wszystkich pol');
  7. include ('formularz.php');
  8.  exit();}; ?>


i wstaw to zamiast:
  1. <?php
  2. $clanname=$_POST["clanname"];
  3. $mail=$_POST["email"];
  4. ?>


To jest najszybszy sposób mozna zrobic wyszczególnienie dla kazdego pola (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) z tym ze wtedy bedzie wiecej kodu ale zaleta bedzie to ze jezeli nie wypelnisz pola to poprosi cie tylko o wypelnienie jednego pola a nie od nowa calego formularza (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Ten post edytował dawhol 6.08.2006, 13:27:31
Go to the top of the page
+Quote Post
k0b3
post
Post #4





Grupa: Zarejestrowani
Postów: 138
Pomógł: 0
Dołączył: 1.08.2006
Skąd: Kielce

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


i nic... nie działa... proboje tak jak mowicie i nic...

Sa jeszcze jakies mozliwości..?
Go to the top of the page
+Quote Post
MagnuM
post
Post #5





Grupa: Zarejestrowani
Postów: 108
Pomógł: 0
Dołączył: 7.05.2004
Skąd: Jelenia Góra

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


Nie nie działa tylko próbuj aż zadziała. A jak nie potrafisz tego zrobić to zadaj kolejne pytanie. Najlepiej jak wstawisz kod który niby 'nie działa'.
Go to the top of the page
+Quote Post
Crozin
post
Post #6





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

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


zamiast
  1. <?php
  2. $clanname=$_POST["clanname"];
  3. $mail=$_POST["email"];
  4. ?>

wstaw
  1. <?php
  2. if(!empty($_POST['clanname']) && !empty($_POST['email']))
  3. {
  4. $clanname=$_POST["clanname"];
  5. $mail=$_POST["email"];
  6. //i reszta formularza
  7. }
  8. else
  9. {
  10. $error='Nie wypelniles wszystkich pol';
  11. header("Location: formularz.php");
  12. }
  13. ?>


a w formularzu wstaw sobie jeszcze gdzies (gdzie chcesz miec pokazane ze jest blad):
  1. <?php
  2. echo $error;
  3. ?>
Go to the top of the page
+Quote Post
k0b3
post
Post #7





Grupa: Zarejestrowani
Postów: 138
Pomógł: 0
Dołączył: 1.08.2006
Skąd: Kielce

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


Dobra.. zwracam honor... (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif)

Probowalem i probowalem i nic... ale szukalem dalej na forum i znalazlem ten watek:
http://forum.php.pl/index.php?showtopic=27658

po lekkiej zmnianie uzyskałem taki skrypt:

post.php
  1. <?php
  2. if (($_POST['clanname'] == "") ||($_POST['gg'] == ""))
  3. {
  4. echo "zleeeeeeeee";
  5. include ('form.php');
  6.  exit();
  7. }
  8. if (($_POST['clanname'] != "") ||($_POST['gg'] != ""))
  9. {
  10.  
  11. $header = "From: kobemat@o2.pl <kobemat@o2.pl>";
  12.  
  13. $wiadomosc = "-=FORMULARZ USTANOWIENIA MECZU=- nnnNazwa Klanu: ".$_POST['clanname']."
  14. nE-MAIL : ".$_POST['email']."
  15. nNumer Gadu-Gadu : ".$_POST['gg']."
  16. nIP_serwera : ".$_POST['ip_serwera']."
  17. nUwagi: ".$_POST['uwagi']."n";
  18.  
  19. mail("kobemat@o2.pl", "to jest temat (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif) ", $wiadomosc, $header);
  20. echo "Dziękujemy za wypełnienie formularza, ".$_POST['clanname'];
  21. <script language="JavaScript">
  22. function przenies(){
  23. window.location.href='form.php';
  24. }
  25. var szybkosc = 10000;
  26. setTimeout("przenies()",szybkosc);
  27. </script>
  28. ";
  29. }
  30. ?>


Teraz jest wszystko ok, ale...:

1) Czy da sie zrobić tak, by dane ktore juz wpisalem i oczywiscie pominąłem jedno z wymaganych pol, pojawil sie napis- tak jak mialo byc... Wszystkie okienka sie wyczyscily i trzeba wpisywac tekst od nowa. Jak mozna zachowac te dane?

2)W tej części skrytpu...
  1. <?php
  2. ....
  3. $wiadomosc = "-=FORMULARZ USTANOWIENIA MECZU=- nnnNazwa Klanu: ".$_POST['clanname']."
  4. nE-MAIL : ".$_POST['email']."
  5. nNumer Gadu-Gadu : ".$_POST['gg']."
  6. nIP_serwera : ".$_POST['ip_serwera']."
  7. nUwagi: ".$_POST['uwagi']."n";
  8.  
  9. ....
  10. ?>


Czy da się sformatować wygląd czcionki? Chodzi o pogrubienie, kursywe i moze tez kolor oraz nazwe czcionki...
Probuje wlepic tagi html <b> </b> ale nic to nie daje. Wiadomośc przychodzi wraz z nimi.

-------------------------
[edit]
heh... na pierwsze pytanko juz znalazlem odpowiedz...

Natomiast 2... czekam na wasze propozycje... (IMG:http://forum.php.pl/style_emoticons/default/snitch.gif)

Ten post edytował kobemat 6.08.2006, 22:49:03
Go to the top of the page
+Quote Post
dawhol
post
Post #8





Grupa: Zarejestrowani
Postów: 256
Pomógł: 0
Dołączył: 19.07.2006
Skąd: Ostrów Wielkopolski

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


  1. <?php
  2. $ip = $_SERVER['REMOTE_ADDR'];
  3. $data = date('Y-m-d H:i:s');
  4. $email = addslashes($_POST[email]);
  5. $nick = addslashes($_POST[nick]);
  6. $www = addslashes($_POST[www]);
  7. $wpis = addslashes($_POST[wpis]);
  8.  
  9. $sprawdz[1] = stristr($email, "@");
  10. $sprawdz[2] = stristr($email, ".");
  11.  
  12.  
  13.  
  14. if ($sprawdz[1] == FALSE || $sprawdz[2] == FALSE)
  15. {
  16.  $mail='';
  17. }
  18. else
  19.  $mail=$email; 
  20. //================================================================================
    ==========//
  21.  
  22. $zapytanie = "INSERT INTO cms_gbook (data, nick, email, www, wpis ,ip) VALUES ('$data', '$nick', '$mail', '$www', '$wpis', '$ip')";
  23.  
  24. //================================================================================
    ==========//
  25. if (empty($nick) OR empty($mail) OR empty($wpis)) 
  26. {
  27. echo ("Nie wypełniles poprawnie wszystkich pól");
  28. echo ('<form action="gbook_dodaj.php" method="post">');
  29. //================================================================================
    ==========//
  30. if (empty($nick)) 
  31. {
  32. echo ('Imie/Nick:<br />');
  33. echo ('<input type="text" size="20" name="nick" /><br />');
  34. } 
  35. else 
  36. echo ('Imie/Nick:<br /><input type="text" size="20" name="nick" value="'.$nick.'" /><br />');
  37. //================================================================================
    ==========//
  38. if (empty($mail))
  39. {
  40. echo ('Adres e-mail:<br />');
  41. echo ('<input type="text" size="20" name="email" /><br />');
  42. } 
  43. else 
  44. echo ('Adres e-mail:<br /><input type="text" size="20" name="email" value="'.$mail.'" /><br />');
  45. //================================================================================
    ==========//
  46. if (empty($wpis)) 
  47. {
  48. echo ('Twój wpis:<br /><textarea cols="40" rows="10" name="wpis" ENCTYPE="text/plain" wrap="virtual"></textarea><br>');
  49. } 
  50. else 
  51. echo ('Twój wpis:<br /><textarea cols="40" rows="10" name="wpis" ENCTYPE="text/plain" wrap="virtual">'.$wpis.'</textarea><br />');
  52. echo ('<input type="submit" name="send" value="Wyslij" /><input type="reset" value="Wyczysc" /></form>');
  53.  
  54. } 
  55. else 
  56. //================================================================================
    ==========//
  57. if (mysql_query ($zapytanie)) 
  58. {
  59. echo ("Dane zostały dodane");
  60. } 
  61. else 
  62.  
  63. ?>


Wzrouj sie na tym to moj skrypcik do ksiegi gosci jest tam dokladnie to co chesz (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) wglab sie i zobaczysz ze nie jest to trudne (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Tak dla zrozumienia jeszcze wysjanie ten fragment:
  1. <?php
  2. $sprawdz[1] = stristr($email, "@");
  3. $sprawdz[2] = stristr($email, ".");
  4.  
  5.  
  6.  
  7. if ($sprawdz[1] == FALSE || $sprawdz[2] == FALSE)
  8. {
  9.  $mail='';
  10. }
  11. else
  12.  $mail=$email;
  13. ?>

Sprawdza czy wpisany adres e-mail ma poprawna forme tzn czy zawiera @ i . (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) banalne ale jako tako broni przed wpisaniem np. slowa BRAK (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
k0b3
post
Post #9





Grupa: Zarejestrowani
Postów: 138
Pomógł: 0
Dołączył: 1.08.2006
Skąd: Kielce

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


Ok! Wielkie dzięki za pomoc! Super forum! Jeden dzień i mam to nad czym sie męczyłem caly tydzień...
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 - 04:48