ThinkPHP 사용자 등록 로그인 메시지 전체 예
이 글에서는 ThinkPHP의 사용자 등록, 로그인, 메시지에 대한 전체 예제를 주로 소개하는데, 이는 ThinkPHP의 작동 과정을 자세히 이해하는 데 도움이 됩니다. 사용자 등록, 로그인 및 메시지를 포함한 기타 기능에서 모두가 주의해야 할 것은 사용자 모델이 있을 때 사용자 클래스를 인스턴스화할 때 D 메소드를 사용하여 구현한다는 것입니다
. UserActivion.class.php 페이지:
<?php class UserAction extends Action{ public function add(){ $user = D("user"); $user->create(); $result = $user->add(); if($result){ $this->assign("jumpUrl","__APP__/index/index"); $this->success('注册成功!'); }else{ //echo $user->getError(); $this->assign("jumpUrl","__APP__/user/register"); $this->error($user->getError()); } } public function register(){ $this->display(); } public function login(){ $this->display(); } public function checklogin(){ $username = $_POST['username']; $passwd = $_POST['passwd']; $user = D("user"); //$User->where('id=8')->find();这里的where 语句要注意一下,如果是其他字段的话后面一定要有单引号 $userinfo = $user->where("username ='$username'")->find(); if(!empty($userinfo)){ if($userinfo['passwd'] == $passwd){ Cookie::set('userid',$userinfo['id'],time()+3600*24); Cookie::set('username',$username,time()+3600*24); Cookie::set('lastlogintime',time(),time()+3600*24); $this->assign("jumpUrl","__APP__/index/index"); $this->success('登陆成功!'); }else{ $this->assign("jumpUrl","__APP__/user/login"); $this->error('密码出错,请重新输入!'); } }else{ $this->assign("jumpUrl","__APP__/user/login"); $this->error('用户名不存在!'); } } public function loginout(){ Cookie::delete('username'); Cookie::delete('lastlogintime'); $this->assign("jumpUrl","__APP__/index/index"); $this->success('您已经成功退出,欢迎您的下次登录!'); } }
IndexAction.class.php 페이지:
<?php // 本类由系统自动生成,仅供测试用途 class IndexAction extends Action{ public function insert() { $content = new ContentModel(); $result = $content->create(); if(!$result){ $this->assign("jumpUrl","__URL__/index"); $this->error($content->getError());//如果创建失败,表示验证没有通过,输出错误信息 }else{//验证通过,进行其他操作 $content->userid=Cookie::get('userid'); $content->add(); $this->assign("jumpUrl","__URL__/index"); $this->success('添加成功!'); } } // 数据查询操作 public function index() { $content = new ContentModel(); $list = $content->findAll(); //用户的cookie $username = Cookie::get('username'); $lastlogintime = Cookie::get('lastlogintime'); $this->assign('list',$list); $this->assign('title','我的首页'); $this->assign('username',$username); $this->assign('lastlogintime',$lastlogintime); $this->display(); } // 删除操作 public function delete(){ $content = new ContentModel(); $id = $_GET['id']; if($content->where("id=$id")->delete()){ $this->assign("jumpUrl","__URL__/index"); $this->success('删除成功!'); }else{ $this->assign("jumpUrl","__URL__/index"); $this->error('删除失败!'); } } // 编辑操作 public function edit(){ $content = new ContentModel(); $id = $_GET['id']; if($id != '') { //$data = $content->select($id); $data = $content->where("id=$id")->select(); if(!empty($data)){ $this->assign('data',$data); }else{ echo "数据为空!"; } } $this->assign('title','编辑页面'); $this->display(); } // 更新操作 public function update(){ $content = new ContentModel(); //直接使用create(),自动会帮你进行数据的传值 /*$content->create(); $content->save(); // 根据条件保存修改的数据 echo "更新数据成功!";*/ // 使用post 传值过来,进行更新 $id = $_POST['id']; if($id != '') { $data['id'] = $id; $data['title'] = $_POST['title']; $data['content'] = $_POST['content']; if($content->save($data))// 根据条件保存修改的数据 { $this->assign("jumpUrl","__URL__/index"); $this->success('更新数据成功!'); } else{ $this->assign("jumpUrl","__URL__/index"); $this->success('更新数据失败!'); } }else { echo "保存数据失败!"; } } } ?>
ContentModel.class.php 페이지:
<?php class ContentModel extends Model{ /* * 自动验证 * array(验证字段,验证规则,错误提示,验证条件,附加规则,验证时间) */ protected $_validate = array( array('title','require','标题必须填写!'), array('content','require','内容必须填写!'), ); /* * 自动填充 * array(填充字段,填充内容,填充条件,附加规则) */ protected $_auto = array( array('addtime','time',1,'function'), ); } ?>
UserModel.class.php 페이지:
<?php class UserModel extends Model{ protected $_validate = array( array('username','','帐号名称已经存在!',0,'unique',1), ); } ?>
여기서 주의해야 할 점은 자동 확인을 사용할 때 인스턴스화할 때 $user = M( 대신 $user = D("user")를 사용해야 한다는 것입니다. "user"), M 메서드를 사용하면 오류가 보고됩니다. D 함수는 모델을 인스턴스화하는 데 사용되며 M 함수 사용자는 모델 없이 파일을 인스턴스화합니다.
success.html 페이지:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <meta http-equiv="refresh" content="20; url='{$jumpUrl}'" /> <title>信息提示</title> </head> <body> <p id="man_zone"> <table width="40%" border="1" align="center" cellpadding="3" cellspacing="0" class="table" style="margin-top:100px;"> <tr> <th align="center" style="background:#cef">信息提示</th> </tr> <tr> <td><p>{$message}<br /> 2秒后返回指定页面!<br /> 如果浏览器无法跳转,<a href="{$jumpUrl}" rel="external nofollow" >请点击此处</a>。</p></td> </tr> </table> </p> </body> </html>
ThinkPHP는 간단한 로그인 기능을 구현합니다.
thinkphp는 163, QQ 메일함 전송 및 수신 방법을 구현합니다. emails_php 기술
위 내용은 ThinkPHP 사용자 등록 로그인 메시지 전체 예의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











BitgetWallet 거래소에 등록할 수 없는 이유는 계정 제한, 지원되지 않는 지역, 네트워크 문제, 시스템 유지 관리 및 기술적인 장애 등 다양한 이유가 있습니다. BitgetWallet 거래소에 등록하려면 공식 웹사이트를 방문하여 정보를 입력하고 약관에 동의한 후 등록을 완료하고 신원을 확인하세요.

디지털 시대에 소셜 미디어는 사람들의 삶에 필수적인 부분이 되었습니다. Douyin은 중국에서 가장 인기 있는 단편 동영상 플랫폼 중 하나로 많은 사용자를 확보하고 있습니다. 일부 사용자는 두 개의 계정을 등록하기도 했습니다. 그러면 Douyin은 왜 두 개의 계정을 가지고 있습니까? 이 기사에서는 이 질문에 답하고 휴대폰에 두 개의 Douyin 계정을 설치하는 방법을 설명합니다. 1. Douyin에는 왜 두 개의 계정이 있나요? 기능적 차별화: 일부 사용자는 콘텐츠 유형이나 기능에 따라 계정을 차별화합니다. 예를 들어 한 계정은 일상 생활을 공유하는 데 사용되고 다른 계정은 전문 기술을 보여주는 데 사용됩니다. 2. 개인정보 보호: 일부 사용자는 생활과 업무를 분리한 두 개의 계정을 통해 개인정보를 보호하고 정보 유출을 방지하기를 희망합니다. 3. 상호 작용 요구 사항: 일부 사용자는 상호 작용 요구 사항으로 인해 두 개를 등록할 수 있습니다.

DeepSeek의 공식 웹 사이트는 이제 사용자에게 쇼핑 경험을 제공하기 위해 여러 할인 활동을 시작하고 있습니다. 신규 사용자는 10 달러짜리 쿠폰을 받기 위해 가입하고 전체 잠재 고객에게 15% 제한된 시간 할인을 즐기십시오. 추천 친구들도 보상을받을 수 있으며 쇼핑 할 때 선물의 구속을 위해 포인트를 축적 할 수 있습니다. 이벤트 마감일은 다릅니다. 자세한 내용은 DeepSeek 공식 웹 사이트를 방문하십시오.

ThinkPhp6 라우팅 매개 변수는 중국어 및 완전한 획득으로 처리됩니다. ThinkPhp6 프레임 워크에서 특수 문자 (예 : 중국어 및 구두점 마크)를 포함하는 URL 매개 변수는 종종 처리됩니다 ...

본토 사용자는 다음 단계를 통해 XT.COM 거래소에 등록할 수 있습니다. XT.COM 공식 웹사이트를 방문하세요. 오른쪽 상단에 있는 "등록" 버튼을 클릭하세요. "모바일 등록" 옵션을 선택하세요. 본토 휴대폰 번호를 입력하고 인증 코드를 받아 입력하세요. 비밀번호를 설정하세요. 인증을 완료하세요. 등록이 완료되었습니다.

Elasticsearch-PHP 클라이언트와 결합 된 ThinkPHP6 프레임 워크 사용 ELASTICSEARCH를 작동 ...

Gate.io Sesame Open은 피아트 통화 거래, 통화 거래, 레버리지 거래, 영구 계약, ETF 활용 토큰, 자산 관리, 초기 공모 및 기타 섹션을 포함하여 세계 최고의 블록 체인 디지털 자산 거래 플랫폼입니다. 사용자에게 보안, 안정성, 개방성 및 투명성을 제공합니다.

전국 단편 동영상 플랫폼인 Douyin의 추천 알고리즘은 항상 사용자들의 많은 관심을 받아왔습니다. 일상적인 사용에서 Douyin 추천이 더 이상 정확하지 않은 상황에 직면할 수 있습니다. 그렇다면 Douyin 추천은 어떻게 초기 상태로 변경됩니까? 1. Douyin 추천은 어떻게 초기 상태로 변경되나요? Douyin의 추천 알고리즘은 주로 시청 시간, 좋아요, 댓글, 공유 등을 포함한 사용자의 행동 데이터를 기반으로 최적화됩니다. 이러한 데이터가 크게 변경되면 추천 알고리즘은 사용자의 관심분야가 변경되었다고 판단하여 추천 콘텐츠를 조정할 수 있습니다. 다음 상황에서는 Douyin 추천이 초기 상태로 변경될 수 있습니다. 사용자가 오랫동안 활동하지 않았거나, 새로운 콘텐츠에 관심이 없거나, 시청 습관이 변경된 경우 등이 있습니다. 신규 사용자 등록: 신규 사용자의 경우 추천 시스템에서 기본적으로 인기 동영상과 인기 동영상을 추천하여 도움을 줍니다.
