Autor | Zpráva | ||
---|---|---|---|
tomas2245 Profil |
Zdravím,
prišiel som sem s problémom s ktorým si už druhý rok neviem dať rady... mám objednávkový formulár riešený cez tento PHP + HTML kód: (.php) vyzerá takto: <?php $meno=$_POST["meno"]; $priezvisko=$_POST["priezvisko"]; $text=$_POST["text"]; $text=" Meno: $meno Priezvisko: $priezvisko; $text = preg_replace('/(?:\s*\R\s*){1,}/u', PHP_EOL, $text); $mail_to = 'moj@mail.sk'; $mail_subject = 'názov'; $headers = 'From: '.$meno. $priezvisko.'' . "\r\n" . 'Reply-To: '.$email.'' . "\r\n" . 'X-Mailer: PHP/' . phpversion(); mail($mail_to, $mail_subject, $text, $headers); ?> normálne po vyplnení polí cca. 95% všetko odošle správne na e-mail. Zvyšných 5% raz za čas sa proste stane, že každý deň príde (min. 1 krát) na mail prázdna správa s tou šablonou (meno+priezvisko). Neviem teda, či to na nejakom prehliadači je chýbne, alebo čo s tým je, preto vás prosím či by ste sa mi na ten kód pozreli. Vopred ďakujem, Tomáš. |
||
lionel messi Profil |
#2 · Zasláno: 15. 3. 2016, 21:39:46
tomas2245:
Na riadkoch 3, 4 a 6 sa ti pri neexistencii danej superglobálnej premennej vyhodí chybová hláška Notice: Undefined index…, to by ale bol najmenší problém. Za koncom reťazca, ktorý má byť v $text ti chýbajú uzatváracie úvodzovky (zrejme omyl pri prepisovaní kódu, inak by maily pri tejto syntaktickej chybe nechodili vôbec).
Jednoduchá funkcia mail často nestačí, odporúčam zvážiť použitie funkcie z FAQ, prípadne nejaké pokročilejšie hotové riešenie (PHPMailer). |
||
tomas2245 Profil |
#3 · Zasláno: 15. 3. 2016, 21:44:56
lionel messi:
vďaka za odpoved porozmyslam nad tym riesenim:) |
||
Keeehi Profil |
#4 · Zasláno: 16. 3. 2016, 00:47:03
tomas2245:
„mail prázdna správa s tou šablonou (meno+priezvisko).“ De tohoto popisu bych to viděl, že nějaký robot co prochází stránky prostě odešle prázdný formulář. Jelikož nikde nekontroluješ vyplnění polí tak stejně prázdného emailu dosáhneš pravděpodobně i tak, že si na tvé stránce klikneš na odeslat formulář aniž bys něco vyplnil. |
||
tomas2245 Profil |
Keeehi
,,Jelikož nikde nekontroluješ vyplnění polí tak stejně prázdného emailu dosáhneš pravděpodobně i tak, že si na tvé stránce klikneš na odeslat formulář aniž bys něco vyplnil." túto možnosť kontrolujem, ale som ju sem nenapísal... nejako ma to nenapadlo :D |
||
Keeehi Profil |
#6 · Zasláno: 16. 3. 2016, 09:08:59
tomas2245:
„túto možnosť kontrolujem“ A jak? Kontroluješ taky něco jiného? Chtělo by to ukázat celý kód. |
||
tomas2245 Profil |
#7 · Zasláno: 16. 3. 2016, 14:28:42
Keeehi:
cez tieto dva scripty, ktoré som našiel niekde na nete.. <script language="JavaScript"> <!------------- function HideIt() { document.getElementById('required').style.visibility= "hidden"; document.getElementById('requiredtext').style.visibility= "hidden"; } function CheckEmptyField( theField, theMessage ) { if( theField.value=="" ) { theField.focus(); if(document.getElementById) { document.getElementById('required').style.visibility= "visible"; document.getElementById('requiredtext').style.visibility= "visible"; document.getElementById('requiredtext').innerHTML= theMessage; setTimeout( "HideIt()",5000); } else { alert(theMessage); } return false; } else { return true; } } function Validate(theForm) { if( !CheckEmptyField(theForm.meno,"") ) return false; if( !CheckEmptyField(theForm.priezvisko,"") ) return false; if( !CheckEmptyField(theForm.mestoobec,"") ) return false; if( !CheckEmptyField(theForm.ulica,"") ) return false; if( !CheckEmptyField(theForm.cislodomu,"") ) return false; if( !CheckEmptyField(theForm.psc,"") ) return false; if( !CheckEmptyField(theForm.tel,"") ) return false; // uspech return true; } //--------------> </script> <form method="POST" action="odoslane.php" TARGET="multipart/form-data" ACCEPT-CHARSET="UTF-8" class="form2" onSubmit="return Validate(this);"> <script language="JavaScript"><!------------- if(document.getElementById) { document.write('<img ID="required" STYLE="visibility:hidden; position:absolute; left:500px; top: 320px" src="obrazky/upozornenie.gif">'); document.write('<p ID="requiredtext" STYLE="visibility:hidden; position:absolute; left:100; top:155" >abc</p>'); } </script |
||
blaaablaaa Profil |
#8 · Zasláno: 16. 3. 2016, 14:37:29
tomas2245:
Kontrola v prohlizeci nestaci, je potreba validovat i na strane serveru v php. |
||
Keeehi Profil |
#9 · Zasláno: 16. 3. 2016, 17:49:26
Přesně tak jak píše blaaablaaa. Když si v prohlížeči vypneš javascript, bude se ti to chovat asi tak jak to vidí robot. Toho žádný javascript nemusí zajímat.
|
||
tomas2245 Profil |
blaaablaaa , Keeehi:
vďaka za pomoc chalani, niečo už vymyslím.. :) |
||
Časová prodleva: 9 let
|
0