Autor Zpráva
MarekOdehnal
Profil *

<?
$kontrola=$_POST['kontrol'];
if($kontrol=="oka"){
$ip=$_POST['ip'];
$spam=$_POST['spam'];
$jmeno=$_POST['meno'];
$email=$_POST['mail'];
$zprava=$_POST['zprava'];
$casvlozeni=(Time());
if($jmeno!="" && $zprava!="" && $spam=="2"){
$db="databaze";
$tb="tabulka";
$spojeni=mysql_connect("server","username","pass");
mysql_select_db($db, $spojeni);
mysql_query("INSERT INTO $tb values ('$casvlozeni', '$ip', '$meno', '$mail', '$zprava')", $spojeni);
}
?>


Ahoj, tenhle kód vkládá do databáze proměnné, které přišli z formuláře. S PHP moc neumím, tak jsem si tu udělal jen tak aby to fungovalo a potřeboval bych to zabezpečit. Otázka je jak. Napadá mne odstranit z určitých řetězců různé speciální znaky. Jak by takové funkce (nejlépe na konkrétním příkladu) měly vypadat? Pokud Vás napadne jíný způsob zabezpečení, tak sem s ním!
K.
Profil *
Pro začátek by mohlo stačit ošetřit všechna vkládaná data z POSTu pomocí fce: mysql_real_escape_string.
MarekOdehnal
Profil *
Mohl by mi někdo prosím napsat příklad jak použít mysql_real_escape_string?

Dejme tomu, že mám proměnou s řetězcem

$retezec="";

a chci ho prohnat tou funkcí.
K.
Profil *
$retezec = mysql_real_escape_string($retezec);


V tvém příkladě to můžeš přímo použít následovně:

$spam=mysql_real_escape_string($_POST['spam']);

ETC.

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:

0