0

我有人登录我的网站。如何使用他们的用户名(列)来初始化他们的 mysql 行中的变量以在其他 php 文件中使用?

这是我的登录表格:

<?
/*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。我怎么会得到那个?

4

1 回答 1

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 变量中,除非您确保没有两个用户可以具有相同的名称。

于 2013-04-28T18:55:26.953 回答