Jump to content

Formularz


kmalcherczyk

Recommended Posts

Chciałbym stworzyć własny formularz kontaktowy ale gdzieś jest błąd ponieważ wiadomość nie dochodzi.

 

W pliku głównym index.html mam ten kod:

<table border="0" cellpadding="0" cellspacing="0">
<form action="mail.php" method="post">
<tr><td class="dane">Imię:     </td>
<td><input type="text" name="imienazwisko" style="width:400px;"/></td>
</tr><tr>
<td class="dane">E-mail:     </td>
<td><input type="text" name="email" style="width:400px;"/></td>
</tr><tr>
<td class="dane">Treść:     </td>
<td><textarea name="trescwiadomosci" style="height:200px;width:400px;"></textarea></td>
</tr><tr>
<td><br><br><br><br></td>
<td><input type="submit" name="submit" value="WYŚLIJ"/></td>
</form></tr>
</table>

 

W pliku mail.php mam ten kod:

 

<?php
if(empty($_POST['submit'])){
?>
<?php
}elseif(!empty($_POST['imienazwisko']) && !empty($_POST['email']) && !empty($_POST['trescwiadomosci'])){
function SprawdzEmail($email) {
if (!eregi("^[_.0-9a-z-]+@([0-9a-z][0-9a-z-]+.)+[a-z]{2,4}$" , $email)){
return false;
}
return true;
}
if(SprawdzEmail($_POST['email'])){
$adresemail="[email protected]";
$ip=$_SERVER['REMOTE_ADDR'];
$host=gethostbyaddr($_SERVER['REMOTE_ADDR']);
$wiadomosc="Od: $_POST[imienazwisko] ($_POST[email])\nIP: $ip, HOST: $host\n\n$_POST[trescwiadomosci]";
$nadawca="From: $_POST[email]";
@mail($adresemail, "Formularz kontaktowy", "$wiadomosc", "$nadawca") or die('Formularz nie został wysłany');
echo "Dziękuję, mail został wysłany.";
}else{ echo "Wprowadzony adres e-mail jest niepoprawny"; }
}else{ echo "Wypełnij wszystkie pola formularza"; }
?>

 

Wydaje się wszystko okey lecz wiadomości nie wysyła, temat może nie koniecznie związany z presta ale liczę na waszą pomoc.

Link to comment
Share on other sites

jakieś błedy Ci wywala? (upewnij się, że masz raportowanie błędów włączone)

 

w kodzie masz:

@mail($adresemail, "Formularz kontaktowy", "$wiadomosc", "$nadawca") or die('Formularz nie został wysłany');

 

czy pojawia się "forumarz nie został wysłany" ?

Link to comment
Share on other sites

Że niby do pliku mail mam to dodać?

TAK? :

 

<?php
if(empty($_POST['submit'])){
?>
<?php
$ip = $_SERVER['REMOTE_ADDR'];
$host = gethostbyaddr($_SERVER['REMOTE_ADDR']);
$to	  = '[email protected]';
$subject = 'Wiadomość ze strony';
$nadawca = $_POST['email'];
$message = 'Od: '.$nadawca;
$message .= '<br />Imię i nazwisko: '.$_POST['imienazwisko'].', IP: '.$ip.', host: '.$_POST['trescwiadomosci'];
$message .= '<br /><br />'.$_POST['trescwiadomosci'];

$headers  = 'MIME-Version: 1.0'."\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1'."\r\n";
$headers .= 'To: [email protected]'."\r\n";
$headers .= 'From: '.$nadawca."\r\n";

if(mail($to, $subject, $message, $headers))
echo 'OK';
else
echo 'BAAAD';
?>

Edited by kmalcherczyk (see edit history)
Link to comment
Share on other sites

No tak, przetestuj. Ale zachowaj taby tak jak były w ostatnich 4 linijkach...

 

Edit: nie, jednak nie tak - po tym kodzie gdzie sprawdzasz czy wszystko OK.

 

Tak:

<?php
if(empty($_POST['submit'])){
?>
<?php
}elseif(!empty($_POST['imienazwisko']) && !empty($_POST['email']) && !empty($_POST['trescwiadomosci'])){
function SprawdzEmail($email) {
if (!eregi("^[_.0-9a-z-]+@([0-9a-z][0-9a-z-]+.)+[a-z]{2,4}$" , $email)){
return false;
}
return true;
}
if(SprawdzEmail($_POST['email'])){
// tutaj
}else{ echo "Wprowadzony adres e-mail jest niepoprawny"; }
}else{ echo "Wypełnij wszystkie pola formularza"; }
?>

Edited by Krystian Podemski (see edit history)
Link to comment
Share on other sites

Nie nie liczyłem na to po prostu nie zauważyłem czyli kod pliku mail.php ma tak wyglądać?

<?php
if(empty($_POST['submit'])){
?>
<?php
}elseif(!empty($_POST['imienazwisko']) && !empty($_POST['email']) && !empty($_POST['trescwiadomosci'])){
function SprawdzEmail($email) {
if (!eregi("^[_.0-9a-z-]+@([0-9a-z][0-9a-z-]+.)+[a-z]{2,4}$" , $email)){
return false;
}
return true;
}
if(SprawdzEmail($_POST['email'])){
$ip = $_SERVER['REMOTE_ADDR'];
$host = gethostbyaddr($_SERVER['REMOTE_ADDR']);
$to      = '[email protected]';
$subject = 'Wiadomość ze strony';
$nadawca = $_POST['email'];
$message = 'Od: '.$nadawca;
$message .= '<br />Imię i nazwisko: '.$_POST['imienazwisko'].', IP: '.$ip.', host: '.$_POST['trescwiadomosci'];
$message .= '<br /><br />'.$_POST['trescwiadomosci'];

$headers  = 'MIME-Version: 1.0'."\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1'."\r\n";
$headers .= 'To: [email protected]'."\r\n";
$headers .= 'From: '.$nadawca."\r\n";

if(mail($to, $subject, $message, $headers))
echo 'OK';
else
echo 'BAAAD';
}else{ echo "Wprowadzony adres e-mail jest niepoprawny"; }
}else{ echo "Wypełnij wszystkie pola formularza"; }
?>

 

A coś muszę edytować w formie w index.php? Bo nadal nie działa, a po wysłaniu maila z formularza wyskakuje OK!

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...