
php
IT1995
每周个人笔记分享,欢迎广大网友查阅!
展开
-
Laravel文档阅读笔记-How to enable CORS on Laravel
使用中间件为http响应头添加Access-Control-Allow-Origin。原创 2023-07-17 08:58:48 · 2683 阅读 · 0 评论 -
Laravel&PHP笔记-转json后中文变成\u数据
在json_encode第二个参数添加JSON_UNESCAPED_UNICODE。原创 2023-06-19 09:01:31 · 2724 阅读 · 0 评论 -
Laravel&PHP笔记-响应头去掉(隐藏)X-Powered-By
头带有X-Powered-By: PHP/7.3.33,这样很不安全,应该要隐藏,查了下百度。但这种搞法,完全是治标不治本。其实很简单修改php.ini配置文件添加expose_php = off,再重启就可以了。原创 2023-06-12 08:39:08 · 2877 阅读 · 0 评论 -
PHP笔记-Workerman整合到Laravel中并创建websocket
今天想把websocket搭建起来,查了下原始的Laravel并没有这个功能,发现php中websocket用workerman好像比较多。因为虚拟空间只开了80或443端口,websocket需要另外开个端口,所以这种情况要分开。在此将他们结合下,但结合时发现了一些问题。此篇博文虽然以及结合起来了,但是在某些情况下,建议还是分开,做成微服务的那种。业务简单的情况下可以结合起来,不影响。这个$signature要填写,控制台启动workerman时就是。如果是要搞中大型的项目,建议分开。原创 2023-02-20 08:47:53 · 2493 阅读 · 0 评论 -
Laravel笔记-搭建Restful风格的后端
这里需要在routes/api.php中添加代码,不用在web.php中添加。首先创建Controller和resource。原创 2023-02-13 08:53:01 · 1801 阅读 · 0 评论 -
Laravel笔记-使用php命令创建模型&创建数据库迁移文件&生成仿真数据(伪造数据)
在Models下会自动创建Products.php文件以及migrations下会创建对应的迁移文件。在ProductsFactory.php中新增definition的return值。composer创建Laravel应用已经有博文了,在此不重复。最后在DatabaseSeeder.php中进行创建。这样表就创建好了,下面生成仿真数据。然后在model中进行对应。最终执行命令生成仿真数据。创建Products模型。在迁移文件中新建字段。数据库中就有数据了。原创 2023-02-06 10:08:04 · 2037 阅读 · 1 评论 -
Laravel笔记-使用composer搭建Laravel环境(开发工具phpStorm)
从中可以看到当前(2023-01-05 10:18:48)最新8版本的Laravel。运行后,浏览器直接localhost就可以看到Laravel欢迎界面了。以前写过一个,但没这个composer直接搭建的方便。创能一个phpStorm,指定好Host和执行public目录。这里用的是8版本,因为我用的是php7.3。新增一个PHP Built-in Web Server。然后用phpStorm打开,会出现加载npm依赖。随后配置下phpStorm。先配置下php解释器。再创建一个运行配置。原创 2023-01-29 11:09:01 · 2824 阅读 · 1 评论 -
Laravel文档阅读笔记-How to Build a Rest API with Laravel: A Beginners Guide①
随着移动端和JavaScript框架的发展,比如React和Vue,Restful风格的API越来越流行。使用Restful风格的好处就是一个后端程序可以与多个版本的前端用户界面关联。Laravel提供了创建Rest API的环境和生态。首先得导入依赖包比如Laravel Passport和Laravel Sanctum,这两个包提供了Restful API的权限功能,并且使用起来非常简单。Laravel Breeze包提供了重置密码的模版功能。Socialite和Scout提供了登陆和查找功能。原创 2023-01-16 09:12:11 · 2006 阅读 · 1 评论 -
PHP笔记-解决网站CDN加速后图片出现跨越问题
这里我调用的图片是it1995.cn下面的,而这个虚拟空间因为有cdn加速,我请求这个的时候直接302,然后去请求imancp中的数据了。原理是这样的,写一个请求,直接把图片数据返回,因为cdn是根据图片后缀,如果url中后缀是.png等,他就会使用cdn。搞web的都知道,把这玩意关了,不是访问就慢了。就不能单独关一个吗。当发送图片时,body中填写图片的数据,content-type为图片数据。联系了官方客服,客服说,可以解决,他去吧cdn关了。这个最好用PC电脑打开。这个是解决后的效果。原创 2022-08-22 10:38:35 · 984 阅读 · 0 评论 -
Laravel文档阅读笔记-Rendering JSON(对JS变量进行赋值)
代码】Laravel文档阅读笔记-Rendering JSON(对JS变量进行赋值)原创 2022-08-08 08:47:43 · 678 阅读 · 0 评论 -
Laravel&html笔记-MarkDown增加展示时代码高亮功能
折腾了几个小时,很简单的功能,方向错了。在此记录下,实现的功能是这样的。将这样的效果转成这样的效果这里我在前端添加了点css和js。原创 2022-07-25 08:54:24 · 863 阅读 · 0 评论 -
Laravel笔记-用户登录时密码进行RSA加密(提高系统安全性)
提交时只要带上加密好的password和对应的type。因为C++端是跑马灯的形式,有24个公钥私钥。需要指定是哪一个,才能解密。万一中途xx路由器被入侵了。被人抓到这个包,本来就是http的,又是明文,太不安全了。所以这里做一个加密。前段时间写了一篇提高Laravel用户登录,登录失败5次后,锁帐号的功能。后台验证时,当格式验证成功后,对password进行RSA解密。Qt每小时生成RSA公钥和私钥,并且提供加解密的HTTP接口。...原创 2022-07-24 08:52:54 · 9404 阅读 · 0 评论 -
Laravel文档阅读笔记-How to deploy Laravel 8 project on Cpanel shared hosting
如果虚拟空间入口文件夹是public_html就把public下的所有文件移到虚拟空间根目录,该名为public_html,如果默认是www,就将public里面的所有移动到根目录www下。比如上传的Laravel项目叫my-laravel-app,那么修改index.php。首先上传Laravel项目到虚拟空间,这里使用FTP上传,或者打包成ZIP上传等。注意要将Laravel项目上传到虚拟空间的根目录上。改成你自己的url。调试设置为false,即可。...原创 2022-07-21 08:46:58 · 453 阅读 · 0 评论 -
Laravel笔记-前后端分离时验证码校验(mews/captcha)
关键就是这个catcha_api_check函数,第一个是用户输入的验证码,第二个是key。关键就是这个key,图片内容是img,也就是说,前端把这个key、用户输入发送给后端。安装mews/captcha已经有笔记了,下面来说下前后端分离时该如何处理。后端通过这个key找到正确的验证码内容,和用户输入的做对比,就可以了。这里要知道一点,搭建好mews/captcha后,默认会开放。这个就是获取验证码的url。...原创 2022-07-15 08:57:02 · 2190 阅读 · 0 评论 -
Laravel笔记-自定义登录中新增登录5次失败锁账户功能(提高系统安全性)
这里用的登录就是阅读老外自定义登录和注册功能,用的是Laravel8,如果直接用这种上线,不太安全。如果被暴力破解,不断尝试就麻烦了,现在脚本小子太多了,门槛也低,普通人简单学习几天就能上手去恶心别人。这里我自己写了一个思路,不知道和php主流的是不是一样的。反正我写SpringBoot项目就是用的这种思路。首先建一个users_lock表其中这个users_email和users表对应,这里没有外键关系,相当于独立的,这里设计得不是很好,但感觉小站点用足够了。对应的SQL是这样的: 注册时把这个表填原创 2022-07-06 08:54:54 · 893 阅读 · 0 评论 -
Laravel文档阅读笔记-mews/captcha的使用(验证码功能)
这里用的是Laravel8。这里验证码要使用到fileInfo的功能,需要提前让php加载此dll or so,在php.ini中修改:验证码功能最终实现的效果是: 首先添加相关库: 其次再生成对应的config文件:输入你那边mews/captcha相关的选项:我这里是选项11。默认验证码为9位,这里太多了,看不清,修改下captcha.php这里default.length的大小本来是9的,我改成了5。生成对应的Controller在CaptchaValidationContro原创 2022-07-05 09:16:20 · 1300 阅读 · 0 评论 -
Laravel文档阅读笔记-How to use @auth and @guest directives in Laravel
Laravel文档阅读笔记-How to use @auth and @guest directives in Laravel这个是我在阅读Laravel8中的文档时遇到的。在此阅读下@auth和@guest的用法。下面将说明@auth和@guest在Laravel中的使用。这两个关键字其实是代替@if、@endif的。如下使用@if、@endif当用户有权限,就在blade中显示。使用@auth和@guest可以简化成这样的:和在个人项目中,我是这样用的...原创 2022-07-04 08:53:32 · 444 阅读 · 0 评论 -
Laravel文档阅读笔记-Custom Authentication Login And Registration Using Laravel 8
博文主要是使用Laravel8创建自定义登录和注册。使用传统简单方法创建自定义用户登录、注册、面板页面。有如下步骤:①创建Laravel应用;②连接MySQL数据库;③设置auth的Controller;④创建auth路由;⑤创建auth的blade视图文件;⑥启动Laravel服务。安装陪配置好composer后,使用下面的命令创建Laravel项目。进入创建应用的目录。让Laravel连接mysql数据库,打开.env配置文件,修改数据库名,用户名,密码:Laravel提供了默认的用户原创 2022-07-02 11:29:39 · 502 阅读 · 0 评论 -
PHP笔记-使用composer搭建Laravel项目及phpStorm开发环境搭建
下载架子(感觉这个Laravel和Spring Boot框架太像了):成功后:使用phpStorm打开进行相关配置:注意,Laravel8最低都有php7.3下面是配置启动:配置好名称和其他入口目录:运行:查看结果:成功这里有一点要注意的,要拷贝一个.env出来...原创 2022-06-29 08:57:47 · 1002 阅读 · 0 评论 -
Laravel文档阅读笔记-Adding a Markdown editor to Laravel
此博文对应的Laravel版本为8,5版本是不能用的,很多函数都没有。使用Laravel创建好基本的blog,css美化用Tailwind CSS,创建Post界面是这样的。这里内容使用的是html中的textarea关键字,这样写文章内容非常痛苦,所以将这个textarea升级,换成MarkDown。MarkDown的编辑器使用Toast UI Editor,使用如下命令进行安装:使用div代替上textarea区域,设置好id,后面用JS中配置MarkDown编辑器:下面在JS中,将Mark原创 2022-06-28 08:56:13 · 316 阅读 · 0 评论 -
Laravel文档阅读笔记-makedown转html
关键是这个函数: 目前是在Laravel8看到的,姑且是8引入的吧,使用的是GitHub上的,集成过来的。将markdown的text传过去就可以了。这里后面将有前端使用MarkDown的例子,后端接收后,存储,然后前端再展示的例子。...原创 2022-06-27 08:52:30 · 452 阅读 · 0 评论 -
Laravel文档阅读笔记-Laravel Str slug() Function Example
此篇文档对应的laravel版本为8。使用Str的slug(),姑且翻译成锚链接符,生成URL,因为URL不能带有空格,使用slug()函数的目的就可以将空格进行替换,以前用空格连接的,变成指定字符连接。实例代码:对应的web.php如下:......原创 2022-06-23 08:54:44 · 598 阅读 · 0 评论 -
PHP笔记-虚拟空间(虚拟主机)上部署Laravel5.7
网上关于这方面的资料不多,大多是提供思路,估计国内学习Laravel的人不多,学了Laravel后大部分人都用云主机,用虚拟空间(虚拟主机)的人不多,所以很容易出现问题,这里我总结下。我这里的Laravel是5.7版本。①将除public的项目放到local中②将public里面的文件,剪切到wwwroot下面:③修改wwwroot下面的。index.php将这里的..换成local。④删除/wwwroot/local/bootstrap/cache下面的所有文件:⑤删除/wwwroot/local/sto原创 2022-06-16 08:48:37 · 838 阅读 · 0 评论 -
PHP笔记-laravel框架记录session中flash()的一次应用
我这里有个表单提交页面,他的url是get方法/hasLogoIndex。表单提交是post方法/hashLogoSubmit,提交表单后,验证各个参数是否正确,调用三方http的API,得到结果,然后回给/hasLogoIndex页面。也就是重定向到表单提交页面,并且有些图片方面的提示,也在那个页面显示,这里就可以使用flash了。表单页面函数:表单提交函数:原理:submit中通过$request->session()->flash()把参数写入,这个flash相当于一次性的。取出后就无用了原创 2022-06-14 08:50:17 · 896 阅读 · 0 评论 -
PHP笔记-laravel中使用jquery及jquery.niceScroll.js
首先用npm安装好jquery和jquery.niceScroll安装好后在node_modules中可以看到:在webpack.mix.js中添加:如下:在对应的xx.blame.html文件中进行script这样就可以获取到了。chrome浏览器测如下;原创 2022-06-08 13:51:29 · 890 阅读 · 0 评论 -
PHP笔记-laravel中Request和Session相关使用
目录结构如下:关键的代码如下:web.php,路由添加如下:Route::prefix('student')->group(function(){ ...... ...... ...... Route::get('requestTest', 'StudentController@requestTest'); Route::get('sessionTest1', 'StudentController@sessionTest1'); Route::ge原创 2022-05-23 09:02:52 · 681 阅读 · 0 评论 -
PHP笔记-laravel中Blade模板引擎的使用
①Blade是Laravel提供的一个简单强大的模板引擎。②和其他流行的PHP模板引擎不一样,Blade并不现在你在视图view中使用原生PHP代码。③所有Blade视图页面都将被编译成原生PHP代码并缓存起来,除非模板文件被修改,否则不会被重写编译。本博文主要记录了如下功能点:@yield@section@extends@stop@parent@include和传参@if@elseif@else@endif@unless@endunless原创 2022-05-20 13:33:39 · 2451 阅读 · 6 评论 -
PHP笔记-laravel框架中Eloquent ORM实现增删改查
表结构是这样的:/*SQLyog Ultimate v12.09 (64 bit)MySQL - 5.7.12 : Database - laravel**********************************************************************//*!40101 SET NAMES utf8 */;/*!40101 SET SQL_MODE=''*/;/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_原创 2022-05-16 08:56:11 · 851 阅读 · 0 评论 -
PHP笔记-laravel框架中使用DB facade实现CURD
Laravel查询构造器(query builder)提供方便、流畅的接口,用来建立执行数据库查找语法;使用PDO参数绑定,以保护应用程序免于SQL注入因此传入的参数不需要额外转义特殊字符;基本可以满足所有的数据库操作,而且在所有支持的数据库系统上都可以执行。程序运行截图如下:对应的表结构是这样的:/*SQLyog Ultimate v12.09 (64 bit)MySQL - 5.7.12 : Database - laravel********************原创 2022-05-12 09:09:20 · 559 阅读 · 0 评论 -
PHP笔记-laravel框架中的数据库查询构造器
程序运行截图如下:对应的表结构是这样的:/*SQLyog Ultimate v12.09 (64 bit)MySQL - 5.7.12 : Database - laravel**********************************************************************//*!40101 SET NAMES utf8 */;/*!40101 SET SQL_MODE=''*/;/*!40014 SET @OLD_UNIQU原创 2022-05-09 09:13:35 · 987 阅读 · 0 评论 -
PHP笔记-phpstorm解决laravel5中路由404问题
搭建环境上一篇笔记已经写好了。这里来解决加路由后404问题。搭建好环境后,添加如下路由:routers中的web.php添加:Route::get('/article', function(){ return view('article');});resources下的views中添加article.blade.php用如下方式访问,都是404http://localhost:63340/laravelDemo/laravel/public/articleht原创 2022-05-06 11:23:32 · 1553 阅读 · 1 评论 -
PHP笔记-laravel环境搭建(Laravel5.8.35版本)
首先要确定好版本:Laravel 5.1 PHP对应的版本>=5.5.9Laravel 5.2 PHP对应的版本>=5.5.9Laravel 5.3 PHP对应的版本>=5.6.4Laravel 5.4 PHP对应的版本>=5.6.4Laravel 5.5 PHP对应的版本>=7.0.0Laravel 5.6 PHP对应的版本>=7.1.3Laravel 5.7 PHP对应的版本>=7.1.3Laravel 5.8 P...原创 2022-05-02 10:25:17 · 2221 阅读 · 0 评论 -
PHP笔记-JavaScript中使用Smarty变量
如果Smarty传来的变量是字符串时:$strData = "abc";$this->assign("strData", strData);JavaScript调用:<script type="text/javascript"> ...... ...... let strData = '{$strData}'; console.log(strData); ...... ......</script>如果Smarty传其他数据时,如数组,原创 2022-03-22 08:45:46 · 1601 阅读 · 2 评论 -
PHP笔记-所有错误统一输出404页面(详细错误日志输出,提高安全性)
这里我用的是自定义MVC,所以统一错误页面很简单,自定义MVC框架在这篇博文PHP笔记-自定义MVC框架_IT1995的博客-优快云博客当输入任意不存在的页面时:这里在 private static function setDispatch(){ try{ $controller = "\\" . P . "\\controller\\" . C . "Controller"; $action = A;原创 2022-03-14 08:54:55 · 1066 阅读 · 1 评论 -
PHP笔记-随机生成cookie、后台检索、通过session获取ID增强安全性
在PHP笔记-用户登录&权限拦截说明这篇博文中设置Cookie时用的是数据库的用户id。这样有问题,用户可以随意改动ID,从而获取不同的用户权限。这里我们更新下,增加点安全性。构造safe包内容如下:CookieAndSession.php<?phpnamespace safe;class CookieAndSession{ public $cookie; public $userId; public $browser;原创 2022-03-07 08:58:43 · 1179 阅读 · 1 评论 -
PHP笔记-获取客户端IP及平台及浏览器
代码如下:class CookieTool{ ...... ...... ...... protected function getIPAddress(): string{ $ipaddress = ""; if (isset($_SERVER['HTTP_CLIENT_IP'])) $ipaddress = $_SERVER['HTTP_CLIENT_IP']; else if(isset($_SERVER原创 2022-03-07 08:55:16 · 3135 阅读 · 1 评论 -
PHP笔记-用户登录&权限拦截说明
这里给出的是一个很常用的权限拦截例子,也是目前主流的方法,但存在cookie劫持,有安全风险。后面有博文说如何去解决。对应的权限登录的类是这样的:class PrivilegeController extends Controller { ...... ...... ......}其中权限是在Controller类中,如下:class Controller{ protected $smarty; public function __construct(){原创 2022-03-07 08:51:27 · 854 阅读 · 1 评论 -
PHP笔记-AES加解密(PHP7)
运行截图:首先要修改php.ini,这个php_openssl.dll要放开构造工具类:<?phpnamespace vendor;class EncryptionTool{ public static function enAES($originTxt, $key): string{ return base64_encode(openssl_encrypt($originTxt, 'AES-128-ECB',$key, OPENSSL_R原创 2022-03-01 08:35:39 · 5558 阅读 · 1 评论 -
JavaScript笔记-表格中放按钮并点击调用
最终功能是这样的:这个表格中存放了2个按钮,如购买份额,点击到指定页面,这里将url中添加一个id字段如点击后:对应的表格代码是这样的: <tbody> {foreach $model as $item} <tr> <td>{$item.id}</td> <td原创 2022-02-28 08:44:41 · 2920 阅读 · 1 评论 -
PHP笔记-使用Smarty设置公共页面(include、if、else、变量设置)
主要实现的效果是这样的,登录页面:最上面的就是公共页面。登录个用户后是这样的。登录成功后,最上面的哪个首页、基金、黄金、股票都出来了。并且点击不同的标签可以进行active,如下:基金:黄金:股票:实现是这样的,将公共页面提取下:如下header.html<header class="mb-auto"> <div> <h3 class="float-md-start mb-0">金融模...原创 2022-02-14 08:41:40 · 740 阅读 · 0 评论