ホームページ  >  記事  >  PHPフレームワーク  >  thinkphpの検証コードが有効にならない問題の解決方法

thinkphpの検証コードが有効にならない問題の解決方法

藏色散人
藏色散人オリジナル
2021-12-27 11:32:212714ブラウズ

Thinkphp 検証コードが有効にならない 解決策: 1. 検証コードを呼び出す前に「ob_clean();」ステートメントを追加します; 2. データベース構成ファイルを確認し、正しく変更します。

thinkphpの検証コードが有効にならない問題の解決方法

#この記事の動作環境: Windows 7 システム、thinkphp v5.1 バージョン、Dell G3 コンピューター。

thinkphp 検証コードが有効にならない問題を解決するにはどうすればよいですか?

ThinkPHP5 認証コードが表示されない原因と解決策

実は、私もずっと前に、この問題を学んだばかりのときにこの問題に遭遇しました。 tp5 フレームワーク。解決した後も、「問題は発生しませんでした。今日、新しいプロジェクトで前のフレームワークを使用しているときに、再びこの問題に遭遇しました。

問題の原因を記録します。」 :

1. TP5 には本質的にこのようなバグがあります

2. データベース接続が正常ではありません (プロジェクトのデータベースへの接続が正常でない場合、検証コードは表示されません)通常)

解決策:

1. TP5 自体のバグは、TP5 公式 Web サイトのフォーラムの対応する方法で解決されています。確認コードを取得する前にキャッシュをクリアしてください

/*
     * 获取验证码
     * */
    public function getVerify()
    {
        $config = [
            'fontSize' => 28,
            'length' => 4,
            'useCurve' => false,
        ];
        ob_clean();     //每次获取验证码前都清除下缓存
        $captcha = new Captcha($config);
        return $captcha->entry();
    }

分析:

ob_clean 関数の役割:
出力バッファー内のコンテンツを破棄するために使用されます。Web サイトに生成された画像ファイルが多数ある場合、それらに正しくアクセスしたい場合は、バッファを頻繁にクリアする必要があります。

2. データベース接続が異常であるため、データベース構成ファイルに問題があるかどうかを確認してください。tp5 データベース構成ファイル dababase.php

return [
    // 数据库类型
    'type'            => 'mysql',
    // 服务器地址
    'hostname'        => '',
    // 数据库名
    'database'        => '',
    // 用户名
    'username'        => root,
    // 密码
    'password'        => '',
    // 端口
    'hostport'        => '3306',
    // 连接dsn
    'dsn'             => '',
    // 数据库连接参数
    'params'          => [],
    // 数据库编码默认采用utf8
    'charset'         => 'utf8',
    // 数据库表前缀
    'prefix'          => 'ww_',
    // 数据库调试模式
    'debug'           => true,
    // 数据库部署方式:0 集中式(单一服务器),1 分布式(主从服务器)
    'deploy'          => 0,
    // 数据库读写是否分离 主从式有效
    'rw_separate'     => false,
    // 读写分离后 主服务器数量
    'master_num'      => 1,
    // 指定从服务器序号
    'slave_no'        => '',
    // 是否严格检查字段是否存在
    'fields_strict'   => true,
    // 数据集返回类型
    'resultset_type'  => 'array',
    // 自动写入时间戳字段
    'auto_timestamp'  => true,
    // 时间字段取出后的默认时间格式
    'datetime_format' => 'Y-m-d H:i:s',
    // 是否需要进行SQL性能分析
    'sql_explain'     => false,
];

推奨される調査: 「最新の 10 件の thinkphp ビデオ チュートリアル >>

以上がthinkphpの検証コードが有効にならない問題の解決方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。