Hvordan få den nødvendige attributten for input til å fungere i eldre versjoner av IE? Så hvordan kan jeg bli pålagt å jobbe i eldre versjoner av IE.

En av de morsomste og mest nyttige funksjonene til PHP er å inkludere en annen fil. For eksempel har et nettsted en toppmeny, en bunnmeny, og mellom dem selve sideinnholdet. Og for eksempel på 10 sider av nettstedet brukes bunnmenyen. På et tidspunkt måtte det gjøres endringer i den. I html vil du manuelt gjøre endringer i hver enkelt fil, men php lar deg betydelig forenkle arbeidet med nettstedet! Koden for bunnmenyen kan inneholde en egen fil, og på hver av de 10 sidene kan du enkelt inkludere denne separate filen! Det vil si at alle endringer nå bare må gjøres i filen med menyen, og på 10 andre vil den vises med endringer.

Betydningen av tilkobling i php på enkelt russisk språk:

Fil 1.php
Toppmeny

Fil 2.php
Nedre meny

eksempel.php-fil
Koble til fil 1.php
Sideinnhold
Koble til fil 2.php

Som et resultat av behandlingen av eksempel.php-filen, vil den vises
Toppmeny
Sideinnhold
Nedre meny
Følgelig, for å endre noe i bunnmenyen, trenger du kun å gjøre endringer i 2.php-filen

Bane til fil Filen kobles til i henhold til banen spesifisert for filen. Det er to veialternativer: relativ og absolutt. Relativ - dette er en indikasjon på banen til den tilkoblede filen i forhold til filen med tilkoblingsinstruksjonene. Absolutt - spesifiserer hele banen til den inkluderte filen.

PHP-kode

// eksempel på en relativ bane
inkludere "inkluder/din_fil.php"; // filen er i include-mappen, som ligger i samme katalog som tilkoblingsfilen

// eksempel på en absolutt bane
inkludere $_SERVER["DOCUMENT_ROOT"]."/include/din_fil.php"; // $_SERVER["DOCUMENT_ROOT"] - indikerer rotkatalogen til nettstedet

include og include_onceinclude() er konstruksjoner designet for å inkludere filer i PHP-skriptkode under kjøring av PHP-skriptet. Ved behandling av koden erstattes instruksjonen med innholdet i den vedlagte filen. Jeg foreslår at du ser på et eksempel med en gang.

La oss se på hvordan include fungerer ved å bruke to filer som et eksempel: index.php og text.php . For enkelhets skyld, la oss anta at de er plassert i samme katalog.

PHP-kode (index.php-fil)

Ekko "Ren tekst i hovedfilen";
inkludere "text.php"; // inkludere innholdet i text.php-filen

?>
PHP-kode (text.php-fil)

Ekko "Tekst i den inkluderte filen";

?>
Resultatet av å kjøre filen index.php vil være:

Ren tekst i hovedfilen
Tekst i den inkluderte filen
Er det virkelig praktisk? Nå, ved å endre innholdet i text.php-filen, vil resultatet av index.php bli helt annerledes!

La oss nå snakke om en annen konstruksjon - include_once. Det fungerer akkurat på samme måte som include, bare opprettet senere og for de tilfellene hvor filen ikke kan inkluderes på nytt. Du er for eksempel redd for at du som følge av en feil kan koble til en fil 2 eller flere ganger, noe som vil påvirke siden som ikke fungerer som den skal og motta en tilsvarende feilmelding.

PHP-kode

Include_once "text.php"; // text.php-filen vil bare bli inkludert én gang

// gjentilkoblinger nedenfor vil ikke bli tatt i betraktning og vist
// og det vil ikke føre til at en feilmelding vises
include_once "text.php"; // ingenting vil skje

require og require_once Instruksjonene require og require_once fungerer identisk for å inkludere og inkludere_en gang med unntak av bare én funksjon - hvis include-filen ikke blir funnet, vil skriptkjøringen stoppes (skriptet vil ikke lenger bli lest), mens include og include_once ganske enkelt skriv ut advarsel og fortsett videre kjøring av skriptet Hvis include eller require ikke fungerer For å forstå årsakene til at include ikke fungerer, foreslår jeg at du sjekker alt trinn for trinn. Uansett hvor tydelige og overfladiske punktene nedenfor kan være, sjekk alt helt fra begynnelsen

