用户使用用户名和密码登录时获取用户 ID
Posted
技术标签:
【中文标题】用户使用用户名和密码登录时获取用户 ID【英文标题】:Obtain User ID when a user logs in using Username & Password 【发布时间】:2014-02-01 11:21:57 【问题描述】:我需要输入我的 USER 表的 USER_ID 字段作为另一个表中的外键。 因此,我认为我需要在用户登录时开始一个会话。我很难让它在任何地方回显。我能够启动一个允许我回显 USERNAME 的会话,但不能为 ID 复制它。
请问有什么帮助吗?我的处理代码如下。我还粘贴了我暂时尝试回应它以进行测试的部分。
处理脚本:
<?php
session_start();
$error_message = array();
$error = false;
$dbhost = "localhost";
$dbname = "xxx";
$dbuser = "xxx";
$dbpass = "xxx";
$conn = new PDO("mysql:host=$dbhost;dbname=$dbname",$dbuser,$dbpass);
$user = $_POST['uname'];
$password = $_POST['pword'];
if($user == '')
$error_message[] = 'You have not entered the required username.';
$error = true;
if($password == '')
$error_message[] = 'You have not entered the required username';
$error = true;
$result = $conn->prepare("SELECT * FROM USER WHERE USERNAME= :un AND PASSWORD= :pw");
$result->bindParam(':un', $user);
$result->bindParam(':pw', $password);
$result->execute();
while ($rows = $result->fetch(PDO::FETCH_NUM))
if($rows > 0)
$_SESSION['Logged_In'] = true;
$_SESSION['username'] = $user;
$_SESSION['USER_ID'] = $rows['USER_ID'];
header('Location: index.php');
else
$error_message[] = 'Your username and password are not correct. Try again.';
$error = true;
if($error)
$_SESSION['ERROR_MESSAGE'] = $error_message;
session_write_close();
header("location: log_in.php");
exit();
?>
我希望 USER_ID 出现在哪里:
<?php
session_start();
if(isset($_SESSION['Logged_In']))
echo '<br><br>';
echo 'You are logged in as ';
echo $_SESSION['username'];
echo '<br>';
echo "ID = ".$_SESSION['USER_ID'];
echo '<br>';
echo '<a href="logout.php">
Click here to log out.</a>';
else
echo '<br>';
echo 'You are not logged in!<br>';
echo '<a href="log_in.php">Click here to log in,</a><br>';
echo '<a href="register.php">or click here to register.</a>';
?>
【问题讨论】:
session的问题是什么? 您是否尝试过使用 FETCH_ASSOC 而不是 FETCH_NUM ? @LucaIaco 工作完美!非常感谢:) :) @LucaIaco 您是否有机会回答这个问题,以便将这个问题标记为已回答? @Jon 好的,我已经完成了 ;) 【参考方案1】:使用 FETCH_ASSOC 而不是 FETCH_NUM
【讨论】:
以上是关于用户使用用户名和密码登录时获取用户 ID的主要内容,如果未能解决你的问题,请参考以下文章