Mini Corso di PHP , PHP
- 2009/11/02
Mini Corso di PHP - Sistema di News (Mettere un 'layout' di base) - Lezione 15
Ciao a tutti. Continueremo il nostro corso.
Come sapete, stiamo sviluppando un sistema di news. Abbiamo fatto quanto segue:
- Registrati ed effettuare il login
- User List
- Eliminazione di utenti
Finora stiamo mettendo tutti i file del sistema radicale. Oggi ci organizziamo un po 'la struttura dei file, perché in questo modo è molto confuso.
Organizzeremo come segue:
- Creare un file chiamato 'index.php' nel sistema di root. In esso, pubblicheremo un menu e definire un'area da utilizzare come contenuto.
- Creare una cartella chiamata 'img', dove abbiamo messo tutte le immagini che utilizzano nel sistema.
Aprire un editor HTML di vostra scelta (ad esempio Dreamweaver) e fare un layout con le seguenti aree:
Vedere il 'reticolo' ( Wiki ) di cui sopra, si definisce la zona rossa per quanto riguarda il menu e il verde sia ai contenuti. I NON fare un layout carino o fronzoli. L'intenzione è di mostrare il funzionamento del PHP in questo caso sarà il seguente:
- Questo layout viene salvato con il nome di index.php
- Nel menu, elencare tutti i collegamenti del sistema (Ultime notizie, login, news registro, elenco delle notizie, etc ...)
- Quando l'utente fa clic su un link, noi ricaricare il index.php ma ora con un parametro, che è il nome della pagina selezionata. Così, portano la stessa area del contenuto.
Beh, se si vuole accelerare il processo, copiare il codice HTML qui sotto e salvarlo come index.php nel sistema di root:
- <?
- # === - L'indice verrà addebitato su tutti i collegamenti, quindi cerchiamo di includere il banco.php qui. Per evitare di dover ripetere il codice in ogni pagina. Molto più pratico non è vero?
- 'banco.php' ) ; require_once ('banco.php');
- ?>
- <html>
- <head>
- /> <meta http-equiv= "Content-Type" content= "text/html; charset=iso-8859-1" />
- <title> minicorso PHP - News Sistema </ title>
- </ Head>
- <body>
- border= "0" cellspacing= "0" cellpadding= "0" > <table width= "100%" height= "100%" border= "0" cellspacing= "0" cellpadding= "0">
- <tr>
- ><table width= "750" border= "0" cellspacing= "0" cellpadding= "0" > <td align= "center" valign= "top"> <table width= "750" border= "0" cellspacing= "0" cellpadding= "0">
- <tr>
- border= "0" cellspacing= "1" cellpadding= "0" > <td bgcolor= "#000000"> <table width= "750" border= "0" cellspacing= "1" cellpadding= "0">
- <tr>
- ><table width= "100%" border= "0" cellspacing= "0" cellpadding= "0" > <td width= "167" bgcolor= "#FFFFFF"> <table width= "100%" border= "0" cellspacing= "0" cellpadding= "0">
- <tr>
- <td> </ td>
- </ Tr>
- <tr>
- <td> HOME </ td>
- </ Tr>
- <tr>
- <td> </ td>
- </ Tr>
- <tr>
- </strong></td> <td> <strong> [users] </ strong> </ td>
- </ Tr>
- <tr>
- <td> - List </ td>
- </ Tr>
- <tr>
- <td> - Register </ td>
- </ Tr>
- <tr>
- <td> </ td>
- </ Tr>
- <tr>
- </td> <td> [NEWS] </ td>
- </ Tr>
- <tr>
- <td> - List </ td>
- </ Tr>
- <tr>
- <td> - Register </ td>
- </ Tr>
- <tr>
- <td> </ td>
- </ Tr>
- <tr>
- <td> </ td>
- </ Tr>
- </ Table> </ td>
- valign= "top" bgcolor= "#FFFFFF" >AQUI O CONTEÚDO</td> <td width= "580" align= "center" valign= "top" CONTENUTO bgcolor= "#FFFFFF"> QUI </ td>
- </ Tr>
- </ Table> </ td>
- </ Tr>
- </ Table> </ td>
- </ Tr>
- </ Table>
- </ Body>
- </ Html>
Ma, non ancora finito di gestire questo file. Basta mettere le basi per voi di capire nel modo giusto.
Avrete notato che ho commentato index.php verrà eseguito ogni volta che un utente fa clic su un link ... Ma poi come si mostrerà la schermata corrispondente al link cliccato?
Vedere la 'magia':
In ogni link, si inserirà una variabile GET da passare a index.php. Così:
- index.php? page = login
- index.php? page = usuário_formulario
- index.php? page = usuário_lista
- E così via ...
Avete notato che 'page' il parametro sono esattamente i nomi dei file creati? Quindi questo significa che vi porterà indietro e inserire una variabile. Php, alla fine di un agente può fare includere file. Come qui di seguito:
- <?
- $_GET [ 'pagina' ] . '.php' ) ; include ($ _GET ['page'] 'php.').;
- ?>
Hanno visto come è semplice?
Ma aspetta, siamo ancora solo in teoria ... se abbiamo fatto questo ci avrebbe aperto un grosso buco di sicurezza nel nostro sistema ... perché se si fa questo più intelligente: index.php Page = http://www.google.com
Google verranno caricati nel bel mezzo del nostro sistema. Imparerete come prevenirla. Di seguito è riportato l'attuazione del index.php già con la correzione per questo problema.
- <?
- # === - L'indice verrà addebitato su tutti i collegamenti, quindi cerchiamo di includere il banco.php qui. Per evitare di dover ripetere il codice in ogni pagina. Molto più pratico non è vero?
- 'banco.php' ) ; require_once ('banco.php');
- # === - Se la variabile pagina esiste e ha valore
- # === - Se i carichi cliccato la pagina
- [ 'pagina' ] . '.php' ; $ Pagina = $ _GET ['page'] 'Php.'.;
- { Else {}
- # === - Se non c'è carica la schermata di login
- ; $ Page = 'login.php';
- }
- ?>
- <html>
- <head>
- /> <meta http-equiv= "Content-Type" content= "text/html; charset=iso-8859-1" />
- <title> minicorso PHP - News Sistema </ title>
- </ Head>
- <body>
- border= "0" cellspacing= "0" cellpadding= "0" > <table width= "100%" height= "100%" border= "0" cellspacing= "0" cellpadding= "0">
- <tr>
- ><table width= "750" border= "0" cellspacing= "0" cellpadding= "0" > <td align= "center" valign= "top"> <table width= "750" border= "0" cellspacing= "0" cellpadding= "0">
- <tr>
- border= "0" cellspacing= "1" cellpadding= "0" > <td bgcolor= "#000000"> <table width= "750" border= "0" cellspacing= "1" cellpadding= "0">
- <tr>
- ><table width= "100%" border= "0" cellspacing= "0" cellpadding= "0" > <td width= "167" bgcolor= "#FFFFFF"> <table width= "100%" border= "0" cellspacing= "0" cellpadding= "0">
- <tr>
- <td> </ td>
- </ Tr>
- <tr>
- <td> HOME </ td>
- </ Tr>
- <tr>
- <td> </ td>
- </ Tr>
- <tr>
- </strong></td> <td> <strong> [users] </ strong> </ td>
- </ Tr>
- <tr>
- <td> - List </ td>
- </ Tr>
- <tr>
- <td> - Register </ td>
- </ Tr>
- <tr>
- <td> </ td>
- </ Tr>
- <tr>
- </td> <td> [NEWS] </ td>
- </ Tr>
- <tr>
- <td> - List </ td>
- </ Tr>
- <tr>
- <td> - Register </ td>
- </ Tr>
- <tr>
- <td> </ td>
- </ Tr>
- <tr>
- <td> </ td>
- </ Tr>
- </ Table> </ td>
- valign= "top" bgcolor= "#FFFFFF" > <td width= "580" align= "center" valign= "top" bgcolor= "#FFFFFF">
- <?
- # === - Se la pagina esiste sul server che include, altrimenti visualizza un messaggio di errore
- $pagina ) ; include ($ page);
- { Else {}
- }
- ?>
- </ Td>
- </ Tr>
- </ Table> </ td>
- </ Tr>
- </ Table> </ td>
- </ Tr>
- </ Table>
- </ Body>
- </ Html>
Ma con questa organizzazione, dobbiamo cambiare tutte le forme di azioni .. sarà solo il rilascio (la pagina verrà caricata fuori il layout che abbiamo definito in index.php).
Beh, per testare, girare the've fatto finora ok? Guarda il video qui sotto:
OK! Ora che avete visto il sistema di lavoro con un layout, ora cerchiamo di correggere i link delle pagine che pianificate finora! Facciamo le seguenti:
Aprire il file e modificare le usuario_lista.php link link 'Elimina' e 'Modifica'. Lasciate che, come illustrato di seguito:
- <?
- . $id . "'>Apagar</a> - <a href='?pagina=usuario_edita_formulario&id=" . $id . "'>Editar</a> ]<BR>" ; echo "$ name <b> </ b> (<a href='mailto:$email'> $ email </ a>) - [<a href='?pagina=usuario_delete&id=". $id. "'> Elimina </ a> - <a href='?pagina=usuario_edita_formulario&id=". $id. "'> Modifica </ a>] <BR> ";
- ?>
Si noti che ci sono? "Page =", abbiamo preso. File di Php e prima ho cambiato la variabile id '?' per '&'. Cioè, passeremo due parametri a index.php: pagina e id. Apportare la modifica e testare il browser ... nel mio caso l'url è simile al seguente:
http://localhost/marcelosabadini/mini-curso/noticias/?pagina=usuario_delete&id=1
http://localhost/marcelosabadini/mini-curso/noticias/?pagina=usuario_edita_formulario&id=1
Ora aprite il file e cambiare il usuario_formulario.php azione <form>. Sarà uguale al file precedente ... vedi sotto come è andata:
- <h1> alla registrazione </ h1>
- <form name="form1" action="?pagina=usuario_cadastro" method="POST">
- Nome: <input type="text" name="name" id="nome" maxlength="50" /> <BR>
- E-mail: <input type="text" name="email" id="email" maxlength="50" /> <BR>
- User: <input type="text" name="usuario" id="usuario" maxlength="12" /> <BR>
- Password: <input type="password" name="senha" id="senha" maxlength="12" /> <BR>
- <BR>
- <input type="submit" value="Enviar" />
- </ Form>
Ora aprite il file e cambiare il usuario_cadastro.php tutti i collegamenti.
Usuario_delete.php Aprire il file e cambiare tutti i link.
Usuario_edita.php Aprire il file e cambiare tutti i link.
Usuario_edita_formulario.php Aprire il file e modificare tutti i collegamenti e le azioni forma.
Beh, thats it!
Spero di essere stato chiaro e hanno spiegato a destra. Se non si capisce o non poteva fare, pubblicare o contatto con me ... ora posso passare il codice sorgente.
Un grande abbraccio!




