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.

Viena no jautrākajām un noderīgākajām PHP funkcijām ir cita faila iekļaušana. Piemēram, vietnei ir augšējā izvēlne, apakšējā izvēlne un starp tām ir pats lapas saturs. Un, piemēram, 10 vietnes lapās tiek izmantota apakšējā izvēlne. Kādā brīdī tajā bija jāveic izmaiņas. HTML jūs manuāli veicat izmaiņas katrā atsevišķā failā, bet php ļauj ievērojami vienkāršot darbu ar vietni! Apakšējās izvēlnes kodu var ietvert atsevišķā failā, un katrā no 10 lapām varat vienkārši iekļaut šo atsevišķo failu! Tas ir, visas izmaiņas tagad ir jāveic tikai failā ar izvēlni, un 10 citos tas tiks parādīts ar izmaiņām.

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ā

Ceļš uz failu Fails ir savienots atbilstoši failam norādītajam ceļam. Ir divas ceļa iespējas: relatīvā un absolūtā. Relatīvs — šī ir norāde par ceļu uz pievienoto failu attiecībā pret failu ar savienojuma instrukcijām. Absolūts - norādot pilnu ceļu uz iekļauto failu.

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

include un include_onceinclude() ir konstrukcijas, kas paredzētas failu iekļaušanai PHP skripta kodā PHP skripta izpildes laikā. Apstrādājot kodu, instrukcija tiek aizstāta ar pievienotā faila saturu. Iesaku uzreiz apskatīt piemēru.

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

request un request_once Instrukcijas request un request_once darbojas identiski, lai iekļautu un include_once, izņemot tikai vienu līdzekli — ja iekļautais fails netiek atrasts, skripta izpilde tiks apturēta (skripts vairs netiks lasīts), savukārt include un include_once vienkārši drukāt brīdinājumu un turpināt skripta izpildi. Ja nedarbojas iekļaut vai pieprasīt Lai saprastu iemeslus, kāpēc iekļaut nedarbojas, iesaku pārbaudīt visu soli pa solim. Lai cik skaidri un virspusēji būtu tālāk minētie punkti, pārbaudiet visu no paša sākuma

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 Explorer

Parastajā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.