Apakah yang perlu saya lakukan jika kod pengesahan tidak dipaparkan apabila versi PHP rendah?

藏色散人
Lepaskan: 2023-03-12 10:28:02
asal
2249 orang telah melayarinya

Penyelesaian kepada versi PHP rendah yang tidak memaparkan kod pengesahan: 1. Pasang kebergantungan yang diperlukan untuk php5-gd 2. Buat fail clean.php dalam direktori akar projek; .

Apakah yang perlu saya lakukan jika kod pengesahan tidak dipaparkan apabila versi PHP rendah?

Persekitaran pengendalian artikel ini: sistem Windows 7, versi PHP5, komputer DELL G3

Versi php rendah tidak memaparkan kod pengesahan apa yang perlu dilakukan?

Penyelesaian kepada masalah bahawa kod pengesahan PHP5 tidak boleh dipaparkan dan pustaka GD tidak boleh dipaparkan walaupun pustaka GD dipasang seperti biasa

Saya bekerja di JAVA, dan saya juga mengekalkan pengambilalihan langsung Saya sedang mengusahakan projek PHP dengan pengetahuan asas PHP yang sifar. Saya memindahkan pelayan projek itu dan menambah https pada nama domain saya akhirnya menyemak bahawa ia boleh diakses biasanya, tetapi fungsi terperinci belum diuji sepenuhnya.

Tiba-tiba pada suatu hari, terdapat aduan bahawa kod pengesahan modul pendaftaran tidak dapat dipaparkan seperti biasa (selepas mengalih keluar buat sementara waktu, saya memasuki modul pengurusan bahagian belakang dan mendapati fungsi muat naik imej adalah tidak berfungsi dengan betul. Ia mungkin menjadi masalah). Jadi saya mula mencari penyelesaian dalam talian selama 4 hari berselang-seli.

Malah, penyelesaian kepada situasi umum mudah dicari Sesetengah kata kunci ialah php-gd, php-fpm (saya mengkonfigurasi nginx), php.ini dan pembersihan cache. Tetapi sistem debian mempunyai kebergantungan yang tidak dapat dibayangkan, dan nama kebergantungan bagi setiap versi adalah berbeza Sistem semasa itu sendiri adalah pelayan persekitaran pengeluaran, dan terdapat pelbagai versi kebergantungan.

Akhir sekali, selepas mencuba sumber kebergantungan yang tidak terkira banyaknya dan mengemas kini kebergantungan, saya berjaya memasang kebergantungan yang diperlukan untuk php5-gd. Akhirnya, phpinfo juga memaparkan maklumat versi GD dan format imej yang disokong Walau bagaimanapun, kod pengesahan masih tidak dapat dipaparkan. . . . . .

Setelah mencuba kata kunci carian yang tidak terkira banyaknya, "php5 tidak memaparkan kod pengesahan walaupun selepas memasang gd" akhirnya saya menjumpai siaran yang menyebut pengepala BOM saya faham perkara ini kerana saya menggunakan crt untuk log masuk dari jauh pelayan. Pengepala BOM ini juga akan muncul semasa mengedit beberapa fail, jadi buat fail clean.php dalam direktori akar projek,

Tampal kod berikut

     <?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); 
    }
    ?>
Salin selepas log masuk

Akses terus https dengan pelayar ://url/clean.php

Jika terdapat masalah, anda akan melihat banyak log sedemikian, dan kemudian lawati semula halaman kod pengesahan

Akses biasa~

Masalah memuat naik gambar sebenarnya kerana nama domain telah ditukar kepada https tetapi konfigurasi modul muat naik juga tidak terjejas biasa

Pembelajaran yang disyorkan :《Tutorial video PHP

Atas ialah kandungan terperinci Apakah yang perlu saya lakukan jika kod pengesahan tidak dipaparkan apabila versi PHP rendah?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
php
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan