Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/241.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何从登录用户的数据库中提取数据?_Php_Mysqli - Fatal编程技术网

Php 如何从登录用户的数据库中提取数据?

Php 如何从登录用户的数据库中提取数据?,php,mysqli,Php,Mysqli,我会尽量让这篇文章尽可能简单,同时尽可能多地提供信息来帮助你帮助我。作为一个预先警告,我对PHP/Mysqli非常陌生,在上周的课程中,我为我们的公司建立了一个内部数据站点,使我们的工作更轻松 我已经完成了用户登录过程,它似乎工作得很好。如果用户未登录,他们将无法看到站点的PHP页面,并相应地重定向。现在我有了这个零件。我试图加入一个网站标识符,显示他们的名字和姓氏以及他们的照片。占位符已经设置好了,但我还没有很成功地让它工作。然而,当时我确实通过提取会话数据添加了一封“欢迎”电子邮件 我将在下

我会尽量让这篇文章尽可能简单,同时尽可能多地提供信息来帮助你帮助我。作为一个预先警告,我对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>