Casa / Tutorial Windows / Creazione dell'indice php. Pagine dinamiche in PHP. Crea un normale componente di output della pagina

Creazione dell'indice php. Pagine dinamiche in PHP. Crea un normale componente di output della pagina

Molti lettori di qualsiasi libro sui computer sfogliano tutto ciò che non è di interesse immediato e passano a ciò che realmente interessano volere sapere. Personalmente, faccio esattamente questo. Tuttavia, non c'è nulla di cui preoccuparsi: raramente ci sono libri tecnici che devono essere letti dall'inizio alla fine. O forse hai fatto esattamente questo: hai saltato gli otto capitoli iniziali e hai ripreso questo capitolo perché aveva il titolo più interessante? E chi vuole perdere tempo sui dettagli quando un altro progetto è in fiamme al lavoro?

Fortunatamente, questa fretta non ti impedirà di prendere confidenza con la seconda parte del libro, che riguarda l'uso di PHP per costruire siti web e interagire con il web. In questo capitolo imparerai come modificare facilmente il contenuto delle pagine Web e navigare nel Web utilizzando collegamenti e varie funzioni standard. Il prossimo capitolo completerà il materiale presentato - discute in dettaglio i mezzi di interazione dell'utente nei moduli HTML.Il capitolo 11 descrive l'organizzazione dell'interfaccia con i database. Il resto dei capitoli nella Parte 2 tratta gli aspetti non banali della programmazione web in PHP.

Tuttavia, va ricordato che il materiale della parte 1 assolutamente essenziale per la normale conoscenza di PHP. Si presuppone che tu abbia letto la prima parte, quindi gli esempi utilizzeranno molti dei concetti discussi in precedenza. Quindi, se avete sfogliato una parte del libro, di tanto in tanto dovrete tornare ai capitoli precedenti e recuperare il ritardo.

Collegamenti semplici

<а href = "date.php">

$link = "date.php";

Stampa"<а href = \"$link\">Visualizza la data odierna
\n"

Ci si potrebbe chiedere perché c'è una barra rovesciata (\) prima delle virgolette (") nel codice del collegamento? Questo perché le virgolette sono caratteri speciali in PHP e vengono utilizzate come delimitatori di stringhe. Pertanto, le virgolette sono stringhe letterali nelle stringhe. devono essere schermate .

Se la necessità di sfuggire alle virgolette ti infastidisce, basta attivare la modalità magic_quotes_gpc nel tuo file php.ini. Il risultato sono tutti apostrofi, virgolette, barre rovesciate e caratteri nulli. vengono automaticamente sfuggiti nel testo!

Sviluppiamo l'esempio dato. Per visualizzare rapidamente un elenco di collegamenti nel browser, puoi utilizzare un array:

// Crea un array di sezioni

$contents - array("tutorial", "articoli", "script", "contatto");

// Ciclo continuo e output di ogni elemento dell'array in sequenza

per ($i = 0; $i< sizeof($contents; $i++)

stampa " ".$contenuti[$i]."
\n";

// - designazione speciale del punto marcatore endfor;

Componenti file (modelli)

Siamo arrivati ​​a una delle mie funzionalità PHP preferite. Un modello (applicato alla programmazione web) è una parte di un documento web che utilizzerai in diverse pagine. I modelli, come le funzioni PHP, ti risparmiano il fastidio di copiare/incollare frammenti del contenuto della pagina e del codice del programma. Con l'aumentare delle dimensioni del sito, aumenta l'importanza dei modelli, in quanto consentono di apportare facilmente e rapidamente modifiche a livello dell'intero sito. Questa sezione descriverà alcune delle possibilità che si aprono quando si utilizzano i modelli più semplici.

In genere, parti comuni di contenuto/codice (ad esempio modelli) vengono archiviate in file separati. Quando crei un documento web, devi semplicemente "includere" questi file nelle posizioni appropriate della pagina. PHP ha due funzioni per questo: include() e require().

include() e richiedi()

Uno degli aspetti più straordinari di PHP è la capacità di creare modelli e librerie di programmazione e quindi inserirli in nuovi script. L'uso delle librerie consente di risparmiare tempo e fatica nell'utilizzo di funzionalità comuni su diversi siti Web. Lettori con

esperienza di programmazione in altri linguaggi (es. C, C++ o Java), familiarità con il concetto di librerie di funzioni e il loro utilizzo nei programmi per estenderne le funzionalità.

L'inclusione di uno o più file in uno script viene eseguita utilizzando le funzioni PHP standard require() e include(). Come verrà mostrato nella sezione successiva, ciascuna di queste funzioni viene utilizzata in una situazione specifica.

Funzioni

PHP ha quattro funzioni per includere i file negli script PHP:

  • includere();
  • include_once();
  • richiedere();
  • require_once().

Nonostante la somiglianza dei nomi, queste funzioni svolgono compiti diversi.

La funzione include() include il contenuto di un file in uno script. La sintassi della funzione include() è:

includere (file file]

La funzione include() ha una caratteristica interessante: può essere eseguita in modo condizionale. Ad esempio, se una chiamata di funzione è inclusa in un blocco di istruzioni if. allora il file viene incluso nel programma solo se la condizione i f è vera. Se la funzione includeO viene utilizzata in un comando condizionale, allora it dovere essere racchiusi tra parentesi graffe o delimitatori alternativi. Confronta le differenze di sintassi nei listati 9.1 e 9.2.

Listato 9.1. Uso errato di include()

se (qualche_condizionale)

include("testo91a.txt"); altro

include("text91b.txt");

Listato 9.2. Uso corretto di include()

if (qualche_condizionale):

include("testo91a.txt");

include("text91b.txt");

Tutto il codice PHP nel file di inclusione necessariamenteè nei tag PHP. Non dare per scontato che la semplice memorizzazione di un comando PHP in un file assicuri che venga elaborato correttamente:

È invece necessario racchiudere il comando nei tag appropriati, come mostrato nell'esempio seguente:

print "questo è un file di inclusione non valido";

La funzione include_once() fa la stessa cosa di include(), con un'eccezione: controlla se il file è già stato incluso prima di essere incluso nel programma. Se il file è già stato incluso, la chiamata include_once() viene ignorata e, in caso contrario, il file viene incluso per impostazione predefinita. Sotto tutti gli altri aspetti, include_once() non è diverso da include(). La sintassi della funzione include_once() è:

include_once (file file)

In generale, la funzione require() è simile a include() -- include anche il modello nel file contenente la chiamata a require(). La sintassi della funzione require() è:

richiedere (file file)

Tuttavia, c'è un'importante differenza tra le funzioni require() e include(). Il file specificato dal parametro require() è incluso nello script, indipendentemente dalla posizione di require() nello script. Ad esempio, se chiami requirere() in un blocco if con una condizione falsa, il file sarà comunque incluso nello script!

In molte situazioni, è utile creare un file con variabili e altre informazioni utilizzate nel sito e quindi includerlo secondo necessità. Sebbene il nome di questo file sia arbitrario, di solito lo chiamo init.tpl (abbreviazione di "initializaion.template"). Il Listato 9.3 mostra l'aspetto di un file init.tpl molto semplice. Nel Listato 9-4, i contenuti di init.tpl sono inclusi nello script con il comando require().

Listato 9.3. Esempio di file di inizializzazione

$site_title = "(!LANG:Ricette PHP";!}

