如何创建一个会话,当一个人使用电子邮件和密码登录时显示用户的用户名

伊乔达

我创建了一个包含电子邮件和密码的登录表单,但我希望它在下一页显示用户名而不是电子邮件,例如欢迎“samuel”。我如何申请会话。

我试图创建会话名称,但它不接受。我可以做什么才能显示一个完整的用户名,而不必在登录表单上包含用户名输入文本框

   session_start();

如果(isset($_POST['登录'])){

           $email = mysqli_real_escape_string($db,$_POST['email']);
            $password = 
              mysqli_real_escape_string($db,$_POST['password']);
           $mobile = mysqli_real_escape_string($db,$_POST['mobile']);

       if (empty($email or $mobile)) {
        array_push($errors, "Email Or mobile number is required");
           }
        if (empty($password)) {
    array_push($errors, "Password is required");
      }
        if (count($errors) == 0) {
            $password = md5($password);
          $query = "SELECT * FROM farmers WHERE (email='$email' OR 
           mobile='$mobile') AND password='$password'";
           $result = mysqli_query($db,$query);
             if(mysqli_num_rows($result)==1){


        $_SESSION['email'] = $email;
        $email=$_SESSION['username'];
        $_SESSION['sucess'] = "You are now logged in";
        header('location: account_activation.php');//redirect to 
       survey
        }else{

        array_push($errors, "Wrong email/Mobile number or 
         Password combination");

         }

         }

         }





   //account_activation.php
   <?php include('server.php');

     if (empty($_SESSION['username'])) {
   header('location: login.php');
     }
   ?>

      <!DOCTYPE html>
     <html>
    <head>
      <meta charset="UTF-8">
      <meta name="description" content="">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport" content="width=device-width, initial- 
      scale=1, 
   shrink-to-fit=no">
  <title>Account Activation</title>
  <link rel="stylesheet" 


    </style>

       <link rel="stylesheet" type="text/css" href="survey.css">
   </head>
      <body>
   <div class="header">
    <h2>Account activation</h2>
    </div>
     <div class="content">
     <?php if (isset($_SESSION['success'])):?>
        <div class="error success">
        <h3>
            <?php
            echo $_SESSION['success'];
            unset($_SESSION['success']);
              ?>
        </h3>

         </div>

        <?php endif ?>
       <?php if (isset($_SESSION["username"])): ?>
       <p>Welcome <strong><?php echo $_SESSION['username']; ?></strong> 
      </p>
       <p><a href="survey.php?logout='1'" style="color: red;">LogOut</a> 
      </p>
       <?php endif ?>
帕特里克·西马德

它看起来像这样:

<?php

session_start();
if (isset($_POST['login'])) {

    $email = mysqli_real_escape_string($db, $_POST['email']);
    $password = mysqli_real_escape_string($db, $_POST['password']);
    $mobile = mysqli_real_escape_string($db, $_POST['mobile']);

    if (empty($email) || empty($mobile)) {
        array_push($errors, "Email Or mobile number is required");
    }
    if (empty($password)) {
        array_push($errors, "Password is required");
    }

    if (count($errors) == 0) {

        $password = md5($password);
        $query = "SELECT * FROM farmers WHERE (email='$email' OR mobile='$mobile') AND password='$password'";
        $result = mysqli_query($db, $query);

        if (mysqli_num_rows($result) == 1) {

            $_SESSION['email'] = $result['email'];
            $_SESSION['username'] = $result['username'];
            $_SESSION['loggedin'] = "1";
            header('location: account_activation.php'); //redirect to survey

        } else {

            array_push($errors, "Wrong email/Mobile number or Password combination");

        }

    }

}

?>



//account_activation.php
<?php
include ('server.php');

if ($_SESSION['loggedin'] != "1") {
    header('location: login.php');
    exit();
}
?>

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8"/>
    <meta name="description" content=""/>
    <meta http-equiv="X-UA-Compatible" content="IE=edge"/>
    <meta name="viewport" content="width=device-width, initial- scale=1, shrink-to-fit=no"/>
    <title>Account Activation</title>
    <link rel="stylesheet" type="text/css" href="survey.css"/>
