Php 如何从登录用户的数据库中提取数据?
我会尽量让这篇文章尽可能简单,同时尽可能多地提供信息来帮助你帮助我。作为一个预先警告,我对PHP/Mysqli非常陌生,在上周的课程中,我为我们的公司建立了一个内部数据站点,使我们的工作更轻松 我已经完成了用户登录过程,它似乎工作得很好。如果用户未登录,他们将无法看到站点的PHP页面,并相应地重定向。现在我有了这个零件。我试图加入一个网站标识符,显示他们的名字和姓氏以及他们的照片。占位符已经设置好了,但我还没有很成功地让它工作。然而,当时我确实通过提取会话数据添加了一封“欢迎”电子邮件 我将在下面列出我当前使用的代码: 登录页面:Php 如何从登录用户的数据库中提取数据?,php,mysqli,Php,Mysqli,我会尽量让这篇文章尽可能简单,同时尽可能多地提供信息来帮助你帮助我。作为一个预先警告,我对PHP/Mysqli非常陌生,在上周的课程中,我为我们的公司建立了一个内部数据站点,使我们的工作更轻松 我已经完成了用户登录过程,它似乎工作得很好。如果用户未登录,他们将无法看到站点的PHP页面,并相应地重定向。现在我有了这个零件。我试图加入一个网站标识符,显示他们的名字和姓氏以及他们的照片。占位符已经设置好了,但我还没有很成功地让它工作。然而,当时我确实通过提取会话数据添加了一封“欢迎”电子邮件 我将在下
<?php
require('../inc/db.inc.php');
session_start();
// If form submitted, insert values into the database.
if (isset($_POST['user_email'])){
$email = stripslashes($_REQUEST['user_email']); // removes backslashes
$email = mysqli_real_escape_string($con,$email); //escapes special characters in a string
$password = stripslashes($_REQUEST['user_pwd']);
$password = mysqli_real_escape_string($con,$password);
//Checking is user existing in the database or not
$query = "SELECT * FROM `users` WHERE user_email='$email' and user_pwd='".md5($password)."'";
$result = mysqli_query($con,$query) or die(mysql_error());
$rows = mysqli_num_rows($result);
if($rows==1){
$_SESSION['user_email'] = $email;
header("Location: ../index.php"); // Redirect user to index.php
}else{
echo "<div class='form'><h3>Username/password is incorrect.</h3><br/>Click here to <a href='login.php'>Login</a></div>";
}
}else{
?>
如果您有能力,请提供帮助。提前感谢。转到您的登录页面,检查行是否等于1,执行此操作,然后更改此操作
$_SESSION['user_email'] = $email;
对此
$_SESSION['user'] = $result->fetch_assoc();
那就这样做吧
<p>Welcome <?php echo $_SESSION['user']['firstname']; ?></p>
欢迎光临
这不是对您的问题的直接回答,但如果您是php新手,我建议您使用一种流行的php框架,它已经以安全的方式提供了您所需要的,以及更多的安全库 例如,拉威尔或西蒙尼
这些都有很好的文档记录,与尝试在这里重新发明MySQL API相比,查看他们的文档和教程会学到更多。您正在混合使用MySQL API。请改用
mysqli\u fetch\u array
。此外,请注意您的代码易受攻击。您应该使用以防止出现这种情况。还应确保您的数据库用户仅限于具有。并且不要使用md5()
进行密码加密。有关如何在PHP中防止SQL注入的详细信息,请参阅:)登录后,您在会话中存储电子邮件时,可能存在重复。您必须提取他们的名、姓和图像路径(或图像,如果是在db中)然后将其存储在会话中,并显示在每个会话的头上page@Obsidian年龄。谢谢你的回复。正如你从我原来的帖子中看到的。我尝试过,但失败了。就在我认为md5是安全的时候。数字。我会从你提供的链接中做更多的研究。再次感谢。谢谢你的帮助Sam Ezedi。你提供的sol解决了我面临的困境。我还必须将“AUTH”文件中的代码更新为:if(!isset($\u SESSION[“user”])){由此,现在我可以从数据库中提取第一个、最后一个和图像文件,没有问题。再次感谢您的帮助。感谢Julien的回复。我听说了laravel,但认为它类似于wordpress。我将进一步研究此问题。再次感谢。
<p>Welcome <?php echo $_SESSION['user_email']; ?>
$row = mysql_fetch_array($result);
$_SESSION['user_email'] = $email;
$_SESSION['user'] = $result->fetch_assoc();
<p>Welcome <?php echo $_SESSION['user']['firstname']; ?></p>