Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] błąd sprawdzania formularza kontaktowego
Forum PHP.pl > Forum > Przedszkole
pomek2
Witam,
w poniższym pliku gdzieś tkwi błąd

plik źródłowy

nie działa sprawdzenie formularza kontaktowego a powinno:)

może ktoś podpowie w czym tkwi błąd?

Fifi209
Wrzuć kod na forum, w tym celu masz tagi php. Wątpię, aby ktoś chodził po obcych stronach i pobierał paczki .zip
pomek2
umieściłem to jako archiwum bo niestety kod jest za długi
greycoffey
To będziesz musiał rozwiązać problem sam. To ty masz się starać, byśmy Ci pomogli, nie na odwrót.
pomek2
bardzo dziękuje za takie rady ....
lecz zachowaj te uwagi dla siebie...
nie wiem po co pisać coś oby napisać i co myślisz że zabłysnąłeś?

greycoffey
Ja tak nie myslę - lecz Ty, swoją nieciętą ripostą - tak.
pomek2
odświeżam temat, proszę o poważne podejście do tematu ,
Daiquiri
Nie odświeżamy tematów. Jeżeli chcesz uzyskać jakąkolwiek pomoc - skorzystaj z dobrej rady fifi209 i wrzuć kod na forum. Zauważ, że to Ty potrzebujesz pomocy - chęć współpracy musi więc nijako wyjść z Twojej strony.

Jeżeli kod jest bardzo długi to wklej jego część i opisz problem. Bo zdanie "w poniższym pliku gdzieś tkwi błąd" nic nam nie mówi o przedmiocie błędu.

Zapoznaj się też proszę z tematem: Jak poprawnie zadać pytanie
pomek2

Chodzi o poniższy formularz chciałbym dopisać walidację formularza, czyli sprawdzenie czy dane pole zostało wypełnione,


  1. ."<form method=\"post\" action=\"modules.php?name=$module_name&op=send_mail\">"
  2. ."<tr><td>"._CONTACTPERSON."</td><td><input type=\"text\" name=\"contact_person\" size=\"37\"></td></tr>"
  3. ."<tr><td>"._EMAILADRESS."</td><td><input type=\"text\" name=\"email_adress\" size=\"37\"></td></tr>"
  4. ."<tr><td>"._PHONENUMBER."</td><td><input type=\"text\" name=\"phone_number\" size=\"37\"></td></tr>"
  5. ."<tr><td valign=\"top\">"._QUESTION."</td><td><textarea name=\"question\" cols=\"34\" rows=\"5\"></textarea></td></tr>"
  6. ."<tr><td>"._CAPTCHA."</td><td><br /><img src=\"token/captcha.php\"><br /><br /><input type=\"text\" name=\"captcha\" size=\"20\"></td></tr>"
  7. ."<tr><td>"
  8. ."</td><td align=\"right\">"
  9. ."<input type=\"hidden\" name=\"id\" value=\"$ad_id\">"
  10. ."<input type=\"hidden\" name=\"title\" value=\"$title\">"
  11. ."<input type=\"hidden\" name=\"user_email\" value=\"".$userinfo['user_email']."\">"
  12. ."<input type=\"submit\" value=\""._SEND."\">"
  13. ."</td></tr>"
  14. ."</form>


próbowałem to zrobić za pomocą if (!empty $POST [...] ) {echo ....} jednak niestety nie działa, wiadomość wysyła się nawet pusta, sądzę że należy zblokować jeszcze formularz i dlatego wstawiłem cały kod ponieważ podejrzewam, że sam formularz niewiele powie
Daiquiri
A if(isset$_POST['zmienna']) ?
RiE
Cytat
"<input type=\"submit\" value=\""._SEND."\">"