</head>
<body>
    <div class="header">
        <h2>Account activation</h2>
    </div>
    <div class="content">
        <?php
        if (isset($_SESSION['loggedin'])):
            ?>
            <div class="error success">
                <h3>You're logged in</h3>
            </div>

            <?php
        endif;
        ?>
        <?php
            if (isset($_SESSION["username"])):
            ?>
            <p>Welcome <strong><?= $_SESSION['username']; ?></strong> </p>
            <p><a href="survey.php?logout='1'" style="color: red;">LogOut</a> </p>
            <?php
        endif;
        ?>

要从表中检索用户名,您需要使用: $result['username']; (假设农民表中有一个名为 username 的列。)

要回显用户名,请使用短标签(需要在 php.ini 中启用)

不要忘记在标头重定向后 exit() 。黑客可以阻止重定向请求并查看下面的页面。始终阻止执行。由于服务器未加载完整页面,因此速度也更快。

我还注意到一个 PHP 错误

if (empty($email or $mobile))

应该

if (empty($email) || empty($mobile))

您也有一些 HTML 错误。自封闭的 HTML 标签应该像这样封闭:

<meta name="description" content=""/>

注意末尾的 / 。

最后一个评论......你的身份是可怕的......这是一个非常糟糕的习惯。你显然是从编码开始的,你真的应该付出一些努力。

你的这个问题可以通过谷歌搜索“如何使用 mysqli_query() 从 MySQL 检索数据”来解决。

Stack 不是我们为您工作的网站。如果您发布问题,请确保您展示了您尝试过的内容以及问题所在。不提供您尝试的代码的“您如何执行此操作”不符合本网站的要求。无论如何,祝你旅途愉快!

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何创建登录但使用用户名或电子邮件和密码

post方法传递电子邮件并将该用户名插入另一个表时,如何从表中选择用户名?

将 github 配置为对一个项目使用本地用户名和电子邮件?

Python、Outlook 检索一个人的电子邮件和该人的经理的电子邮件

通过用户名或一个字段的电子邮件查找用户

使用电子邮件而不是用户名登录

创建用户时如何实时通过电子邮件和密码添加用户名?

通过表格数据将电子邮件发送给一个人

如何更改用户名/电话/电子邮件的一个字段的LoginSerializer?

如何使用默认用户名和密码创建一个sonatype / nexus的docker容器?

是否可以只向一个人发送电子邮件,但在 TO 字段中添加更多电子邮件地址(这些用户不应收到电子邮件)?

在ASP.NET Core中支持使用电子邮件或用户名登录同一用户

使用电子邮件和密码创建用户时,如何向用户对象添加属性?

你如何用 HTML 制作一个只有一个正确用户名和一个密码的登录页面屏幕?

我有一个登录问题 用户名和密码是正确的

在 django 的登录表单中添加一个新字段以及用户名和密码

如何创建一个脚本,要求用户提供以下数据:数字ID,用户名,名称和邮件

创建一个 PHP 脚本来检查 LDAP 中的用户名和密码组合

ASP.NET Identity 2电子邮件和用户名的分隔,并使用电子邮件登录

创建一个可在登录时检测多个用户名的页面.PHP

可恢复设计-为用户创建一个视图以发送重置密码电子邮件

一个人可以同时使用两个用户帐户吗?

当您可以使用一个用户名和密码登录多个工作站时,这叫什么

允许用户使用电子邮件或用户名使用 Passport、LocalStrategy 登录

如何使用2或3个用户名和密码以用户形式创建登录名?

我收到一个错误“ {错误:无效的登录名:535-5.7.8用户名和密码不被接受。” 当我尝试从Node JS使用模块nodemailer发送邮件时

在Django中使用电子邮件地址或用户名登录用户

允许用户使用电子邮件或用户名(AspNet.Identity)登录

一个人如何使用Ubuntu for Android?