分类 php语言 下的文章

邮箱发送问题,本地测试没有问题,拿到服务器上就出问题了


Trying to smtp.163.com: 25
Error: Cannot connenct to relay host smtp.163.com
Error: Connection timed

一看就是请求超时
经过多方查资料
觉得有这样一个人和我有一样的经历,但他没有我感受得深

是这样的,邮件发送
本地测试没有问题,拿到服务器上就出问题了
开始想到了端口 开启25端口,但还是一样

后面我猜就是应该是服务器上我配置了ssl证书,是https,就是这里出问题了,线上应该不能再用普通的非加密的传输

觉得有点麻烦,其实如这老兄说的,特简单

MAIL_HOST=ssl://smtp.163.com
MAIL_PORT=465

改成这样就OK了

如果不懂的,看一下这大神的:https://www.pianshen.com/article/7079792515/


laravel 打开debug也不报明细错误,只报500错误


larave 你可能遇到过这样的问题,线下运行时没有错误的,拿到网上去就不可以了

就报个服务器500错误,其他什么也没有报,对,你就是从本地拿上去的

你可能开始各种怀疑,是不是APP_KEY没有更新呀,是不是vender没有上传完整呀,是不是少传了什么呀!

告诉你,这些应该都不是

遇到这样的问题,你可以去看一下storage 下的 logs文件,是不是不能正常的写入,就是是不是权限不够

还要一个framework文件也一样,但只要把logs文件权限放开就有错误提示了,神不神奇,对你惊不惊喜,意不意外,反正我是纠结了好一会才找到


lumen 添加用户访问权限 ,根据用户类型来


laravel 有一套严谨的用户权限管理,在这就不讨论了,比较难缕

对于一些简单的,这一套好像有点太过了点,比如我就明确的分个端,同一个端访问的内容是一样的,其实我只需要把路由分一下就OK了,不需要太多处理。

那怎样办呢?

先去看一下中间件

https://learnku.com/docs/lumen/5.7/middleware/2405

看完就知道中间件的作用了,其实就是把路由分三组,每组中间不同,不同的用户判断规则,就OK了

P如我的加入了Auth认证,是这样控制的

public function handle($request, Closure $next, $guard = null)
    {
        $user = $this->auth->guard()->user();
        if (@$user[' *_token'] != ' *** ') {
            $control = new Controller();
            return $control->error('授权未通过!请重新登录',401);
        }

        return $next($request);
    }

其他的定义中间件和路由怎样去实现呢?
P如:定义了两个中间件(bootstrap/app.hph)

'hcwAuth' => App\Http\Middleware\HcwAuthenticate::class,
'hcbAuth' => App\Http\Middleware\HcbAuthenticate::class,

路由分配:路由分组

$router->group(['middleware' => 'hcwAuth'],function () use ($router){
    $router->get('welcome', 'HomeController@index');
});
$router->group(['middleware' => 'hcbAuth'],function () use ($router){
    $router->get('welcome', 'HomeBoosController@index');
});

MySQL查询、更新数据总是成功,存入值为0


MySQL查询、更新数据总是成功,存入值为0

你,你没有看错,就出现了这样的事:

用一个字符串去查询数据库,如果没有值就插入,如果有就更新
会发现该字符串确实有值,不是0
但是呢,存进去后就变成0了
查询也一样,查询总是有值,本来就没有改字符串值,就一个0的记录

遇到这样的事情,应该就是字段类型错了,把他做出整形了,而且默认值还是0


lumen 报 You don't have permission to access


出现情况,访问局域网IP下的时候出现该情况

解决办法
加一个虚拟域名就好了

但你不想只加一个,以后这样的路径都可以按路径访问,那就绑定虚拟域名为IP,

如:

127.0.0.1    10.81.2.100


ServerName 10.81.2.100
DocumentRoot  C:\phpStudy\PHPTutorial\WWW


这样,需要绑定虚拟域名的情况都可以直接用IP加相对www的相对路径就好了