Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Walidacja formularza
rossco
post 21.03.2010, 16:07:03
Post #1





Grupa: Zarejestrowani
Postów: 72
Pomógł: 0
Dołączył: 17.02.2007

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


Hejka,

jak zrobić walidacje formularza tak żeby po za komunikatem typu 'nie wypełniony np nick' zaznaczał pola nie wypełnione zmieniając czcionkę danego pola na czerwono.
Wtedy wystarczył by jeden komunikat 'proszę uzupełnić pola zaznaczone na czerwono'

W tej chwili mój formularz wygląda następująco:

  1. <HTML>
  2. <HEAD>
  3. <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8">
  4. <TITLE>System Ogłoszeń</TITLE>
  5. </HEAD>
  6. <BODY>
  7. <H2>Ogłoszenia</H2>
  8. <?php
  9. mysql_connect ("*****", "osobliwi5", "*****") or //staramy połączyć się z bazą danych
  10. die ("Nie można połączyć się z bazą MySQL"); //jeżeli to się nie uda wyświetlamy
  11. mysql_select_db ("*****") or //wybieramy bazę
  12. die ("Nie można połączyć się z bazą ogloszenia");
  13. mysql_query("SET NAMES utf-8");
  14. mysql_query("SET NAMES utf8");
  15. mysql_query("SET CHARACTER SET utf8");
  16. mysql_query("SET collation_connection = utf8_polish_ci");
  17. $id=$_GET["id"];
  18. $tresc = $_POST["tresc"];
  19. $stanowisko = $_POST["stanowisko"];
  20. $nazwa_firmy = $_POST["nazwa_firmy"];
  21. $miejscowosc_zatrudnienia = $_POST["miejscowosc_zatrudnienia"];
  22.  
  23. if(!isset($_GET["id"])) { //odbieramy wartość zmiennej id
  24. print"<A HREF=\"index.php?id=nowy\">Dodaj nowe Ogłoszenie</A><HR>"; //jeżeli zmienna id nie ma przypisanej wartości
  25. $wynik = mysql_query ("SELECT * FROM ogloszenia WHERE zatwierdz=1 order by nr desc;"); //wybieramy zatwierdzone ogłoszenia i segregujemy według pola nr od wartości największej do najmniejszej
  26. print"<UL>";
  27. while ($rekord = mysql_fetch_array ($wynik, MYSQL_NUM)) { //mysql_fetch_array() zwraca nam tablicę indeksowaną numerycznie, gdzie indeks zaczyna się od 0 (MYSQL_NUM)
  28. print "<LI>".$rekord[2] = stripslashes($rekord[2]).", <B> ".$rekord[1] = stripslashes($rekord[1])."</B>, ".$rekord[3].", ".$rekord[5] = stripslashes($rekord[5]).", ".$rekord[6] = stripslashes($rekord[6])."</LI>"; //w pętli while wyświetlamy po kolei wszytskie ogłoszenia w kolejności treść, stanowisko (stanowisko), data
  29. }
  30. print"</UL>";
  31. }elseif ($_GET["id"]=='nowy') { //jeżeli zmienna id zawiera wyraz nowy
  32. print "<HR>"; //wyświetlamy formularz do wpisania ogłoszenia
  33. print "<H3>Nowe ogłoszenie:</H3>";
  34. print "<FORM METHOD=POST action=\"index.php?id=dodaj\"><INPUT TYPE=\"hidden\" NAME=\"id\" VALUE=\"dodaj\">";
  35. print "<B>Nazwa firmy:</B><BR><INPUT TYPE=\"text\" NAME=\"nazwa_firmy\" VALUE=\"$nazwa_firmy\" SIZE=60><BR>";
  36. print "<B>Miejscowość zatrudnienia:</B><BR><INPUT TYPE=\"text\" NAME=\"miejscowosc_zatrudnienia\" VALUE=\"$miejscowosc_zatrudnienia\" SIZE=60><BR>";
  37. print "<B>Stanowisko:</B><BR><INPUT TYPE=\"text\" NAME=\"stanowisko\" VALUE=\"$stanowisko\" SIZE=60><BR>";
  38. print "<B>Treść ogłoszenia:</B><BR><TEXTAREA NAME=\"tresc\" ";
  39. print "ROWS=10 COLS=60>$tresc</TEXTAREA><BR>";
  40. print "<INPUT TYPE=\"submit\" VALUE=\"Wyslij\">";
  41. print "</FORM>";
  42. print "<a href=\"index.php\">Powrót</a>";
  43. }elseif ($_GET["id"]=='dodaj') { // jeżeli zmienna id zawiera wartość dodaj
  44. //dodajemy ogłoszenie do bazy
  45. $tresc = addslashes(nl2br(htmlentities ($tresc))); //ponieważ nie można ufać danym wprowadzanym przez użytkowników funkcją addslashes dodajemy ukośniki () w miejscach gdzie napotkanym na apostrof (‘), usuwamy je potem funkcją stripslahes przy wypisywaniu komentarzy, dodatkowo funkcja nl2br zamienia znaki końca linii na tag br
  46. $stanowisko = addslashes(htmlentities ($stanowisko));
  47.  
  48. if ($tresc = $_POST["tresc"] && $stanowisko = $_POST["stanowisko"]) { //jeżeli pola treść i stanowisko są uzupełnione
  49. $zapytanie = "INSERT INTO ogloszenia (tresc, stanowisko, nazwa_firmy, miejscowosc_zatrudnienia, "." data) VALUES ('$tresc', '$stanowisko', '$nazwa_firmy', '$miejscowosc_zatrudnienia', "." now());";
  50. $wynik = mysql_query ($zapytanie); //dodajemy wtedy dane do bazy wraz z aktualną datą i godziną – funkcja now()
  51. print "<HR>";
  52. print"<H4>Twoje ogłoszenie zostało dodane do bazy. Ukaże się, gdy administrator je zatwierdzi</h4><br>"; //jeżeli wszystko przebiegnie bez problemów wyświetlamy komunikat
  53. print"<a href=\"index.php\">Powrót</a>";
  54. }else{ //jeżeli jednak nie wyświetlamy stosowną informację
  55. print "<HR>";
  56. print"<h4>Pola stanowisko i treść muszą być wypełnione ! Kliknij wstecz w swojej przeglądarce i popraw te dane !</h4>";
  57. }
  58. }else { //jeżeli zmienna id zawiera inną wartość niż dodaj lub nowy wyświetlamy wszystkie zatwierdzone ogłoszenia
  59. print"<A HREF=\"index.php?id=nowy\">Dodaj nowe ogłoszenia</A><HR>";
  60. $wynik = mysql_query ("SELECT * FROM ogloszenia WHERE zatwierdz=1 order by nr desc;"); //wybieramy zatwierdzone ogłoszenia i segregujemy według pola nr od wartości największej do najmniejszej
  61. print"<UL>";
  62. while ($rekord = mysql_fetch_array ($wynik, MYSQL_NUM)) { //mysql_fetch_array() zwraca nam tablicę indeksowaną numerycznie, gdzie indeks zaczyna się od 0 (MYSQL_NUM)
  63. print "<LI>".$rekord[2] = stripslashes($rekord[2]).", <B> ".$rekord[1] = stripslashes($rekord[1])."</B>, ".$rekord[3].", ".$rekord[5] = stripslashes($rekord[5])."</LI>"; //za pomocą pętli while wyświetlamy wszystkie rekordy, które zostały zatwierdzone (wartość pola zatwierdz wynosi 1)
  64. }
  65. print"</UL>";
  66. }
  67. ?>
  68. </BODY>
  69. </HTML>
