funzione Require postato il 06/08/2011 15:19:47 nel forum programmazione, gdrcd e open source e modificato da nodd il 06/08/2011 15:20:24
Salve a tutti raga....
Sto creando un gdr da 0,devo dire che sto effettuando progressi notevoli implementando anche il framework Prototype all'interno della Land.
Soltanto che ora ho intoppato in una falla...
All'interno di una cartella di nome chat (Path completo: xxx/internogdr/chat/) ho dei file,precisamente
- chat_azioni.php
- chat_input.php
- chat_globale.php
nel file chat_globale.php ho un richiamo,con la funzione require,ai file chat_azioni.php e chat_input.php
I richiami sn questi:
Pagine → 1
06/08/2011 15:36:26
Se sei assolutamente certo che il problema dei percorsi non sussista, prova ad inserire solo il nome dei file nell'istruzione di require, usando i parametri della get come secondo argomento della funzione.
06/08/2011 15:40:08
Esiste anche la chat con id 99?
06/08/2011 15:51:51
Certo!...
La Chat esiste(ID=99).....cmq ho provato ma niente,sempre solito errore!
06/08/2011 19:47:23
Sicuro che si possano passare dei parametri in query string ad un file incluso con require? Secondo me no. Require dovrebbe includere il codice prima dell'esecuzione ed eseguire poi il codice composto tutto insieme. Oltretutto se includi una porzione di codice non hai bisogno di passargli paramentri. Tutto quello che hai come valorizzazioni al punto del codice dove inserisci il requiere rientra n ello scope del codice che inserisci con require.
06/08/2011 19:47:37 e modificato da leoblacksoul il 06/08/2011 20:41:41
Come diceva un mio amico: "Cosa vedono le mie orecchie" XD
OK sorry XD
Il tuo errore è di concetto. Ti spiego: PHP lavora dall'interno del server, e quando si tratta di accedere ad altri file nel server lui accede sempre a livello di filesystem, NON a livello di rete. Ci sono alcune funzioni di PHP in grado di interagire sia con il filesystem che con altri file sulla rete, ma require() non è una di queste.
Quello che tu stai facendo è tentare di accedere a quel file come se tu stessi accedendo dalla rete, cioè con argomento di require() hai inserito un indirizzo che sarebbe quello che scriveresti nell'attributo src di un iframe. Quando lo scrivi in un iframe è tutto a posto, dato che HTML lavora sulla rete dato che è una tecnologia lato client, ma non puoi scriverlo in PHP.
Il problema sta nel fatto che stai cercando di passare degli argomenti GET alla pagina (cioè stai mettendo '?variabile1=1&var2=2'), ma sfortunatamente le richieste GET sono valide solo nel protocollo HTTP, non su filesystem. In pratica require() sta cercando di aprire un file chiamato 'chat_input.php?ID_Chat=99', che ovviamente non esiste nella tua cartella.
Come si risolve il tuo problema? Molto semplicemente. Le funzioni require() e include() di PHP funzionano come la direttiva #include di C, cioè non fanno altro che prendere un file e 'copia-incollare' il suo contenuto nel punto esatto dove c'è la chiamata a require(), a tutti i livelli pratici è come se tu copiassi a mano il contenuto del file incluso dentro al quello che fa l'inclusione, il risultato sarebbe lo stesso. Quindi questo cosa significa? Significa che i due codici sono nello stesso scope. Cioè, significa che le variabili dei due file possono interagire tra di loro come se fossero nella stesso file.
Quindi per esempio questo funziona perfettamente:
06/08/2011 20:01:11
Il che era quello che ti avevo detto :-) Per curiosità, ci posti il codice che dicevi non funzionante dopo il primo post?
Discussione seguita da
Pagine → 1
Rispondi alla Discussione Aggiungi ai Preferiti Inoltra Discussione Forum Programmazione, GDRCD e Open Source Elenco Forum
nick nightingale ha risposto alla discussione: Perché non avete più voglia di giocare?