當用戶登錄時,我如何獲取他們所有的mysql信息?我有一個註冊系統和登錄系統。當他們登錄時,他們輸入他們的用戶名和密碼,這些是我可以使用的唯一兩個變量,因爲他們輸入了。我如何獲得所有其他變量,而不是用戶輸入的那個變量? 他們的用戶名是唯一的。我如何獲得其他變量在整個我的php文件中使用?使用php和mysql登錄系統
我的login文件:
<?
/*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('localhost','teachert_users','dogs1324') or die(mysql_error());
mysql_select_db('teachert_users');
/*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;
?>
我可以在所有其他文件中使用他們的登錄名和密碼與$ _SESSION [ '變種']; 我如何獲得其餘的?像他們的年齡?或他們的名字?或者存儲在我的mysql文件中的任何變量。 是的,我知道MD5不是最好的,讓我們不要把它變成一個討論。
------------------------編輯--------------------- ---------- 我想我會換一種說法:
我用這個:
$q=mysql_query("SELECT * FROM profiles WHERE username='{$_POST['login']}' AND password='{$_POST['pass']}'",$db) or die(mysql_error());
我要如何從特定的用戶/配置文件變量。像他們的其他變量一樣,比如他們的名字,在我的mysql中是fname。
-------------------------編輯-------------------- ------- 我已經更新到:
$mysqli = new mysqli('localhost', 'teachert_users', 'dogs1324', 'teachert_users');
if($mysqli->connect_errno) {
echo "Error connecting to MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error;
}
$user = $_SESSION['login'];
$get_user_info_query = $mysqli->query("SELECT * FROM profiles WHERE username = '$user'");
if($get_user_info_query->num_rows) {
while($get_user_info_row = $get_user_info_query->fetch_assoc()){
if ($get_user_info_row['math']) {
print_r($get_user_info_row['math']);
}
}
} else {
echo 'User not found';
}
但仍print_r的打印所有用戶的信息。不只是數學信息。爲什麼?
對於體面安全的登錄系統,請將每個登錄會話保存在數據庫中。對於每個頁面請求,將會話ID和IP與會話表進行比較,然後您可以同時從用戶表中加載其他用戶數據。並且不要使用不推薦的mysql_ *函數 – jtheman 2013-04-28 20:56:07
對於一個體面安全的登錄系統,不要自己動手。建立一個圖書館,爲您提供幫助,並證明這一點可靠。 – lc2817 2013-04-28 21:00:44
@jtheman請回答這個問題? – James 2013-04-28 21:01:20