1. Sjekk om serveren og php-en din fungerer, og om noen php-kode på siden fungerer i det hele tatt
2. Sjekk om inkluderingsfilen finnes
3. Sjekk om filnavnet og filtypen er angitt riktig i forbindelsen
4. Sørg for at den inkluderte php-filen faktisk er plassert på adressen du spesifiserte
5. Prøv å spesifisere ikke en relativ bane, men en absolutt bane (full bane til filen).

Eksempel PHP-kode

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

// DOCUMENT_ROOT - angir rotkatalogen til ressursen
inkludere $_SERVER["DOCUMENT_ROOT"]."/include/din_fil.php";

6. Hvis filen din ikke kobles til og ingen feil vises, kan du opprette en .htaccess-fil med følgende innhold i katalogen med filen du kobler til

Php_flag display_errors På
eller i php-filen, før du kobler til, sett inn følgende linje

Feilrapportering(E_ALL);
Begge innstillingene vil tvinge feil til å vises

Takk for din oppmerksomhet!

For enhver nettutvikler er det for øyeblikket ikke noe mer alvorlig problem enn full kompatibilitet på tvers av nettlesere til produktet hans. Dette er sannsynligvis en av hovedoppgavene til en god spesialist: å sikre at nettstedet hans alltid vises riktig i alle nettlesere.

Den nødvendige parameteren, som noen ganger brukes til inndata, fungerer ikke i eldgamle IE, som rett og slett ikke kan forlates slik. Pensjonerte brukere som fortsatt bruker IE6 bør ha samme brukervennlighet med nettstedet ditt som brukere av den nyeste versjonen av Google Chrome. Hvem, foruten webutviklere, kan ta seg av dem.

Om det ømme punktet, om Internet Explorer

For vanlige nettlesere, som inkluderer Firefox, Opera og Google Chrome, er denne oppgaven relativt enkel. Selv eldre versjoner av disse nettleserne viser HTML-kode like godt, med mindre selvfølgelig noen nye teknologier brukes. Men for å oppnå dette i nettlesere i Internet Explorer-familien, kreves det ganske enkelt herkulisk innsats.

Hver versjon av Internet Explorer-nettleseren har sin egen unike dumhet. Det som fungerer i IE6 fungerer kanskje ikke ordentlig i IE7 og omvendt. Microsoft kunne ikke overvinne denne dyrehagen selv i den nyeste versjonen av nettleseren.

Jeg kan ikke forstå hvorfor nettleserutviklere ikke bare kan åpne og lese W3C-standardene for nettstedbygging.

Derfor, som nettutvikler, må jeg fungere som et slags «lag» mellom lunefulle nettlesere og besøkende som krever kunnskap og skuespill. Og det er flott at nettutviklere har klart å gjøre dette så langt.

Så hvordan kan jeg bli pålagt å jobbe i eldre versjoner av IE?

JS kommer oss til unnsetning. Tidligere kunne jeg ikke fordra det, men nå ser jeg ikke en videre sti uten den i vidden av den "riktige" WEB.

Jeg har ikke funnet opp løsningen gitt under selv, men hentet den fra en borgerlig blogg. Siden jeg er grådig og bloggen er borgerlig, vil jeg ikke gi en link til den.

Funksjonen fnCheckFields() vil være ansvarlig for alt. Plasser JS-kode på nettstedet ditt:

function fnCheckFields(form_obj)( var error_msg = "Vennligst fyll ut alle obligatoriske felt."; 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("required") && !form_obj_elem.value) is_error = true if (er_error) alert(error_msg);

Vanligvis anbefales det å plassere den mellom HEAD html-taggene på begynnelsen av siden, men jeg vil likevel anbefale å plassere den helt nederst på siden før den avsluttende BODY-taggen. På denne måten har JS mindre innvirkning på sidelastingshastigheten.

