[ prginfo @ 27.04.2010. 12:04 ] @
Molio bih Vas za pomoc.
Imam MySQL bazu u kojoj postoji tabela korisnik sa ispravnim podacima. Imam .php stranicu koja radi upit.
U firebug-u posmatram slanje parametara i upit. Posalju se dobri parametri, ali mi upit ne vraca nikakav rezultat, tj. uvek mi je $output ==no

Kada upit pustim kroz SQLYog ili neki drugi program, iz baze mi se vrati podatak.

Pretpostavljam da je negde greska u .php strani.

Samo da napomenem da je rec o tutorialu.

Code:
<?php
define( "DATABASE_SERVER", "localhost" );
define( "DATABASE_USERNAME", "root" );
define( "DATABASE_PASSWORD", "" );
define( "DATABASE_NAME", "baza" );

$mysql = mysql_connect(DATABASE_SERVER, DATABASE_USERNAME, DATABASE_PASSWORD) or die(mysql_error());
mysql_select_db( DATABASE_NAME );

$username = $_POST["korisnik"];
$password = $_POST["lozinka"];

$query = "SELECT * FROM korisnik WHERE username ='$korisnik' and password='$lozinka'";

$result = mysql_fetch_array(mysql_query($query));

$output = "<loginsuccess>";

if(!$result)

{

$output .= "no";        

}else{

$output .= "yes";    

}

$output .= "</loginsuccess>";

print ($output);
?>


[Ovu poruku je menjao Nemanja Avramović dana 27.04.2010. u 13:17 GMT+1]
[ Nemanja Avramović @ 27.04.2010. 12:19 ] @
mysql_fetch_array() se koristi u (while) petlji: http://php.net/manual/en/function.mysql-fetch-array.php

Za dohvatanje jednog rezultata možeš koristiti mysql_result()

http://php.net/manual/en/function.mysql-result.php
[ prginfo @ 27.04.2010. 12:43 ] @
Nema veze sa tim.

Postoji deo if(!$result) koji radi da li postoji rezultat upita ili ne postoji.

Ako postoji, onda je povratna informacija yes, a ako ne postoji, onda je povratna informcija no.

Sustina je da .php uopste ne vraca rezultat iz baze. Konkcija se uspostavi, vrednosti se ispravno proslede.
[ nn123 @ 27.04.2010. 15:00 ] @
Jesi li štampao $result u oba slučaja.Čisto da vidiš šta ti vrati...Probaj Nemanjino rešenje.
[ Tudfa @ 27.04.2010. 15:40 ] @
Imas ovaj deo:
Code:
$username = $_POST["korisnik"];

i upit:
Code:

$query = "SELECT * FROM korisnik WHERE username ='$korisnik' and password='$lozinka'";


Kao sto vidis promenljiva $korisnik koju koristis u okviru upita ne postoji.
Ovo isto vazi i za promenljivu $lozinka.

I uvek stampaj upit da vidis da li je sve ok. Prepravi ovo pa probaj, i javi dal se nesto promenilo.

Druga stvar, password ne treba da stoji kao plain text u bazi(pogledaj md5 itd...), i ovaj tvoj kod je
veoma podlozan sql injection-u

[ Wapx.WS @ 28.04.2010. 22:05 ] @
Code:

$query = "SELECT * FROM korisnik WHERE username ='".$username."' and password='".$password."';

Trebao bi ovako da izgleda query.
A dodao bih josh umesto:
Code:

$username = $_POST["korisnik"];
$password = $_POST["lozinka"];

Sledeci kod:
Code:

$username = mysql_real_escape_string(addslashes($_POST["korisnik"]));
$password = mysql_real_escape_string(addslashes($_POST["lozinka"]));

Pozz.
[ Nikola Poša @ 29.04.2010. 09:51 ] @
A zar ne bi trebalo umesto addslashes() stripslashes(), pošto cenim da time aludiraš na magic_quotes_gpc PHP podešavanje, koje automatski radi addslashes za GET, POST i COOKIE...