이 글은 ThinkPHP의 생성 방법과 자동 토큰 확인을 주로 소개합니다. 매우 중요한 목적이 있습니다. 필요하신 분들은 참고하시면 됩니다.
이 글은 ThinkPHP의 생성 방법과 자동 토큰 확인을 예시로 보여줍니다. 구현 방법, 구체적인 단계는 다음과 같습니다.
1. 데이터 테이블 구조
사용자 테이블 구조는 다음과 같습니다.
id 사용자 이름 비밀번호
2. 뷰 템플릿 부분
aoliHomeTpldefaultUsercreate .html 페이지는 다음과 같습니다.
<form action="__URL__/addit" method="post"> <input type="text" name="id" /> <input type="text" name="username" /> <input type="password" name="password" /> <input type="submit" name="sub" value="提交" /> </form>
3. Action 부분:
aoliHomeLibAction.php 페이지는 다음과 같습니다.
<?php class UserAction extends Action { function create(){ $this->display(); } function addit(){ //向表user中添加表单内容 $user=M('user'); $user->create(); $user->add(); //判断是否存在令牌验证 if(!$user->autoCheckToken($_POST)){ dump('no'); }else{ dump('yes'); } } ?>
1 양식으로 제출한 데이터를 조작하기 전에 필요한 데이터를 수동으로 생성해야 하는 경우가 많습니다. , 위에서 제출한 양식 데이터와 같은:
//实例化User模型 $user=M('user'); //获取表单的POST数据 $data['username']=$_POST['username'] $data['password']=$_POST['password'] //写入到数据库 $user->data($data)->add();
첨부: 데이터 방법을 사용하여 생성된 데이터 개체는 자동으로 확인 및 필터링되지 않으며 단순히 데이터 개체를 생성하려는 경우 필요하지 않고 직접 처리해야 합니다. 일부 추가 기능을 완료하려면 데이터 메서드를 사용하여 간단히 데이터 개체를 만들 수 있습니다.
2. ThinkPHP는 데이터 개체를 빠르게 생성하는 데 도움이 됩니다. 가장 일반적인 응용 프로그램은 양식 데이터를 기반으로 데이터 개체를 자동으로 생성하는 것입니다. create 메소드로 생성된 데이터 객체는 메모리에 저장되며 실제로 데이터베이스에 기록되지 않습니다.
//实例化user模型 $user=M('user'); //根据表单提交的POST数据创建数据对象,并保存在内存中,可以通过dump($user)查看 $user=create(); //把创建的数据对象写入数据库中 $user->add();
3. create 메소드는 다른 데이터 객체나 배열 등 다른 방법으로 데이터 객체를 생성하는 것을 지원합니다.
$data['name']='ThinkPHP'; $data['eamil']='ThinkPHP@gmail.com'; $user->create($data); 甚至还可以支持从对象创建新的数据对象,如从user数据对象创建新的member数据对象 $user=M('user'); $user->find(1); $member=M('member'); $member->create($user);
4. 데이터 객체를 생성하는 동안 create 메소드는 토큰 확인, 자동 데이터 확인, 필드 유형 검색, 자동 데이터 완성 등을 포함하여 매우 의미 있는 작업도 완료합니다.
이 때문에 우리에게 익숙한 토큰 검증, 자동 검증, 자동 완성 기능은 실제로 create 메소드를 사용해야 적용됩니다.
5. 토큰 확인:
기능: 원격 양식 제출 및 기타 보안 보호를 효과적으로 방지할 수 있습니다.
config.php에 다음 구성을 추가하세요:
'TOKEN_ON' => true, //是否开启令牌验证 'TOKEN_NAME' => 'token',// 令牌验证的表单隐藏字段名称 'TOKEN_TYPE' => 'md5',//令牌验证哈希规则
자동 토큰은 md5 암호화 문자열을 현재 SESSION 세션에 추가합니다. 그리고 이 문자열을 폼 앞에 숨겨진 필드 형태로 삽입합니다. 이 문자열은 두 위치에 나타납니다. 하나는 SESSION에 있고 다른 하나는 양식에 있습니다. 양식을 제출할 때 서버가 가장 먼저 하는 일은 SESSION 정보를 비교하는 것입니다. 정보가 정확하면 양식 제출이 허용되고, 그렇지 않으면 제출이 허용되지 않습니다.
create.html의 소스코드를 보면 폼의 끝 표시 앞에 자동으로 생성된 숨겨진 필드가 있는 것을 볼 수 있습니다
<input type="hidden" name="token" value="eef419c3d14c9c93caa7627eedaba4a5" />
(1) 숨겨진 필드의 위치를 직접 제어하고 싶다면, 양식 페이지에 수동으로 추가할 수 있습니다. {__TOKEN__} 표시를 추가하면 템플릿을 출력할 때 시스템이 자동으로 이를 대체합니다.
(2) 양식 토큰 확인이 켜져 있을 때 개별 양식에서 토큰 확인 기능을 사용할 필요가 없는 경우 양식 페이지에 {__NOTOKEN__}을 추가하면 시스템에서 현재 양식의 토큰 확인을 무시합니다.
if (!$User->autoCheckToken($_POST)){ // 令牌验证错误 }
관련 추천:
에서 volist 태그 사용
위 내용은 ThinkPHP에서 메서드 및 자동 토큰 확인 예제 만들기의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!