2013-04-28 2 views
0

Eh bien, j'ai une page de connexion où je saisis le nom d'utilisateur et mot de passe et me connecter à la page ucp-home.php. Voici le début du fichier UCP-home.php:Impossible d'utiliser les bonnes variables

<?php include("sql.php");include("auth.php"); 
$con = mysql_connect("localhost","axylus","denismm1234"); 
mysql_query("SET NAMES UTF8"); 
if (!$con) 
    { 
    die('Could not connect: ' . mysql_error()); 
    } 

mysql_select_db("velto", $con); 

$result = mysql_query("SELECT * FROM users"); 

while($row = mysql_fetch_array($result)) 
    { 
    $skin = $row['SkinID']; 
    $igname = $row['Username']; 
    $playerid = $row['UID']; 
    $tls = $row['TLS']; 
    $phonenumber = $row['Ph']; 
    $fightingstyle = $row['FightingStyle']; 
    $pastnames = $row['PastNames']; 
    $staff = $row['Staff']; 
    $staff2 = $row['Staff2']; 
    $staff3 = $row['Staff3']; 
    $staff4 = $row['Staff4']; 
    $donor = $row['Donor']; 
    $driving = $row['Driving']; 
    $weapon = $row['Weapon']; 
    $flying = $row['Flying']; 
    }; 

mysql_close($con); 

Le problème est qu'il utilise les données de la dernière ligne, pas la ligne du nom d'utilisateur connecté.

Voici mon fichier log.php:

<?php 
    include("sql.php"); //Connect to SQL 

    session_start(); //Start session for writing 

    function Fix($str) { //Clean the fields 
     $str = @trim($str); 
     if(get_magic_quotes_gpc()) { 
      $str = stripslashes($str); 
     } 
     return mysql_real_escape_string($str); 
    } 

    $errmsg = array(); //Array to store errors 

    $errflag = false; //Error flag 

    $username = Fix($_POST['username']); //Username 
    $password = Fix($_POST['password']); //Password 

    //Check Username 

    //Check Password 


    //If there are input validations, redirect back to the registration form 
    if($errflag) { 
     $_SESSION['ERRMSG'] = $errmsg; 
     session_write_close(); 
     header("location: index.php"); 
     exit(); 
    } 

    //Create SELECT query 
    $qry = "SELECT * FROM `users` WHERE `Username` = '$username' AND `Password` = '" . md5($password) . "'"; 
    $result = mysql_query($qry); 

    //Check whether the query was successful or not 
    if(mysql_num_rows($result) == 1) { 
     while($row = mysql_fetch_assoc($result)) { 
      $_SESSION['UID'] = $row['UID']; 
      $_SESSION['USERNAME'] = $username; 
      if($_SESSION['Full Name'] = $_SESSION['Full Name']) echo "Success"; 
      session_write_close(); 
      header("location: dashboard.php"); 
     } 
    } else { 
     $_SESSION['ERRMSG'] = "Invalid username or password"; 
     session_write_close(); 
     header("location: index-invalid.php"); 
     exit(); 
    } 
?> 

J'espère que vous avez compris ce qui est exactement mon problème. Merci d'avance.

+1

[** S'il vous plaît, ne pas utiliser les fonctions de '' mysql_ * dans un nouveau code **] (http://bit.ly/phpmsql). Ils ne sont plus maintenus [et sont officiellement obsolètes] (http://j.mp/XqV7Lp). Voir la [** boîte rouge **] (http://j.mp/Te9zIL)? En savoir plus sur [* instructions préparées *] (http://j.mp/T9hLWi) à la place, et utiliser [PDO] (http://php.net/pdo) ou [MySQLi] (http://php.net/ mysqli) - [cet article] (http://j.mp/QEx8IB) vous aidera à décider lequel. – Kermit

+1

voulez-vous les détails de l'utilisateur actuellement connecté dans uc-home.php? – rjv

+0

Oui, c'est exactement ce que je veux. – user215584

Répondre

1

Lors de l'utilisation des scripts de connexion, vous devez écrire les détails de la session en cours dans la session array.So dans votre log.php, faire (ou utiliser une clé similaire comme un temps + hachage nom d'utilisateur)

session_start(); 
... 
//if user is authenticated 
$_SESSION['user'] = $username; 

et dans votre UCP-home.php ceci:

... 
session_start(); 
$result = mysql_query("SELECT * FROM users WHERE Username='$_SESSION[user]'"); 
... 
Questions connexes