kmalcherczyk Posted July 12, 2013 Share Posted July 12, 2013 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 More sharing options...
vekia Posted July 12, 2013 Share Posted July 12, 2013 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 More sharing options...
Krystian Podemski Posted July 12, 2013 Share Posted July 12, 2013 Vekia on rozpoczął funkcję od @ czyli nie zwróci błędu więc to or die() to raczej nie ma szans zadziałać Link to comment Share on other sites More sharing options...
kmalcherczyk Posted July 12, 2013 Author Share Posted July 12, 2013 (edited) Wyświetla normalnie że wiadomość została wysłana, nawet gdy usunę tą @ efekt jest ten sam, liczę na waszą pomoc. Działa to dokładnie na tej stronie: http://hurthaffey.pl/kontakt.html Edited July 12, 2013 by kmalcherczyk (see edit history) Link to comment Share on other sites More sharing options...
Krystian Podemski Posted July 12, 2013 Share Posted July 12, 2013 http://pastebin.com/9cZUi1Qz Spróbuj taki kod tam pomiędzy klamrami gdzie dane są sprawdzone. Link to comment Share on other sites More sharing options...
kmalcherczyk Posted July 12, 2013 Author Share Posted July 12, 2013 (edited) Ż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 July 12, 2013 by kmalcherczyk (see edit history) Link to comment Share on other sites More sharing options...
Krystian Podemski Posted July 12, 2013 Share Posted July 12, 2013 (edited) 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 July 12, 2013 by Krystian Podemski (see edit history) Link to comment Share on other sites More sharing options...
kmalcherczyk Posted July 12, 2013 Author Share Posted July 12, 2013 To już nie rozumiem, wysyłasz mi jakiś kod a teraz wysyłasz skrócony mój, gdzie mam w koncu dodać a gdzie usunąć jakie linijki i jak miałby wyglądać efekt końcowy? Link to comment Share on other sites More sharing options...
Krystian Podemski Posted July 12, 2013 Share Posted July 12, 2013 Wyraziłem się jasno, mój kod wklejasz w miejscu Twojego kodu które zaznaczyłem "//tutaj". Warto sprawdzać i analizować podawane rozwiązania, a nie po prostu liczyć na to, że ktoś poda gotowe rozwiązanie w 100% do ręki. Link to comment Share on other sites More sharing options...
kmalcherczyk Posted July 12, 2013 Author Share Posted July 12, 2013 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 More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now