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
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
lionel messi:

vďaka za odpoved porozmyslam nad tym riesenim:)
Keeehi
Profil
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
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
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
tomas2245:
Kontrola v prohlizeci nestaci, je potreba validovat i na strane serveru v php.
Keeehi
Profil
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.. :)

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: