Rumah >pembangunan bahagian belakang >masalah PHP >Apakah yang perlu saya lakukan jika kod pengesahan tidak dipaparkan apabila versi PHP rendah?
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; .
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['dir'])){ $basedir=$_GET['dir']; }else{ $basedir = '.'; } $auto = 1; checkdir($basedir); function checkdir($basedir){ if($dh = opendir($basedir)){ while(($file = readdir($dh)) !== false){ if($file != '.' && $file != '..'){ 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); } ?>
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!