Citanje iz baze, pomoc, problem

Citanje iz baze, pomoc, problem

offline
  • Niko E
  • Software & Information Engineering
  • Pridružio: 05 Maj 2009
  • Poruke: 135
  • Gde živiš: Wien

Ovako: (Pokusacu da budem sto jasniji i da objasnim sto jednostavnije)

Imam tabelu u MySQL bazi, koja sadrzi :

id - Int
naslov - Varchar
sadrzaj - Text
I jos nesto, sad nebitno.

U php stranici definisao sam sledece :
Citat:mysql_connect("localhost","blabla","");
mysql_select_db("tabela");

$strana = $_GET['strana'];
if($strana){
include($strana);
}

$citaj = mysql_query("SELECT * FROM strane WHERE id = ".strana);

while($row = mysql_fetch_assoc($citaj))
{
$id = $row['id'];
$naslov = $row['naslov'];
$sadrzaj = $row['sadrzaj'];

echo $naslov." <br>".$sadrzaj."<br><hr>";

}


I na strani npr "nesto.php?strana=1", to radi i cita iz baze iz id-1.

Pitanje je zasto ovo ne radi :
Citat:
$citaj = mysql_query("SELECT * FROM strane WHERE naziv = ".strana);
?
I sta treba da uradim da bi ovo radilo ?

Mislim da nije veliki problem. Ako neko moze da mi pomogne.

Hvala unapred.



Registruj se da bi učestvovao u diskusiji. Registrovanim korisnicima se NE prikazuju reklame unutar poruka.
offline
  • Pridružio: 15 Maj 2006
  • Poruke: 333
  • Gde živiš: Babušnica

$citaj = mysql_query("SELECT * FROM strane WHERE naziv = '$strana' ");

i odmah ispod upita stavi ovu liniju koda

$result = mysql_query($citaj) or die(mysql_error());

u slucaju greske izbacice ti informaciju gde je nastala


edit: moja greska...

mislio sam ovako:

$sql = "SELECT * FROM strane WHERE naziv = '$strana' "; $citaj = mysql_query($sql) or die(mysql_error());



offline
  • Niko E
  • Software & Information Engineering
  • Pridružio: 05 Maj 2009
  • Poruke: 135
  • Gde živiš: Wien

Hvala puno Very Happy
Sad mogu da zavrsim sajt. Smile

offline
  • Pridružio: 08 Jan 2010
  • Poruke: 101

inace, Nikola04, ovo:
$strana = $_GET['strana']; if($strana){ include($strana); } $citaj = mysql_query("SELECT * FROM strane WHERE id = ".strana);
je vrlo opasno.

moras paziti sta ukljucujes sa include() funkcijom, takodje moras paziti sta se sve ubacuje u mysql query da ne bi doslo do :

offline
  • lnenad  Male
  • Stručni saradnik
    Web
  • Nenad
  • Arhitetak
  • Pridružio: 16 Jan 2007
  • Poruke: 2860
  • Gde živiš: Bijeljina

Sta milos zelis da kaze jeste da je sajt veoma podlozan MySQL injekciji (boca Very Happy) i da svaki sadrzaj koji ulazi u sajt bi trebao da bude filtriran.

http://www.tizag.com/mysqlTutorial/mysql-php-sql-injection.php

offline
  • Pridružio: 08 Jan 2010
  • Poruke: 101

takodje gornji deo:
$strana = $_GET['strana']; if($strana){ include($strana); }

ranjiv na remote file inclusion gde je moguce ubaciti bilo koji php kod uglavnom se iskoriscava ubacivanjem php shell-a tako da u tvom primeru mozes proveriti da li je $strana broj jer kasnije koristis tu varijablu (broj) u mysql query-ju kao id

Ko je trenutno na forumu
 

Ukupno su 773 korisnika na forumu :: 6 registrovanih, 0 sakrivenih i 767 gosta   ::   [ Administrator ] [ Supermoderator ] [ Moderator ] :: Detaljnije

Najviše korisnika na forumu ikad bilo je 3466 - dana 01 Jun 2021 17:07

Korisnici koji su trenutno na forumu:
Korisnici trenutno na forumu: bojank, Koridor, Litostroton, LUDI, stegonosa, wizzardone