Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/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_Database - Fatal编程技术网

如何在php的$\会话中保存值并检索

如何在php的$\会话中保存值并检索,php,database,Php,Database,我想在登录后显示usermail,登录后的页面应显示“欢迎”alex01@gmail.com" 我的登录页面php代码是 <?php if(isset($_POST['submit'])) { $host="localhost"; $user="root"; $pass=""; $db="documentation"; $usermail=$_POST['email']; $password=$_POST['password'];

我想在登录后显示
usermail
,登录后的页面应显示“欢迎”alex01@gmail.com" 我的登录页面php代码是

<?php
if(isset($_POST['submit']))
{
    $host="localhost";
    $user="root";
    $pass="";
    $db="documentation";
    $usermail=$_POST['email'];
    $password=$_POST['password'];

    $conn=mysqli_connect($host,$user,$pass,$db);
    $query="SELECT * FROM users where
    user_mail='$usermail' and password='$password'";
    $result=mysqli_query($conn,$query);
    if(mysqli_num_rows($result)==1)
    {
        session_start();
        $_SESSION['documentation']='true';
        $_SESSION['user_mail']=$_POST['email'];
        header('location:index.php');
    }
    else{echo 'wrong username or password';}

}
?>
我试图通过编写

$_SESSION['user_mail']=$_POST['email'];

但是它不会像这样在
index.php
页面检索中显示用户名

 $usermail = $_SESSION['user_mail']; 
 echo $usermail;

通过
echo$\u会话['user\u mail']检索会话

要显示会话数据,只需编写

echo $_SESSION['user_mail'];

另外,请确保在使用会话的页面上启动会话。

您正在使用$\u POST['email]覆盖索引页面中$\u session['user\u mail]的值。问题是$_POST['email']没有设置在索引页上,它只设置在登录页上

所以在index.php页面上,您只需

echo$\u会话['user\u mail']

$var=$\u会话['user\u mail'];

echo$var

$usermail = $_SESSION['user_mail'];
和显示在同一页

echo $usermail;
在其他页面:-

//first start session
session_start();
echo $_SESSION["username"];
//or 
session_start();
$loginname=$_SESSION["username"];
echo $loginname;

请确保会话在正在使用会话的页面上启动。

您正在两个页面上分配,只需
echo$\u会话['user\u mail']
在index.php页面中,您应该在index.php$usermail=$\u SESSION['user\u mail']中检索它的副版本;SQL注入攻击不会试图验证用户提交的数据(在本例中为用户的电子邮件和密码),甚至不会逃逸。在任何查询中使用用户提交的数据时,应使用准备好的语句。
echo $usermail;
//first start session
session_start();
echo $_SESSION["username"];
//or 
session_start();
$loginname=$_SESSION["username"];
echo $loginname;