2013-04-28 2 views
0

У меня есть люди, которые заходят на мой сайт. Как использовать их имя пользователя (столбец) для инициализации своих переменных в своей строке mysql для использования в других php-файлах?Int php переменные mysql

Вот мой журнал в виде:

<? 
/*Use of Sessions*/ 
if(!session_id()) 
session_start(); 

header("Cache-control: private"); //avoid an IE6 bug (keep this line on top of the page) 

$login='NO data sent'; 

/*simple checking of the data*/ 
if(isset($_POST['login']) && isset($_POST['pass'])) 
{ 

/*Connection to database logindb using your login name and password*/ 
$db=mysql_connect('host','username','pass') or die(mysql_error()); 
mysql_select_db('db'); 

/*additional data checking and striping*/ 
$_POST['login']=mysql_real_escape_string(strip_tags(trim($_POST['login']))); 
$_POST['pass']=mysql_real_escape_string(strip_tags(trim($_POST['pass']))); 
$_POST['pass']=md5($_POST['pass']); 
$_POST['pass']=strrev($_POST['pass']); 
$_POST['pass']=md5($_POST['pass']); 
$_POST['pass'].=$_POST['pass']; 
$_POST['pass']=md5($_POST['pass']); 


$q=mysql_query("SELECT * FROM profiles WHERE username='{$_POST['login']}' AND password='{$_POST['pass']}'",$db) or die(mysql_error()); 

/*If there is a matching row*/ 
if(mysql_num_rows($q) > 0) 
{ 
    $_SESSION['login'] = $_POST['login']; 
    $login='Welcome back, '.$_SESSION['login']; 
    $login.='</br> we are redirecting you.'; 
echo $login; 
echo '<META HTTP-EQUIV="Refresh" Content="2; URL=/php/learn/selectone.php">';  
    exit;  

    } 
else 
{ 
    $login= 'Wrong login or password'; 
} 

mysql_close($db); 

} 

//you may echo the data anywhere in the file 
echo $login; 

?> 

Как получить остальную часть их информации. Например, у меня есть столбец для их имени, он называется fname. Как мне это получить?

+2

[** Пожалуйста, не используйте 'mysql_ *' функции в новом коде **] (http://bit.ly/phpmsql). Они больше не поддерживаются [и официально устарели] (http://j.mp/XqV7Lp). См. [** красное поле **] (http://j.mp/Te9zIL)? Узнайте о [* подготовленных операторах *] (http://j.mp/T9hLWi) и используйте [PDO] (http://php.net/pdo) или [MySQLi] (http://php.net/ mysqli) - [эта статья] (http://j.mp/QEx8IB) поможет вам решить, какой из них. – Kermit

+2

** Не используйте MD5 для хэш-паролей **. Использование его несколько раз назад и вперед не лучше. Используйте bcrypt или scrypt или PBKDFv2. – SLaks

+1

Я не писал, чтобы меня критиковали .... я просто хочу, чтобы на мой вопрос ответили, пожалуйста. – James

ответ

0

Таким образом, вы сохранили имя пользователя в переменной $_SESSION. На других страницах вы бы установили, установлен ли $_SESSION['login'], и если это так, загрузите любую информацию о имени пользователя из базы данных.

// If user is logged on, 
if (isset($_SESSION['login'])) { 
    // .. load user's data from the database 
    $query = mysql_query("SELECT * FROM profiles WHERE username='{$_SESSION['login']}'"); 
} 

Я бы не советовал хранить только имя пользователя в переменной $ _SESSION, если вы не убедитесь, что никакие два пользователя не может иметь такое же имя.

Смежные вопросы