5 Responses to "Corso di PHP Mini - News System (Mettere un 'layout' di base) - Lezione 15"
Amico, mi è piaciuto molto il tuo mini-corso, congratulazioni,
anche se è già passato del tempo della pubblicazione, hai il codice sorgente di questa parte? pertanto non in grado di fare comprende
se tu potessi mandarmi via e-mail?
Ringrazio
Per Dhillan (2 commenti) su 2010/08/04
Hai ragione! abbandonato questo argomento qui sul blog
d + sto lavorando!
Ma hey, il 'sistema' l'esecuzione di questo qui:
http://marcelosabadini.com.br/mini-curso/noticias/
E la zip della sorgente è qui:
http://marcelosabadini.com.br/mini-curso/noticias.zip
Per Marcelo Sabadini (112 commenti) il 2010/04/10
Marcelo, grazie per rispondere e soddisfare la mia richiesta, ripeto i miei ringraziamenti per il mini-corso, molto bene, complimenti
Per Dhillan (2 commenti) su 2010/10/04
Era a malapena a parlare, ma è incluso nel file sorgente con il database, username e password, e questo è grave. Se qualcuno può ottenere cancellare o rendere sciocco con il database.
Per Luciano (1 commenti) su 2010/07/07
Grazie per la segnalazione Luciano.
Ho l'accesso al file ZIP e rimosso la password ... penso che Windows ha fatto merda e salvato il tipo di file originale a titolo temporaneo. Sinister.
Grazie ancora. Un grande abbraccio!
Per Marcelo Sabadini (112 commenti) il 2010/07/07