|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Aug 2004
Città: Salento
Messaggi: 1080
|
[PHP] Piccolo dubbio su include, require, header
Ciao ragazzi!
Mi sono avvicinato da poco al php e sto provando a covertire una mia vecchia applicazione web scritta in jsp. Ho, però, alcuni dubbi sull'uso di include, require ed header. Conosco le "caratteristiche" e le differenze tra include, require e header ma non riesco a capire il campo di applicazione! Vi faccio un esempio per spiegarmi meglio. Codice PHP:
Questa è la index.php, contentente il codice per autenticarsi all'area privata del sito. Richiamandola per la prima volta, viene visualizzato il contenuto della index.tpl (contenente il codice.html). Inseriti username e password, se l'autenticazione va a buon fine, dev'essere visualizzata la pagina default.php, in caso contrario nuovamente la index.tpl. E' corretto l'uso che ho fatto degli include? O devo cambiare qualcosa? Grazie
__________________
Il 90% dei problemi riscontrati sui computer sono localizzabili tra la sedia e la tastiera, il restante 10% nella scopa della donna delle pulizie.
|
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Aug 2006
Messaggi: 365
|
per fare ciò che desideri devi usare la funzione header, la quale invia headers http al browser..per redirezionare l'utente devi inserire la funzione prima di qualsiasi output altrimenti ti darà errore headers already sent
usando gli include non fai altro che includere del codice, senza redirigere il browser in un'altra pagina.. breve ripasso: include: include del codice nella pagina nel punto in cui viene invocata la funzione require: come include solo che se il file non riesce ad essere incluso da errore header: invia headers http la funzione come la dovrai usare tu è (al posto degli include): header("Location: <pagina>"); |
|
|
|
|
|
#3 | |
|
Senior Member
Iscritto dal: Aug 2004
Città: Salento
Messaggi: 1080
|
Quote:
__________________
Il 90% dei problemi riscontrati sui computer sono localizzabili tra la sedia e la tastiera, il restante 10% nella scopa della donna delle pulizie.
|
|
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Aug 2006
Messaggi: 365
|
per tutti i punti in cui dovevi redirigere l'utente o alla pagina stessa o all'altra, quindi qui:
Codice PHP:
p.s. tutto il sistema di login comunque non è il massimo, perché sarebbe buona regola creare un file php che controlla che l'utente sia loggato in base alla sessione ed includerlo in ogni pagina protetta.. se un utente scrive direttamente l'indirizzo della pagina post autenticazione adesso riuscirebbe ad accedervi giusto? |
|
|
|
|
|
#5 | |
|
Senior Member
Iscritto dal: Aug 2004
Città: Salento
Messaggi: 1080
|
Quote:
La pagina che ti ho postato è solo una prova Comunque, potresti farmi un esempio per essere più chiaro? Grazie
__________________
Il 90% dei problemi riscontrati sui computer sono localizzabili tra la sedia e la tastiera, il restante 10% nella scopa della donna delle pulizie.
|
|
|
|
|
|
|
#6 |
|
Senior Member
Iscritto dal: Aug 2006
Messaggi: 365
|
esempio:
Codice:
if(utente_loggato_correttamente)
header("Location: autenticato.php");
else
header("Location: login.php");
|
|
|
|
|
|
#7 | |
|
Senior Member
Iscritto dal: Aug 2004
Città: Salento
Messaggi: 1080
|
Quote:
Il codice di autenticazione che ho postato è solo una prova ed è incompleto Se l'autenticazione va a buon fine, imposto a true una variabile che memorizzo in una sessione (almeno in jsp facevo così), ed in ogni pagina protetta verifico prima di ogni altra cosa il valore di questa variabile
__________________
Il 90% dei problemi riscontrati sui computer sono localizzabili tra la sedia e la tastiera, il restante 10% nella scopa della donna delle pulizie.
|
|
|
|
|
|
|
#8 | |
|
Senior Member
Iscritto dal: Aug 2006
Messaggi: 365
|
Quote:
attenzione!! a meno che non sia una cosa importante questa scelta non è sicurissima..soprattutto se la variabile ha un nome tipo logged o cose simili..in questo modo se un utente si logga in un'altro sito che (ironia della sorte) utilizza la stessa variabile risulta loggato anche sul tuo la soluzione più sicura è salvare in sessione nome utente e password controllando nel database ogniqualvolta accedi ad una pag protetta tramite il tuo file che includerai ad ogni pagina |
|
|
|
|
|
|
#9 | |
|
Senior Member
Iscritto dal: Aug 2004
Città: Salento
Messaggi: 1080
|
Quote:
Quindi, vediamo se ho capito...Visualizzo la pagina di login e ad autenticazione avvenuta, memorizzo in una sessione i dati utente. Quando l'utente richiede pagina_protetta.php con una include richiamo una pagina all'interno della quale controllerò nuovamente i dati di login. Ho capito bene? Scusami, ho ancora una domanda su include ed header Se devo visualizzare i dati di una query non mi conviene utilizzare la include? Spiego meglio. Ho una pagina query.php che legge da un db e mi stampa i record selezionati. Senza passare il controllo ad un'altra pagina, non mi conviene includere query.tpl per visualizzare i risultati?
__________________
Il 90% dei problemi riscontrati sui computer sono localizzabili tra la sedia e la tastiera, il restante 10% nella scopa della donna delle pulizie.
|
|
|
|
|
|
|
#10 | |||
|
Senior Member
Iscritto dal: Aug 2006
Messaggi: 365
|
Quote:
Quote:
il tuo script check.php dovrà controllare i dati utente (se arrivano dal form da quello, altrimenti dalle variabili di sessione) e reindirizzare con gli header o alla pagina di login o non fare nulla (infatti se lo script viene incluso all'inizio della pagina e non fa niente perché l'utente è loggato, non ci si accorge di nulla) p.s. se non è molto chiaro più tardi (perché ce l'ho in un'altra macchina) ti posto lo script responsabile del controllo.. in questo modo sei molto più sicuro nelle autenticazioni e con piccolissime modifiche al file che controlla puoi proteggere le pagine di qualsiasi progetto edit: Quote:
più rendi il tuo lavoro modulare sfruttando le inclusioni più fatica risparmi e più elegante rimane il codice (se devi fare la stessa tabella in un'altra pagina ti basta includere quel file e non riscrivere il codice questo potentissimo strumento è ciò che finalmente ha sconfitto definitivamente i maledettissimi frames Ultima modifica di loris_p : 24-08-2006 alle 14:27. |
|||
|
|
|
|
|
#11 | ||
|
Senior Member
Iscritto dal: Aug 2004
Città: Salento
Messaggi: 1080
|
Quote:
Quote:
Confermi tutto?
__________________
Il 90% dei problemi riscontrati sui computer sono localizzabili tra la sedia e la tastiera, il restante 10% nella scopa della donna delle pulizie.
|
||
|
|
|
|
|
#12 | ||
|
Senior Member
Iscritto dal: Aug 2006
Messaggi: 365
|
Quote:
Quote:
va però aggiunto che include e require possono essere usati per includere qualsiasi porzione di codice che pensi potresti dover ripetere, ed header è una funzione che non serve solo al redirect..usata come ti ho detto fa quello, ma ciò che fa in generale è molto più vasto: invia headers http al browser se vuoi approfondire l'argomento visita questo link e vedrai che enorme quantità di headers che puoi inviare (sempre nella forma Codice PHP:
)
Ultima modifica di loris_p : 24-08-2006 alle 15:04. |
||
|
|
|
|
|
#13 |
|
Senior Member
Iscritto dal: Aug 2006
Messaggi: 365
|
eccomi qui..
allora, questo file è quello che dovrai includere in tutte le pagine che vorrai proteggere con autenticazione Codice PHP:
|
|
|
|
|
|
#14 | |
|
Senior Member
Iscritto dal: Aug 2004
Città: Salento
Messaggi: 1080
|
Quote:
Grazie per l'aiuto, sei stato gentilissimo! Solo una domanda. Prima hai scritto che grazie agli include è possibile "eliminare" i frames. Sai dove posso trovare un esempio a riguardo? Per ora non sono riuscito a trovare nulla
__________________
Il 90% dei problemi riscontrati sui computer sono localizzabili tra la sedia e la tastiera, il restante 10% nella scopa della donna delle pulizie.
|
|
|
|
|
|
|
#15 |
|
Senior Member
Iscritto dal: Aug 2006
Messaggi: 365
|
figurati
per quanto riguarda i frames non so indicarti alcun esempio perché non li ho mai usati per principio, ma te ne faccio uno velocissimo: un classico nell'uso dei frames è la barra laterale con i links.. bene il frame può essere evitato creando una pagina con i soli links, ad esempio una semplice lista Codice HTML:
<ul> <li><a>link1</a></li> <li><a>link2</a></li> <li><a>link3</a></li> </ul> attenzione: è buona regola dare una controllata al codice prodotto perché se includi pagine che magari hanno già i tag <html> o cose simili la pagina non è validata..per questo io di solito le minipaginette le creo in una cartella include in modo da sapere che ciò che c'è li dentro se incluso non da problemi di validazione ma se usato da solo si (links.html da sola non è una pagina html valida) |
|
|
|
|
|
#16 | |
|
Senior Member
Iscritto dal: Aug 2004
Città: Salento
Messaggi: 1080
|
Quote:
Ciao
__________________
Il 90% dei problemi riscontrati sui computer sono localizzabili tra la sedia e la tastiera, il restante 10% nella scopa della donna delle pulizie.
|
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 22:45.











)








