Sessioni rank [#PHP]

Levelsing

Nuovo Utente
8 Feb 2014
5
0
0
Salve, ho creato un pannello di amministrazione con dentro un form per inviare una news. Una volta inviato, mi si aggiorna la tabella e oltre al titolo e descrizione, c'è il tasto elimina. Vorrei far si che questo tasto posta essere visualizzato solo da chi ha il rank 7.
Quindi ho fatto:
PHP:
<?php
if($_SESSION['rank']>6){
echo "codice tasto"
}
?>
Perché non me lo visualizza? Nel database ho messo il campo (nella tabella utenti):
Codice:
Rank varchar(11)
Questo è il codice in cui creo la sessione rank e la richiamo dal database:
PHP:
<?php
include('core.php');
if(isset($_POST['login'])) {
	$username = isset($_POST['username']) ? clear($_POST['username']) : false;
	$password = isset($_POST['password']) ? clear($_POST['password']) : false;
	if(empty($username) || empty($password)) {
		echo '<div id="error">La combinazione nome utente e password non è valida.</div><br /><br /><a href="javascript:history.back();">Indietro</a>';
	} elseif(mysql_num_rows(mysql_query("SELECT * FROM utenti WHERE username LIKE '$username'")) == 0) {
		echo '<div id="error">Username non trovato.</div><br /><br /><a href="javascript:history.back();">Indietro</a>';
	} else {
		$password = md5($password);
		$ip = $_SERVER['REMOTE_ADDR'];
		if(mysql_num_rows(mysql_query("SELECT * FROM utenti WHERE username = '$username' AND password='$password'")) > 0) {
			$username = mysql_result(mysql_query("SELECT username FROM utenti WHERE username = '$username'"), 0);
			$userid = mysql_result(mysql_query("SELECT id FROM utenti WHERE username LIKE '$username'"), 0);
                        $rank = mysql_result(mysql_query("SELECT rank FROM utenti WHERE rank = '$rank'"),0);

			mysql_query("UPDATE utenti SET last_login='".time()."', last_ip='$ip' WHERE id='$userid'") or die(mysql_error());
			$_SESSION['username'] = $username;
            $_SESSION['rank'] = $rank;
			$_SESSION['userid'] = $userid;

			header('Location: index.php');
		}
	}
} else {
	?>
 
Ultima modifica:
Ciao,
Il codice srebbe un po' da rivedere secondo me...
tuttavia... senza scendere nel dettaglio... il problema è qui:
Codice:
$rank = mysql_result(mysql_query("SELECT rank FROM utenti WHERE rank = '$rank'"),0);
questa query non ha senso... semmai avresto dovuto fare:
Codice:
$rank = mysql_result(mysql_query("SELECT rank FROM utenti WHERE username = '$username'"),0);

ps: stai facendo un sacco di query inutili quando te ne basterebbero pochissime...

Ciao
 
ciao,
a me sembra ci sia un'incongruenza nella clausola where del rank
PHP:
            $username = mysql_result(mysql_query("SELECT username FROM utenti WHERE username = '$username'"), 0);
            $userid = mysql_result(mysql_query("SELECT id FROM utenti WHERE username LIKE '$username'"), 0);
                        $rank = mysql_result(mysql_query("SELECT rank FROM utenti WHERE rank = '$rank'"),0);
ciao
Marino


ps scusa non ho visto la risp prececente
ciao
 
Ultima modifica:

Discussioni simili