Deprecated
: htmlspecialchars(): Passing null to parameter #1 ($string) of type string is deprecated in
/www/wwwroot/testblog.58heshihu.com/var/Widget/Archive.php
on line
1057
首页
关于
Search
1
给你10个市场数据调研报告的免费下载网站!以后竞品数据就从这里找!
182 阅读
2
php接口优化 使用curl_multi_init批量请求
144 阅读
3
《从菜鸟到大师之路 ElasticSearch 篇》
107 阅读
4
2024年备考系统架构设计师
104 阅读
5
PHP 文件I/O
92 阅读
php
thinkphp
laravel
工具
开源
mysql
数据结构
总结
思维逻辑
令人感动的创富故事
读书笔记
前端
vue
js
css
书籍
开源之旅
架构
消息队列
docker
教程
代码片段
redis
服务器
nginx
linux
科普
java
c
ElasticSearch
测试
php进阶
php基础
登录
Search
标签搜索
php函数
php语法
性能优化
安全
错误和异常处理
问题
vue
Composer
Session
缓存
框架
Swoole
api
并发
异步
正则表达式
php-fpm
mysql 索引
开发规范
协程
dafenqi
累计撰写
786
篇文章
累计收到
28
条评论
首页
栏目
php
thinkphp
laravel
工具
开源
mysql
数据结构
总结
思维逻辑
令人感动的创富故事
读书笔记
前端
vue
js
css
书籍
开源之旅
架构
消息队列
docker
教程
代码片段
副业
redis
服务器
nginx
linux
科普
java
c
ElasticSearch
测试
php进阶
php基础
页面
关于
搜索到
5
篇与
的结果
2024-06-11
简易发邮件
/* * 第三方发邮件接口 https://luckycola.com.cn/public/docs/shares/api/mail.html { "ColaKey": "i6qNeQszeSD6zf16988I2YaRNIMz",// 官网获取 "tomail": "1537@163.com",// 邮件发给谁? "fromTitle": "我是邮件标题",// 邮件标题 "subject": "我是邮件主题", // 邮件系统授权码,参考[获取文档]:https://blog.csdn.net/qq_48896417/article/details/133903185?spm=1001.2014.3001.5501 "smtpCode": "GNNSC*******TWU", // 开启授权码对应的授权邮箱 "smtpEmail": "example@163.com", // 授权邮箱的类型, 可取值是 qq 或 163 或 126 "smtpCodeType": "163", "isTextContent": false,// 邮件内容是否是纯文本形式 "content": "<div style='color: red'>我是邮件内容(因为isTextContent=false所以我可以解析html标签,是红色的)</div>",// 邮件内容 } */ public function sendMail($toemail = "", $subject = "", $content = "", $fromUserInfo = "admin") { $params = []; $params["ColaKey"] = "xx"; $params["tomail"] = $toemail; $params["fromTitle"] = $fromUserInfo; $params["subject"] = $subject; $params["content"] = $content; if (strpos($toemail,"@163") !== false) { $params["smtpCode"] = "xxx";//授权码有效期180天 $params["smtpEmail"] = "xxx@163.com"; $params["smtpCodeType"] = "163"; } elseif (strpos($toemail,"@qq") !== false) { $params["smtpCode"] = "xxx"; $params["smtpEmail"] = "xx@qq.com"; $params["smtpCodeType"] = "qq"; } $mail_url = "https://luckycola.com.cn/tools/customMail"; $rs_str = curl($mail_url, $params); $rs = json_decode($rs_str,true); if (isset($rs["code"]) && $rs["code"] == 0) { $this->logfile("发送邮件成功 --> ". $rs_str); } else { $this->logfile("发送邮件失败 --> ". $rs_str); } // 使用php内置mail函数发邮件,需要启动postfix服务(systemctl start postfix)且 放行外网25端口 // ini_set("SMTP", "smtp.163.com"); // ini_set("smtp_port", "25"); // $tomail = "xx@qq.com"; // 收件人邮箱地址 // $title = "邮件主题"; // $content = "邮件内容"; // $sendermail = "sender@example.com"; // $headers = "From: {$sendermail}"; // 发件人邮箱地址 // // //发送邮件 // $rs = mail($tomail, $title, $content, $headers); // if ($rs) { // exit("ok"); // } else { // exit("邮件发送失败"); // } } // 调用 // $tomail = "xx@qq.com"; // 收件人邮箱地址 // $subject = "邮件主题"; // $content = "邮件内容"; // $fromUserInfo = "发送方"; // $this->sendMail($toemail, $subject, $content, $fromUserInfo);另外稳定可用的第三方服务接口
2024年06月11日
15 阅读
2 评论
0 点赞
2023-12-31
如何使用PHP实现邮箱验证登录注册功能?
如何使用PHP实现邮箱验证登录注册功能?随着互联网的发展,登录注册功能在网站和应用中扮演着至关重要的角色。为了保护用户的账户安全和信息安全,很多网站和应用都引入了邮箱验证的机制。本文将介绍如何使用PHP实现邮箱验证的登录注册功能,并提供相应的代码示例。创建数据库和表结构首先,我们需要创建一个数据库,并在里面创建一个用户表来存储注册用户的信息。可以使用如下的SQL语句来创建表结构:CREATE DATABASE `userdb`; USE `userdb`; CREATE TABLE `users` ( `id` INT(11) NOT NULL AUTO_INCREMENT, `name` VARCHAR(50) NOT NULL, `email` VARCHAR(50) NOT NULL, `password` VARCHAR(255) NOT NULL, `is_verified` INT(1) NOT NULL DEFAULT '0', `verification_code` VARCHAR(255), PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;注册功能的代码实现首先,我们需要创建一个注册页面(register.php),用户输入邮箱和密码进行注册。在用户点击注册按钮后,我们需要生成一个随机的验证码,并发送到用户的邮箱中。可以使用如下的代码示例:<?php if ($_SERVER['REQUEST_METHOD'] == 'POST') { $name = $_POST['name']; $email = $_POST['email']; $password = $_POST['password']; $verification_code = md5(uniqid(rand(), true)); // 将用户信息插入数据库 $conn = new mysqli('localhost', 'username', 'password', 'userdb'); $sql = "INSERT INTO users (name, email, password, verification_code) VALUES ('$name', '$email', '$password', '$verification_code')"; if ($conn->query($sql) === TRUE) { // 发送验证邮件 $subject = "请验证您的邮箱"; $message = "请点击以下链接完成验证: "; $message .= "http://yourdomain.com/verify.php?code=$verification_code"; $headers = "From: noreply@yourdomain.com"; mail($email, $subject, $message, $headers); echo "注册成功,请前往您的邮箱验证账户!"; } else { echo "注册失败,请稍后再试!"; } $conn->close(); } ?>邮箱验证功能的代码实现在用户点击了注册邮件中的验证链接后,我们需要验证验证码的有效性,并更新用户表中的is_verified字段。可以使用如下的代码示例:<?php if (isset($_GET['code']) && !empty($_GET['code'])) { $verification_code = $_GET['code']; $conn = new mysqli('localhost', 'username', 'password', 'userdb'); $sql = "SELECT id FROM users WHERE verification_code='$verification_code' AND is_verified=0"; $result = $conn->query($sql); if ($result->num_rows > 0) { $sql = "UPDATE users SET is_verified=1 WHERE verification_code='$verification_code'"; if ($conn->query($sql) === TRUE) { echo "验证成功!"; } else { echo "验证失败,请稍后再试!"; } } else { echo "无效的验证码!"; } $conn->close(); } ?>登录功能的代码实现登录功能相对简单,用户输入正确的邮箱和密码后,我们需要验证用户输入的邮箱和密码是否匹配,并且该邮箱已经通过了邮箱验证。可以使用如下的代码示例:<?php if ($_SERVER['REQUEST_METHOD'] == 'POST') { $email = $_POST['email']; $password = $_POST['password']; $conn = new mysqli('localhost', 'username', 'password', 'userdb'); $sql = "SELECT id FROM users WHERE email='$email' AND password='$password' AND is_verified=1"; $result = $conn->query($sql); if ($result->num_rows > 0) { echo "登录成功!"; } else { echo "登录失败,请检查邮箱和密码是否正确,或者邮箱是否已验证!"; } $conn->close(); } ?>通过以上的代码示例,我们可以实现基本的邮箱验证登录注册功能。当然,在实际应用中,还需要加入其他的安全措施,例如密码加密、封锁多次错误登录等。
2023年12月31日
11 阅读
0 评论
0 点赞
2023-08-08
非常实用的15款开源PHP类库
非常实用的15款开源PHP类库PHP库给开发者提供了一个标准接口,它帮助开发者在PHP里充分利用面向对象编程。这些库为特定类型的内置功能提供了一个标准的API,允许类可以与PHP引擎进行无缝的交互。此外,开发者使用这些类库还可以简化工作流程,提供工作效率。下面就一起来看看这些非常实用且免费的类库吧,希望它们能助你一臂之力。1.RequestsRequests是一个用PHP编写的HTTP库,遵循ISC开源协议,托管在GitHub上。Requests取代了Python HTTP/1.1以外的一切工作———让你与Web服务可以无缝的结合。Requests提供了一致的API,并且使用cURL或fsockopen(具体取决于可用性),它还简化了发送请求,接受HEAD、GET、POST、PUT、DELETE或PATCH并且添加标头、表单数据和多个部分组成的文件。其次,该库还适用于国际域名、身份验证、自动压缩gzip压缩响应等。综上所述可以看出,Requests是一个非常好用且可以友好托管HTTP请求的标签。2.MuneeMunee是一个集图片尺寸调整、CSS-JS合并/压缩、缓存等功能于一身的PHP库。可以在服务器端和客户端缓存资源。它集成了PHP图片操作库Imagine来实现图片尺寸调整和剪切,之后进行缓存。Munee可以自动编译LESS、SCSS和CoffeeScript,并且可以把CSS+JS文件合并成一个单一的请求,此外,还可以对这些CSS-JS文件进行精缩,让其拥有更好的性能表现。该库还可以轻易地与任何代码集成。3.RatchetRatchet是一个PHP库、WebSockets工具包,开发者可以使用它在客户端和服务器端之间构建实时、双向的App应用,并且可以快速简单地构建事件驱动应用程序(而不是传统的HTTP 请求/响应应用程序)。4.Swift MailerSwift Mailer是一个功能丰富的PHP邮件库,不依赖于PHP自带的mail() 函数,因为该函数在发送多个邮件时占用的系统资源很高。Swift直接与SMTP服务器通讯,具有非常高的发送速度和效率。5.UnirestUnirest是一个轻量级的HTTP开发库,可用于PHP、Ruby、Python、Java、Objective-C等开发语言。支持GET、POST、PUT、UPDATE、DELETE操作,它的调用方法与返回结果对所有开发语言来说,都是相同的。6.DetectorDetector是一个开源的PHP类库,用于检测用户的浏览器环境。它可以获得浏览器的使用情况和浏览器的HTML5 CSS3功能、并分析是否是移动、平板电脑、桌面或网页爬虫和其他项,如:颜色深度、 视频尺寸、Cookie等。该库对每个浏览器用户都使用单一的用户代理字符串来自动适应新浏览器、版本和设备。7.PHP ThumbPHP Thumb是一个PHP类,用来生成图片的缩略图。 只需数行代码即可,支持多种图片来源,包括文件系统或者数据库,支持大多数图片格式。并可对图片进行旋转、剪切、加水印等等。可自定义缩略图的质量,提供内建的缓存以降低服务器的负载。8.Zebra ImageZebra Image是一个开源的轻量级图像处理库,并且是一款面向对象库,只需PHP GD2扩展,并支持缩放、裁剪、旋转和翻转操作。它可以用于.jpg、.gif、.png等格式。9.Hybrid AuthHybridAuth是一个开源PHP类库,用于通过微博/社交网站和ID来提供验证功能实现同步登录网站功能。它能够很方便的与现有网站相集成,只要引用一个文件并添加几行代码就能够实现登录。一旦验证,HybridAuth会提供连接用户的标准化相关资料。此外,除了验证功能,这个类库能够让我们与用户连接的social API客户端相交互。10. Gantt ChartsGantti是一个开源的PHP类,帮助用户即时生成Gantt图表。使用Gantti创建图表无需使用JavaScript,是纯HTML5-CSS3。图表默认输出非常漂亮,但用户可以自定义样式进行输出(SASS样式表)。11.Mobile DetectMobile Detect是一个PHP类,通过User-Agent检测各种手机设备,并结合HTTP Header来检测移动设备环境。该类库最强大的地方是,它有一个非常完整的库,可以检测出所用的设备类型(包括操作类型、以及手机品牌等都能检测)和浏览器的详细信息。12.ImageWorkshop顾名思义,ImageWorkshop是一个管理和操作图片的PHP类库,这个类拥有类似图片编辑软件的逻辑:基于层的概念,可以叠加很多层或层组(每一层不同的操纵选项)。它还支持许多功能,比如水印、裁剪、移动、缩放、旋转、叠加等。13.JqmPhpJqmPhp是一个PHP开源类库,旨在简化jQuery与PHP来进行移动开发,用于生成使用jQuery Mobile框架所需要的HTML文件。该类库的文件是独立的,所以你可以根据需要来选择使用。14.PHP Image CacheImage Cache是一个轻量级的PHP类,可以在用户浏览器里压缩、移动、缓存图片。这个类提供一些简单的设置如:目录、根路径URL等,然后针对每一张图片调用压缩功能。15.ImagineImagine是一个面向对象的PHP类库,用于图片操作。这个类库能够处理一些经常用到的操作如:缩放、裁剪、应用过滤等。其Color类库可用于对任意特定的颜色生成RGB值。并且还提供一些方法来绘制图形如:圆弧、椭圆、线、片等。
2023年08月08日
13 阅读
0 评论
0 点赞
2023-08-07
用fsockopen发邮件
用fsockopen发邮件/* |---------------------------------------------------------------------------- | 发送邮件 例: $conf = array( 'to'=>'1019822077@qq.com', 'from'=>'woai_php@sina.com', 'subject'=>'邮件标题', 'content'=>'邮件内容', 'user'=>'woai_php', 'pwd'=>'这里是密码', 'smtp'=>'smtp.sina.com', ); sendMail($conf); |---------------------------------------------------------------------------- | */ function sendMail($conf){ $fp = @fsockopen($conf['smtp'],25, $errno, $errstr,30); fputs($fp, "HELO hi"."rn");//和服务器打招呼,可省略 fputs($fp, "AUTH LOGIN ".base64_encode($conf['user'])."rn"); fputs($fp, base64_encode($conf['pwd'])."rn"); fputs($fp,"MAIL FROM:"."<".$conf['from'].">"."rn"); fputs($fp,"RCPT TO:"."<".$conf['to'].">"."rn"); fputs($fp,"DATA "."rn"); fgets($fp, 512); $header = ""; $header .= "MIME-Version:1.0rn"; $header .= "Content-Type:text/htmlrn"; $header .= "To: ".$conf['to']."rn"; $header .= "From: ".$conf['from']."<".$conf['from'].">rn"; $header .= "Subject: ".$conf['subject']."rn"; $header .= "Date: ".date("r")."rn"; fputs($fp, $header."rn".$conf['content']."rn.rn"); fputs($fp,"QUIT "."rn"); fgets($fp, 512); fclose($fp); }
2023年08月07日
23 阅读
0 评论
0 点赞
2023-08-02
PHP发送邮件(PHPMailer)
PHP发送邮件(PHPMailer)本文是讲利用PHPMailer来发送邮件方法。我们在做project的时候常常需要邮件的功能。其实PHP语言自己已经有一个发送邮件的方法(mail()方法),且不说这个方法实现的功能很少,想要利用mail()方法来发送邮件就必须要自己配置好smtp服务器,这里就不讲mail()的使用方法了(函数调用确实很简单)。所以,我们推荐使用第二种方法:PHPMailer。首先,先到http://phpmailer.sourceforge.net/这个地址去下载最新的PHPMailer的包(PHPMailer方法必须使用这个包)。下载完成后解压到相应的目录。可以看到解压后的文件夹里面的class.phpmailer.php(调用PHPMailer需要包含这个文件)示例代码:<?php require("phpmailer/class.phpmailer.php"); // 参数说明(发送到, 邮件主题, 邮件内容, 附加信息, 用户名) function smtp_mail( $sendto_email, $subject, $body, $extra_hdrs, $user_name){ $mail = new PHPMailer(); $mail->IsSMTP(); // send via SMTP $mail->Host = "smtp.163.com"; // SMTP servers $mail->SMTPAuth = true; // turn on SMTP authentication $mail->Username = "xuchao842363331"; // SMTP username 注意:普通邮件认证不需要加 @域名 这里是我的163邮箱 $mail->Password = "password"; // SMTP password 在这里输入邮箱的密码 $mail->From = "xuchao842363331@163.com"; // 发件人邮箱 $mail->FromName = "管理员"; // 发件人 $mail->CharSet = "UTF-8"; // 这里指定字符集! 指定UTF-8后邮件的标题和发件人等等不会乱码,如果是GB2312标题会乱码 $mail->Encoding = "base64"; $mail->AddAddress($sendto_email,"username"); // 收件人邮箱和姓名 $mail->AddReplyTo("yourmail@yourdomain.com","yourdomain.com"); //$mail->WordWrap = 50; // set word wrap 换行字数 //$mail->AddAttachment("/var/tmp/file.tar.gz"); // attachment 附件 //$mail->AddAttachment("/tmp/image.jpg", "new.jpg"); //$mail->IsHTML(true); // send as HTML // 邮件主题 $mail->Subject = $subject; // 邮件内容 $mail->Body = "hello!PHPMailer"; //$mail->AltBody ="text/html"; if(!$mail->Send()) { echo "error <p>"; echo "error: " . $mail->ErrorInfo; exit; } else { echo"success!"; } } ?>这里要说明一下:当字符集指定为GB2312的时候标题会乱码,这里指定为UTF-8不会出现乱码。其实,PHPMailer还有很多功能,比如可以添加附件等等,这里就不再演示了。这样在你需要用邮件功能的时候调用这个函数就可以了:<?php require("mail.php"); smtp_mail("38974891123@qq.com", "达芬奇", "", "", "username"); ?>总的来说,这个方法还是很简单的,读者感兴趣的可以学习一下
2023年08月02日
13 阅读
0 评论
0 点赞