Come far funzionare l'attributo richiesto per l'input nelle versioni precedenti di IE? Quindi, come posso richiedere di lavorare nelle versioni precedenti di IE.
Il significato della connessione in php in semplice lingua russa:
File 1.php
Menù in alto
File 2.php
Menù inferiore
file esempio.php
Connetti il file 1.php
Contenuto della pagina
Collega il file 2.php
Come risultato dell'elaborazione, il file example.php verrà visualizzato
Menù in alto
Contenuto della pagina
Menù inferiore
Di conseguenza, per modificare qualcosa nel menu in basso, è necessario apportare modifiche solo al file 2.php
Codice PHP
// esempio di percorso relativo
include "include/tuo_file.php"; // il file si trova nella cartella include, che si trova nella stessa directory del file di connessione
// esempio di percorso assoluto
include $_SERVER["DOCUMENT_ROOT"]."/include/tuo_file.php"; // $_SERVER["DOCUMENT_ROOT"] - indica la directory principale del sito
Diamo un'occhiata a come funziona include utilizzando due file come esempio: index.php e text.php . Per semplicità di lavoro, supponiamo che si trovino nella stessa directory.
Codice PHP (file index.php)
Echo "Testo semplice contenuto nel file principale";
includere "text.php"; // include il contenuto del file text.php
?>
Codice PHP (file text.php)
Echo "Testo contenuto nel file incluso";
?>
Il risultato dell'esecuzione del file index.php sarà:
Testo semplice contenuto nel file principale
Testo contenuto nel file incluso
È davvero conveniente? Ora, modificando il contenuto del file text.php, il risultato di index.php sarà completamente diverso!
Ora parliamo di un altro costrutto: include_once. Funziona esattamente come include, ma viene creato successivamente e per i casi in cui il file non può essere incluso nuovamente. Ad esempio, hai paura che a seguito di un errore potresti connettere un file 2 o più volte, il che influenzerà il mancato funzionamento corretto della pagina e la ricezione di un messaggio di errore corrispondente.
Codice PHP
Include_once "text.php"; // il file text.php verrà incluso una sola volta
// le riconnessioni riportate di seguito non verranno prese in considerazione e visualizzate
// e non verrà visualizzato un messaggio di errore
include_once "text.php"; // non succederà nulla
1. Controlla se il tuo server e php funzionano e se qualche codice php sul sito funziona
2. Controlla se il file di inclusione esiste
3. Controlla se il nome del file e l'estensione sono stati inseriti correttamente nella connessione
4. Assicurati che il file php incluso si trovi effettivamente all'indirizzo specificato
5. Prova a specificare non un percorso relativo, ma un percorso assoluto (percorso completo del file).
Esempio di codice PHP
Includi "http://www.example.com/include/your_file.php";
// DOCUMENT_ROOT - indica la directory principale della risorsa
include $_SERVER["DOCUMENT_ROOT"]."/include/tuo_file.php";
6. Se il tuo file non si connette e non viene visualizzato alcun errore, nella directory con il file che stai connettendo, crea un file .htaccess con i seguenti contenuti
Php_flag display_errors Attivo
oppure nel file php, prima di connettersi, inserire la seguente riga
Segnalazione_errori(E_ALL);
Entrambe le impostazioni imporranno la visualizzazione degli errori
Grazie per l'attenzione!
Per qualsiasi sviluppatore web attualmente non esiste un problema più serio della piena compatibilità del suo prodotto con tutti i browser. Questo è probabilmente uno dei compiti principali di un buon specialista: garantire che il suo sito web venga sempre visualizzato correttamente in tutti i browser.
Il parametro richiesto, che a volte viene utilizzato per l'input, non funziona nell'antico IE, che semplicemente non può essere lasciato così. Gli utenti in pensione che utilizzano ancora IE6 dovrebbero avere la stessa facilità d'uso con il tuo sito degli utenti dell'ultima versione di Google Chrome. Chi, oltre agli sviluppatori web, può prendersi cura di loro.
Sulla nota dolente, su Internet ExplorerPer i browser normali, tra cui Firefox, Opera e Google Chrome, questo compito è relativamente semplice. Anche le versioni più vecchie di questi browser visualizzano altrettanto bene il codice HTML, a meno che, ovviamente, non vengano utilizzate nuove tecnologie. Ma per raggiungere questo obiettivo nei browser della famiglia Internet Explorer sono necessari sforzi titanici.
Ogni versione del browser Internet Explorer ha la sua stupidità unica. Ciò che funziona in IE6 potrebbe non funzionare correttamente in IE7 e viceversa. Microsoft non è riuscita a superare questo zoo nemmeno con l'ultima versione del suo browser.
Non riesco a capire perché gli sviluppatori di browser non possano semplicemente aprire e leggere gli standard W3C per la creazione di siti Web.
Pertanto, come sviluppatore web, devo agire come una sorta di “strato” tra i browser capricciosi e i visitatori del sito che richiedono conoscenza e spettacolo. Ed è fantastico che gli sviluppatori web siano riusciti a farlo finora.
Quindi, come posso richiedere di lavorare nelle versioni precedenti di IE?JS viene in nostro aiuto. Prima non lo sopportavo, ma ora non vedo un ulteriore percorso senza di esso nella distesa del WEB “corretto”.
La soluzione fornita di seguito non l'ho inventata io, ma l'ho presa da un blog borghese. Dato che sono avido e il blog è borghese, non fornirò un collegamento ad esso.
La funzione fnCheckFields() sarà responsabile di tutto. Inserisci il codice JS sul tuo sito:
function fnCheckFields(form_obj)( var error_msg = "Compila tutti i campi obbligatori."; 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 "testo") if (form_obj_elem.getAttribute("obbligatorio") && !form_obj_elem.value) is_error = true se (is_error) alert(error_msg);
Di solito si consiglia di posizionarlo tra i tag html HEAD all'inizio della pagina, ma consiglierei comunque di posizionarlo in fondo alla pagina prima del tag BODY di chiusura. In questo modo JS ha un impatto minore sulla velocità di caricamento della pagina.
La finestra di input in cui inserire il parametro richiesto dovrebbe assomigliare a questa in html:
Questo script funziona in modo molto semplice: dopo aver fatto clic sul pulsante Invia, lo script controlla tutti gli input per la presenza del parametro richiesto e, se lo trova, esamina di conseguenza il valore immesso in questo campo. Se non viene inserito nulla in tale input, viene visualizzata una finestra di avviso sulla necessità di input. Di conseguenza, i dati non vengono inviati da nessuna parte.
È anche fantastico che se disponi di un normale browser che ha già imparato a comprendere questo parametro come previsto, tale finestra di avviso non verrà visualizzata e gli strumenti standard per l'elaborazione del parametro richiesto per il tuo browser funzioneranno.
Condividi sui social media reti
0
Sto costruendo un piccolo framework PHP MVC ed ecco la mia struttura
/app /controllers /models /views /templates /config /config.php /core /Controller.php /Router.php /init.php /index.php
cartelle All'interno di index.php che è il front controller ho questo codice da richiedere da init.php /app/core/init.php
app/core/init.php
init.php richiede ogni controller di base e classe nella directory /core, inclusi controller.php e router.php e qui anche index.php istanzia le classi
Per ora tutto funziona bene, poiché l'ho testato creando un costruttore sia in controller.php che in router.php, quindi il codice in questi due file sarà così
app/core/controller.php
applicazione/kernel/router. php
all'interno di index.php echeggia OK! poiché le classi vengono create correttamente ma il problema è quando voglio includere config.php che è in /app/config/config.php da Controller.php che è in /app/core/Controller.php con questo codice
Ogni volta che lo faccio restituisce questo errore
Controller::include(../config/config.php): impossibile aprire lo stream: nessun file o directory in C:\AppServ\www\myapp\app\core\Controller.php sulla riga 6
Controller::include(): Impossibile aprire "../config/config.php" per l'inclusione (include_path=".;C:\php5\pear") in C:\AppServ\www\myapp\app\core\Controller .php alla riga 6
Penso di aver utilizzato la posizione corretta, sto lavorando con /app/core/Controller.php e voglio che /app/config/config.php. Sto tornando a una directory utilizzando ../
Allora perché non posso rivendicare il file?
- 3 risposte
Ordinamento:
Attività
2
Dalla mia esperienza personale, l'utilizzo di percorsi di file relativi prima o poi porterà a mal di testa. Quindi di solito utilizzo il percorso completo del file. Il vantaggio è anche che è leggermente più veloce. Quindi, se a un certo punto ricevi un errore di inclusione, è più facile trovare l'errore poiché hai a disposizione l'intero percorso.
Per poter creare percorsi assoluti, ti consiglio di aggiungere una costante al tuo file index.php (frontcontroller). Qualcosa come il seguente:
Define("ROOT_PATH", realpath(dirname(__FILE__)) . DIRECTORY_SEPARATOR);
Definisce una costante chiamata ROOT_PATH che si riferisce alla directory in cui si trova il file index.php, e quindi alla directory root. Allo stesso tempo, ho aggiunto un separatore di directory alla fine per rendere più semplice la scrittura dei percorsi. Per usarlo, devi scrivere.
Richiedi_una volta PERCORSO_ROOT . "config/config.php";
Informazioni sui bonus
Ma se usi questo approccio nella tua classe controller.php lo fai dipendere da questa costante. Per risolvere questo problema, puoi passare il percorso root come variabile nel costruttore.
Funzione pubblica __construct($root) (...
E poi usarlo come segue:
Funzione pubblica __construct($root) ( require_once($root . "config/config.php"); )
Spero che questo ti aiuti.
0
Non so cosa stia succedendo, ma require_once() non generava un errore quando si riferiva a se stesso come include() perché sono funzioni diverse, inoltre se questo è l'intero codice, il numero della riga di errore non è lo stesso del tuo require_once(), poiché dovrebbe essere 4. Prova a riavviare il tuo server web e vedi se questo risolve qualcosa, altrimenti probabilmente starai scherzando su qualcosa.