2013-05-01 4 views
-1

Dans ma base de données, chaque utilisateur se voit attribuer un niveau d'accès de 1 ou 2 pour montrer à l'utilisateur sur dash.php certains contenus et en restreindre d'autres. Je voulais récupérer les données $ _POST ['access'] et mettre $ _SESSION ['access'] à égalité.

$SQL = "SELECT * FROM users WHERE username=$username AND password=md5($password)"; 
$result = mysql_query($SQL); 
$num_rows = mysql_num_rows($result); 

if(!empty($num_rows)){ 
while($row=mysql_fetch_assoc($result)){ 
$access = $_POST['access']; 
}} 
if ($result) { 
$_SESSION['access'] = $access; 
$_SESSION['username'] = $username; 
} 

Au lieu de cela, je reçois array (2) {[ "accès"] => NULL [ "nom d'utilisateur"] => string (4) " 'user'". Quelqu'un pourrait-il m'expliquer comment faire? Après que cela fonctionne comme si je devais promettre que je vais convertir tout le site en mysqli, c'est juste que j'apprends et c'est juste à l'endroit où j'ai commencé. Pourquoi avez-vous interrogé la base de données lorsque vous n'utilisez pas les données?

+1

Veuillez ne pas utiliser les fonctions MD5 ou myqsl_ * .. MD5 est cassé. A été pendant des années, et les fonctions mysql_ * sont dépréciées et ne devraient pas être utilisés pour le nouveau code, utilisez MySQli ou PDO comme des alternatives –

+0

Pourquoi leur permettez-vous d'afficher l'accès? –

+0

Je ne leur permets pas d'afficher l'accès, dans ce bloc, je récupère l'accès de la poste pour l'utilisateur de leur rangée. – redappleorigin

Répondre

0

Pourquoi?

La variable $_POST est peuplée when data is posted to the script d'un client (par exemple soumettre un formulaire de contact ou une inscription) et il a rien à voir avec les bases de données.

Si vous voulez prendre le champ access de la base de données et remplir la variable $_SESSION, vous devez changer votre boucle de base de données:

while($row=mysql_fetch_assoc($result)){ 
    $access = $row['access']; 
    $username = $row['username']; 
}} 

Pendant que vous y êtes, vous devriez être escaping your query values lorsque vous insérer des données puis unescaping the data vous récupérez de la base de données.

+0

Cela fait tellement de sens! Tu es tellement génial merci d'avoir pris le temps de m'expliquer cela. Je vais aller le tester maintenant. Je pense que vous avez déjà répondu parfaitement à cette question. – redappleorigin

+0

J'étais stupide pendant une seconde et essayant de faire écho à $ _SERVER ['accès'], vous avez répondu à 100% à ma question. Vous avez également répondu à une question à propos de $ _POST Je ne savais pas comment le demander. Je n'ai pas la réputation de vous surpasser, mais j'aimerais bien pouvoir le faire. Je ne peux pas vous dire à quel point c'est génial !!! – redappleorigin

+0

Pas de problème, je suis content d'avoir aidé. Une fois que vous avez compris ces bases, la programmation devient tellement plus facile. N'oubliez pas non plus: si vous ne savez rien, utilisez Google, ou demandez ici. Les chances sont ce que vous voulez savoir a déjà été répondu (probablement plusieurs fois, aussi!). – Jared

Questions connexes