Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] wyświetlenie formularza kontaktowego, i ukrycie go po wysłaniu bez błędów
piotrd
post
Post #1





Grupa: Zarejestrowani
Postów: 174
Pomógł: 0
Dołączył: 16.05.2006
Skąd: Łódź

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


poproszę o pomoc kogoś bardziej doświadczonego niż ja gdyż trochę pogubiłem się, mam formularz kontaktowy z walidacją i captcha.
nie mogę dojść do rozwiązania takiego aby po wysłaniu formularza bez błędów pojawił się tylko komentarz
  1. echo '<p>&nbsp;</p><p class="err">Wiadomość wysłana, dziękujemy.</p>';
kod:
  1. <?php
  2.  
  3. $your_email ="kontakt@xxx.pl";
  4.  
  5. $errors = "";
  6. $name = "";
  7. $visitor_email = "";
  8. $user_message = "";
  9.  
  10. if(isset($_POST["submit"])) {
  11. $name = $_POST["name"];
  12. $visitor_email = $_POST["email"];
  13. $user_message = $_POST["message"];
  14.  
  15. if(empty($name)||empty($visitor_email)) {
  16. $errors .= "Imię i email są polami wymaganymi!";
  17. }
  18.  
  19. if(IsInjected($visitor_email)) {
  20. $errors .= "Zły email!";
  21. }
  22.  
  23. if(empty($_SESSION["6_letters_code"] ) || strcasecmp($_SESSION["6_letters_code"], $_POST["6_letters_code"]) != 0) {
  24. $errors .= "Przepisz kod poprawnie!";
  25. }
  26.  
  27. if(empty($errors)) {
  28. $to = $your_email;
  29. $subject = "=?UTF-8?B?" . base64_encode("Poland - kontakt") . "?=";
  30. $ip = isset($_SERVER["REMOTE_ADDR"]) ? $_SERVER["REMOTE_ADDR"] : "";
  31.  
  32. $body = "<html>";
  33. $body .= "<head></head>";
  34. $body .= "<body>";
  35. $body .= "$name ($visitor_email) napisał/ła:" .
  36. "<p>Treść: " . "$user_message</p>" .
  37. "<p>IP: $ip</p>";
  38. $body .= "</body>";
  39. $body .= "</html>";
  40.  
  41. $headers = "MIME-Version: 1.0\r\n";
  42. $headers .= "Content-type: text/html; charset=UTF-8\r\n";
  43. $headers .= "From: Poland <kontakt@XXX.pl>\r\n";
  44. $headers .= "Reply-To: $visitor_email\r\n";
  45.  
  46. mail($to, $subject, $body, $headers);
  47.  
  48. echo '<p>&nbsp;</p><p class="err">Wiadomość wysłana, dziękujemy.</p>';
  49. } else {
  50. echo '<p>&nbsp;</p><p class="err">' . nl2br($errors) . '</p>';
  51. }
  52. }
  53.  
  54. function IsInjected($str) {
  55. $injections = array("(\n+)", "(\r+)", "(\t+)", "(%0A+)", "(%0D+)", "(%08+)", "(%09+)");
  56. $inject = join("|", $injections);
  57. $inject = "/$inject/i";
  58.  
  59. if(preg_match($inject, $str)) {
  60. return true;
  61. } else {
  62. return false;
  63. }
  64. }
  65. ?>
  66. <p><div id="contact_form_errorloc" class="err"></div></p>
  67. <p>&nbsp;</p>
  68. <form method="POST" name="contact_form" action="<?php echo htmlentities($_SERVER["REQUEST_URI"]); ?>">
  69. <p>
  70. <label for="name">Imię i nazwisko:</label><br>
  71. <input type="text" name="name" value="" size="50">
  72. </p>
  73. <p>
  74. <label for="email">Twój email:</label><br>
  75. <input type="text" name="email" value="" size="50">
  76. </p>
  77. <p>
  78. <label for="message">Treść wiadomości:</label><br>
  79. <textarea name="message" rows="10" cols="50"></textarea>
  80. </p>
  81. <p>
  82. <img src="form/captcha_code_file.php?rand=<?php echo rand(10,100); ?>" id="captchaimg"><br>
  83. <small>Nie możesz odczytać kodu? <a href="java script: refreshCaptcha();">Wygeneruj nowy.</a></small><br>
  84. <label for="message">Wpisz powyższy kod tutaj:</label>
  85. <input id="6_letters_code" name="6_letters_code" type="text"><br>
  86. <br>
  87. <input type="submit" value="wyślij" name="submit">
  88. </p>
  89. </form>


Ten post edytował piotrd 19.08.2011, 20:45:47
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: 14.09.2025 - 12:58