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.
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
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
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
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 ExplorerFor 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.