如何在会话中显示用户ID?

dali1985

我想获取页面中的用户名和用户ID除外。关于这一点,我创建了两个php页面。另外,我的数据库由3列userid,用户名,密码组成。login.php页面是

<?php 
session_start();
//@$userid = $_GET['userid'];
@$username = $_POST['username'];
@$password = $_POST['pass'];

if(@$_POST['Submit']){
if($username&&$password)
{
$connect = mysql_connect("localhost","*****","") or die("Cannot Connect");
mysql_select_db("project") or die("Cannot find the database");

$query = mysql_query("SELECT * FROM users WHERE username='$username'");
//$query = mysql_query("SELECT * FROM users WHERE userid='$userid' and username='$username'");
$numrows = mysql_num_rows($query);
if($numrows!=0)
{
    while ($row = mysql_fetch_assoc($query))
    //while ($row = mysql_fetch_array($query))
    {
        $dbuserid = $row['userid'];
        $dbusername = $row['username'];
        $dbpassword = $row['password'];
    }
    if($username==$dbusername&&$password==$dbpassword)
    {
        echo "You are login!!!!! Continue now with the survey <a href='mainpage.php'>here</a>";
        $_SESSION['username']=$username;
        $_SESSION['userid']=$userid;
    }
    else
    {
        echo "<b>Incorrect Password!!!!</b>";
    }
}
else
    //die("That user does not exist");
    echo "<b>That user does not exist</b>";
}
else
echo "<b>You must enter a username and a password</b>";
}
?>
<!--<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">-->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<!--<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />-->
<title>Login Page</title>
<style type="text/css"> 
h2 {letter-spacing: 10px; font-size: .2in; background-color: #33CC00; color: #000000; text-transform:uppercase; width:260px}
span {color: #FF00CC}
legend {font-variant: small-caps; font-weight: bold}
fieldset {width: 260px; height: 100px; font-family: "Times New Roman", Times, serif; background-color: #CCCCCC; color: #000000}
label {display:block;}
.placeButtons {position: relative; left: 0px; width: 70px; margin: 5px; 0px;}
</style>
</head>

<body background="images/good.jpg">

<h2>Login Page</h2>
<form name="loginform" method='POST'>

<fieldset>
<legend>Form</legend>
    <label>Username: <input type="text" name="username"/><span>*</span></label><br/>
    <label>Password: <input type="password" name="pass"/><span>*</span></label>
    <input class="placeButtons" type="reset" value='Reset'/>
    <input class="placeButtons" type="submit" name="Submit" value='Login'/>
    <a href='registration.php'>Register</a>
</fieldset><br>
<a href='firstpage.php'><-- Go Back</a>
</form>
</body>
</html>

和作为用户欢迎页面的页面

<?php 
session_start();

if ($_SESSION['username'])
{
//echo "Welcome, ".$_SESSION['username']."! <a href='logout.php'>Logout</a>";
echo "Welcome, ".$_SESSION['username']."<br>".$_SESSION['userid']. "<a href='logout.php'>Logout</a>";

}
else
die("You must be logged in!!");
?>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<!--<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />-->
<title></title>

</head>
<body background="images/good.jpg">
</body>
</html>

问题在于,在欢迎页面中,它仅显示用户名,而不显示UserID。我想念什么?此外,我知道我的登录页面并不是最好的登录页面,它是SQL注入攻击的典型示例。我必须改善它。

游戏机

我注意到一个快速的事情。那可能是问题所在。$_SESSION['userid']是越来越值$userid未设置。同样@用来抑制错误的方法也不是一个好习惯。用于isset检查变量是否已设置并继续。

$_SESSION['userid'] = $userid; //where are you getting $userid from?

这应该是

 $_SESSION['userid'] = $dbuserid;

也不要使用类似的语句

if ($_SESSION['username'])

首先检查变量是否像这样设置

if ( isset($_SESSION['username']) ){
 //now continue your work
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在会话中存储用户

护照js如何在会话中存储用户对象?

如何在MVC的布局页面中显示会话中的用户名?

如何在React应用中检测过期的用户会话?

如何在Django中显示所有会话变量?

如何在角度5中处理用户会话

如何在Symfony 2.7中关闭用户的所有会话?

如何在十月厘米的列表中显示用户名而不是ID

PostgreSQL:如何在会话中存储ID

如何在laravel 5.7中添加身份验证用户ID或会话?

如何在Woocommerce重置密码电子邮件中显示用户电子邮件ID?

如何在pSQL会话中的特定模式下显示表?

如何在futurebuilder中设置用户ID

如何在R中基于用户ID和会话ID添加均值列?

如何在php中获取会话ID并显示?

如何在Joomla中检索用户ID

如何在AngularJS中存储用户会话?

如何在Worklight中创建特定于用户的会话

如何在用户会话中添加模型方法?

如何在Django中创建基于会话或cookie的用户身份?

在idignigner中如何在登录期间将用户ID设置为会话,并使该用户ID具有多种功能?

如何在Applozic中通过用户ID获取联系人的显示名称?

如何在cakePHP3中删除特定用户的会话?

如何从会话ID中查找用户名?

如何从 ci_sessions 中检索当前用户会话 ID。?

如何在会话中定义索引“用户名”?

PHP - 如何在登录会话中检查用户级别

如何从打开的 SAP 会话中获取用户 ID?

如何在 laravel 和 vue.js 中显示用户名而不是 id(外键)