Autor Zpráva
Ruda
Profil
Chci se jen zeptat jestli je to správně zabezpečený proti s inj nebo sem to špatně pochopil. Jak to otestovat?
Předem dík za váš čas.

<?php
include "spojeni.php"; //pripojeni k db
mysql_query("SET NAMES 'utf8'") or die('Could not set names');

if (!is_string($_GET["id"])):
echo "Toto ne!";
else:

$id = mysql_real_escape_string($_GET["id"]);

$vyber = mysql_query("SELECT * FROM clanky WHERE kategorie='".($_GET["id"]."'"));

while($vypis = mysql_fetch_array($vyber)) {

$id=$vypis["id"];
$obrazek=$vypis["obrazek"];
$titulek=$vypis["titulek"];
$text=$vypis["text"];
$datumdb = $vypis["datum"];
$datum = Date("d.n Y",$datumdb);
$kategorie=$vypis["kategorie"];
$autor=$vypis["autor"];

echo "$obrazek";
echo "<h3>$titulek</h3>";
echo "$text";
echo "<div class=autor><br> $autor I $datum I $kategorie</div>";
}
endif;
?>
Timy
Profil
Nejdřív si ošetříš vstup „$id = mysql_real_escape_string($_GET["id"]);“ a pak tam stejně vkládáš neošetřenou proměnnou:

$vyber = mysql_query("SELECT * FROM clanky WHERE kategorie='".($_GET["id"]."'"));
djlj
Profil
$vyber = mysql_query("SELECT * FROM clanky WHERE kategorie='".($_GET["id"]."'"));
Co to tam je za bordel se závorkama?

Pokud máš v $_GET["id"] číslo kategorie, použil bych něco jako tohle:
$vyber = mysql_query("SELECT * FROM clanky WHERE kategorie=".intval($_GET["id"]));
Ruda
Profil
je to možný že tam bude bordel jsem amatér co si bastlí jen svůj webík :-)
Ruda
Profil
nevím jestli je to špatně, ale nemam tam číslo, ale název kategorie
djlj
Profil
Ruda
V tom případě mysql_real_escape_string, jak psal Timy.
Ruda
Profil
no to se právě snažím, ale pořád mi to hází
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /data/www/cs.cz/www.cs.cz/soubory/vypiskategorie.p hp on line 13
djlj
Profil
Máš nějakou chybu v SQL dotazu.
Ruda
Profil
Mějte se mnou prosím strpení. Začal jsem s tím teprve teď (po upozornění že si mám na web připíchnout neošetřený web nedělejte mi prosím bordel v systému :-) Něco jsem pohledal a počet, ale s funkcema mám zatím potíže. Tak dík za každou radu.
Ruda
Profil
Pravděpodobně tam blbě vpisuju tu fci.
Ruda
Profil
Dík moc za snahu a za ochotu. Já to dneska vzdávam. Du spát nebo padnu do klávesnice.
djlj
Profil
Vypiš si MySQL chybu: echo mysql_error();.
Ruda
Profil
Dík ještě zkusím.
Ruda
Profil
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''Kdeco\'' at line 1
djlj
Profil
A napiš sem prosím ještě jak vypadá ten SQL dotaz…
Ruda
Profil
Toho sem se bál :-) Já tam tu fci zkoušel zakomponovat všelijak ale určitě pokaždý špatně.
Ruda
Profil
Takhle to projde, ale to je asi kravina.
$vyber = mysql_real_escape_string($_GET["id"]);
$vyber = mysql_query("SELECT * FROM clanky WHERE kategorie='".($_GET["id"]."'"));
djlj
Profil
$vyber = mysql_query("SELECT * FROM clanky WHERE kategorie='".mysql_real_escape_string($_GET["id"])."'");

Doporučil bych ti prostudovat si nějaké php tutoriály, třeba http://linuxsoft.cz/php/
Ruda
Profil
Díky moc .To víš že študuju, ale je toho na mě najednou nějak moc. Já začal s phpkem a DB teprve nedávno. Tak ještě jednou dík a dobrou. Zejtra sem hodím jestli sem to zprovoznil.
Ruda
Profil
No nedalo mi to a ještě sem to zkusil. Jasně že to funguje. Tak po desátý DÍK MOC!
Můžete to zamknout

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: