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
echo '<p> </p><p class="err">Wiadomość wysłana, dziękujemy.</p>';
kod:
<?php
$your_email ="kontakt@xxx.pl";
$errors = "";
$name = "";
$visitor_email = "";
$user_message = "";
if(isset($_POST["submit"])) { $name = $_POST["name"];
$visitor_email = $_POST["email"];
$user_message = $_POST["message"];
if(empty($name)||empty
($visitor_email)) { $errors .= "Imię i email są polami wymaganymi!";
}
if(IsInjected($visitor_email)) {
$errors .= "Zły email!";
}
if(empty($_SESSION["6_letters_code"] ) || strcasecmp($_SESSION["6_letters_code"], $_POST["6_letters_code"]) != 0
) { $errors .= "Przepisz kod poprawnie!";
}
$to = $your_email;
$subject = "=?UTF-8?B?" . base64_encode("Poland - kontakt") . "?="; $ip = isset($_SERVER["REMOTE_ADDR"]) ?
$_SERVER["REMOTE_ADDR"] : "";
$body = "<html>";
$body .= "<head></head>";
$body .= "<body>";
$body .= "$name ($visitor_email) napisał/ła:" .
"<p>Treść: " . "$user_message</p>" .
"<p>IP: $ip</p>";
$body .= "</body>";
$body .= "</html>";
$headers = "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset=UTF-8\r\n";
$headers .= "From: Poland <kontakt@XXX.pl>\r\n";
$headers .= "Reply-To: $visitor_email\r\n";
mail($to, $subject, $body, $headers);
echo '<p> </p><p class="err">Wiadomość wysłana, dziękujemy.</p>'; } else {
echo '<p> </p><p class="err">' . nl2br($errors) . '</p>'; }
}
function IsInjected($str) {
$injections = array("(\n+)", "(\r+)", "(\t+)", "(%0A+)", "(%0D+)", "(%08+)", "(%09+)"); $inject = join("|", $injections); $inject = "/$inject/i";
return true;
} else {
return false;
}
}
?>
<p><div id="contact_form_errorloc" class="err"></div></p>
<p> </p>
<form method="POST" name="contact_form" action="
<?php echo htmlentities($_SERVER["REQUEST_URI"]); ?>">
<p>
<label for="name">Imię i nazwisko:</label><br>
<input type="text" name="name" value="" size="50">
</p>
<p>
<label for="email">Twój email:</label><br>
<input type="text" name="email" value="" size="50">
</p>
<p>
<label for="message">Treść wiadomości:</label><br>
<textarea name="message" rows="10" cols="50"></textarea>
</p>
<p>
<img src="form/captcha_code_file.php?rand=
<?php echo rand(10
,100
); ?>" id="captchaimg"><br>
<small>Nie możesz odczytać kodu? <a href="java script: refreshCaptcha();">Wygeneruj nowy.</a></small><br>
<label for="message">Wpisz powyższy kod tutaj:</label>
<input id="6_letters_code" name="6_letters_code" type="text"><br>
<br>
<input type="submit" value="wyślij" name="submit">
</p>
</form>
Ten post edytował piotrd 19.08.2011, 20:45:47