$contatto_email = " [e-mail protetta]";

$contact_name = "WJ Gilmore";

Listato 9.4. Utilizzando il file init.tpl

<? print $site_title; ?>

\"mai1 a:$contact_email\">$contact_name."; ?>

Il passaggio di un URL quando si chiama require() è consentito solo se è abilitata la modalità "URL fopen wrappers" (questa modalità è abilitata per impostazione predefinita).

Con l'aumentare delle dimensioni del sito, può accadere che alcuni file vengano inclusi nello script più di una volta. A volte questo non causa problemi, ma in alcuni casi la riattivazione del file reimposta le variabili modificate. Se le funzioni sono definite in un file di inclusione, possono verificarsi conflitti di nome. Detto questo, arriviamo alla funzione successiva, require_once().

La funzione require_once() garantisce che il file venga incluso nello script solo una volta. Dopo una chiamata a requi re_onse(), tutti gli ulteriori tentativi di includere lo stesso file vengono ignorati. La sintassi della funzione require_onse() è:

Probabilmente utilizzerai la funzionalità di inclusione dei file più spesso man mano che le tue applicazioni web aumentano di dimensioni. Queste funzioni vengono spesso utilizzate negli esempi di questo libro per ridurre la ridondanza del codice. I primi esempi sono discussi nella sezione successiva sui principi della creazione di modelli di base.

Componenti edili

Quando definisco la struttura di una tipica pagina web, di solito la scompongo in tre parti: intestazione, corpo e piè di pagina. In genere, la maggior parte dei siti Web ben organizzati avrà un'intestazione che non cambia molto; la parte principale mostra il contenuto richiesto del sito, quindi cambia spesso; Infine, il piè di pagina contiene informazioni sul copyright e collegamenti di navigazione. Il piè di pagina, come l'intestazione, di solito rimane invariato. Non fraintendermi, non sto affatto cercando di soffocare la tua creatività. Ho visto molti ottimi siti che non seguivano questi principi. Sto solo cercando di trovare una struttura generale che possa servire come punto di partenza per ulteriori lavori.

intestazione

Un file di intestazione (come quello nel Listato 9.5) è presente in quasi tutti i miei siti Web abilitati per PHP. Questo file contiene

informazioni a livello di sito, come il titolo, le informazioni di contatto e alcuni componenti del codice della pagina HTML.

Listato 9.5. Esempio di file di intestazione

// File: header.tpl

// Scopo: file di intestazione per il sito PhpRecipes.

$site_name = "Ricette PHP";

$site_email=" [e-mail protetta]";

$site_path = "http://localhost/phprecipes";

<? print $site_name; ?>

// Visualizza la data e l'ora correnti

print data("F d, h:i a");

È abbastanza comune per i visitatori limitare l'accesso per includere i file, specialmente se i file contengono informazioni sensibili (come le password). In Apache, puoi impedire la visualizzazione di determinati file modificando i file http.conf o htaccess. L'esempio seguente mostra come disabilitare la visualizzazione di tutti i file .tpl:

ordine consentire, negare

Consenti da 127.0.0.1

PHP e i problemi di sicurezza del sito sono trattati in dettaglio nel Capitolo 16.

Titolo corrente

