[ djos @ 22.05.2004. 14:56 ] @
Imam jedan problem. Napravio sam skriptu za autorizaciju ali ona ne radi kako treba da li iko moze da mi pomogne. Problem je u sledecem. Imambazu berzakadrova sa tabelom kadar. Polja od znacaja su id_kadra (koje zelim da cuvam u sesiji) i username i password (koje proveravam). Koristeci neka uputstva napravio sam ovaj script ali ovo ne radi. Moze li mi neko pomoci da ispravim gresku da bi ovaj skript proradio.. Molim vas HITNO je. Evo ga i skript u nastavku:



<?php
//auth_user.php
include "./common_db.inc";
$register_script = "./regkadar.php";
if (isset($_post['submit']) ){ //da li je submit ok
session_start();
$link_id = db_connect($default_dbname);
$query = "SELECT id_kadra FROM $kadar_tablename
WHERE username = '$username'
AND password = password('$password')";
$kadar = mysql_query($query);
if (mysql_num_rows($kadar) )
{
$row=my_sql_fetch_array($kadar);
$id_kadra=$row['id_kadra'];

$sess_id_kadra=$id_kadra;
session_register('sess_id_kadra');

header("location: obrazovanje.php");
}
echo "Authorization failed. " .
"You must enter a valid username and password combo. " .
"Click on the following link to try again.<BR>\n";
echo "<A HREF=\"$PHP_SELF\">Login</A><BR>";

}
?>
<HTML>
<HEAD>
<TITLE>Login</TITLE>
</HEAD>
<BODY>
<FORM METHOD="POST" ACTION="<? echo $PHP_SELF ?>">
<type"hidden" name="Submit" value=1>
<DIV ALIGN="CENTER"><CENTER>
<H3>Molimo ulogujte se </H3>
<TABLE BORDER="1" WIDTH="200" CELLPADDING="2">
<TR>
<TH WIDTH="18%" ALIGN="RIGHT" NOWRAP>ID</TH>
<TD WIDTH="82%" NOWRAP>
<INPUT TYPE="TEXT" NAME="username" SIZE="8">
</TD>
</TR>
<TR>
<TH WIDTH="18%" ALIGN="RIGHT" NOWRAP>Password</TH>
<TD WIDTH="82%" NOWRAP>
<INPUT TYPE="PASSWORD" NAME="password" SIZE="8">
</TD>
</TR>
<TR>
<TD WIDTH="100%" COLSPAN="2" ALIGN="CENTER" NOWRAP>
<INPUT TYPE="SUBMIT" VALUE="LOGIN" NAME="Submit">
</TD>
</TR>
</TABLE>
</CENTER></DIV>
</FORM>
</BODY>
</HTML>

[ webmaster1 @ 25.05.2004. 14:23 ] @
Citat:
WHERE username = '$username'
AND password = password('$password')";


Uocavas razliku ?

Nemam sad vremena da detaljnije gledam,ali ovo je ono sto mi pada u oci.

dakle:
....
AND password = '$password'
....

Cini mi se da je sve malo glomazno napisano, necitljivo tacnije,al ajd sad..

Nisi rekao da li je problem u tome sto ga ne nadje u bazi ili sta?
[ bluesman @ 25.05.2004. 14:52 ] @
Evo prve greske?
ako mislis na $_POST onda nije
Code:

if (isset($_post['submit']) ){ //da li je submit ok

nego
Code:

if (isset($_POST['submit']) ){ //da li je submit ok


Imena varijabli su case sensitive u PHP, tako da ti ovo nikada nece proci jer $_post['submit'] nikada nije setovan (osima ako sam ne napravis takav array).
[ noviKorisnik @ 25.05.2004. 15:02 ] @
Citat:
webmaster1:
Citat:
WHERE username = '$username'
AND password = password('$password')";

Uocavas razliku ?

Nemam sad vremena da detaljnije gledam,ali ovo je ono sto mi pada u oci.

dakle:
....
AND password = '$password'
....

Pa - ne mora da znači - postoji sql funkcija PASSWORD ako ne želiš da u bazi imaš čitljive lozinke...
[ Dejan Topalovic @ 25.05.2004. 15:15 ] @
@djos: Kopiraj nam greske koje se ispisu prilikom pokretanja skripte. Usput edituj ovu gornju poruku i stavi ju u code tagove, da bi bilo preglednije (mogu to uraditi i moderatori, ako im nije mrsko).
Upada mi u oci i funkcija session_register(), koja se koristila pri starijim verzijama PHP-a. U novim verzijama nije potrebno eksplicitno registrovati neku varijablu kao session varijablu, nego samo uradis assign (dodjelu) neke vrijednosti odredjenoj $_SESSION varijabli, npr. $_SESSION['id_kadra'] = $id_kadra;
Kad budem znali greske, onda cemo moci da ti damo konkretniji odgovor.

@webmaster1:
Citat:
Uocavas razliku ?

Nemam sad vremena da detaljnije gledam,ali ovo je ono sto mi pada u oci.

dakle:
....
AND password = '$password'

Ne mora u tome biti greska, jer, sta ako su sifre unosene na nacin:
INSERT INTO kadar(password) VALUES(PASSWORD('neka_sifra'));
onda ce i usporedjivanje biti na nacin:
SELECT ... WHERE password=PASSWORD('$password');
[ webmaster1 @ 25.05.2004. 20:09 ] @
@all
Moja greska
.....iz neznanja!
[ djos @ 26.05.2004. 01:00 ] @
izvinjavam se nasao sam gresku u pitanju je bla funkcija password kod koje mora biti polje u bazi duzine 16 a ja sam fiksirao 12 pa je doslo do greske pri uporedjivanju password-a i nisam nikako mogao da se ulogujem. Ipak hvala na savetima.