Bagaimana cara membuat atribut yang diperlukan untuk input berfungsi di versi IE yang lebih lama? require_once tidak berfungsi dengan baik saat membutuhkan file dari kelas Require sekali tidak berfungsi




Untuk pengembang web mana pun, belum ada masalah yang lebih serius daripada kompatibilitas lintas-browser lengkap dari produknya. Ini mungkin salah satu tugas utama seorang spesialis yang baik: memastikan bahwa situsnya selalu ditampilkan dengan benar di semua browser.

Parameter diperlukan, yang terkadang digunakan untuk input, tidak berfungsi di IE kuno, jadi tidak bisa dibiarkan begitu saja. Pengguna pensiunan yang masih menggunakan IE6 seharusnya memiliki kemudahan penggunaan yang sama seperti pengguna Google Chrome versi terbaru. Siapa, selain pengembang web, yang dapat merawat mereka.

Tentang sakit, tentang Internet Explorer

Untuk browser biasa, termasuk Firefox, Opera, dan Google Chrome, tugas ini relatif mudah. Bahkan versi lama dari browser ini menampilkan kode html dengan sama baiknya, kecuali, tentu saja, beberapa teknologi baru digunakan di dalamnya. Tetapi untuk mencapai ini di browser keluarga Internet Explorer, diperlukan upaya besar-besaran.

Setiap versi Internet Explorer memiliki kebodohan uniknya sendiri. Apa yang berfungsi di IE6 mungkin tidak berfungsi dengan baik di IE7 dan sebaliknya. Perusahaan kebun binatang ini tidak dapat diatasi oleh Microsoft bahkan dalam versi terbaru browsernya.

Saya tidak mengerti mengapa pengembang browser tidak bisa membukanya begitu saja dan membaca standar W3C untuk pembuatan situs.

Oleh karena itu, sebagai pengembang web, saya harus bertindak sebagai semacam "lapisan" antara browser yang berubah-ubah dan pengunjung situs yang membutuhkan pengetahuan dan tontonan. Dan sangat bagus bahwa pengembang web berhasil sejauh ini.

Jadi bagaimana Anda diminta untuk bekerja di versi IE yang lebih lama?

JS datang untuk menyelamatkan. Saya dulu membencinya, tetapi sekarang saya tidak melihat jalan ke depan tanpanya di ruang WEB yang "benar".

Saya tidak menemukan solusi di bawah saya sendiri, tetapi mengambilnya dari blog borjuis. Karena saya serakah, dan blognya borjuis, saya tidak akan menautkannya.

Fungsi akan bertanggung jawab untuk semuanya fnCheckFields(). Tempatkan kode JS di situs Anda:

Biasanya disarankan untuk menempatkannya di antara tag html KEPALA di bagian atas halaman, tetapi saya tetap menyarankan untuk menempatkannya di bagian paling bawah halaman sebelum tag penutup TUBUH. Dengan demikian, JS memiliki dampak yang lebih kecil pada kecepatan pemuatan halaman.

Jendela masukan, tempat memasukkan parameter yang diperlukan, akan terlihat seperti ini dalam bahasa html:

Skrip ini bekerja sangat sederhana: setelah menekan tombol Mengirim, skrip memeriksa semua masukan untuk keberadaan parameter yang diperlukan dan, jika menemukannya, lihat nilai yang dimasukkan dari bidang ini sesuai dengan itu. Jika tidak ada yang dimasukkan dalam input seperti itu, jendela peringatan akan ditampilkan tentang perlunya input. Data tidak dikirim kemana-mana.

Sangat bagus juga jika Anda memiliki browser normal yang telah belajar memahami parameter ini seperti yang diharapkan, jendela peringatan seperti itu tidak akan muncul dan alat standar untuk memproses parameter yang diperlukan untuk browser Anda akan berfungsi.

Ceritakan di sosial jaringan

Salah satu fitur php yang paling menarik dan berguna adalah menyertakan file lain. Misalnya, situs tersebut memiliki menu atas, menu bawah, dan di antaranya adalah konten halaman itu sendiri. Dan, misalnya, pada 10 halaman situs, menu paling bawah digunakan. Pada titik tertentu itu perlu diubah. Dalam html, Anda akan secara manual membuat perubahan pada setiap file individual, tetapi php membuatnya lebih mudah untuk bekerja dengan situs! Kode menu paling bawah dapat dimuat dalam file terpisah, dan pada masing-masing dari 10 halaman, Anda cukup menyertakan file terpisah ini! Artinya, semua perubahan sekarang harus dilakukan hanya pada file dengan menu, dan 10 lainnya sudah akan ditampilkan dengan perubahan.