L'intestazione (piè di pagina) è solitamente chiamata le informazioni che si trovano nella parte inferiore delle pagine del sito: dettagli di contatto, collegamenti e informazioni sul copyright. Queste informazioni possono essere inserite in un file separato e incluse come modello allo stesso modo di un'intestazione. Diciamo che con l'avvento del nuovo anno è stato necessario modificare le informazioni sul copyright e portarle nella forma "Copyright © 2000-2001". Ci sono due modi: trascorrere la vigilia di Natale modificando febbrilmente centinaia di pagine statiche o utilizzare un modello come quello nel Listato 9.6. Un semplice cambiamento e puoi tornare alle faccende delle vacanze.

Listato 9.6. Esempio di file piè di pagina (footer.tpl)

contatto |

la tua privacy

Nota l'uso della variabile globale $site_email nel file a piè di pagina. Il valore di questa variabile è a livello di pagina e presumiamo che i file header.tpl e footer.tpl saranno inclusi nella stessa pagina finale. Si noti inoltre la presenza del $site_path nel collegamento Privacy. Includo sempre i percorsi completi di tutti i collegamenti nei miei modelli: se l'URL del collegamento fosse costituito dal singolo nome privacy.php, il file del piè di pagina sarebbe hardcoded in una directory specifica.

Parte principale

Il contenuto dell'intestazione e del piè di pagina è incluso nella parte principale della pagina. In sostanza, è la parte principale che contiene le informazioni di interesse per i visitatori del sito. L'intestazione ha un aspetto spettacolare, il piè di pagina contiene informazioni utili, ma è per la parte principale della pagina che gli utenti tornano ripetutamente sul sito. Anche se non posso fornire alcun consiglio sulla struttura specifica della pagina, i modelli come quello nel Listato 9-7 rendono l'amministrazione della pagina molto più semplice.

Listato 9.7. Esempio del corpo principale della pagina (index_body.tpl)

/tutorials.php">tutorial

articoli

script

contatto

Benvenuti in PHPRecipes. il punto di partenza per script PHP, tutorial,

e informazioni sulla cucina gourmet!

Mettere tutto insieme: intestazione, piè di pagina e corpo

Forse il mio stato d'animo è meglio espresso dal colonnello "Hannibal" Smith (George Peppard) della famosa serie A-Team: "Adoro quando tutto va a posto". Sperimento qualcosa di simile quando modelli disparati vengono combinati per formare un documento web completo. Combinando tre sezioni del documento: header.tpl, index_body.tpl e footer.tpl, puoi creare rapidamente una pagina semplice come quella del Listato 9-8.

Listato 9.8. Costruire la pagina index.php includendo diversi file

// File: indice.php

// Destinazione: home page di PHPRecipes

// Visualizza il titolo

include("header.tpl");

// Emette il corpo principale

include("index_body.tpl");

// Piè di pagina dell'output

include("piè di pagina.tpl");

Bene, come? Tre semplici comandi - e hai una pagina finita davanti a te. Il testo della pagina di riepilogo è mostrato nel Listato 9.9.

Listato 9.9. La pagina HTML creata nel Listato 9-8 (index.php)

PHPRecipes

23 agosto, 15:17

tutorial

articoli

script

contatto

Benvenuto in PHPRecipes, il punto di partenza per script PHP, tutorial,

e consigli e ricette di cucina gourmet!

Copyright 2000 PHPRicette. Tutti i diritti riservati.

contatto |

la tua intimità

Sulla fig. La Figura 9-1 mostra l'aspetto della pagina risultante nel browser. Anche se di solito non utilizzo i bordi della tabella, questa volta li ho inclusi in modo che le tre parti della pagina risaltino più chiaramente nella figura.

Riso. 9.1. L'aspetto della pagina creata nel listato 9.8

Ottimizzazione del modello

Nella seconda variante (a mio avviso, più preferibile), i modelli sono realizzati sotto forma di funzioni situate in un file separato. Ciò fornisce una strutturazione aggiuntiva per i tuoi modelli. Chiamo questo file il file di inizializzazione e vi memorizzo altre informazioni utili. Poiché abbiamo già esaminato gli esempi di intestazione e piè di pagina relativamente lunghi, i Listati 9-10 e 9-11 sono stati leggermente accorciati per illustrare la nuova idea.

Listato 9.10. Modello di sito ottimizzato (site_init.tpl)

// File: site_init.tpl

// Scopo: file di inizializzazione PhpRecipes

$site_name = "Ricette PHP";

$sito_email = " [e-mail protetta]";

$site_path = "http://localhost/phprecipes/";

