㈠ thinkphp 登陆页面的欢迎某某某怎么实现
登录的时候,不是要$this->display();么?在这之前,先让控制器传一个$a="欢迎您!"到模版中去。
$this->assign($a,$a);在模版中,直接<volist value=$a></volist>
代码可能有错误,很久没做过TP了、
㈡ thinkphp 怎么做登录验证
登录无非就是验证用户名密码以及验证码是否正确,我们可以新建一个CommonAction的公共类,用来校验权限,其他所有类继承此类。该类内部写一个初始化方法,用于验证,这一讲先不详细讲解。继续说登录,由于登录是公开模块的方法,所以可以新建一个PublicAction类,用于公共的免验证方法,同时在配置文件中添加
'NOT_AUTH_MODULE'=>'Public',//默认不需要认证的模块
'USER_AUTH_GATEWAY'=>'/Public/login',//默认的认证网关
然后开始编写Public类,具体代码如下:
<?php
{
//验证码显示
publicfunction verify(){
import("ORG.Util.Image");
Image::buildImageVerify(4,1,"png",100,28,"verify");
}
//验证是否账号密码
function checklogin(){
//此处多余可自行改为Model自动验证
if(empty($_POST['username'])){
$this->error('帐号错误!');
}elseif (empty($_POST['password'])){
$this->error('密码必须!');
}elseif (empty($_POST['verify'])){
$this->error('验证码必须!');
}
$map=array();
$map['username']=$_POST['username'];
$map['status']=array('gt',0);
if($_SESSION['verify']!= md5($_POST['verify'])){
$this->error('验证码错误!');
}
import('ORG.Util.RBAC');
//C('USER_AUTH_MODEL','User');
//验证账号密码
$authInfo=RBAC::authenticate($map);
if(empty($authInfo)){
$this->error('账号不存在或者被禁用!');
}else{
if($authInfo['password']!=md5($_POST['password'])){
$this->error('账号密码错误!');
}else{
$_SESSION[C('USER_AUTH_KEY')]=$authInfo['id'];//记录认证标记,必须有。其他信息根据情况取用。
$_SESSION['email']=$authInfo['email'];
$_SESSION['nickname']=$authInfo['nickname'];
$_SESSION['user']=$authInfo['username'];
$_SESSION['last_login_date']=$authInfo['last_login_date'];
$_SESSION['last_login_ip']=$authInfo['last_login_ip'];
//判断是否为超级管理员
if($authInfo['username']=='admin'){
$_SESSION[C('ADMIN_AUTH_KEY')]=true;
}
//以下操作为记录本次登录信息
$user=M('User');
$lastdate=date('Y-m-d H:i:s');
$data=array();
$data['id']=$authInfo['id'];
$data['last_login_date']=$lastdate;
$data['last_login_ip']=$_SERVER["REMOTE_ADDR"];
$user->save($data);
RBAC::saveAccessList();//用于检测用户权限的方法,并保存到Session中
$this->assign('jumpUrl',.'/Index/index');
$this->success('登录成功!');
}
}
}
//退出登录操作
function logout(){
if(!empty($_SESSION[C('USER_AUTH_KEY')])){
unset($_SESSION[C('USER_AUTH_KEY')]);
$_SESSION=array();
session_destroy();
$this->assign('jumpUrl',/Code.'/login');
$this->success('登出成功');
}else{
$this->error('已经登出了');
}
}
}
以上代码仅实现功能,没有做优化,有些验证的操作可以放到model,session也不用一 一赋值,用数组即可,我想已经入门的应该可以自己改的更好。
㈢ ThinkPHP要做一个登录判断的控制器让其他控制器来继承它,如果没登录就跳转到登录页面,怎么写
新建一个commonController控制器,然后把下边代码复制进去,登录成功就创建session,否则就检测当前访问的控制器和方法有没有在允许访问的方法内,有就允许访问,没有就跳转到登录.
<?php
namespaceAdminController;
useThinkController;
{
function__construct(){
parent::__construct();
$nowca=CONTROLLER_NAME."/".ACTION_NAME;
$adname=$_SESSION['admin_name'];
$AdminId=$_SESSION['admin_id'];
$loginca="Index/login,Index/check_user";//未登录允许访问的控制器和方法
if(empty($adname)&&strpos($loginca,$nowca)===false){
$url=__MODULE__;
echo'<literal><script>window.top.location.href="'.$url.'/Index/login";</script></literal>';
exit;
}
}
function_empty(){
header("HTTP/1.0404NotFound");
$this->display('templet/admin/404.html');
}
}
㈣ thinkphp如何防止直接通过地址栏访问某个模块 必须要经过一个单页里面设有登录才能访问
在做的就是把图片上传到我自己的数据库,然后可以再本机上通过数据库看到这张图片,
㈤ ThinkPHP框架中登录验证如何实现
Action类提供了一个初始化方法_initialize接口,可以用于扩展需要,_initialize方法会在所有操作方法调用之前首先执行,所以你只要把验证代码放在Action类的_initialize()方法中即可,这样访问该类的方法都经过了验证。参考ThinkPHP完全开发手册13.3节——控制器扩展。
另外,假如你需要验证的Action类比较多,可以专门建立一个验证类,写一次_initialize()方法,然后需要验证的其他Action类继承自该验证类即可。
12345678910111213// 验证类Class AuthorizedAction extends Action{ Public function _initialize(){ // 初始化的时候检查用户权限 $this->checkRbac(); } } // 继承自验证类 Class UserAction extends AuthorizedAction{ Public function userfunction(){ // TO DO ... } }
㈥ 怎么用sql注入绕过thinkphp 框架做的登录
TP有防止各种攻击的机制,SQL什么的TP根本不放眼里。不过低版本的,你可以试试DDOS
㈦ ThinkPHP框架简单的注册登录里用户权限控制怎么实现
可以参照mysql的功能权限的做法,我不知道你提问的是不是这个权限,举个例子:
你后台可能有贴子管理,用户管理等等功能,假设帖子管理使用权限是1,用户管理使用权限是2,没有权限是0
新建三个表,一个是管理员表,一个是角色表,一个是管理员和角色关系表
举两个角色的例子,一个是普通管理员,一个是超级管理员,当新增超级管理员角色的时候角色的时候,此时超级用户的权限应该是12,当新增普通管理员的时候,他只有管理帖子的权限,那么他的权限就是10,这样角色表里面就有两个角色了
接着,新增用户的时候,例如新增一个用户叫题主,新增的时候选择一个角色是普通管理员,写入数据库后,顺便写进角色和用户之间的关系表,这样就能做到权限的控制了,也可以细分到编辑,删除,添加等权限,不过要保证方法名字一样。
当然这里只是粗略的说了一下而已,真做起来有挺多问题,尝试一下就知道了
前台用户注册登录权限思路也差不多,自己想想,做做就清楚了
还有就是可以google一下RBAC的数据库设计
㈧ 在Thinkphp中 自己怎么写一个简单的登录功能出来,求代码
登陆页面login.html代码
<formaction="__MODULE__/Login/dologin"method="post">
账号:<inputtype="text"name="username"/>
密码:<inputtype="password"name="password"/>
<inputtype="submit"value="登陆"/>
</form>
Login控制器下dologin方法代码
public function dologin(){
$u=I('Post.username');
$p=I('Post.password');
$data['username']=$u;
$data['password']=md5($p); //md5加密
$m=M('User');
$list=$m->where($data)->find();
if($list){
$_SESSION['islogin']=1; //登陆状态存入session
$_SESSION['username']=$list['username']; //把用户名存入session
$_SESSION['id']=$list['id']; //把用户id存入session
$this->redirect("Index/index");
}else{
$this->error("登陆失败",'javascript:history.back(-1);',1);
}
}基本的代码就这些 配置文件跟数据库自己改改就行了
㈨ php中 用的是thinkphp模板 怎么样让用户保持在登录状态用session
thinkphp中是通过在项目文件夹下的conf文件夹下面的config.php重新对session进行“增,删,改,查”配置的,首先找到相对的部分然后看使用哪种方法进行cookie的,假如是mencache服务器上保存的那还有mencache的配置方法,实现的方式很多,具体的要看过才知道哦
㈩ thinkphp 怎样实现登录验证
thinkphp 实现登录验证代码如下:
//登录验证
public function doLogin(){
$type=I('post.type');
if(!self::check_verify(I('post.code'))){
if($type==home){
$this->error("验证码错误",U("/Home/Index/login"));
}else{
$this->error("验证码错误",U("Login/login"));
}
}
$accountInfo=M('account')->where("account='".I('post.account')."' AND (user_type=3 OR user_type=2)")->find();
if(!$accountInfo){
if($type==home){
$this->error("账号不存在",U("/Home/Index/login"));
}else{
$this->error("账号不存在",U("Login/login"));
}
}
if($accountInfo['password']!=md5(I('post.password')."sqysll")){
if($type==home){
$this->error("密码错误",U("/Home/Index/login"));
}else{
$this->error("密码错误",U("Login/login"));
}
}
$_SESSION['user_type']=$accountInfo['user_type']; //用户类型
$_SESSION['aid']=$accountInfo['id'];
if($type==home){ //0代表官网登录,1代表医院医生后台登录
$_SESSION['type']=0;
}else{
$_SESSION['type']=1;
}
$this->redirect('Index/index');
}
//(TP3.2自带)生成验证码
public function code(){
ob_clean();
$c=I('c');
$config = array( 'fontSize' => 30, // 验证码字体大小
'length' => 3, // 验证码位数
'useNoise' => false, // 关闭验证码杂点
);
$Verify = new ThinkVerify($config);
$Verify->entry($c);
}
// (TP3.2自带)检测输入的验证码是否正确,$code为用户输入的验证码字符串
function check_verify($code, $id = ''){
$verify = new ThinkVerify();
return $verify->check($code, $id);
}