Kā panākt, lai ievadei nepieciešamais atribūts darbotos vecākās IE versijās? Tātad, kā man pieprasīt strādāt vecākās IE versijās.
Savienojuma nozīme php vienkāršā krievu valodā:
Fails 1.php
Augšējā izvēlne
Fails 2.php
Apakšējā izvēlne
example.php fails
Savienot failu 1.php
Lapas saturs
Savienot failu 2.php
Faila example.php apstrādes rezultātā tas tiks parādīts
Augšējā izvēlne
Lapas saturs
Apakšējā izvēlne
Attiecīgi, lai kaut ko mainītu apakšējā izvēlnē, izmaiņas jāveic tikai 2.php failā
PHP kods
// relatīvā ceļa piemērs
iekļaut "include/your_file.php"; // fails atrodas iekļautajā mapē, kas atrodas tajā pašā direktorijā, kur savienojuma fails
// absolūtā ceļa piemērs
iekļaut $_SERVER["DOKUMENTA_SAKNE"]."/include/your_file.php"; // $_SERVER["DOCUMENT_ROOT"] — norāda vietnes saknes direktoriju
Apskatīsim, kā darbojas iekļaut, piemēram, izmantojot divus failus: index.php un text.php . Darba vienkāršības labad pieņemsim, ka tie atrodas vienā direktorijā.
PHP kods (fails index.php)
Echo "Vienkāršs teksts, kas atrodas galvenajā failā";
iekļaut "text.php"; // ietver faila text.php saturu
?>
PHP kods (fails text.php)
Atbalss "Iekļautajā failā esošais teksts";
?>
Faila index.php palaišanas rezultāts būs:
Vienkāršs teksts, kas atrodas galvenajā failā
Teksts iekļauts iekļautajā failā
Vai tas tiešām ir ērti? Tagad, mainot saturu text.php failā, index.php rezultāts būs pavisam cits!
Tagad parunāsim par citu konstrukciju - include_once. Tas darbojas tieši tāpat kā iekļaut, tikai izveidots vēlāk un tiem gadījumiem, kad failu nevar iekļaut atkārtoti. Piemēram, jūs baidāties, ka kļūdas rezultātā jūs varat savienot failu 2 vai vairāk reizes, kas ietekmēs lapas nedarbošanos un atbilstoša kļūdas ziņojuma saņemšanu.
PHP kods
Include_once "text.php"; // fails text.php tiks iekļauts tikai vienu reizi
// tālāk norādītie atkārtotie savienojumi netiks ņemti vērā un parādīti
// un tas neizraisīs kļūdas ziņojuma rādīšanu
include_once "text.php"; // nekas nenotiks
1. Pārbaudiet, vai jūsu serveris un php darbojas un vai kāds php kods vietnē vispār darbojas.
2. Pārbaudiet, vai iekļautais fails pastāv
3. Pārbaudiet, vai savienojumā ir pareizi ievadīts faila nosaukums un paplašinājums
4. Pārliecinieties, vai iekļautais php fails patiešām atrodas jūsu norādītajā adresē
5. Mēģiniet norādīt nevis relatīvo ceļu, bet absolūto ceļu (pilnu ceļu uz failu).
PHP koda piemērs
Iekļaut "http://www.example.com/include/your_file.php";
// DOCUMENT_ROOT - apzīmē resursa saknes direktoriju
iekļaut $_SERVER["DOKUMENTA_SAKNE"]."/include/your_file.php";
6. Ja jūsu fails neveidojas savienojuma izveide un netiek parādīta kļūda, tad direktorijā ar failu, kuru pievienojat, izveidojiet .htaccess failu ar šādu saturu.
Php_flag display_errors Ieslēgts
vai php failā pirms savienojuma izveides ievietojiet šādu rindiņu
Error_reporting (E_ALL);
Abi iestatījumi liks parādīt kļūdas
Paldies par uzmanību!
Nevienam tīmekļa izstrādātājam pašlaik nav nopietnākas problēmas kā pilnīga viņa produkta saderība starp pārlūkprogrammām. Tas, iespējams, ir viens no laba speciālista galvenajiem uzdevumiem: nodrošināt, lai viņa vietne vienmēr tiktu pareizi attēlota visās pārlūkprogrammās.
Nepieciešamais parametrs, kas dažkārt tiek izmantots ievadei, nedarbojas senajā IE, kuru vienkārši nevar atstāt tā. Pensionāriem lietotājiem, kuri joprojām izmanto IE6, jūsu vietnei ir jābūt tikpat ērtai lietošanai kā Google Chrome jaunākās versijas lietotājiem. Kas, izņemot tīmekļa izstrādātājus, var par viņiem parūpēties.
Par sāpīgo punktu, par Internet ExplorerParastajām pārlūkprogrammām, tostarp Firefox, Opera un Google Chrome, šis uzdevums ir salīdzinoši vienkāršs. Pat vecākās šo pārlūkprogrammu versijas vienlīdz labi parāda HTML kodu, ja vien, protams, netiek izmantotas kādas jaunas tehnoloģijas. Bet, lai to panāktu Internet Explorer saimes pārlūkprogrammās, ir nepieciešami vienkārši Herkules centieni.
Katrai Internet Explorer pārlūkprogrammas versijai ir savs unikāls stulbums. Tas, kas darbojas IE6, var nedarboties pareizi IE7 un otrādi. Microsoft nevarēja pārvarēt šo zoodārzu pat jaunākajā pārlūkprogrammas versijā.
Es nesaprotu, kāpēc pārlūkprogrammu izstrādātāji nevar vienkārši atvērt un izlasīt W3C standartus vietņu veidošanai.
Tāpēc man kā tīmekļa izstrādātājam ir jādarbojas kā sava veida “slānim” starp kaprīzām pārlūkprogrammām un vietnes apmeklētājiem, kuriem nepieciešamas zināšanas un skats. Un tas ir lieliski, ka tīmekļa izstrādātājiem tas līdz šim ir izdevies.
Tātad, kā man var pieprasīt strādāt vecākās IE versijās?JS nāk mums palīgā. Iepriekš es to nevarēju izturēt, bet tagad neredzu tālāku ceļu bez tā “pareizā” WEB plašumos.
Tālāk sniegto risinājumu es neizdomāju pats, bet ņēmu to no buržuāziskā bloga. Tā kā esmu mantkārīgs un blogs ir buržuāzisks, tad saiti uz to nesniegšu.
FnCheckFields() funkcija būs atbildīga par visu. Ievietojiet JS kodu savā vietnē:
function fnCheckFields(form_obj)( var error_msg = "Lūdzu, aizpildiet visus obligātos laukus."; var is_error = false; for (var i = 0; form_obj_elem = form_obj.elements[i]; i++) if (form_obj_elem.type "input" ||. form_obj_elem.type "text") if (form_obj_elem.getAttribute("obligāts") && !form_obj_elem.value) ir_error = true if (ir_error) alert(error_msg);
Parasti to ieteicams ievietot starp HEAD html tagiem lapas sākumā, bet es tomēr ieteiktu ievietot pašā lapas apakšā pirms noslēdzošā BODY taga. Tādā veidā JS mazāk ietekmē lapas ielādes ātrumu.
Ievades logam, kurā jāievada nepieciešamais parametrs, html formātā vajadzētu izskatīties šādi:
Šis skripts darbojas ļoti vienkārši: pēc pogas Iesniegt nospiešanas skripts pārbauda, vai visos ievadījumos ir vajadzīgā parametra esamība un, ja to atrod, attiecīgi aplūko šajā laukā ievadīto vērtību. Ja šādā ievadā nekas netiek ievadīts, tiek parādīts brīdinājuma logs par ievades nepieciešamību. Attiecīgi dati nekur netiek sūtīti.
Lieliski ir arī tas, ka, ja jums ir parasta pārlūkprogramma, kas jau ir iemācījusies saprast šo parametru, kā paredzēts, šāds brīdinājuma logs netiks parādīts un darbosies standarta rīki pārlūkprogrammas vajadzīgā parametra apstrādei.
Dalieties sociālajos medijos tīkliem
0
Es veidoju nelielu PHP MVC ietvaru, un šeit ir mana struktūra
/app /controllers /models /views /templates /config /config.php /core /Controller.php /Router.php /init.php /index.php
mapes Index.php, kas ir priekšējais kontrolleris, man ir šis kods, kas jāpieprasa no init.php /app/core/init.php
app/core/init.php
init.php ir nepieciešams katrs bāzes kontrolleris un Classe direktorijā /core, tostarp controller.php un router.php, un šeit index.php arī veido klases.
Pagaidām viss darbojas labi, jo esmu to pārbaudījis, izveidojot konstruktoru gan failā controller.php, gan router.php, tāpēc kods šajos divos failos būs šāds.
app/core/controller.php
lietojumprogramma / kodols / maršrutētājs. php
iekšā index.php tas atbalsojas OK! jo klases ir izveidotas pareizi, bet problēma ir tad, kad es vēlos iekļaut config.php, kas atrodas mapē /app/config/config.php no Controller.php, kas atrodas mapē /app/core/Controller.php ar šo kodu.
Katru reizi, kad es to daru, tas atgriež šo kļūdu
Kontrolieris::include(../config/config.php) : neizdevās atvērt straumi: C:\AppServ\www\myapp\app\core\Controller.php 6. rindā šāda faila vai direktorija nav
Kontrolieris::include() : neizdevās atvērt "../config/config.php" iekļaušanai (include_path=".;C:\php5\pear") mapē C:\AppServ\www\myapp\app\core\Controller .php 6. rindā
Es domāju, ka izmantoju pareizo atrašanās vietu, es strādāju ar /app/core/Controller.php, un tam ir nepieciešams /app/config/config.php. Es atgriežos vienā direktorijā, izmantojot ../
Kāpēc tad es nevaru pieprasīt failu?
- 3 atbildes
Šķirošana:
Aktivitāte
2
Mana personīgā pieredze liecina, ka relatīvo failu ceļu izmantošana kādā brīdī radīs galvassāpes. Tāpēc es parasti izmantoju pilnu ceļu uz failu. Tā priekšrocība ir arī tā, ka tas ir nedaudz ātrāks. Ja kādā brīdī tiek parādīta iekļaušanas kļūda, kļūdu ir vieglāk atrast, jo jums ir pieejams viss ceļš.
Lai varētu veikt absolūtos ceļus, es ieteiktu failam index.php (frontcontroller) pievienot konstanti. Kaut kas līdzīgs šim:
Define("ROOT_PATH", realpath(dirname(__FILE__)) . DIRECTORY_SEPARATOR);
Definē konstanti ar nosaukumu ROOT_PATH, kas attiecas uz direktoriju, kurā atrodas fails index.php, un tādējādi uz jūsu saknes direktoriju. Tajā pašā laikā es pievienoju direktoriju atdalītāju, lai atvieglotu ceļu rakstīšanu.
Require_once ROOT_PATH . "config/config.php";
Informācija par bonusu
Bet, ja jūs izmantojat šo pieeju savā controller.php klasē, jūs padarīsit to atkarīgu no šīs konstantes. Lai to labotu, konstruktorā varat nodot saknes ceļu kā mainīgo.
Publiskā funkcija __construct($root) (...
Un pēc tam izmantojiet to šādi:
Publiskā funkcija __construct($root) ( request_once($root . "config/config.php"); )
Cerams, ka tas palīdz.
0
Es nezinu, kas notiek, bet, atsaucoties uz sevi kā include(), netika parādīta kļūda, jo tās ir dažādas funkcijas, turklāt, ja tas ir viss kods, kļūdas rindas numurs nav tāds pats kā jūsu request_once() rindiņai, jo tai vajadzētu būt 4. Mēģiniet restartēt savu tīmekļa serveri un pārbaudiet, vai tas kaut ko izlabo, pretējā gadījumā jūs, iespējams, kaut ko izjokosit.