funzione show_header($nome_sito) (

<? print $site_name: ?>

Questa è l'intestazione

funzione mostra piè di pagina()

Questo è il piè di pagina

Listato 9.11. Applicazione di un file di inizializzazione

// Include il file di inizializzazione

include("site_init.tpl");

// Visualizza il titolo

mostra intestazione($nome_sito);

// Contenuto del corpo Queste sono alcune informazioni sul corpo

// Mostra piè di pagina Show_footer();

Progetto: generatore di pagine

Sebbene la maggior parte dei siti Web che ho creato abbia generato il contenuto principale delle pagine in base alle informazioni lette dal database, ci saranno sempre alcune pagine che cambiano a malapena. In particolare, possono visualizzare informazioni sul team di sviluppo, informazioni di contatto, annunci pubblicitari, ecc. Di solito memorizzo queste informazioni "statiche" in una cartella separata e utilizzo uno script PHP per caricarle quando richiesto. Certo, hai una domanda: se si tratta di informazioni statiche, a cosa serve lo script PHP? Perché non caricare normali pagine HTML? Il vantaggio di PHP è che puoi utilizzare modelli e inserire frammenti statici secondo necessità.

<а href = "/static.php?content=$content">Nome pagina statico

Iniziamo creando pagine statiche. Per semplicità, mi limiterò a tre pagine contenenti informazioni sul sito (Listato 9.12), pubblicità (Listato 9.13) e informazioni di contatto (Listato 9.14).

Listato 9.12. Informazioni sul sito (about.html)

Informazioni su PHPRecipes

Quale programmatore non mescola tutta la notte di programmazione con biscotti gourmet. Qui a PHPRecipes. Difficilmente passa una notte senza che uno dei nostri programmatori mescoli un po' di HTML con un gustoso piatto di funghi Portobello o anche con la fonduta. Quindi abbiamo deciso di portarti il meglio di ciò che amiamo di più: PHP e cibo!

Esatto, lettori. Tutorial, script, soufflé e altro ancora. 0solo su PHPRecipes.

Informazioni pubblicitarie

Indipendentemente dal fatto che vengano per apprendere le ultime tecniche PHP o per rispolverare come

per cuocere il pollo, puoi scommettere che i nostri lettori sono decisori. Sono l'Industria

professionisti che prendono decisioni su ciò che la loro azienda acquista.

Per informazioni pubblicitarie, contattare

">[e-mail protetta].

Listato 9.14. Dati di contatto (contatto.html)

Contattaci

Hai un suggerimento per la codifica?

Conosci il condimento perfetto per gli ignami canditi?

Facci sapere! Contatta il team al [e-mail protetta].

Passiamo alla costruzione della pagina static.php, che visualizza le informazioni statiche richieste. Questo file (vedi Listato 9-15) include i componenti della pagina del nostro sito e il file di inizializzazione site_init.tpl.

Listato 9.15. Output generale delle pagine statiche (static.php)

// File: statico.php

// Scopo: visualizzare le pagine statiche richieste.

// ATTENZIONE: si presume che il file "site_init.tpl" e tutto

// i file statici si trovano nella stessa directory.

// Carica funzioni e variabili include("site_init.tpl"):

// Visualizza il titolo show_header($site_name);

// Visualizza il contenuto richiesto include("$content.html"):

// Mostra piè di pagina show footer();

Ora tutto è pronto per costruire lo script principale. Basta includere nella pagina

<а href = "static.php?content=about">Nome pagina statico

Informazioni pubblicitarie

Contattaci

Facendo clic su uno di questi collegamenti verrà caricata la pagina statica corrispondente incorporata in static.php nel browser!

Risultati

In questo capitolo, hai appreso l'obiettivo principale per cui PHP è stato progettato: la creazione dinamica di pagine web. Sono state considerate le seguenti domande:

  • elaborazione dell'URL;
  • costruire contenuti dinamici;
  • inclusione e costruzione di modelli di base.

Il capitolo si conclude con un generatore di pagine, un programma che carica pagine statiche in un modello e semplifica la gestione di un gran numero di pagine HTML statiche.

Il prossimo capitolo riguarda l'utilizzo di PHP in combinazione con i moduli HTML per migliorare notevolmente l'interattività del tuo sito. E poi - interazione con i database! Devi imparare molte cose interessanti.

Ciao! Ora proveremo a implementare la registrazione più semplice sul sito utilizzando PHP + MySQL. Per fare ciò, Apache deve essere installato sul tuo computer. Come funziona il nostro script è mostrato di seguito.

1. Iniziamo creando la tabella utenti nel database. Conterrà i dati dell'utente (login e password). Andiamo su phpmyadmin (se crei un database sul tuo PC http://localhost/phpmyadmin/). Crea una tabella utenti, avrà 3 campi.

Lo creo nel database mysql, puoi crearlo in un altro database. Quindi, imposta i valori, come nella figura:

2. È richiesta una connessione a questa tabella. Creiamo un file bd.php. Il suo contenuto:

$db = mysql_connect("il tuo server MySQL","accedi a questo server","password a questo server");
mysql_select_db ("nome del database a cui connettersi", $db);
?>

Nel mio caso si presenta così:

$db = mysql_connect("localhost","user","1234");
mysql_select_db("mysql",$db);
?>

Salviamo bd.php.
Eccellente! Abbiamo una tabella nel database, una connessione ad essa. Ora puoi iniziare a creare una pagina in cui gli utenti lasceranno i loro dati.

3. Crea un file reg.php con contenuto (tutti i commenti all'interno):



Registrazione


Registrazione
















4. Creare un file, che inserirà i dati nel database e salverà l'utente. save_user.php(commenti all'interno):



{
}
//se il login e la password vengono inseriti, li elaboriamo in modo che tag e script non funzionino, non sai mai cosa possono inserire le persone


// rimuove gli spazi extra
$login = trim($login);
$password = trim($password);
// connettersi al database
// verifica l'esistenza di un utente con lo stesso login
$result = mysql_query("SELECT id FROM users WHERE login="$login"",$db);
if (!empty($myrow["id"])) (
exit("Spiacenti, il nome utente che hai inserito è già registrato. Inserisci un altro nome utente.");
}
// se non ce n'è nessuno, salva i dati
$result2 = mysql_query ("INSERT INTO utenti (login,password) VALUES("$login","$password")");
// Controlla se ci sono errori
se ($result2=="TRUE")
{
echo "Ti sei registrato con successo! Ora puoi entrare nel sito. Pagina principale";
}
altro(
echo "Errore! Non sei loggato.";
}
?>

5. Ora i nostri utenti possono registrarsi! Successivamente, è necessario creare una "porta" per accedere al sito per gli utenti già registrati. indice.php(commenti all'interno):

// l'intera procedura funziona sulle sessioni. È in esso che vengono memorizzati i dati dell'utente mentre si trova sul sito. È molto importante lanciarli proprio all'inizio della pagina!!!
inizio_sessione();
?>


Pagina principale


Pagina principale











Registrati



// Controlla se le variabili login e user id sono vuote
if (vuoto($_SESSION["login"]) o vuoto($_SESSION["id"]))
{
// Se vuoto, non visualizzeremo il collegamento
echo "Sei loggato come ospite
Questo link è disponibile solo per gli utenti registrati";
}
altro
{

In archivio indice.php visualizzeremo un link che sarà aperto solo agli utenti registrati. Questo è il punto centrale dello script: limitare l'accesso a qualsiasi dato.

6. C'è un file con la verifica del login e della password inseriti. testreg.php (commenti all'interno):

session_start();// l'intera procedura funziona sulle sessioni. È in esso che vengono memorizzati i dati dell'utente mentre si trova sul sito. È molto importante lanciarli proprio all'inizio della pagina!!!
if (isset($_POST["login"])) ( $login = $_POST["login"]; if ($login == "") ( unset($login);) ) //inserisce il login inserito da l'utente nella variabile $login, se è vuota, distruggiamo la variabile
if (isset($_POST["password"])) ( $password=$_POST["password"]; if ($password =="") ( unset($password);) )
//inserisci la password inserita dall'utente nella variabile $password, se è vuota, quindi distruggi la variabile
if (empty($login) o empty($password)) //se l'utente non ha inserito un login o una password, viene generato un errore e interrompiamo lo script
{
exit("Non hai inserito tutte le informazioni, torna indietro e compila tutti i campi!");
}
//se il login e la password vengono inseriti, li elaboriamo in modo che tag e script non funzionino, non sai mai cosa possono inserire le persone
$login = strisce ($login);
$login = htmlspecialchars($login);
$password = barre sbarrate($password);
$password = htmlspecialchars($password);
// rimuove gli spazi extra
$login = trim($login);
$password = trim($password);
// connettersi al database
include("bd.php");// il file bd.php dovrebbe trovarsi nella stessa cartella di tutti gli altri, in caso contrario basta cambiare il percorso

$risultato = mysql_query("SELEZIONA * DA utenti WHERE login="$login"",$db); //recupera tutti i dati sull'utente con il login inserito dal database
$myrow = mysql_fetch_array($risultato);
if (vuoto($myrow["password"]))
{
//se l'utente con il login inserito non esiste
}
altro(
//se esiste, controlla le password
if ($myrow["password"]==$password) (
//se le password corrispondono, iniziamo la sessione per l'utente! Puoi congratularti con lui, è entrato!
$_SESSION["login"]=$myrow["login"];
$_SESSION["id"]=$myrow["id"];//questi dati sono usati molto spesso, quindi l'utente che ha effettuato l'accesso li "trasporta"
echo "Sei entrato con successo nel sito! Pagina principale";
}
altro(
//se le password non corrispondono

Exit("Spiacenti, il login o la password inseriti non sono corretti.");
}
}
?>

OK è tutto finito ora! Forse la lezione è noiosa, ma molto utile. Qui viene mostrata solo l'idea della registrazione, quindi puoi migliorarla: aggiungi protezione, design, campi dati, carica avatar, esci dal tuo account (per questo, distruggi semplicemente le variabili dalla sessione con la funzione non settato) e così via. Buona fortuna!

Controllato tutto, funziona bene!

Nell'ultima lezione, abbiamo capito in quali blocchi sarà composto il modello di viaggio, quindi puoi iniziare. Iniziamo creando due cartelle:

images - questa cartella conterrà tutti i file di immagine utilizzati per definire lo stile del modello. Perché non abbiamo ancora alcuno sviluppo del design, quindi getta un qualsiasi file grafico in questa cartella, altrimenti Joomla non installerà il modello e darà un errore se la cartella è vuota.

ATTENZIONE: la grafica dei contenuti non può essere inserita nella cartella delle immagini del template!

css - questa cartella conterrà file di fogli di stile a cascata. Per cominciare, inseriamo un file template.css vuoto al suo interno, con l'aiuto del quale verranno assegnati vari stili di design agli elementi del sito.

Successivamente, puoi iniziare a creare il file index.php più importante, che determinerà la posizione visiva degli elementi del sito e indicherà al CMS Joomla in quale blocco posizionare vari componenti e moduli. Il file è una combinazione di PHP e HTML.

Uso sempre solo Macromedia Dreamweaver durante la scrittura del codice. Un programma eccellente, lo consiglio vivamente ai principianti, perché. se commetti un errore mentre lavori sul codice, il programma evidenzierà sicuramente il tuo stipite.

Sul sito troverai un tutorial su Macromedia Dreamweaver. Se hai intenzione di sviluppare siti Web, questo programma dovrebbe essere padroneggiato, almeno a livello iniziale, per modificare i codici dei modelli senza errori.

Il posizionamento degli elementi (blocchi) della pagina avviene tramite codice HTML, nello specifico utilizzeremo i tag DIV. Ma il modo in cui il nostro sito funzionerà sul motore Joomla, ad es. sarà dinamico, dovrai anche usare il linguaggio PHP. Con il suo aiuto, determineremo in quali blocchi si troveranno le posizioni per la visualizzazione dei moduli e come verranno chiamate queste posizioni, se i blocchi collasseranno o meno. Colleghiamo i fogli di stile da file esterni, lingua del contenuto, impostiamo come cambierà la dimensione del sito, ecc.

indice.php

Intestazione file

L'intestazione del file è composta da più parti. La prima parte del codice dell'intestazione PHP serve per assicurarsi che non si acceda direttamente al file per motivi di sicurezza.

< ?php
definito ("_JEXEC" ) o die ;
JHtml::_("behavior.framework" , true ) ;
$app = JFactory::getApplication() ;
?>
< ?php echo "< ?" ; ?> versione xml="1.0" codifica=" < ?php echo $questo-> _charset ?> "?>

DOCTYPE è un parametro molto importante in base al quale il browser decide come visualizzare questa pagina e come interpretare il CSS.

< ! DOCTYPE html PUBLIC "- / / W3C/ / DTD XHTML 1.0 Strict/ / EN""http: / / www.w3.org/ TR/ xhtml1/ DTD/ xhtml1-strict.dtd">

I seguenti estratti di frammento lingua installata dalla configurazione globale.

< html xmlns= "http://www.w3.org/1999/xhtml" xml:lang=" < ?php echo $questo->lingua; ?>" lang=" < ?php echo $questo->lingua; ?>" dir=" < ?php echo $questo-> direzione; ?>" >

Di seguito è riportato un frammento di codice che include Informazioni aggiuntive per l'intestazione impostata nella configurazione globale. Puoi vedere queste informazioni guardando il codice sorgente di qualsiasi pagina web. In particolare, questi sono i meta tag che già conosci.

< head>
< jdoc:include type= "head" / >

Le seguenti righe nell'intestazione contengono collegamenti ai principali stili CSS di Joomla.

< link rel= "stylesheet" href= "< ?php echo $questo-> baseurl ?> /templates/system/css/system.css" tipo="testo /css" / >
< link rel= "stylesheet" href= "< ?php echo $questo-> baseurl ?> /templates/system/css/general.css" tipo="testo /css" / >

Per utilizzare gli stili di progettazione del modello, creiamo un collegamento al file contenente i fogli di stile a cascata template.css, che si trova nella cartella CSS. Non importa che questo file sia ancora vuoto, l'importante è collegarlo, ci occuperemo del design più avanti quando installeremo il template su Joomla. In questo modo sarà più facile vedere il risultato.

< link rel= "stylesheet" href= "< ?php echo $questo-> baseurl ?> /templates/< ?php echo $questo-> modello ?> / css/ modello.css" tipo="testo /css" / >

Il seguente frammento di codice ci consente di comprimere le colonne sinistra o destra se non ci sono moduli nelle posizioni "sinistra" e "destra". Se entrambe le colonne sono compresse, il contenuto occupa il 100% della larghezza della pagina. Se è inclusa solo una colonna, il contenuto occupa l'80%. Con due colonne incluse, il contenuto rappresenta il 60% della larghezza della pagina.

< ?php
se ($ questo-> countModules("sinistra e destra" ) == 0) $contentwidth = "100" ;
se ($ questo-> countModules("sinistra o destra" ) == 1) $contentwidth = "80" ;
se ($ questo-> countModules("sinistra e destra" ) == 1) $contentwidth = "60" ;
?>

Colpo di testa vicino

< / head>

< body>

Il blocco “pagina” contiene il design della sola pagina del sito, avrà la larghezza di 950px.

< div id= "page" >

Il blocco "top" si trova nella parte superiore della pagina e contiene due blocchi "logo" e "user1".

< div id= "top" >

Nel bokeh del “logo”, posizioneremo il file grafico del logo, questo verrà scritto nei fogli di stile. Ma scriviamo l'output automatico del nome del sito nel file index.php e il nome viene inserito nel tag H1, che è molto importante per l'ottimizzazione dei motori di ricerca.

< div id= "logo" >
< h1> < ?php echo $app - >getCfg("nomesito") ; ?>< / h1>
< / div>

Definiamo la posizione "user1" nel blocco omonimo per visualizzare il modulo di ricerca nel sito.

< div id= "user1" >
< jdoc:include type= "modules" name= "user1" style= "xhtml" / >
< / div>
< / div> < ! - - конец блока top - - >

Emissione del modulo menu orizzontale nel blocco "user2" nella posizione "user2". Il blocco crollerà se non ci sono moduli in quella posizione.

< ?php if ($questo-> countModules("user2") ) : ?>
< div id= "user2 " >
< jdoc:include type= "modules" name= "user2" style= "xhtml" / >
< / div>
< ?php endif ; ?>

Poi arriva il blocco di intestazione del sito "header". In esso, definiremo la posizione "header" per l'output dei moduli. Il blocco crollerà se non ci sono moduli in quella posizione. Ho intenzionalmente ampliato le capacità di questo blocco per poter inserire non solo l'immagine di intestazione, ma anche i rotatori di immagini.

< ?php if ($questo-> contaModuli(" intestazione") ) : ?>
< div id= "intestazione">
< jdoc:include type= "modules" name= "intestazione" style="xhtml" />
< / div>
< ?php endif ; ?>

Nel blocco "user3" definire la posizione "user3" per la visualizzazione dei moduli.

Il blocco collasserà se non viene visualizzato alcun modulo in questa posizione "user3".

< ?php if ($questo-> countModules("user3") ) : ?>
< div id= "user3" >
< jdoc:include type= "modules" name= "user3" style= "xhtml" / >
< / div>
< ?php endif ; ?>

Si apre il blocco della colonna di sinistra, che crollerà se non ci sono moduli nella posizione "sinistra".

< ?php if ($questo-> countModules("left" ) ) : ?>
< div id= "left" >
< jdoc:include type= "modules" name= "left" style= "xhtml" / >
< / div>
< ?php endif ; ?>

Si apre il blocco di contenuto più importante, che può occupare il 100% della larghezza della pagina, l'80% e il 60%, a seconda del numero di colonne incluse.

< div id= "content< ?php echo $contentwidth ; ?> " >

Visualizzazione dei messaggi nei componenti

< jdoc:include type= "message" / >

Uscita del contenuto.

< jdoc:include type= "component" style= "xhtml" / >
< / div> < ! - - конец блока контента- - >

Si apre il blocco della colonna di destra, che verrà collassato se non ci sono moduli nella posizione “destra”.

< ?php if ($questo-> countModules("right") ) : ?>
< div id= "rigth" >
< jdoc:include type= "modules" name= "right" style= "xhtml" / >
< / div>
< ?php endif ; ?>

Output del blocco "footer", progettato per visualizzare il modulo "codice HTML" con informazioni sul copyright. Puoi anche posizionare il fondo qui menù orizzontale o un modulo di presentazione del contenuto. Il blocco collasserà se più di un modulo non viene visualizzato in questa posizione di "piè di pagina"

< ?php if ($questo-> countModules("footer") ) : ?>
< div id= "footer" >
< jdoc:include type= "modules" name= "footer" style= "xhtml" / >
< / div>
< ?php endif ; ?>

Il blocco della pagina del sito "pagina", il corpo e tutto il codice sono chiusi.

< / div> < ! - - конец блока page- - >
< / body> < ! - - конец блока body - - >
< / html> < ! - - конец кода- - >

Abbiamo creato un file index.php completo. Ora sai con quali comandi e in quale ordine vengono visualizzati i blocchi modello.

ATTENZIONE: Affinché il codice del template possa essere letto dal pannello di amministrazione di joomla, il file index.php deve essere aperto nell'editor AkelPad e salvato in codifica UTF-8, deselezionando BOM. Se hai utilizzato il programma Macromedia Dreamweaver per lavorare con il file, devi selezionare "Modifica" > "Proprietà pagina" nel menu di ritorno e selezionare la codifica del documento Unicode (utf-8), deselezionando "abilita firme Unicode (BOM )". Tuttavia, ti consiglio vivamente di non modificare il codice dal pannello di amministrazione di Joomla, se sbagli qualcosa: non puoi tornare indietro, a differenza del programma Macromedia Dreamweaver, dove puoi sempre annullare le modifiche apportate.

Il design stesso dei blocchi sarà descritto in template.css. Ma personalizzeremo i fogli di stile dopo aver installato il modello su Joomla 3 (joomla 2.5), e per questo è necessario creare

Crea un file chiamato hello.php nella directory principale del server web (DOCUMENT_ROOT) e scrivi quanto segue al suo interno:

Esempio #1 Primo script PHP: hello.php



Test PHP


"

Ciao mondo!

" ; ?>

Aprire dato file in un browser digitando il nome del server web e /ciao.php. Quando si sviluppa localmente, questo collegamento potrebbe essere qualcosa di simile http://localhost/ciao.php o http://127.0.0.1/ciao.php, ma dipende dalle impostazioni del tuo server. Se tutto è configurato correttamente, questo file verrà elaborato da PHP e il browser visualizzerà il seguente testo:

Prova PHP

Ciao mondo

Questo programma è estremamente semplice e non è nemmeno necessario utilizzare PHP per creare una pagina così semplice. Tutto ciò che fa è inferenza Ciao mondo utilizzando l'istruzione PHP eco. Si prega di notare che il file non deve essere eseguibile o altrimenti diverso da altri file. Il server sa che questo file dovrebbe essere elaborato da PHP perché il file ha un'estensione ".php", che le impostazioni del server dicono che tali file dovrebbero essere passati a PHP. Pensalo come un normale file HTML abbastanza fortunato da avere una serie di tag speciali (disponibili anche per te) che possono fare un sacco di cose interessanti.

Se questo esempio non mostra nulla per te o mostra una finestra di download, o se vedi l'intero file in forma di testo, molto probabilmente il tuo server web non ha il supporto PHP o è stato configurato in modo errato. Chiedi al tuo amministratore del server di abilitare questo supporto. Offrigli le istruzioni per l'installazione: la sezione Installazione di questa documentazione. Se stai sviluppando script PHP a casa (localmente), leggi anche questo capitolo per assicurarti di aver impostato tutto correttamente. Assicurati inoltre di richiedere il file dal server tramite il protocollo http. Se apri il file dal tuo file sistema di file, non verrà elaborato da PHP. Se i problemi persistono, non esitare a chiedere aiuto a una delle ricevute di supporto PHP.

Lo scopo dell'esempio è mostrare il formato dei tag speciali PHP. In questo esempio abbiamo usato come tag di apertura, seguito dai comandi PHP che terminano con il tag di chiusura ?> . In questo modo puoi "saltare dentro" e "saltare fuori" dalla modalità PHP ovunque nel file HTML. Puoi leggere di più su questo nella sezione Sintassi di base del manuale.

Commento: Una nota sulle nuove righe

Le interruzioni di riga hanno poco significato in HTML, ma è una buona idea mantenere l'HTML leggibile avvolgendolo in una nuova riga. PHP rimuove automaticamente le nuove righe immediatamente dopo il tag di fine ?> . Questo può essere estremamente utile se si utilizzano molti blocchi di codice PHP o si includono file PHP che non dovrebbero produrre nulla. Allo stesso tempo, può creare confusione. Puoi inserire uno spazio dopo il tag di chiusura ?> e quindi lo spazio verrà emesso insieme alla nuova riga, oppure puoi aggiungere specificamente una nuova riga all'ultima chiamata echo/print dal blocco di codice PHP.

Commento: Qualche parola sugli editor di testo

Ci sono molti editori di testo e ambienti di sviluppo integrato (IDE) in cui è possibile creare e modificare file PHP. Per un elenco di alcuni editor, vedere » Elenco degli editor PHP. Se desideri raccomandare un editor, visita questa pagina e chiedi di aggiungere un editor all'elenco. L'uso di un editor con evidenziazione della sintassi può essere di grande aiuto per il tuo lavoro.

Commento: Qualche parola sui word processor

Elaboratori di testi (StarOffice Writer, Microsoft Word, Abiword, ecc.) nella maggior parte dei casi non sono adatti per l'editing File PHP. Se vuoi ancora utilizzare uno di questi per il tuo script di test, assicurati di salvare il file come testo semplice(testo normale), altrimenti PHP non sarà in grado di leggere ed eseguire il tuo script.

Commento: Qualche parola sul Blocco note di Windows

Quando si scrivono script PHP utilizzando il built-in Blocco note di Windowsè necessario salvare i file con estensione .php. (Blocco note aggiungerà automaticamente l'estensione .txt se non segui i passaggi seguenti.) Quando ti viene richiesto di inserire un nome file durante il salvataggio di un file, digita il nome file tra virgolette (ad esempio, " ciao.php "). Inoltre, puoi fare clic sul menu a discesa " Documenti di testo" nella finestra di dialogo Salva file e seleziona "Tutti i file" al suo interno. Successivamente, puoi inserire il nome del file senza virgolette.

Ora che hai creato con successo uno script PHP funzionante, è il momento di creare lo script PHP più famoso di sempre! Chiama una funzione phpinfo() e ne vedrai tanti informazioni utili informazioni sul sistema e sulla configurazione, come le variabili predefinite disponibili, i moduli PHP caricati e le opzioni di configurazione. Prenditi del tempo per studiare queste importanti informazioni.

Esempio n. 2 Ottenere informazioni sul sistema da PHP

Per risolvere il terzo problema, il programma Denwer, che può essere installato gratuitamente sul tuo computer, è adatto. Se non sai che tipo di programma è, allora ti consiglio di leggere: come installare Denwer, questo articolo spiega passo dopo passo (per i principianti) come installarlo e come usarlo.

Naturalmente, ci sono altri strumenti che ti permettono di interpretare PHP. Ad esempio, Apatch, ma è piuttosto complicato nelle impostazioni e se sei un principiante, non ti consiglio di iniziare con esso.

Per iniziare a sviluppare un sito in PHP, hai bisogno di conoscenze di base in HTML. Ho già scritto su come creare una semplice pagina HTML. Descrive tutti i tag html, senza i quali è impossibile creare un sito. Pertanto, consiglio vivamente di iniziare a studiare la creazione di siti da quell'articolo.

Qual è la differenza tra un sito PHP e un semplice sito HTML?

Un sito PHP è quasi indistinguibile da un semplice sito HTML. L'unica differenza è la configurazione e la gestione del sito più flessibili, nonché la possibilità di automatizzare molte funzioni. Faccio un semplice esempio.

Diciamo che nell'intestazione del sito devi cambiare letteralmente una parola. Se il sito è realizzato su HTML nudo, sarà necessario aprire ogni file html per apportare una modifica, e questo è molto scomodo. Se l'intestazione del sito è realizzata in PHP come componente plug-in, le modifiche dovranno essere apportate solo in un file e cambieranno automaticamente in tutto il sito.

La struttura di un tipico sito PHP:

Ora fornirò il codice del modello del sito in PHP. Si prega di notare che le pagine create usando php sono consigliate per essere fatte con l'estensione .php, anche se questo non è un prerequisito. In determinate impostazioni di hosting, anche i file con la consueta estensione .html possono elaborare il codice PHP.

Codice del file index.php:

<span>Titolo della pagina</span> ... $_SERVER["DOCUMENT_ROOT"]."/testa.php"; ?> ... ...
$_SERVER["DOCUMENT_ROOT"]."/top.php"; ?>
...
...
... La parte principale del sito...
... ... ...

Ora diamo un'occhiata a ciascuno degli elementi collegati separatamente:

  • testa.php
  • top.php
  • sidebar1.php
  • sidebar2.php
  • piè di pagina.php

Si noti che sono collegati tramite uno speciale comando PHP:

require_once <полный путь/имя файла>

Ogni file è rispettivamente responsabile di una parte separata del sito. Ho cercato di nominarli nel modo più informativo e comprensibile possibile. Il sito può essere costituito da un numero maggiore di tali plug-in. Diamo un'occhiata a ciascun elemento in ordine dall'alto verso il basso.