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%)
-----


Po pierwsze primo: po co przekazujesz do funkcji kontakt zmienną $ip, skoro i tak pobierasz ją w funkcji (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif)

Po drugie primo: w wywołaniu funkcji kontakt zmień $tresc na $_POST['tresc'] i analogicznie tak wszystkie zmienne przekazywane do funkcji.

Po trzecie primo: w walidacji brakuje czegoś co będzie pokazywało, czy możesz dodać wpis, bo jak narazie po prostu sprawdzasz czy poszczególne części są OK.... ale brakuje jakiegoś if'a który ostatecznie sprawdzi czy całość jest OK i doda wpis.

Po czwarte primo: jak poprawisz powyższe punkty, sklej te kawałki kodu razem w jednym pliku w kolejności:

- kod funkcji ( chociaż on może być w dowolnym miejscu )
- kod walidacji
- kod forumlarza.

Ja tak zrobiłem i u mnie zadziałało.
Go to the top of the page
+Quote Post
kononowicz
post
Post #3





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

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


Cytat(Cienki1980 @ 14.01.2007, 10:06:13 ) *
Po trzecie primo: w walidacji brakuje czegoś co będzie pokazywało, czy możesz dodać wpis, bo jak narazie po prostu sprawdzasz czy poszczególne części są OK.... ale brakuje jakiegoś if'a który ostatecznie sprawdzi czy całość jest OK i doda wpis.


no własnie jak powinna wyglądać ta pętla (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif)


Cytat(Cienki1980 @ 14.01.2007, 10:06:13 ) *
Po drugie primo: w wywołaniu funkcji kontakt zmień $tresc na $_POST['tresc'] i analogicznie tak wszystkie zmienne przekazywane do funkcji.


  1. <?php
  2. kontakt($_POST['email'], $_POST['temat'], $_POST['tresc'], $_POST['persona']);
  3. ?>


o to chodzi (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif)

Ten post edytował kononowicz 14.01.2007, 14:49:40
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 - 12:04