2010-02-27 7 views
1

hye les gars .. J'ai un problème où je n'ai pas su ce que l'erreur j'ai valider la page où il vérifie le groupe pour identifier l'utilisateur si le groupe est admin, la page d'administration apparaîtra. alors que si le groupe est utilisateur, la page apparaîtra .. situation: quand j'insère le nom d'utilisateur et mot de passe, la page de validation apparaît avec la page blanche ... je ne sais pas quel est le problème avec le code ... plz guys..help moi ..erreur de page de validation

est ici le code:

<?php 
session_start();    
if($_POST['id']!=null && $_POST['pass']!=null){ 

    $username=$_POST['id']; 
    $password=$_POST['pass']; 


[email protected]_connect('localhost','root') 
    or die("Could not connect".mysql_error()); 
    if ([email protected]_select_db("fyp",$link)){ 
    echo mysql_error(); 
    } 

$db_select = mysql_select_db('fyp',$link); 
if (!$db_select) { 
die("Database selection failed: " . mysql_error()); 
} 

    $sql="SELECT * from access where username='".$username."' AND password='".$password."'"; 
    $result=mysql_query($sql); 
    if(!$result){ 
    die(mysql_error()); 
    } 
    $numrecord=mysql_num_rows($result); 
    if($numrecord>0){ 
     if($group=="admin"){ 
     $_SESSION['id']=$username; 
     $_SESSION['pass']=$password; 
     $_SESSION['group'] = $row['group']; 
     mysql_close($link); 
     header("Location:adminpage.php"); 
     } 
     elseif($group=="user"){ 
     $_SESSION['id']=$username; 
     $_SESSION['pass']=$password; 
     $_SESSION['group'] = $row['group']; 
     mysql_close($link); 
     header("Location:userpage.php"); 
     } 
    } 

    else{ 
    mysql_close($link); 
    header("Location:login.php?error=2"); 
    } 
} 
else{ 
    header("Location:login.php?error=1"); 
    } 

?> 
+0

Comment les mots de passe sont-ils stockés dans la base de données? Comme texte de taquet ou comme hash? Vous vérifiez maintenant les mots de passe en clair. Peut-être que vous n'obtenez aucun résultat et que le script meurt. –

Répondre

0

Vous n'utilisez pas mysql_fetch_array ou une autre fonction pour extraire les lignes de la base de données. Essayez ceci:

$numrecord=mysql_num_rows($result); 
if($numrecord>0){ 

    $row = mysql_fetch_array($result); //////////// 
    $group = $row['group']; 

    if($group=="admin"){ 
    $_SESSION['id']=$username; 
    $_SESSION['pass']=$password; 
    $_SESSION['group'] = $row['group']; 
    ................ 

, vous devez également utiliser la fonction mysql_real_escape_string dans votre requête pour éviter les problèmes de sécurité.

+0

merci sarfraz ... ur code succes .. merci .. – user273551

+0

@ ejah85: vous êtes les bienvenus – Sarfraz