Amfidiusz Opublikowano 14 Marca 2012 Opublikowano 14 Marca 2012 Heya, Jakiś czas temu pomogliście mi stworzyć przyjemny formularz kontaktowy: &--#60;?php // Your code here to handle a successful verification $mail = $_REQUEST['email'] ; $mess = $_REQUEST['message'] ; $nazw = $_REQUEST['name'] ; $sub = $_REQUEST['subject'] ; if (empty($mail) || empty($mess) || empty($sub) || empty($nazw)) { header( "Location:http://laxer.eu/page/mail_error" ); } else { $message = "Name: $_POST[name]\nEmail: $_POST[email]\n\n$_POST[message]"; $message = str_replace( '\r', '', $message ); $header = "'Content-type: text/html; charset=utf-8'". "\r\n"; $header .= "From: $_POST[name] &--#60;$_POST[email]&--#62;"; if (@mail("[email protected]","$_POST[subject]","$message","$header")){ header('Location: http://laxer.eu/page/mail_sent'); } } ?&--#62; Działa on bez zarzutu, do weryfikacji używałem reCaptchy. Jednak posiadam obecnie formularz, w którym nie ma miejsca na captchę. Czy moglibyście mi pomóc dodać do powyższego formularza pytanie antyspamowe (typu 2+2)? Chciałbym, żeby skrypt przed wysłaniem wiadomości sprawdzał, czy dane pole input zostało poprawnie wypełnione (if ($spam == '2')), a następnie albo wysyłał maila, albo przekierowywał na stronę błędu. Pomożecie? Ustawienia IP.Board po polsku!
Manager DawPi Opublikowano 15 Marca 2012 Manager Opublikowano 15 Marca 2012 Eee no nie żartuj - prosty input, a potem to, co podałeś.. intermedia - profesjonalne rozwiązania Invision Power Board --- Chcesz uzyskać szybko i sprawnie pomoc? Uzupełnij wersję i adres w profilu.
Amfidiusz Opublikowano 15 Marca 2012 Autor Opublikowano 15 Marca 2012 Czyli coś w ten deseń? &--#60;?php // Your code here to handle a successful verification $mail = $_REQUEST['email'] ; $mess = $_REQUEST['message'] ; $nazw = $_REQUEST['name'] ; $sub = $_REQUEST['subject'] ; if (empty($mail) || empty($mess) || empty($sub) || empty($nazw)) { header( "Location:http://laxer.eu/page/mail_error" ); } else { if ($spam == '2') { $message = "Name: $_POST[name]\nEmail: $_POST[email]\n\n$_POST[message]"; $message = str_replace( '\r', '', $message ); $header = "'Content-type: text/html; charset=utf-8'". "\r\n"; $header .= "From: $_POST[name] &--#60;$_POST[email]&--#62;"; if (@mail("[email protected]","$_POST[subject]","$message","$header")){ header('Location: http://laxer.eu/page/mail_sent'); } else { header('Location: http://przestan.mnie.spamowac'); } } } ?&--#62; Ustawienia IP.Board po polsku!
Manager DawPi Opublikowano 15 Marca 2012 Manager Opublikowano 15 Marca 2012 hm, kurde, trochę kiszka, bo co to za zmienna $spam? Nie masz jej nigdzie zadeklarowanej. intermedia - profesjonalne rozwiązania Invision Power Board --- Chcesz uzyskać szybko i sprawnie pomoc? Uzupełnij wersję i adres w profilu.
Amfidiusz Opublikowano 15 Marca 2012 Autor Opublikowano 15 Marca 2012 No zmienna byłaby zadeklarowana w formularzu <label>4+4</label> <input type="text" id="spam" name="spam"> Skrypt miałby porównać tekst wpisany przez użytkownika w tym inpucie i jeśli by się zgadzał z wyznaczona wartością, to wysyłałby maila. Ustawienia IP.Board po polsku!
Manager DawPi Opublikowano 15 Marca 2012 Manager Opublikowano 15 Marca 2012 Pod tym: $sub = $_REQUEST['subject'] ; Daj: $spam = intval( $_REQUEST['spam'] ); Dlaczego? Ano dlatego, że regster globals już dawno są wyłączone na serwerach - na tych poprawnie skonfigurowanych oczywiście. Bo to było zuo wcielone. 1 intermedia - profesjonalne rozwiązania Invision Power Board --- Chcesz uzyskać szybko i sprawnie pomoc? Uzupełnij wersję i adres w profilu.
Amfidiusz Opublikowano 15 Marca 2012 Autor Opublikowano 15 Marca 2012 Wierzę na słowo. I mając tak zdefiniowaną zmienna, reszta kodu będzie działać poprawnie? Ustawienia IP.Board po polsku!
Manager DawPi Opublikowano 15 Marca 2012 Manager Opublikowano 15 Marca 2012 Może jak już taką partyzantkę robisz to lepiej tak: <?php $mail = $_REQUEST['email']; $mess = $_REQUEST['message']; $nazw = $_REQUEST['name']; $sub = $_REQUEST['subject']; $spam = intval( $_REQUEST['spam'] ); if (empty($mail) || empty($mess) || empty($sub) || empty($nazw)) { header( "Location:http://laxer.eu/page/mail_error" ); } else { if ($spam == '2') { $message = "Name: $_POST[name]\nEmail: $_POST[email]\n\n$_POST[message]"; $message = str_replace( '\r', '', $message ); $header = "'Content-type: text/html; charset=utf-8'". "\r\n"; $header .= "From: $_POST[name] &--#60;$_POST[email]&--#62;"; if (@mail("[email protected]","$_POST[subject]","$message","$header")) { header('Location: http://laxer.eu/page/mail_sent'); } else { header('Location: http://przestan.mnie.spamowac'); } } else { header('Location: http://przestan.mnie.spamowac'); } } 1 intermedia - profesjonalne rozwiązania Invision Power Board --- Chcesz uzyskać szybko i sprawnie pomoc? Uzupełnij wersję i adres w profilu.
Amfidiusz Opublikowano 15 Marca 2012 Autor Opublikowano 15 Marca 2012 Może jak już taką partyzantkę robisz to lepiej tak: Można inaczej? Łatwiej? Poprawniej? Ustawienia IP.Board po polsku!
Manager DawPi Opublikowano 15 Marca 2012 Manager Opublikowano 15 Marca 2012 Pewnie. Choćby sprawdzać poprawność maila, długość tytułu, wiadomości etc. intermedia - profesjonalne rozwiązania Invision Power Board --- Chcesz uzyskać szybko i sprawnie pomoc? Uzupełnij wersję i adres w profilu.
Amfidiusz Opublikowano 20 Marca 2012 Autor Opublikowano 20 Marca 2012 Podany kod działa wyśmienicie Dzięki! Ustawienia IP.Board po polsku!
Jakub Opublikowano 20 Marca 2012 Opublikowano 20 Marca 2012 Problem ROZWIĄZANY. Jeśli są jakiekolwiek wątpliwości, pytania proszę o założenie nowego tematu. Wszelkie uzasadnione reklamacje/pretensje/sugestie/rady przyjmuje ekipa forum. Nasz kolega już siedział za piracką wersję IPB, Ty też możesz† Będziemy bronić SB po kres naszych sił †Nie ma bolca na izolca!!!Tłumaczes Power
Rekomendowane odpowiedzi