Wątek przeniesiony 2015-05-16 12:15 z PHP przez dzek69.

Zapytanie sprawdzające poziom uprawnień użytkownika nie działa prawidłowo

0

Witam,
Próbuję zrobić podział użytkowników na zwykłych oraz z uprawnieniami administratora.
Do tabeli 'users' dodałem nową kolumnę 'user_status' którą ustawiłem na INT(3).

I niestety czy user_status w bazie ma liczbę czy 3 czy 1 to i tak wyświetla , że jest to admin..
a wykonuję to tak :

function is_admin($user_id = -1) {
	// jeśli nie podamy id usera to podstawiamy id aktualnie zalogowanego
	if($user_id == -1) {
		$user_id = $_SESSION['user_id'];
	}
	$result = mysql_query("SELECT * FROM `users` WHERE `user_id` = '{$user_id}' AND `user_status` = 3 LIMIT 1");
	if(mysql_num_rows($result) == 0) {
		return false;
	}
	return mysql_fetch_assoc($result);
}
$admin = is_admin($_GET['id']);
if($admin === false) {
				echo '<p>Uzytkownik nie jest adminem.</p>
					<p>[<a href="index.php">Powrót</a>]</p>';
			} 

Nvm. Już działa, był drobny błąd w bazie ...
proszę usunąć.

0

ostatnio w php cos robilam dawno temu, ale wyglada ze twoj kod az prosi sie o sql injection, jak temu zapobiec - http://stackoverflow.com/questions/60174/how-can-i-prevent-sql-injection-in-php

0

zrób sobie var_dump($admin) i zobacz co dostaniesz

0

Bądź też możesz:

    $result = mysql_query("SELECT * FROM `users` WHERE `user_id` = '{$user_id}' AND `user_status` = 3 LIMIT 1") or die(mysql_error());

I tak jak mówi @katelx ,zabezpiecz to przed sql injection ;)

1 użytkowników online, w tym zalogowanych: 0, gości: 1