小编IMB*_*IMB的帖子

密码哈希应该以二进制或十六进制数存储吗?

我通常将它存储在十六进制数字中但是我意识到如果我将它存储在MySQL内的二进制文件中,我可以节省一半的空间.如果我决定将其存储在二进制文件中,是否有任何问题需要注意?

php mysql security passwords hash

7
推荐指数
3
解决办法
1965
查看次数

API设计:将内部功能与外部功能分开或组合?

举一个简单的例子,假设您在站点中创建了留言簿,并计划通过API为创建和读取功能提供外部访问.更新和删除将不包含在API中,因为它只应在内部使用.

什么是更好的做法?

  • 通过API使整个CRUD功能可用,并限制公共访问更新和删除.因此,您自己也将使用API​​进行应用程序的所有内部工作.

  • 在没有API的情况下为所有内部工作制作内部CRUD函数,然后为Create和Read创建单独的API.基本上,这为您提供了两种使用Create和Read的方法 - 一种使用API​​,一种不使用.

  • 在没有API的情况下进行内部更新和删除功能以进行内部工作,然后为创建和只读创建API.如果您需要使用创建和读取功能进行内部工作,则必须使用API​​.

我希望很清楚,通常最好的做法是什么?

architecture api web-applications

6
推荐指数
1
解决办法
803
查看次数

set_exception_handler是否意味着要替换set_error_handler?

根据PHP手册: 内部PHP函数主要使用错误报告,只有现代面向对象的扩展使用异常.但是,可以使用ErrorException将错误简单地转换为异常

ErrorException中提供的示例:

<?php
function exception_error_handler($errno, $errstr, $errfile, $errline ) {
    throw new ErrorException($errstr, 0, $errno, $errfile, $errline);
}
set_error_handler("exception_error_handler");
Run Code Online (Sandbox Code Playgroud)

它似乎允许使用Exceptions而不是默认的错误报告.我的问题是,这是鼓励还是我们的选择?

此外,这是一个更好的做法,像上面的例子一样单独使用Exception,或者同时使用Exception(set_exception_handler)和Error reporting(set_error_handler)?

php

6
推荐指数
1
解决办法
3222
查看次数

如何在Jquery Mobile中水平滚动?

我有一个基本的表格布局,在移动设备上查看时会被剪切掉.水平滚动似乎不起作用.该表基本上是卡住和截止.只有垂直滚动才有效.是否可以在Jquery Mobile中启用水平滚动?

桌面浏览器截图:

在此输入图像描述

手机截图:

在此输入图像描述

调整大小的桌面浏览器的屏幕截图(水平滚动也不起作用):

在此输入图像描述

示例代码:

<div style="overflow-x:auto">
<table> 
        <tr>
            <td>foo</td>
            <td>foo</td>
            <td>foo</td>        
        </tr>
</table>            
</div>
Run Code Online (Sandbox Code Playgroud)

顺便说一句,如果我删除<meta name="viewport" content="width=device-width, initial-scale=1">水平滚动工作,但随后移动的宽度变大,移动视图的目的是完全失败.任何解决方法?

jquery horizontal-scrolling jquery-mobile

6
推荐指数
1
解决办法
5042
查看次数

"类型"和"状态"是MySQL中的保留字吗?

我在MySQL手册中的单词中找不到保留字,但显然phpMyAdmin说它们是保留的:

在此输入图像描述

mysql phpmyadmin

6
推荐指数
1
解决办法
3475
查看次数

没有应用程序ID的中等评论插件?

我从https://developers.facebook.com/docs/reference/plugins/comments/创建了一个评论插件

它没有应用程序ID.我该如何调节它?

或者如果它必须有ID,我如何将应用程序ID放到现有的注释插件中?

comments facebook-javascript-sdk facebook-comments

6
推荐指数
1
解决办法
915
查看次数

如何确保AuthName适用于所有浏览器?

下面的代码似乎在Firefox,IE,Safari中显示文本"HELLO WORLD",但在Chrome中则不行.

<Files wp-login.php>
AuthType basic
AuthName "HELLO WORLD"
AuthBasicProvider file
AuthUserFile /home/.htpasswd
Require valid-user
</Files>
ErrorDocument 401 "Authentication required"
Run Code Online (Sandbox Code Playgroud)

如何确保AuthName适用于所有浏览器?

apache .htaccess google-chrome .htpasswd

6
推荐指数
1
解决办法
3948
查看次数

在 docker-compose.yml 中定义局部变量?

是否可以在 docker-compose.yml 中定义局部变量?

例如这样的事情:

version: '3'
services:
  app:
    build:
      context: .
      dockerfile: Dockerfile
    image: $APP_NAME
    container_name: $APP_NAME
Run Code Online (Sandbox Code Playgroud)

我可以在$APP_NAME同一个docker-compose.yml文件上定义 的值吗?

docker docker-compose

6
推荐指数
1
解决办法
2247
查看次数

Docker 中的 Apache/PHP error_log 位置?

我的 PHP 脚本有一个错误,例如,这显示在屏幕上:

Warning: require(/var/www/foo.php): failed to open stream:

我在哪里可以在日志中找到它?

我试过了,docker logs containerName但它只显示访问日志。例如,

192.168.2.1 - - [17/Mar/2019:10:00:00 +0000] "GET / HTTP/1.1" 200 505 "-" "Mozilla/5.0 (Windows NT 6.1; Win64; x64)...

它没有显示上面的 PHP 错误。

进入容器内的 Apache 日志文件夹通过docker exec显示以下内容:

root@c9e29891dc0d:/var/log/apache2# ls -hltra
total 0
lrwxrwxrwx. 1 www-data www-data 11 Feb  6 04:42 other_vhosts_access.log -> /dev/stdout
lrwxrwxrwx. 1 www-data www-data 11 Feb  6 04:42 error.log -> /dev/stderr
lrwxrwxrwx. 1 www-data www-data 11 Feb  6 04:42 access.log -> /dev/stdout
Run Code Online (Sandbox Code Playgroud)

我什至不确定这是否是 …

php apache logging error-logging docker

6
推荐指数
1
解决办法
1万
查看次数

PSR-7:getParsedBody() 与 getBody()

场景一发送x-www-form-urlencoded数据

POST /path HTTP/1.1
Content-Type: application/x-www-form-urlencoded

foo=bar
Run Code Online (Sandbox Code Playgroud)

运行print_r($request->getParsedBody());返回正常:

Array
(
    [foo] => bar
)
Run Code Online (Sandbox Code Playgroud)

运行print_r($request->getBody()->getContents());返回一个字符串foo=bar


场景2发送application/json数据

POST /path HTTP/1.1
Content-Type: application/json

{
    "foo": "bar"
}
Run Code Online (Sandbox Code Playgroud)

运行print_r($request->getParsedBody());返回一个空数组。Array ( )

但是,运行print_r($request->getBody()->getContents());效果很好:

{"foo":"bar"}


这是预期的行为吗?

这意味着,如果我们要发送x-www-form-urlencoded数据,我们应该使用getParsedBody().

getBody()->getContents()如果我们发送 application/json?则应使用while 。


附加信息:

请求对象是使用以下命令创建的:

$request = \Laminas\Diactoros\ServerRequestFactory::fromGlobals(
        $_SERVER, $_GET, $_POST, $_COOKIE, $_FILES
);
Run Code Online (Sandbox Code Playgroud)

php post json http-post psr-7

6
推荐指数
1
解决办法
4559
查看次数