小编sec*_*tus的帖子

PHP MySQL PDO:如何保留zerofill int列的前导零

在从旧mysql_*()函数迁移到新PDO类的过程中,我又遇到了一个问题:我有一个下表:

CREATE TABLE `test` (
  `Id` tinyint(4) unsigned zerofill NOT NULL,
  `UserName` varchar(4) NOT NULL,
  `TestDecimal` decimal(6,0) unsigned zerofill DEFAULT NULL,
  PRIMARY KEY (`Id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
Run Code Online (Sandbox Code Playgroud)

注意zerofill'ed IdTestDecimal字段.

如果我运行以下代码,使用旧mysql_*()函数:

$SqlQuery = "SELECT * FROM test";
$Sql_Result = mysql_query($SqlQuery);
var_dump(mysql_fetch_array($Sql_Result));
Run Code Online (Sandbox Code Playgroud)

我得到以下输出,正确的zerofilled Id:

array (size=6)
  0 => string '0001' (length=4)
  'Id' => string '0001' (length=4)
  1 => string 'alex' (length=4)
  'UserName' => string 'alex' (length=4)
  2 => string '000002' (length=6) …
Run Code Online (Sandbox Code Playgroud)

php mysql pdo

15
推荐指数
1
解决办法
2243
查看次数

是否有正确的方法在symfony中使用SwiftMailer包将NTLM auth类型添加到SwiftMailer中?

我有swiftMailer包的symfony项目.我试图使用NTLM auth通过swiftmailer发送电子邮件.但我还没有找到通过配置捆绑打开NTLM的方法.

经过努力,我找到了解决方案

第一解决方案

current($this->get('mailer')->getTransport()->getExtensionHandlers())
    ->setAuthenticators([new \Swift_Transport_Esmtp_Auth_NTLMAuthenticator()]);
Run Code Online (Sandbox Code Playgroud)

在config.yml中注释spool

#    spool:     { type: memory }
Run Code Online (Sandbox Code Playgroud)

但它看起来有点奇怪.

二解决方案

删除SwiftMailer包并直接使用swiftMailer,因为默认情况下会激活ntlm auth类型.

有没有更好的方法来使用NTLM auth类型?

php ntlm swiftmailer symfony

14
推荐指数
1
解决办法
910
查看次数

无法在Windows上的作曲家中使用远程存储库

我有一个带库的存储库.它可以成功克隆.

$ git clone file:////remote/repo/library
$ cd library
$ composer validate
./composer.json is valid, but with a few warnings
Run Code Online (Sandbox Code Playgroud)

但似乎这个转座不能通过作曲家包含来使用.

...
"repositories": [
    {
        "type": "git",
        "url": "file:////remote/repo/library"
    }]
 ...
Run Code Online (Sandbox Code Playgroud)

试图安装

$ composer install -vvv
... 
Loading composer repositories with package information
Executing command (//remote/repo/library): git show-ref --tags
Executing command (//remote/repo/library): git branch --no-color --no-abbrev -v
Executing command (//remote/repo/library): git branch --no-color
Executing command (//remote/repo/library): git show "master":composer.json

  [Composer\Repository\InvalidRepositoryException]
  No valid composer.json was found in any branch or tag of …
Run Code Online (Sandbox Code Playgroud)

php windows git composer-php

14
推荐指数
2
解决办法
915
查看次数

如何在MySQL的`encrypt`函数中使用`bcrypt`算法来验证密码?

我有$2y$10$zQaDT8hXM4pLmBdwN0xEseda/oKJAQKMKMzUrV8jbs6Epz28BXzBS密码(qwe)的加密值().但是,当我验证我得到错误的结果哈希值.

mysql> select '$2y$10$zQaDT8hXM4pLmBdwN0xEseda/oKJAQKMKMzUrV8jbs6Epz28BXzBS' = encrypt('qwe', '$2y$10$zQaDT8hXM4pLmBdwN0xEseda/oKJAQKMKMzUrV8jbs6Epz28BXzBS') as is_valid; 
+----------+
| is_valid |
+----------+
|        0 |
+----------+

select encrypt('qwe', '$2y$10$zQaDT8hXM4pLmBdwN0xEseda/oKJAQKMKMzUrV8jbs6Epz28BXzBS') as hash;
+---------------+
| hash          |
+---------------+
| $2tBKnsbV2Szg |
+---------------+
Run Code Online (Sandbox Code Playgroud)

md5 工作良好

mysql> select '$1$$.dCRcHz4ApIYzcA0g/qz3/' = encrypt('qwe', '$1$$.dCRcHz4ApIYzcA0g/qz3/') as is_valid; 
+----------+
| is_valid |
+----------+
|        1 |
+----------+
Run Code Online (Sandbox Code Playgroud)

如何添加bcrypt对MySQL的支持?

mysql encryption bcrypt

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

避免违反LSP

我想将数据与数据源分开.一个用于数据库交互的类和用于数据操作的类.但是我的方法违反了LSP:preconditions cannot be strengthened in a subtype 并引发了严格的错误:Declaration of DataRepositoryItem::save() should be compatible with DataRepositoryAbstract::save(DataAbstract $data)

class DataAbstract {
}

class DataItem extends DataAbstract {
}

class DataObject extends DataAbstract {
}

abstract class DataRepositoryAbstract {
    /** @return DataAbstract */
    public function loadOne(){}
    /** @return DataAbstract[] */
    public function loadAll(){}                          
    public function save(DataAbstract $data){}
}

class DataRepositoryItem extends DataRepositoryAbstract {
    /** @return DataItem */
    public function loadOne(){}
    /** @return DataItem[] */
    public function loadAll(){}
    public function …
Run Code Online (Sandbox Code Playgroud)

php oop inheritance liskov-substitution-principle solid-principles

9
推荐指数
2
解决办法
384
查看次数

如何使用tailf正确编码apache error.log?

我的代码可能会出错俄语消息.

例如:

??????? ????????? limit
Run Code Online (Sandbox Code Playgroud)

但是error.log包含:

\xd0\x9d\xd0\xb5\xd0\xb2\xd0\xb5\xd1\x80\xd0\xbd\xd0\xbe \xd1\x81\xd0\xbe\xd1\x81\xd1\x82\xd0\xb0\xd0\xb2\xd0\xbb\xd0\xb5\xd0\xbd limit
Run Code Online (Sandbox Code Playgroud)

有没有办法正常读取tailf error.log(有sed或什么)?

或者我如何"告诉"apache不编码utf符号error.log?

php apache encoding utf-8

7
推荐指数
1
解决办法
2491
查看次数

您如何知道两个不同版本之间接口的差异?

我正在研究一些php库.我想跟踪类库接口的变化.

  • 是的,我正在使用GIT.但差异产生的信息比我需要的多.
  • 我试图用phpDocumentor比较两个版本.

    phpdoc项目:parse -d文件夹

生成具有项目接口结构的xml文件.我可以将此xml文件与另一个文件进行比较.但这些包含的信息比我想要的多.像行号,文件哈希等.

所以,我想比较两个提交,分支甚至分支,并找出它们的接口的差异.

比较示例:http://pastebin.com/1H61dJBT

了解何时更改主要版本也很重要.

进行不兼容的API更改时的MAJOR版本...

http://semver.org/spec/v2.0.0.html

php versioning diff interface

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

如何使用composer生成的类映射添加不区分大小写的自动加载?

我有遗留项目,在不同的情况下有声明和类使用.

我想升级源到现代状态.首先,我想用作曲家自动加载替换传统的自动加载.但是composer不提供不区分大小写的自动加载.

如何使用composer classmap和不敏感的自动加载?

php autoload composer-php

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

PHPUnit和Selenium2如果一个案例失败,所有案例都会失败

我正在使用PHPUnit和Selenium2服务器.我正在使用PageObject模式.对于页面对象,我获得了webdriver的实例并执行必要的功能.

为了保持单个浏览器运行,我实现了一个粗略的解决方案,我在网络中找到了我在静态类中初始化驱动程序:

class SessionHelper {
    public static $first;
}
SessionHelper::$first = 0;
Run Code Online (Sandbox Code Playgroud)

然后在我的测试用例类setup()方法中;

public function setUp(){
    if (SessionHelper::$first == 0 )
    {
        $this->setHost('localhost');
        $this->setPort((int)4444);            
        $this->setBrowser('firefox');        
        $this->setBrowserUrl('http://domain.com/lucky/web');            
        $this->shareSession(TRUE);
        $this->prepareSession();
        SessionHelper::$first = 1 ;
    }
}
Run Code Online (Sandbox Code Playgroud)

这样我就可以在一个浏览器中执行所有测试.但是,如果一个测试用例失败; 通过尝试查找不存在的元素,所有其他测试用例都失败并显示消息"Undefined index:browserUrl".如果我更改它以在页面中查找已知元素,它可以正常工作.所以例如;

test_method_1:如果在此测试失败后未找到任何元素,则显示"Undefined index:browserUrl".

如果test_method_1正常,则其他测试将执行,直到另一个测试用例失败.

那么,我可能会得到这个错误的原因是什么?当一个测试用例失败时,我的会话会被销毁吗?

php phpunit selenium-webdriver

5
推荐指数
1
解决办法
623
查看次数

任何Facebook PHP SDK v4.06工作Canvas应用程序示例?无法获得有效的会话

<?php
// include required files form Facebook SDK
require_once( 'Facebook/FacebookSession.php' );
require_once( 'Facebook/FacebookCanvasLoginHelper.php' );
require_once( 'Facebook/FacebookRedirectLoginHelper.php' );
require_once( 'Facebook/FacebookRequest.php' );
require_once( 'Facebook/FacebookResponse.php' );
require_once( 'Facebook/FacebookSDKException.php' );
require_once( 'Facebook/FacebookRequestException.php' );
require_once( 'Facebook/FacebookPermissionException.php' );
require_once( 'Facebook/FacebookOtherException.php' );
require_once( 'Facebook/FacebookAuthorizationException.php' );
require_once( 'Facebook/GraphObject.php' );
require_once( 'Facebook/GraphSessionInfo.php' );
require_once( 'Facebook/GraphUser.php' );
require_once( 'Facebook/GraphLocation.php' );
include ("fns.php");

use Facebook\FacebookSession;
use Facebook\FacebookRedirectLoginHelper;
use Facebook\FacebookCanvasLoginHelper;
use Facebook\FacebookRequest;
use Facebook\FacebookResponse;
use Facebook\FacebookSDKException;
use Facebook\FacebookRequestException;
use Facebook\FacebookOtherException;
use Facebook\FacebookAuthorizationException;
use Facebook\GraphObject;
use Facebook\GraphSessionInfo;
use Facebook\GraphUser;
use Facebook\GraphLocation;
// start …
Run Code Online (Sandbox Code Playgroud)

php facebook canvas

5
推荐指数
1
解决办法
1635
查看次数