Autor | Zpráva | ||
---|---|---|---|
panmagor Profil * |
#1 · Zasláno: 10. 6. 2008, 09:04:34
Tento scrip přihlásí uživatele a poté ho přesměruje na write.php. Každý uživatel má svoje id a to bych potřeboval předat na tu stránku write.php. Script je následující-
<?php $chyba = 0; do { $uzivatel = trim($_POST['user']); $heslo = trim($_POST['pass']); if ( !strlen($uzivatel) || !$heslo ) { $chyba = 1; break; } $sql = 'SELECT 1,user_id FROM users WHERE user_id="'.$id.'" AND uzivatel="'.$uzivatel.'" AND heslo="'.$heslo.'"'; if ( !$sql ){ $chyba = 1000; break; } if ( !mysql_num_rows($v) ) { $chyba = 100; break; } $_SESSION['user_type'] = 'admin'; } while ( false ); if ( $chyba ) { Header('Location:login.php?logged='.$chyba); } else { Header('Location:write.php?id='.$id'); } ?> Bohužel teď to dělá to, že mi to vypíše chybovou hlášku 100. viz- if ( !mysql_num_rows($v) ) { $chyba = 100; break; } A id to nepřiřadí. |
||
Mastodont Profil |
#2 · Zasláno: 10. 6. 2008, 09:09:25
V tom SELECTu máš $id , ale předtím ho nikde nedefinuješ.
|
||
panmagor Profil * |
#3 · Zasláno: 10. 6. 2008, 09:10:35
Tak malá změná kódu.. Ale stejně to nefunguje..
<?php $chyba = 0; do { $uzivatel = trim($_POST['user']); $heslo = trim($_POST['pass']); if ( !strlen($uzivatel) || !$heslo ) { $chyba = 1; break; } $sql = 'SELECT 1,user_id FROM users WHERE user_id="'.$id.'" AND uzivatel="'.$uzivatel.'" AND heslo="'.$heslo.'"'; if ( !$sql ){ $chyba = 1000; break; } @$v = mysql_query($sql); if ( !mysql_num_rows($v) ) { $chyba = 100; break; } $_SESSION['user_type'] = 'admin'; } while ( false ); if ( $chyba ) { Header('Location:login.php?logged='.$chyba); } else { Header('Location:write.php?id='.$id'); } ?> |
||
panmagor Profil * |
#4 · Zasláno: 10. 6. 2008, 09:16:37
$id = 'SELECT user_id FROM users WHERE uzivatel="'.$uzivatel.'" AND heslo="'.$heslo.'"'; Tak tohle taky nebude ta správná cesta |
||
panmagor Profil * |
#5 · Zasláno: 10. 6. 2008, 09:59:25
Takže v rychlost:
$id2 = mysql_query("SELECT user_id,uzivatel FROM users WHERE uzivatel='$uzivatel'"); $id = mysql_num_rows($id2); echo "$id"; |
||
panmagor Profil * |
#6 · Zasláno: 10. 6. 2008, 10:26:33
Jo tak bacha :-D Tak zas nic no.. Pokaždé to vrací ID=1
|
||
pEeLL Profil |
#7 · Zasláno: 10. 6. 2008, 10:57:18
mysql_num_rows vraci pocet nalezenych radku ktere vyhovuji podminkam. takze je celkem logicte ze ti to vrati 1.
ucel do-while sem taky spis nepochopil, $result = mysql_query("SELECT user_id FROM users WHERE uzivatel='$uzivatel'"); $row = mysql_fetch_row($result); $id = $row[0]; |
||
panmagor Profil * |
#8 · Zasláno: 10. 6. 2008, 11:04:25
Do...while mi cpe pořád jeden maník, jako že tak je to nejlepší dělat...
|
||
pEeLL Profil |
#9 · Zasláno: 10. 6. 2008, 11:18:03
zkus se nad tim zamyslet sam jestli tam to do-while k necemu je. to ze ti nekde nekdo rekne ze tohle je nejlepsi neznamena ze to tak je.
jinak napadlo te ze az nakonec vytahnes z databaze id uzivatele ktere potrebujes a presmerujes ho treba na write.php?id=5 tak pro nej neni problem prepsat adresu na write.php?id=10 |
||
panmagor Profil * |
#10 · Zasláno: 10. 6. 2008, 11:31:01
napadlo ;-) Já se nad tim zamyslel.. Mě to jako blbost do-while používat příde... Ale já to dělam jako úkol a minule když jsem to přines udělaný bez do-while, tak mě akorát seřval..
|
||
Časová prodleva: 16 let
|
0