Go to the top of the page
+Quote Post

Posty w temacie
- rossco   [PHP]Walidacja formularza   21.03.2010, 16:07:03
- - MateuszScirka   Odpowiedni warunek if z empty + [JAVASCRIPT] pob...   21.03.2010, 16:09:32
|- - Pawel_W   Cytat(MateuszScirka @ 21.03.2010, 16:09...   21.03.2010, 16:17:43
- - rossco   a możecie mi to wytłumaczyć na przykładzie jeśli b...   21.03.2010, 16:19:46
- - MateuszScirka   Nom o to mi chodziło, można zrobić to na początku ...   21.03.2010, 16:24:49
- - rossco   jak uważacie czy ja nie powinnam wywalić formularz...   21.03.2010, 16:36:55
- - MateuszScirka   Możesz zostawić, możesz wywalić, osobiście skłania...   21.03.2010, 16:40:23
- - rossco   jestem początkująca ale też mi się wydaje że powin...   21.03.2010, 16:53:50
- - MateuszScirka   To nic że jest w ifie, będzie działało. Warunek zo...   21.03.2010, 16:59:09
- - mortus   Niestety u Ciebie nie da się zrobić takiej walidac...   21.03.2010, 17:02:55
- - rossco   Zrobiłam tak: formularz przeniosłam do pliku form...   21.03.2010, 17:39:46
- - MateuszScirka   Nie trzeba wszedzie sprawdzac tym issetem ;] Chodz...   21.03.2010, 17:42:13
|- - mortus   Cytat(MateuszScirka @ 21.03.2010, 17:42...   21.03.2010, 18:29:21
- - rossco   if(isset($_POST["stanowisko"])) { ...   21.03.2010, 17:51:31
- - MateuszScirka   Mortus, nie mylę się. Isset ma sprawdzać tylko czy...   21.03.2010, 18:38:34
|- - mortus   Cytat(MateuszScirka @ 21.03.2010, 18:38...   22.03.2010, 10:35:26
- - rossco   Mortus ja się dopiero uczę i pewnie dlatego ten ko...   21.03.2010, 19:02:13
- - thek   Mortus jak widzę czuwa. I ma rację. $_POST to...   22.03.2010, 12:47:08
|- - mortus   Cytat(thek @ 22.03.2010, 12:47:08 ) S...   22.03.2010, 13:34:44
- - rossco   Chyba na początek nauki w php (podejście trzecie:)...   22.03.2010, 13:38:36
- - mortus   Po prostu jeden nawias w linii 56 zamyka nie to co...   22.03.2010, 13:44:15
- - thek   Błąd masz prozaiczny: [PHP] pobierz, plaintext els...   22.03.2010, 13:56:08
- - mortus   Dokładnie! Wszystko zależy od potrzeby, założe...   22.03.2010, 14:20:32
- - rossco   SUPER Walidacja działa, ale przestało dodawać do ...   22.03.2010, 14:28:19
- - mortus   W linii 22 wpisz $validation_error = false; P...   22.03.2010, 14:38:19
- - rossco   Zastosowałam się do wskazówek ale nadal nie dodaję...   22.03.2010, 14:54:13
- - mortus   Dodaj na samym początku skryptu[PHP] pobierz, plai...   22.03.2010, 15:04:48
- - rossco   Cytat(mortus @ 22.03.2010, 15:04:48 )...   22.03.2010, 15:30:42
- - mortus   Usuń tę linię 19, bo nie jest potrzebna (powinno w...   22.03.2010, 16:09:10
- - rossco   Działa ) Mortus bardzo Ci dziękuję! Przeanali...   22.03.2010, 16:42:06


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 - 11:01