Arti menghubungkan di php dalam bahasa Rusia sederhana:

Berkas 1.php
Menu Atas

File 2.php
Menu bawah

file contoh.php
Hubungkan File 1.php
Konten halaman
Hubungkan File 2.php

Sebagai hasil dari pemrosesan file example.php, itu akan ditampilkan
Menu Atas
Konten halaman
Menu bawah
Karenanya, untuk mengubah apa pun di menu bawah, Anda hanya perlu melakukan perubahan di file 2.php

Jalur ke file

File terhubung sesuai dengan jalur yang ditentukan ke file. Ada dua opsi jalur: relatif dan absolut. Relatif - ini merupakan indikasi jalur ke file yang akan dihubungkan relatif ke file dengan instruksi koneksi. Mutlak - menentukan jalur lengkap ke file yang disertakan.

kode PHP

// contoh jalur relatif
include "include/your_file.php"; // file ada di folder include, yang terletak di direktori yang sama dengan file dengan koneksi

// contoh jalur absolut
sertakan $_SERVER["DOCUMENT_ROOT"]."/include/your_file.php"; // $_SERVER["DOCUMENT_ROOT"] - menentukan direktori akar situs

sertakan dan sertakan_sekali

termasuk()- konstruksi yang dirancang untuk menyertakan file dalam kode skrip PHP selama eksekusi skrip PHP. Saat kode diproses, instruksi diganti dengan isi file terlampir. Saya mengusulkan untuk segera mempertimbangkan contoh.

Pertimbangkan pekerjaan penyertaan pada contoh dua file: index.php Dan teks.php. Untuk kesederhanaan, mari kita asumsikan bahwa mereka berada di direktori yang sama.

kode PHP(mengajukan index.php)

Echo "Teks biasa yang terkandung dalam file utama";
sertakan "teks.php"; // sertakan isi file text.php

?>
kode PHP(mengajukan teks.php)

Gema "Teks yang terkandung dalam file yang disertakan";

?>
Sebagai hasil dari file index.php, berikut ini akan ditampilkan:

Teks biasa yang terdapat dalam file utama
Teks yang terkandung dalam file yang disertakan
Apakah ini benar-benar nyaman? Sekarang, dengan mengubah konten di file text.php, hasil index.php akan sangat berbeda!

Sekarang mari kita bicara tentang desain lain - sertakan_sekali. Ini bekerja dengan cara yang persis sama dengan penyertaan, hanya dibuat nanti dan untuk kasus di mana Anda tidak dapat memasukkan ulang file. Misalnya, Anda takut sebagai akibat dari kesalahan, Anda dapat memasukkan file 2 kali atau lebih, yang akan memengaruhi pengoperasian halaman yang salah dan penerimaan pesan kesalahan yang sesuai.

kode PHP

include_once "text.php"; // file text.php hanya akan disertakan satu kali

// sambungkan kembali di bawah akan diabaikan dan ditampilkan
// dan itu tidak akan menghasilkan pesan kesalahan
include_once "text.php"; // Tidak ada yang akan terjadi

membutuhkan dan membutuhkan_sekali

Instruksi require dan require_once bekerja secara identik untuk include dan include_once, kecuali untuk satu fitur - jika file include tidak ditemukan, eksekusi skrip akan dihentikan (skrip tidak akan dibaca lebih lanjut), sedangkan include dan include_once hanya menampilkan peringatan dan lanjutkan eksekusi skrip lebih lanjut.

Jika menyertakan atau memerlukan tidak bekerja

Untuk memahami alasan mengapa penyertaan tidak berfungsi, saya sarankan untuk memeriksa semuanya langkah demi langkah. Tidak peduli seberapa jelas dan dangkal poin-poin di bawah ini, periksa semuanya dari awal

1. Periksa apakah server dan php Anda berfungsi, apakah ada kode php di situs yang berfungsi sama sekali
2. Periksa apakah file sertakan ada
3. Periksa apakah nama file dan ekstensi dimasukkan dengan benar dalam koneksi
4. Pastikan file php yang disertakan benar-benar berada di alamat yang Anda tentukan
5. Cobalah untuk menentukan bukan jalur relatif, tetapi jalur absolut (jalur lengkap ke file).

Contoh kode PHP

Sertakan "http://www.example.com/include/your_file.php";

