用户登录PHP MySQL后显示用户名
我使用PHP和bootstrap构建了一个简单的用户注册和登录系统。我是一个静态设计师,所以PHP对我来说是一个非常新的东西,到目前为止,我正在努力学习语法和逻辑,但我很喜欢它。实际上,我从网上的某个地方复制了PHP代码,但将其修改到了我的项目中 用户登录后,会被引导到他的个人资料页面profile.php 一旦在个人资料页面,我希望它说欢迎“名字”。现在它说欢迎“用户名”。因此,在这段代码的某个地方,$username变量被保存在会话中 我已经阅读了如何执行此操作,我认为逻辑是-应创建会话-凭据应保存在会话内的数组中-然后调用firstname变量,从而:用户登录PHP MySQL后显示用户名,php,mysql,Php,Mysql,我使用PHP和bootstrap构建了一个简单的用户注册和登录系统。我是一个静态设计师,所以PHP对我来说是一个非常新的东西,到目前为止,我正在努力学习语法和逻辑,但我很喜欢它。实际上,我从网上的某个地方复制了PHP代码,但将其修改到了我的项目中 用户登录后,会被引导到他的个人资料页面profile.php 一旦在个人资料页面,我希望它说欢迎“名字”。现在它说欢迎“用户名”。因此,在这段代码的某个地方,$username变量被保存在会话中 我已经阅读了如何执行此操作,我认为逻辑是-应创建会话-凭
<?php echo $_SESSION['firstname']; ?>
最后我希望它说欢迎“firstname”。您尝试在这里添加
$\u会话['firstname']
if (count($errors) == 0) {
$password = md5($password);
$query = "SELECT * FROM users WHERE username='$username' AND password='$password'";
$results = mysqli_query($db, $query);
if (mysqli_num_rows($results) == 1) {
$_SESSION['username'] = $username;
$_SESSION['firstname'] = "HERE YOUR FIRST NAME";
// $_SESSION['success'] = "You are now logged in";
header('location: profile.php');
} else {
array_push($errors, "Wrong username/password combination");
}
}
这意味着,$\u会话['firstname']未定义,在这种情况下,您忘记在用户登录时为$\u会话['firstname']赋值 在header.php中:
<?php
session_start();
...
// LOGIN USER
if (isset($_POST['login_user'])) {
$username = mysqli_real_escape_string($db, $_POST['username']);
$password = mysqli_real_escape_string($db, $_POST['password']);
if (empty($username)) {
array_push($errors, "Username is required");
}
if (empty($password)) {
array_push($errors, "Password is required");
}
if (count($errors) == 0) {
$password = md5($password);
$query = "SELECT * FROM users WHERE username='$username' AND password='$password'";
$results = mysqli_query($db, $query);
if (mysqli_num_rows($results) == 1) {
//fetch result into an associative array.
$user = mysqli_fetch_assoc($results);
//$_SESSION['firstname'] should go here
$_SESSION['firstname'] = $user['firstname'];
$_SESSION['username'] = $user['username'];
//$_SESSION['success'] = "You are now logged in" ;
header('location: profile.php');
}else {
array_push($errors, "Wrong username/password combination");
}
}
}
您可以尝试执行var\u dump($\u SESSION)
查看其中的内容吗?通过删除您的问题并添加上述文本的输出进行更新。您将用户名保存到会话中,但不会保存名字。尝试以与存储用户名相同的方式将名字保存到会话中。Done Praveen-Thanksy您的脚本非常开放,甚至可以在MYSQLI_u
或PDO
API'中使用。您似乎也不想在要输出用户名的脚本中使用start_session()
。您必须在每个脚本中重新开始会话-不知道如何添加此内容,非常抱歉。我应该把这个放在什么文件里?我应该把它放在哪里?最后,一个人回答了我,而不是一个机器人!非常感谢。它工作完美,不仅如此,我能理解你方法的逻辑和理论。谢天谢地,谢天谢地
<?php echo $_SESSION['username']; ?>
<?php echo $_SESSION['firstname']; ?>
Welcome
Notice: Undefined index: firstname in
C:\xampp\htdocs\vacancies\registration\profile.php on line 46
array(2) { ["id"]=> int(1) ["username"]=> string(11) "bum@bum.com" }
if (count($errors) == 0) {
$password = md5($password);
$query = "SELECT * FROM users WHERE username='$username' AND password='$password'";
$results = mysqli_query($db, $query);
if (mysqli_num_rows($results) == 1) {
$_SESSION['username'] = $username;
$_SESSION['firstname'] = "HERE YOUR FIRST NAME";
// $_SESSION['success'] = "You are now logged in";
header('location: profile.php');
} else {
array_push($errors, "Wrong username/password combination");
}
}
<?php
session_start();
...
// LOGIN USER
if (isset($_POST['login_user'])) {
$username = mysqli_real_escape_string($db, $_POST['username']);
$password = mysqli_real_escape_string($db, $_POST['password']);
if (empty($username)) {
array_push($errors, "Username is required");
}
if (empty($password)) {
array_push($errors, "Password is required");
}
if (count($errors) == 0) {
$password = md5($password);
$query = "SELECT * FROM users WHERE username='$username' AND password='$password'";
$results = mysqli_query($db, $query);
if (mysqli_num_rows($results) == 1) {
//fetch result into an associative array.
$user = mysqli_fetch_assoc($results);
//$_SESSION['firstname'] should go here
$_SESSION['firstname'] = $user['firstname'];
$_SESSION['username'] = $user['username'];
//$_SESSION['success'] = "You are now logged in" ;
header('location: profile.php');
}else {
array_push($errors, "Wrong username/password combination");
}
}
}