ホームページ  >  記事  >  バックエンド開発  >  PHPのバージョンが低い場合に認証コードが表示されない場合はどうすればよいですか?

PHPのバージョンが低い場合に認証コードが表示されない場合はどうすればよいですか?

藏色散人
藏色散人オリジナル
2021-09-03 09:14:392193ブラウズ

検証コードが表示されない低いバージョンの php の解決策: 1. php5-gd に必要な依存関係をインストールします; 2. プロジェクトのルート ディレクトリに clean.php ファイルを作成します; 3. BOM。

PHPのバージョンが低い場合に認証コードが表示されない場合はどうすればよいですか?

この記事の動作環境: Windows7 システム、PHP5 バージョン、DELL G3 コンピューター

検証コードはありませんPHPのバージョンが低いと表示されるのですがどうすればいいですか?

PHP5の検証コードが表示されない、GDライブラリが正常にインストールされても表示できない問題の解決方法

私はJAVAで作業しており、直接引き継ぎも維持しています PHPの基礎知識ゼロでPHPプロジェクトに取り組んでいます プロジェクトのサーバーを移行し、ドメイン名にhttpsを追加して、最終的に正常にアクセスできることを確認しましたただし、詳細な機能は完全にテストされていません。

ある日突然、登録モジュールの認証コードが正常に表示されないというクレームが入りました(一旦削除した後、バックグラウンド管理モジュールに入ってみると、画像アップロード機能が無いことが分かりました)正常に動作しています。おそらく問題があります)。そこで、断続的に 4 日間オンラインで解決策を探し始めました。

実際、一般的な状況に対する解決策は簡単に見つかります。キーワードとしては、php-gd、php-fpm (nginx を構成しています)、php.ini、キャッシュのクリアなどがあります。しかし、debian システムには想像を絶する依存関係があり、バージョンごとに依存関係の名前が異なり、現在のシステム自体が本番環境のサーバーであり、依存関係のバージョンもさまざまで、要するに、非常に頭の痛い問題です。

無数の依存関係ソースを試し、依存関係を更新した後、最終的に、php5-gd に必要な依存関係を正常にインストールできました。最後に、phpinfo では GD のバージョン情報とサポートされている画像形式も表示されましたが、検証コードはまだ表示できませんでした。 。 。 。 。 。

「php5 で gd をインストールしても認証コードが表示されない」という検索キーワードを数え切れないほど試した結果、BOM ヘッダーについて言及している投稿を見つけました。これは、crt を使用してリモートでログインしていたため、明らかになりました。この BOM ヘッダーは、一部のファイルを編集するときにも表示されるため、プロジェクトのルート ディレクトリに clean.php ファイルを作成し、

次のコードを貼り付けます

     <?php 
    /*清除bom*/
    if(isset($_GET[&#39;dir&#39;])){ 
        $basedir=$_GET[&#39;dir&#39;]; 
    }else{ 
        $basedir = &#39;.&#39;; 
    }   
    $auto = 1;   
    checkdir($basedir); 
    function checkdir($basedir){ 
        if($dh = opendir($basedir)){ 
            while(($file = readdir($dh)) !== false){ 
                if($file != &#39;.&#39; && $file != &#39;..&#39;){ 
                    if(!is_dir($basedir."/".$file)){ 
                        echo "filename: $basedir/$file ".checkBOM("$basedir/$file")." <br>"; 
                    }else{ 
                        $dirname = $basedir."/".$file; 
                        checkdir($dirname); 
                    } 
                } 
            }//end while 
        closedir($dh); 
        }//end if($dh 
    }//end function 
    function checkBOM($filename){ 
        global $auto; 
        $contents = file_get_contents($filename); 
        $charset[1] = substr($contents, 0, 1);   
        $charset[2] = substr($contents, 1, 1);   
        $charset[3] = substr($contents, 2, 1);   
        if(ord($charset[1]) == 239 && ord($charset[2]) == 187 && ord($charset[3]) == 191){ 
            if($auto == 1){ 
                $rest = substr($contents, 3); 
                rewrite ($filename, $rest); 
                return "<font color=red>BOM found, automatically removed.</font>"; 
            }else{ 
                return ("<font color=red>BOM found.</font>"); 
            } 
        }   
        else return ("BOM Not Found."); 
    }//end function 
    function rewrite($filename, $data){ 
        $filenum = fopen($filename, "w"); 
        flock($filenum, LOCK_EX); 
        fwrite($filenum, $data); 
        fclose($filenum); 
    }
    ?>

ブラウザ /url/clean.php

問題がある場合は、そのようなログが多数表示され、確認コード ページ

## に再度アクセスしてください。

#通常のアクセス~

写真のアップロードの問題は、実際にはドメイン名が https に変更されているにもかかわらず、アップロード モジュールの設定が変更されていないことが原因です。https を追加することも正常です

推奨される学習: 「

PHP ビデオ チュートリアル >>

以上がPHPのバージョンが低い場合に認証コードが表示されない場合はどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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