[1] Variabel get, post, dan session tidak dapat ditransfer antar halaman. Pada versi PHP terbaru, variabel global otomatis dinonaktifkan, jadi untuk mendapatkan variabel yang dikirimkan dari halaman sebelumnya, gunakan $_GET['foo'], $ _POST ['foo'],$_SESSION['foo'] untuk diterima. Tentu saja, Anda juga dapat mengubah variabel global otomatis menjadi aktif (php.ini diubah menjadi register_globals = On);
[2] Menggunakan metode get untuk meneruskan parameter berbahasa Mandarin ke Apache2 di bawah Win32 akan menyebabkan kesalahan:
test.php?a=Hello&b=Hello.
Melewati parameter akan menyebabkan kesalahan internal ( Halo)."&b=".urlencode(Halo)
.............
[3] Sesi di bawah win32 tidak berfungsi dengan benar.
php.ini default session.save_path = /
tmp Jelas sekali adalah konfigurasi di Linux. PHP di bawah win32 tidak dapat membaca dan menulis file sesi, menyebabkan sesi tidak dapat digunakan. Ubah saja ke jalur absolut. Misalnya, session.save_path = c:windows emp
[4] Tampilkan pesan kesalahan
saat php.ini Ketika display_errors = On dan error_reporting = E_ALL, semua kesalahan dan petunjuk akan ditampilkan. Yang terbaik adalah mengaktifkannya selama debugging untuk koreksi kesalahan variabel. Akan ada prompt ketika suatu variabel dipanggil sebelum diberi nilai. Solusinya adalah dengan mendeteksi atau melindunginya.
Misalnya, untuk menampilkan $foo, Anda dapat if(isset($foo)) echo $foo atau echo @$foo
[5] mail() tidak dapat mengirim email di Win32.
Sendmail yang dikonfigurasi di Linux dapat mengirim, tetapi Anda perlu menelepon smtp di bawah win32. Server digunakan untuk mengirim email, memodifikasi SMTP php.ini = ip //ip adalah server smtp tanpa fungsi verifikasi (sulit ditemukan online)
. untuk mengirim langsung ke server email pihak lain alih-alih server penerusan.
[6] Jika kata sandi tidak disetel untuk instalasi awal MySQL, Anda harus menggunakan update mysql.user set password="yourpassword" di mana user="root" untuk mengubah kata sandi
[7]
Kesalahan header sudah terkirim biasanya terjadi ketika Anda menggunakan HEADER. Mungkin ada beberapa alasan: 1. Anda PRING atau ECHO sebelum menggunakan HEADER 2. Ada baris kosong di depan file Anda saat ini 3. Anda mungkin sudah MENYERTAKAN file dan ada baris kosong di akhir. file atau kesalahan ini akan terjadi pada output. !
【8】Setelah mengubah php.ini dan tidak ada perubahan,
restart server web, seperti IIS, Apache, dll., lalu pengaturan terbaru akan diterapkan.
[9] PHP diinstal pada tahun 2003 (Saya ingin meminta saran para ahli tentang cara menginstal ISAPI).
Php4isapi.dll dari PHP4 tampaknya memiliki beberapa konflik dengan tahun 2003. Ini hanya dapat diinstal dalam mode CGI
. Pertama unduh program instalasi di www.php.net I Yang diinstal adalah: php-4.2.3-installer.exe. Anda juga dapat menemukan versi terbaru. Pastikan IIS6.0 Anda dimulai dan dapat diakses sebelum menginstal php-. 4.2.3-installer.exe. Setelah instalasi, buka situs web default-->Konfigurasi aplikasi.
Langkah 2: Klik ekstensi layanan web-->Ekstensi layanan web baru.
Langkah 3: Ekstensi-->php, lalu tambahkan
Langkah 4: Temukan jalur ke php.exe dan tambahkan.
Langkah Lima: Konfirmasikan dan selesai!
Langkah 6: Pilih ekstensi layanan PHP dan klik Izinkan.
【10】Terkadang pernyataan sql tidak berfungsi dan operasi database gagal. Cara termudah untuk melakukan debug adalah dengan mengulangi kalimat sql dan melihat apakah nilai variabel dapat diperoleh.
[11]Tidak ada banyak perbedaan antara
include dan require
. Jika file yang akan disertakan tidak ada, include meminta pemberitahuan, lalu lanjutkan menjalankan pernyataan berikut require meminta kesalahan fatal dan keluar.Menurut pengujian saya, di bawah platform win32, mereka disertakan terlebih dahulu dan kemudian dieksekusi, jadi yang terbaik adalah tidak menyertakan atau memerlukan pernyataan dalam file yang disertakan, yang akan menyebabkan kebingungan direktori. Mungkin situasinya berbeda di bawah *nux, saya belum mengujinya.
Jika Anda tidak ingin file dimasukkan beberapa kali, Anda dapat menggunakan include_once atau require_once## untuk membaca dan menulis data dokumen.
fungsi r($nama_file) {
$filenum=@fopen($file_name,"r ");
@flock($filenum,LOCK_SH);
$file_data=@fread($filenum,ukuranfile($nama_file ));
@fclose($filenum);
kembalikan $file_data;
}
fungsi w($nama_file,$data,$metode="w"){
$filenum=@fopen($nama_file,$metode );
kawanan($filenum,LOCK_EX);
$file_data=fwrite($filenum,$data);
fclose($filenum);
kembalikan $file_data;
}
[12] Perbedaan antara isset() dan blank()
adalah keduanya digunakan untuk menguji variabel, namun isset() menguji apakah suatu variabel telah diberi nilai, sedangkan kosong() menguji apakah suatu variabel yang telah diberi nilai nilainya kosong.
Jika suatu variabel direferensikan dalam PHP tanpa diberi nilai, maka diperbolehkan, namun akan ada pemberitahuan. Jika suatu variabel diberi nilai null, $foo="" atau $foo=0 atau $foo=false, lalu blank($ foo) mengembalikan nilai true, isset($foo) juga mengembalikan nilai true, yang berarti menetapkan nilai null tidak akan membatalkan registrasi variabel.
Untuk membatalkan pendaftaran variabel, Anda dapat menggunakan unset($foo) atau $foo=NULL
[13] Pernyataan kueri mysql berisi kata kunci.
Ketika php menanyakan mysql, terkadang nama tabel mysql atau nama kolom memiliki kata kunci akan Ada kesalahan. Misalnya, jika nama tabel diurutkan, kesalahan akan terjadi saat kueri. Cara sederhananya adalah dengan menambahkan `[di atas tombol tab] ke nama tabel atau nama kolom dalam pernyataan sql untuk membedakannya, misalnya pilih pilih. * dari `pesanan`
[14] Unggahan satu kali melalui protokol HTTP Ada dua ide untuk metode banyak file
, yang merupakan dua implementasi dari metode yang sama. Prosedur khusus perlu dirancang sendiri.
1. Atur beberapa kotak input file dalam formulir dan beri nama dalam array, sebagai berikut:
<form action="" method=post>
<tipe masukan=nama file=usefile[]>
<tipe masukan=nama file=usefile[]>
<tipe masukan=nama file=usefile[]>
</form>
Dengan cara ini, lakukan pengujian berikut pada sisi server:
echo "<pre>";
print_r($_FILES);
echo "</pre>";
2. Atur beberapa kotak input file dalam form, tetapi dengan nama yang berbeda, sebagai berikut:
<form action="" method=post>
<tipe masukan=nama file=usefile_a>
<tipe masukan=nama file=usefile_b>
<tipe masukan=nama file=usefile_c>
</form>
Lakukan pengujian yang sama pada sisi server:
echo "<pre>";
print_r($_FILES);
gema "</pra>";