// DOCUMENT_ROOT - menunjuk direktori root sumber daya
sertakan $_SERVER["DOCUMENT_ROOT"]."/include/your_file.php";

6. Jika Anda tidak menghubungkan file dan tidak ada kesalahan yang ditampilkan, maka di direktori dengan file yang Anda sambungkan, buat file .htaccess dengan konten berikut

php_flag display_errors Aktif
atau dalam file php, sebelum menghubungkan, masukkan baris berikut

error_reporting(E_ALL);
Kedua pengaturan akan memaksa kesalahan tampilan

Terima kasih atas perhatian Anda!

0

Saya sedang membangun kerangka kerja MVC PHP kecil dan inilah struktur saya

/app /controllers /models /views /templates /config /config.php /core /Controller.php /Router.php /init.php /index.php

folder di dalam index.php yang merupakan pengontrol depan saya memerlukan kode ini dari init.php /app/core/init.php

aplikasi/kernel/init.php

init.php membutuhkan setiap base controller dan classe di direktori /core, termasuk controller.php dan router.php dan di sini index.php juga menginstansiasi class

Semuanya berfungsi dengan baik untuk saat ini, karena saya telah mengujinya dengan membuat konstruktor di controller.php dan router.php sehingga kode di kedua file ini akan menjadi seperti ini

app/core/controller.php

aplikasi/kernel/router. php

di dalam index.php itu bergema OK! karena kelas dibuat dengan benar tetapi masalahnya adalah ketika saya ingin memasukkan config.php yang ada di /app/config/config.php dari Controller.php yang ada di /app/core/Controller.php dengan kode ini

Setiap kali saya melakukannya mengembalikan kesalahan ini

Controller::include(../config/config.php): gagal membuka streaming: Tidak ada file atau direktori di C:\AppServ\www\myapp\app\core\Controller.php di baris 6

Controller::include() : Gagal membuka "../config/config.php" untuk dimasukkan (include_path=".;C:\php5\pear") di C:\AppServ\www\myapp\app\core\Controller .php pada baris 6

Saya pikir saya menggunakan lokasi yang benar, saya bekerja dari /app/core/Controller.php dan ingin membutuhkan /app/config/config.php. Saya kembali ke satu direktori menggunakan ../

Lalu mengapa saya tidak bisa mengklaim file tersebut?

  • 3 jawaban
  • Penyortiran:

    Aktivitas

2

Dari pengalaman pribadi saya, menggunakan jalur file relatif akan menyebabkan sakit kepala di beberapa titik. Oleh karena itu, saya biasanya menggunakan path lengkap ke file tersebut. Ini juga memiliki keuntungan menjadi sedikit lebih cepat. Kemudian jika suatu saat Anda mendapatkan kesalahan penyertaan, lebih mudah untuk menemukan kesalahan karena Anda memiliki seluruh jalur yang tersedia.

Untuk dapat melakukan jalur absolut, saya sarankan Anda menambahkan konstanta ke file index.php (frontcontroller) Anda. Sesuatu seperti berikut ini:

Define("ROOT_PATH", realpath(dirname(__FILE__)) .DIRECTORY_SEPARATOR);

Mendefinisikan sebuah konstanta yang disebut ROOT_PATH yang merujuk ke direktori tempat file index.php berada dan oleh karena itu direktori root Anda. Pada saat yang sama, saya menambahkan pemisah direktori di bagian akhir untuk memudahkan penulisan jalur.Untuk menggunakan ini, Anda harus menulis.

Memerlukan_sekali ROOT_PATH . "config/config.php";

Informasi Bonus

Tetapi jika Anda menggunakan pendekatan ini di kelas controller.php Anda, Anda membuatnya bergantung pada konstanta ini. Untuk memperbaikinya, Anda dapat melewatkan jalur root sebagai variabel di konstruktor.

fungsi publik __construct($root) (...

Dan kemudian gunakan seperti berikut:

Fungsi publik __construct($root) ( require_once($root . "config/config.php"); )

Semoga ini membantu.

0

Saya tidak tahu apa yang terjadi, tetapi require_once() tidak menampilkan kesalahan yang menyebut dirinya sebagai include() , karena keduanya adalah fungsi yang berbeda, ditambah lagi, jika itu semua kode, nomor baris kesalahan tidak cocok dengan require_once Anda () baris, karena seharusnya 4. Coba mulai ulang server web Anda dan lihat apakah itu memperbaiki sesuatu, jika tidak, Anda mungkin akan bercanda.