Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php] walidacja formularza + reszta kodu, jak to połączyć??
kononowicz
post
Post #1





Grupa: Zarejestrowani
Postów: 238
Pomógł: 0
Dołączył: 12.11.2006
Skąd: Białystok

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


Mam problem z połaczeniem kodu z walidacją formularza z kodem zapisujacym dane do pliku txt. Nie moge zrobic aby jezeli walidacja przeszła dobrze to ma zapisac dane do pliku. Walidację nie napisałem sam dlatego mam problem... ale nawet gdybym jakos napisał sam to też pewnie coś byloby nie tak (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)


walidacja:
  1. <?php
  2. if (isset($_POST['submit']))
  3. {
  4. if ($_POST['persona']!='')
  5.  {
  6. if (!preg_match('/^[A-ZŁ]([a-ząćęłń󜼿])+ ([A-ZŁ]([a-ząćęłń󜼿])+)$$/', $_POST['persona']))
  7. $personaWalidacja = '<div id=walidacja>Podano nieprawodłowe dane. Format: "Imię Nazwisko"</div>';
  8.  }
  9. else
  10. $personaWalidacja = '<div id=walidacja>Nie podano Imienia i Nazwiska</div>';
  11.  
  12. if (trim($_POST['temat'])=='')
  13. $tematWalidacja = '<div id=walidacja>Nie wpisano tematu</div>';
  14.  
  15. if (trim($_POST['tresc'])=='')
  16. $trescWalidacja = '<div id=walidacja>Nie wpisano treści wiadomości</div>';
  17.  
  18. if ($_POST['email']!='')
  19.  {
  20.  if (!preg_match('/^(([a-z0-9_]+)-*.?)+@[a-z0-9](([a-z0-9]+)-?_?.?)+([a-z]{2,})$/', $_POST['email']))
  21.  $emailWalidacja = '<div id=walidacja>Podano nieprawodłowy adres e-mail</div>';
  22.  }
  23.  else
  24.  $emailWalidacja = '<div id=walidacja>Nie podano adresu e-mail</div>';
  25.  
  26.  
  27.  }
  28. ?>



zapisanie wiadomosci z formularza do pliku
  1. <?php
  2. function kontakt($ip, $email, $temat, $tresc, $persona)
  3. {
  4. $ip = $REMOTE_ADDR;
  5. $data = date('d-m-Y');
  6. $godz = date('H:i:s');
  7. $dane = "n<b>data:</b> $data <br>
  8. <b>godzina:</b> $godz<br>n
  9. <b>e-mail:</b> $email<br>n
  10. <b>Imie i Nazwisko:</b> $persona<br>n
  11. <b>IP:</b> $ip<br>n
  12. <b>temat:</b> $temat<br>n
  13. <b>treść:</b> $tresc<br><br>n
  14. n<img src=images/podzialka.jpg><br><br>n";
  15. $plikAdr = "wiadomosci/wiadomosci.txt";
  16. $plik = @fopen($plikAdr, "a");
  17. flock($plik, 2);
  18. fwrite($plik, $dane);
  19. flock($plik, 3);
  20. fclose($plik);
  21. print "<br><div id=uwaga>Pytanie zostało wysłane,<br>dziękuję</div>";
  22. }
  23.  
  24. kontakt($ip, $email, $temat, $tresc, $persona);
  25. ?>



sam formularz
  1. <?php
  2. print'  <br>
  3. <font size=4><img src="images/strzalka.jpg"> formularz </font><br>
  4. <br>
  5. <center>
  6.  
  7. <div id="uwaga"> Aby zadać pytanie wyślij formularz<br>
  8. odpowiedĽ prześlemy mailem <BR></div>
  9. <BR><img src="images/form.jpg">
  10. <form action="formularz.php" method=post id="formform">
  11. <p>
  12. <label for="temat">temat:</label>
  13. <input type=text name=temat class="tekst">
  14. '; if ($tematWalidacja) echo ($tematWalidacja);
  15.  print' </p>
  16. <p>
  17. <label for="persona">Imie i Nazwisko</label>
  18. <input type=text name=persona class="tekst">
  19. '; if ($personaWalidacja) echo ($personaWalidacja);
  20.  print' </p>
  21. <p>
  22. <label for="email">e-mail:</label>
  23. <input type=text name=email class="tekst">
  24. '; if ($emailWalidacja) echo ($emailWalidacja);
  25.  print' </p>
  26. <p><br>
  27. <label for="tresc">treść:</label><br>
  28. <textarea name="tresc" onKeyUp="limit(this,255);" onKeyDown="limit(this,200);"></textarea>
  29. '; if ($trescWalidacja) echo ($trescWalidacja);
  30. print'</p>
  31.  <p>
  32.  <input type=reset value="wyczyść" name="reset" class="przycisk">
  33.  <input type=submit value="wyślij" name="submit" class="przycisk">
  34. </p>
  35. </form>
  36. </center>';
  37. ?>


jak podczepic wszystko do siebie ,żeby było jedną całościa?(IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) ? ps. jest godzina 4:50 w nocy wiec troche juz nad tym mysle (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)

Ten post edytował kononowicz 14.01.2007, 16:13:23
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Cienki1980
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 1 590
Pomógł: 40
Dołączył: 11.01.2007
Skąd: Centrum

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


Tam nie ma żadnej pętli ... tylko same if'y.

Możesz dodać sobie na początku jakąś zmienną ... np $check=0;

W przypadku gdy coś jest nie tak, wypisujesz komunikat ... a jeżeli jest dobrze to zwiększ $check o 1.

Na końcu sprawdź czy $check ma odpowiednią wartość ... ( podpowiem że powinna być równa 4 - zwiększenie o jeden na każde pole formularza ) ... i albo wykonujesz funkcję kontakt() albo nie.

EDIT: wywołanie funkcji poprawiłeś dobrze.

Ten post edytował Cienki1980 14.01.2007, 14:52:49
Go to the top of the page
+Quote Post

Posty w temacie


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: 3.10.2025 - 16:13