tp5 php 登录后 无法转跳显示用户名,需要刷新才能显示,怎么才能解决?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了tp5 php 登录后 无法转跳显示用户名,需要刷新才能显示,怎么才能解决?相关的知识,希望对你有一定的参考价值。
html部分 <ul class="nav nav-pills navbar-nav navbar-right"> empty name="$username" <!--没有登录/没有用户名的时候输出下面的代码--> <li><a href=":url('index/meo/userreg')" target="main">注册</a></li> <li><a href=":url('index/meo/userlogin')" target="main">登录</a></li> else/<!--登陆了,获取了用户的用户名并显示--> <li><a href="#">你好!$username</a></li> <li><a href=":url('index/meo/userlogout')">退出</a></li> /empty </ul>控制器部分//【userlogin】用户登录系统 public function userlogin() return $this->fetch(); //【loginuser】接收 登陆系统 public function loginuser() $data['username']=input('post.username'); $data['password']=input('post.password'); //查空 $param = input('post.'); if(empty($param['username'])) $this->error('用户名不能为空'); if(empty($param['password'])) $this->error('密码不能为空'); //验证用户名 $res=Db::table('user')->where('username',$data['username'])->where('password',$data['password'])->find(); if(empty($res)) $this->error("登陆失败,请检查用户名和密码"); else //定义cookie变量username //记录用户登录信息 session('username',$data['username']); $this->success("登陆成功",url('index/meo/main'));
参考技术A 你存储在session里就要在视图层判断session是否存在。<?php
if(empty(session('xxx')))?>
//未登录
<?phpelse?>
//已登录
<?php?> 参考技术B tp5没有去看过 看从你代码的最后一行作用看 只是发送一个成功文本信息“登录成功” 到url('index/meo/main') 一般的网站是会弹出一个提示层显示文字 几秒后消失 这个行为并没有刷新页面 页面也没有其他js行为 所以你没看到你要的效果。 按照你现在的写法应该是在层消失 也就是延时2秒左右做自动刷新 或者跳转
使用 PHP 登录后如何显示用户名?
【中文标题】使用 PHP 登录后如何显示用户名?【英文标题】:How can i display the User's name after loggin in using PHP? 【发布时间】:2021-06-24 21:56:21 【问题描述】:我想在使用 PHP 登录后显示用户名(例如,嘿用户!),我尝试了 $username = $_SESSION['username'];
,但它一直没有给我任何信息(嘿!)。
这是我的 PHP 代码:
<?php
session_start();
$connection = mysqli_connect('localhost','root','admin');
mysqli_select_db($connection, 'user_registration');
$email = $_POST['email'];
$password = $_POST['password'];
$verify_emailpass = " select * from user_table where email = '$email' && password = '$password'";
$result = mysqli_query($connection, $verify_emailpass);
$num = mysqli_num_rows($result);
if($num == 1)
$_SESSION['loggedin'] = true;
$username = $_SESSION['username'];
echo "Hey $username !";
else
echo "<b>Incorrect Email or Password.</b>";
?>
这是 Html 登录来源:
<form action="validation.php" method="post">
<div class="row content">
<div class="col-12">
<b><p class="text-align">Se connecter:</p></b>
</div>
<div class="col-12">
<input name="email" type="text" class="input-box shadow-sm" placeholder="Adresse E-mail" required/>
</div>
<div class="col-12">
<input name="password" type="password" class="input-box shadow-sm" placeholder="Mot de passe" required/>
</div>
</div>
<div class="button-2">
<button id="loginButton" type="submit" class="next-button shadow-sm"><img src="res/icons/button-arrow.svg" /></button>
</div>
</form>
我想知道如何在用户登录后从用户那里获取我想要的任何信息,以便将其放置在其他页面(例如个人资料页面等)中?
【问题讨论】:
变量$username
是否首先被设置?
不,我正在寻找一种方法从电子邮件和密码所在的位置获取它。
【参考方案1】:
更新这一行
$username = $_SESSION['username'];
有了这个
$username = $result['username']; $_SESSION['用户名'] = $用户名;
【讨论】:
【参考方案2】:-
如果此页面是登录页面,则会话为空
我认为是检查 mysql 电子邮件和密码 比这段代码
$data['username']用户名是mysql name 列名
<?php
session_start();
$connection = mysqli_connect('localhost','root','admin');
mysqli_select_db($connection, 'user_registration');
$email = $_POST['email'];
$password = $_POST['password'];
$verify_emailpass = " select * from user_table where email = '$email' && password = '$password'";
$result = mysqli_query($connection, $verify_emailpass);
$num = mysqli_num_rows($result);
if($num == 1)
$data = $result->fetch_assoc()
$_SESSION['username'] = $data['username'];
$_SESSION['loggedin'] = true;
$username = $_SESSION['username'];
echo "Hey $username !";
else
echo "<b>Incorrect Email or Password.</b>";
?>```
【讨论】:
以上是关于tp5 php 登录后 无法转跳显示用户名,需要刷新才能显示,怎么才能解决?的主要内容,如果未能解决你的问题,请参考以下文章