Inndatavinduet der den nødvendige parameteren skal angis skal se slik ut i html:

Dette skriptet fungerer veldig enkelt: etter å ha klikket på Send-knappen, sjekker skriptet alle innganger for tilstedeværelsen av den nødvendige parameteren, og hvis det finner den, ser det på den angitte verdien av dette feltet tilsvarende. Dersom det ikke legges inn noe i en slik inntasting, vises et varselvindu om behovet for innspill. Følgelig sendes ikke dataene noe sted.

Det er også flott at hvis du har en vanlig nettleser som allerede har lært å forstå denne parameteren som forventet, vil et slikt advarselsvindu ikke dukke opp, og standardverktøyene for å behandle den nødvendige parameteren for nettleseren din vil fungere.

Del på sosiale medier nettverk

0

Jeg bygger et lite PHP MVC-rammeverk, og her er strukturen min

/app /kontrollere /modeller /visninger /maler /config /config.php /core /Controller.php /Router.php /init.php /index.php

mapper Inne i index.php som er frontkontrolleren jeg har denne koden å kreve fra init.php /app/core/init.php

app/core/init.php

init.php krever hver basekontroller og Classe i /core-katalogen, inkludert controller.php og router.php, og her instansierer index.php også klassene

Alt fungerer bra foreløpig, ettersom jeg har testet det ved å lage en konstruktør i både controller.php og router.php slik at koden i disse to filene blir slik

app/core/controller.php

applikasjon/kjerne/ruter. php

inne i index.php ekko det OK! da klassene er opprettet riktig, men problemet er når jeg vil inkludere config.php som er i /app/config/config.php fra Controller.php som er i /app/core/Controller.php med denne koden

Hver gang jeg gjør dette returnerer den denne feilen

Controller::include(../config/config.php) : kunne ikke åpne strømmen: Ingen slik fil eller katalog i C:\AppServ\www\myapp\app\core\Controller.php på linje 6

Controller::include() : Mislykket åpning av "../config/config.php" for inkludering (include_path=".;C:\php5\pear") i C:\AppServ\www\myapp\app\core\Controller .php på linje 6

Jeg tror jeg brukte riktig plassering, jeg jobber med /app/core/Controller.php og krever ikke /app/config/config.php. Jeg går tilbake til en katalog med ../

Hvorfor kan jeg da ikke kreve filen?

  • 3 svar
  • Sortering:

    Aktivitet

2

Fra min personlige erfaring vil bruk av relative filbaner føre til hodepine på et tidspunkt. Så jeg bruker vanligvis hele banen til filen. Fordelen med dette er også at den er litt raskere. Så hvis du på et tidspunkt får en inkluderingsfeil, er det lettere å finne feilen siden du har hele banen tilgjengelig.

For å kunne gjøre absolutte baner, vil jeg anbefale at du legger til en konstant i index.php (frontcontroller) filen. Noe sånt som følgende:

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

Definerer en konstant kalt ROOT_PATH som refererer til katalogen der index.php-filen ligger, og derfor rotkatalogen din. Samtidig la jeg til en katalogseparator på slutten for å gjøre det lettere å skrive stier For å bruke dette må du skrive.

Require_once ROOT_PATH . "config/config.php";

Bonusinformasjon

Men hvis du bruker denne tilnærmingen i controller.php-klassen din, gjør du det avhengig av denne konstanten. For å fikse dette kan du sende rotbanen som en variabel i konstruktøren.

Offentlig funksjon __construct($root) (...

Og bruk den på følgende måte:

Offentlig funksjon __construct($root) ( require_once($root . "config/config.php"); )

Håper dette hjelper.

0

Jeg vet ikke hva som skjer, men require_once() ga ikke en feil når han refererte til seg selv som include() fordi de er forskjellige funksjoner, pluss hvis dette er hele koden, er feillinjenummeret ikke det samme som ditt require_once()-linjen, siden den burde være 4. Prøv å starte webserveren på nytt og se om det fikser noe, ellers vil du sannsynligvis lage en spøk av noe.