Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.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,我创建了一个有电子邮件和密码的登录表单,但我想要它 在登录后的下一页显示用户名而不是电子邮件,例如 欢迎塞缪尔。如何应用会话 我已尝试创建会话名称,但它不接受。 我能做些什么来显示sucefull用户名,而不必在登录表单上包含用户名输入文本框 session_start(); 如果设置为$\u POST['login']{ $email = mysqli_real_escape_string($db,$_POST['email']); $pa

我创建了一个有电子邮件和密码的登录表单,但我想要它 在登录后的下一页显示用户名而不是电子邮件,例如 欢迎塞缪尔。如何应用会话

我已尝试创建会话名称,但它不接受。 我能做些什么来显示sucefull用户名,而不必在登录表单上包含用户名输入文本框

   session_start();
如果设置为$\u 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 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;
        ?>
应该是

if (empty($email) || empty($mobile))
您也有一些HTML错误。自关闭的HTML标记应按如下方式关闭:

<meta name="description" content=""/>
请注意结尾处的/

最后一条评论…你的识别能力很强…这是一个非常坏的习惯。你显然是从编码开始的,你真的应该付出一些努力

通过谷歌搜索如何使用mysqli_查询从MySQL检索数据,您的这个问题本可以解决


Stack不是一个我们为您做工作的网站。如果您发布问题,请确保显示您尝试了什么以及问题是什么。您如何做到这一点而不提供您尝试的代码不符合此网站的要求。在任何情况下,祝您旅途好运!

您能告诉我应该如何实现您的目标的详细信息吗是否删除代码?请将其放回去,因为我仍在跟踪它。我之所以删除它,是因为我因为某些原因被否决了。先生,我的数据库中没有用户名。当我根据您的代码更正时,它不会显示欢迎名称和注销
<meta name="description" content=""/>