A gdzie pole name?
pomek2
ok nazwałem przycisk send z formularza, poniżej kod:

  1. ."<form method=\"post\" action=\"modules.php?name=$module_name&op=send_mail\">"
  2. ."<tr><td>"._CONTACTPERSON."</td><td><input type=\"text\" name=\"contact_person\" size=\"37\"></td></tr>"
  3. ."<tr><td>"._EMAILADRESS."</td><td><input type=\"text\" name=\"email_adress\" size=\"37\"></td></tr>"
  4. ."<tr><td>"._PHONENUMBER."</td><td><input type=\"text\" name=\"phone_number\" size=\"37\"></td></tr>"
  5. ."<tr><td valign=\"top\">"._QUESTION."</td><td><textarea name=\"question\" cols=\"34\" rows=\"5\"></textarea></td></tr>"
  6. ."<tr><td>"._CAPTCHA."</td><td><br /><img src=\"token/captcha.php\"><br /><br /><input type=\"text\" name=\"captcha\" size=\"20\"></td></tr>"
  7. ."<tr><td>"
  8. ."</td><td align=\"right\">"
  9. ."<input type=\"hidden\" name=\"id\" value=\"$ad_id\">"
  10. ."<input type=\"hidden\" name=\"title\" value=\"$title\">"
  11. ."<input type=\"hidden\" name=\"user_email\" value=\"".$userinfo['user_email']."\">"
  12. ."<input type=\"submit\" name=\"send\" value=\""._SEND."\">"
  13. ."</td></tr>"
  14. ."</form></table>"


teraz chciałbym sprawdzić pola formularza,
powiedzmy że na początek zajmę się 1 polem antyspamowym "captcha"

to robię :

  1. if (($_POST['captcha'] != $_SESSION['captcha']) (echo "._CAPTCHA."));

RiE
  1. if(isset($_post['send'])){
  2. if(isset($_post['nazwa_pierwszego_pola'])){
  3. //cos
  4. }else{
  5. echo 'nie wypelniles pierwszego pola z formularza';
  6. }
  7. //itd
  8. }else{
  9. echo 'nie wypelniles zadnego pola z formularza';
  10. }
