Autor | Zpráva | ||
---|---|---|---|
J Profil * |
Napadá někoho proč se formulář odešle i když nejsou splněné podmínky (vyplněná požadovaná pole a správně vyplněná položka spam). Vypíše se sice správná hláška: že e-mail nebyl odeslán, ale ve skutečnosti se formulář odešle nevyplněný.
Mám toto: <?php $mail = "mail@seznam.cz"; $predmet = "mail"; $identifikace = "formuláře na webu www.web.cz"; $email = $_POST['email']; $spam = $_POST['spam']; $datum = date( "d.M.Y v H:i:s"); $poznamka = $predmet." z ".$identifikace. " \r\n---------- ". " \r\nDatum a čas: ".$datum. " \r\nJméno a příjmení: ".$_POST['jmeno']." ".$_POST['prijmeni']. " \r\nTelefon: ".$_POST['telefon']. " \r\nEmail: ".$_POST['email']. " \r\nPoložka1: ".$_POST['polozka1']. " \r\nPoznámka: ".$_POST['poznamka']. " \r\nŽádost přišla z IP adresy: ".$REMOTE_ADDR; $kon = cs_mail ($mail, $predmet, $poznamka, "From: $email\n"); if ($_POST['jmeno']!="" and $_POST['prijmeni']!="" and $_POST['telefon']!="" and $email!="" and $spam=="2" ) { $kon = cs_mail ($mail, $predmet, $poznamka, "From: $email\n"); if ($kon) echo "E-mail byl úspěšně odeslán.<br>"; } else echo "E-mail se bohužel nepodařilo odeslat.<br>"; ?> <?php function autoUTF($s) { // detect UTF-8 if (preg_match('#[\x80-\x{1FF}\x{2000}-\x{3FFF}]#u', $s)) return $s; // detect WINDOWS-1250 if (preg_match('#[\x7F-\x9F\xBC]#', $s)) return iconv('WINDOWS-1250', 'UTF-8', $s); // assume ISO-8859-2 return iconv('ISO-8859-2', 'UTF-8', $s); } function cs_mail ($to, $predmet, $poznamka, $head = "") { $predmet = "=?utf-8?B?".base64_encode(autoUTF ($predmet))."?="; $head .= "MIME-Version: 1.0\n"; $head .= "Content-Type: text/plain; charset=\"utf-8\"\n"; $head .= "Content-Transfer-Encoding: base64\n"; $poznamka = base64_encode (autoUTF ($poznamka)); return mail ($to, $predmet, $poznamka, $head); } ?> Moderátor Chamurappi: Vkládej prosím kód mezi značky [pre] a [/pre] (stačí kliknout na ).
|
||
Chamurappi Profil |
#2 · Zasláno: 13. 6. 2009, 03:20:37
Reaguji na J:
PHP neumím, ale pokud jsem tvůj zdroják správně pochopil, tak odešleš mail (řádek 18), pak otestuješ vyplněnost polí (řádek 20) a pokud jsou vyplněná, odešleš mail znovu (řádek 22). |
||
fuckin Profil * |
#3 · Zasláno: 13. 6. 2009, 09:17:19
presne tak mas to tam 2x, tu podminku si radsi dej uplne nahoru...proc prirazovat do promennych hodnoty kdyz pak stejne budou prazdne?
|
||
J Profil * |
#4 · Zasláno: 13. 6. 2009, 11:55:49
Jste HLAVIČKY! Díky. Koukal jsem do toho tak dlouho, až jsem přehlédl, že tam mám takový nesmysl.
|
||
Časová prodleva: 15 let
|
0