Autor Zpráva
pds
Profil
Potreboval by som radu ohladne Guestbooku. Občas sa stane , že mi v ňom niekto nechá vela spamov z nejakými odkazmi na ich stránky. Chcel by som zabrániť takémuto pridávaniu.

Preto by som chcel urobiť filter správy aby zisťoval či sa v texte nenachádza napr. výraz: "<a href=" a nepovolil zápis. Neviem ako to mám urobyť. Mám tam klasické podmienky na kontrolu mejlovej adresy a tak. Mám tam niečo takéto: Pole s textom sa volá "popis"...

<SCRIPT LANGUAGE="JavaScript"><!--
function zkontroluj(formular)
{

if (formular.jmeno.value=="")
{
alert("Vaše meno (prezývku) musíte vyplnit!");
formular.jmeno.focus();
return false;
}

....

Chcel by som to nejak takto:

Ked je v texte "<a href=" tak zastav. ... Ale neviem ten správny príkaz.
Joker
Profil
nejlépe skriptem na straně serveru. Například v PHP se to obvykle dělá regulárním výrazem, nicméně takhle jednoduchý požadavek by se dal zabezpečit přes strstr():
$zprava = $_POST["zprava"];
if(strstr($zprava,'<a href=')) die('Zpráva obsahuje nepovolené HTML značky! <a href="index.php">zpět na úvodní stránku</a>');
else{
*uložení zprávy*
}

Javascript Vám v tomhle nepomůže, protože spamroboti JS vůbec neprovádí.

edit: jo, před uložením bych ještě pro jistotu udělal:
$zprava = htmlspecialchars($zprava);
To by mělo zabránit odeslání vlastního HTML kódu a zároveň znemožnit SQL injection.
(tj. odfiltrovat třeba vtipálky, co by poslali příspěvky typu: <div style="display:none"> nebo <img src="fotka_4000x3000.jpg"> nebo '; drop table guestbook --)
Toto téma je uzamčeno. Odpověď nelze zaslat.

0