使用pin登录,但显示“welcome$username”

cbwuti44  于 2021-06-21  发布在  Mysql
关注(0)|答案(1)|浏览(359)

我创建了一个基本的登录页面,用户使用一个6位数的pin登录,这个pin由表中的数据验证,并使用php启动会话。在欢迎页面登录时,我想显示“欢迎用户名”,其中用户名是表-user\u first中对应的名称。
这是我的登录名:

$error='';
if (isset($_POST['submit'])) {
    require 'dbconnect_inc.php';
    $loginid = $_POST['loginid'];
    $result = mysqli_query($conn, 'SELECT * FROM hpnhusers WHERE user_loginid="'.$loginid.'"');

    if (mysqli_num_rows($result)==1) {
        $_SESSION['loginid'] = $loginid;
        header ('Location: welcome.php');
    } else {
        $error = 'Invalid PIN';
    }
  }

//Logout script
if (isset($_GET['logout'])) {
session_unregister('loginid');
}

我的sql表如下所示:

user_id    user_first    user_last    user_loginid
   1          Bob           Jones        123456

我猜找到相应名称的正确查询应该是:

$username = mysqli_query($conn, 'SELECT user_first FROM hpnhusers WHERE user_loginid="'.$loginid.'"');

但不幸的是,我不知道如何把它放在一起让它工作。
非常感谢所有的帮助,因为我还在学习。

bwntbbo3

bwntbbo31#

首先,不要只接受用户输入并在查询中使用它。

$loginId = filter_input(INPUT_POST, 'loginid', FILTER_SANITIZE_INTEGER);

现在,构建一个参数化查询,在不需要的时候不要使用ad-hoq查询

$query = $con->prepare("SELECT * FROM hpnhusers WHERE user_loginid = ?");
$query->bind_param("i", $loginId);
$query->execute();

$firstName = $query->fetch_object()->user_first;

我没有权限访问一台安装了php的机器,但我认为上面应该为您提供用户名。

相关问题