pomek2
niestety ale nadal to samo czyli:
nic się nie wyświetla żaden komunikat, a wiadomość zostaje wysłana a zrobiłem przykładowo tak aby zobaczyć czy zadziała:

  1. if(isset($_post['send'])){
  2. if(isset($_post['contact_person'])){
  3. echo ' poprawnie wypełniłeś formularz';
  4. }else{
  5. echo 'nie wypelniles pierwszego pola z formularza';
  6. }
RiE
A gdzie umieszczasz ten kod? Powinien on byc tam gdzie prowadzi ta sciezka :
  1. "<form method=\"post\" action=\"modules.php?name=$module_name&op=send_mail\">"
pomek2
Czy wstawię w plik w którym jest formularz. czy w plik send mail to i tak jest to samo czyli nic,

np
w formularzu kontaktowym z adminem a nie z ogłoszeniodawcą (z którym teraz walczęwink.gif) poradziłem sobie tak:

  1.  
  2.  
  3. <?php
  4.  
  5. if (!defined('MODULE_FILE')) {
  6. die ("You can't access this file directly...");
  7. }
  8.  
  9. require_once("mainfile.php");
  10. $module_name = basename(dirname(__FILE__));
  11. get_lang($module_name);
  12.  
  13. #define('INDEX_FILE', true);
  14. $pagetitle = "- Kontakt";
  15. $subject = $sitename." "._FEEDBACK;
  16. define('NO_EDITOR', true);
  17.  
  18. include("header.php");
  19.  
  20. if (!isset($opi) OR ($opi != "ds")) {
  21. $intcookie = intval($cookie[0]);
  22. if (!empty($cookie[1])) {
  23. $sql = "SELECT name, username, user_email FROM ".$user_prefix."_users WHERE user_id='".$intcookie."'";
  24. $result = $db->sql_query($sql);
  25. $row = $db->sql_fetchrow($result);
  26. $db->sql_freeresult($result);
  27. if (!empty($row['name'])) {
  28. $sender_name = filter(str_replace(",", " ", $row['name']), "nohtml");
  29. } else {
  30. $sender_name = filter(str_replace(",", " ", $row['username']), "nohtml");
  31. }
  32. $sender_email = filter($row['user_email'], "nohtml");
  33. } else {
  34. $sender_email = "";
  35. $sender_name = "";
  36. }
  37. }
  38.  
  39. if (!isset($message)) { $message = ""; }
  40. if (!isset($opi)) { $opi = ""; }
  41. if (!isset($send)) { $send = ""; }
  42. OpenTableMain();
  43. echo "<br />";
  44. info_box("note", _FEEDBACKNOTE);
  45. $form_block = "
  46. <div align=\"center\">
  47. <table border=\"0\" width=\"70%\">
  48. <tr><td nowrap><FORM METHOD=\"post\" ACTION=\"modules.php?name=$module_name\">
  49. <strong>"._YOURNAME.":</strong><br /><INPUT type=\"text\" NAME=\"sender_name\" VALUE=\"$sender_name\" style=\"width:350px;\"></td></tr>
  50. <tr><td nowrap><strong>"._YOUREMAIL.":</strong><br /><INPUT type=\"text\" NAME=\"sender_email\" VALUE=\"$sender_email\" style=\"width:350px;\"></td></tr>
  51. <tr><td><strong>"._MESSAGE.":</strong><br /><TEXTAREA NAME=\"message\" style=\"width:350px; height:100px;\" WRAP=virtual>$message</TEXTAREA><br>
  52. <tr><td><strong>"._CODE.":</strong><br /><br /><img src=\"token/captcha.php\"><br /><br /><input type=\"text\" name=\"captcha\" value=\"\" style=\"width:120px; height:30px;\"></td></tr>
  53. <font class=\"tiny\">"._HTMLNOTALLOWED2."</font></td></tr>
  54. <tr><td>&nbsp;<INPUT type=\"hidden\" name=\"opi\" value=\"ds\">
  55.  
  56. <INPUT TYPE=\"submit\" NAME=\"submit\" VALUE=\""._SEND."\">
  57. </FORM></td></tr></table>
  58. </div>";
  59.  
  60.  
  61. if ($_POST['opi'] != "ds") {
  62. echo $form_block;
  63. } else {
  64. if (empty($sender_name)) {
  65. $name_err = "<div align=\"center\"><span class=\"option\"><strong><em>"._FBENTERNAME."</em></strong></span></div>";
  66. $send = "no";
  67. }
  68. if (empty($sender_email)) {
  69. $email_err = "<div align=\"center\"><span class=\"option\"><strong><em>"._FBENTEREMAIL."</em></strong></span></div>";
  70. $send = "no";
  71. }
  72. if (empty($captcha)) {
  73. $email_err = "<div align=\"center\"><span class=\"option\"><strong><em>"._FBENTERCODE."</em></strong></span></div>";
  74. $send = "no";
  75. }
  76. if ($_POST['captcha'] != $_SESSION['captcha']){
  77. $email_err = "<div align=\"center\"><span class=\"option\"><strong><em>"._WRONGCODE."</em></strong></span></div>";
  78. $send = "no";
  79. }
  80. if (empty($message)) {
  81. $message_err = "<div align=\"center\"><span class=\"option\"><strong><em>"._FBENTERMESSAGE."</em></span></font></div>";
  82. $send = "no";
  83. }
  84. if ($send != "no") {
  85. $sender_name = removecrlf(filter($sender_name, "nohtml"));
  86. $sender_email = removecrlf(filter($sender_email, "nohtml"));
  87. $message = str_replace("\n", "<br />", $message);
  88. $ip = $_SERVER['REMOTE_ADDR'];
  89. $year = date("Y");
  90. $full_date = date("Y-m-d H:i:s");
  91. $tmpl_file = "modules/Feedback/mail.html";
  92. $thefile = implode("", file($tmpl_file));
  93. $thefile = addslashes($thefile);
  94. $thefile = "\$r_file=\"".$thefile."\";";
  95. eval($thefile);
  96. $msg = $r_file;
  97. /*$msg = "$sitename\n\n";
  98. $msg .= ""._SENDERNAME.": $sender_name\n";
  99. $msg .= ""._SENDEREMAIL.": $sender_email\n";
  100. $msg .= ""._MESSAGE.": $message\n\n";*/
  101. $to = $adminmail;
  102. $mailheaders = 'MIME-Version: 1.0' . "\n";
  103. $mailheaders .= 'Content-type: text/html; charset=iso-8859-2' . "\n";
  104. $mailheaders .= "From: $sender_name <$sender_email>\n";
  105. $mailheaders .= "Reply-To: $sender_email\r\n";
  106. mail($to, $subject, $msg, $mailheaders);
  107. echo "<p><div align=\"center\">"._FBMAILSENT."</div></p>";
  108. echo "<p><div align=\"center\">"._FBTHANKSFORCONTACT."</div></p>";
  109. } elseif ($send == "no") {
  110. OpenTable2();
  111. if (!empty($name_err)) { echo "$name_err"; }
  112. if (!empty($email_err)) {echo "$email_err"; }
  113. if (!empty($message_err)) {echo "$message_err"; }
  114. CloseTable2();
  115. echo "";
  116. echo $form_block;
  117. }
  118. }
  119.  
  120. CloseTableMain();
  121. include("footer.php");
  122.  
  123. ?>
  124.  
  125.  



może mógłby ktoś jeszcze raz na to spojrzeć?
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.