ThinkPHP6.0完全开发手册
ThinkPHP6.0学习视频
开始
URL正确跳转
两种方法
将以下内容保存为.htaccess文件放到应用入口文件的同级目录下(ThinkPHP自动创建,在public文件下)
1 2 3 4 5 6 7 8 9 10 11 12 13
| Apache <IfModule mod_rewrite.c> Options +FollowSymlinks -Multiviews RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L] </IfModule> Nginx if (!-e $request_filename){ rewrite ^(.*)$ /index.php?s=$1 last; break; }
|
2.跳转地址加入?s=
如HTML中的<a>标签的属性href=”Index/main”在未设置伪静态时访问出现404错误,改成href=”?s=Index/main”即可正常访问
关于验证码问题,未设置伪静态时图片无法显示(同样404错误)
在vendor\topthink\think-captcha\src\helper.php的captcha_img方法中更改return语句
1
| return "<img src='?s={$src}' alt='captcha' " . $domid . " onclick='this.src=\"?s={$src}?\"+Math.random();' />";
|
开启Session
1
| app目录下全局中间件文件middleware.php将'think\middleware\SessionInit'注释取消
|
验证码
安装
1
| composer require topthink/think-captcha
|
使用
1
| <div>{:captcha_img()}</div>
|
phpmailer
安装
1
| composer require phpmailer/phpmailer
|
使用
邮箱发送验证码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
| public function sendMail(){ $mailCode=$this->createMailCheckCode(); session("mailCode",$mailCode); $username=session("registerData")["username"]; $receiveMailAddress=session("registerData")["email"]; try { $mail = new PHPMailer(); $mail->isSMTP(); $mail->CharSet = "utf8"; $mail->Host = "smtp.163.com";// 发送方的SMTP服务器地址 $mail->SMTPAuth = true;// 是否使用身份验证 $mail->Username = "";// 发送方的163邮箱用户名 $mail->Password = "";// 发送方的邮箱密码,客户端授权密码 $mail->SMTPSecure = "ssl";// 使用ssl协议方式 $mail->Port = 465;// 163邮箱的ssl协议方式端口号是465/994 $mail->setFrom("","Ori官方");// 设置发件人信息 $mail->addAddress($receiveMailAddress,'用户');// 设置收件人信息 //$mail->addReplyTo("***@qq.com","回复人姓名");// //$mail->addCC("xxx@163.com");// 设置邮件抄送人 //$mail->addBCC("xxx@163.com");// 设置秘密抄送人 //$mail->addAttachment("bug0.jpg");// 添加附件 $mail->Subject = "Ori验证码邮件";// 邮件标题 $mail->isHTML(true);// 邮件正文为html格式 // 邮件正文 $mail->Body = ; if(!$mail->send()){// 发送邮件 echo "Mailer Error: ".$mail->ErrorInfo;// 输出错误信息 }else{ return \view("mailCode"); } }catch (ValidateException $exception){ dump($exception->getError()); } alerts("发送失败,请稍后再试!"); return \view("register"); } //生成随机验证码 public function createMailCheckCode($length = 6){ $min = pow(10 , ($length - 1)); $max = pow(10, $length) - 1; return rand($min, $max); }
|
结束
哒哒哒