如何在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;