PHP. Création de pages dynamiques. Pages dynamiques dans la page PHP Ready PHP

L’exemple le plus simple d’un site Web dynamique en PHP, c’est plus facile qu’il n’y paraît au premier abord.

Cet exemple de modèle fonctionne sans bases de données MSQL, mais cela est décidé lors du processus de développement, et à ce stade, tout est écrit en HTML et PHP. À l’avenir, nous montrerons un exemple de modèle plus complexe, mais pour l’instant concentrons-nous sur un modèle simple, qui suffit amplement pour créer un excellent site Web.

Si vous devez créer et promouvoir un site Web sur commande, vous devez alors contacter un studio Web éprouvé pour la promotion de sites Web.

Tout d'abord, vous devez apprendre et comprendre les différences entre la dynamique et un simple site HTML, qui a été décrit dans la dernière leçon et sur la base duquel ce projet sera construit. Il est donc conseillé d'étudier, il sera alors très facile de comprendre cet article.

Et la différence avec un simple site internet réside justement dans la rapidité du service ! Quiconque connaît déjà un simple site HTML sait que pour changer une bannière, il faut parcourir tout le site, chaque page... Ce qui prend beaucoup de temps. Et en mode dynamique - tout peut être fait en quelques minutes, peu importe le nombre de pages du site, même 1000, cela n'affecte pas le temps d'édition ! Je pense que même cela suffit pour étudier cet exemple !

A titre d'exemple, nous prendrons un modèle de site Web écrit à l'aide de la balise

Et donc, regardez un exemple de page modèle standard, que nous découperons en fichiers séparés.


































- il y aura une coupure ici, et le contenu sera un fichier séparé -



Contenu du site





- tout ce qui suit sera également un fichier séparé -

















insérer belle
menu du site








































Découper le modèle HTML en blocs PHP.

Le premier fichier contiendra l'intégralité de l'entête du site, jusqu'à l'ouverture du bloc

et s'appellera header, et toujours avec l'extension php !!!


































Et le nom du fichier sera header.php


Le deuxième fichier sera le principal, contenant tout le contenu du site – contenu qui ne changera pas dans le futur, ou très rarement. Un article est généralement publié une seule fois et les modifications sur une page ne sont pas compliquées. Le reste des fichiers responsables de la conception y sera connecté. Et il s'appellera par exemple - title.php



Contenu du site



— il y aura une section ici, le contenu sera également un fichier séparé —



Et le nom du fichier sera title.php


Tout le reste - le bloc de la barre latérale gauche et le pied de page - est formé dans le troisième fichier - footer.php.




- tout ce qui suit sera également un fichier séparé -

















insérer belle
menu du site








































et le nom du fichier sera footer.php


Vous pouvez maintenant commencer à assembler notre site Web comme un concepteur et comprendre tout le mystère de la création d'un site Web dynamique. Pour ce faire, vous devez connecter deux fichiers au fichier principal, qui sont responsables de la conception et contiennent la barre latérale gauche. C’est là que nous avons besoin de connaissances de base en PHP, sans lesquelles rien ne fonctionnera. Et pour cela, nous devons utiliser la fonction require que nous connaissons déjà.




— connexion du fichier header.php



Contenu du site








— connexion du fichier footer.php


Et maintenant notre page est complète ! Et ce fichier - title.php sera le modèle à partir duquel les nouvelles pages seront générées.
Et créons le principal, dont le nom sera index.php . Pour ce faire, copiez simplement le fichier title.php et, lors de son enregistrement dans le même dossier, donnez le nom index.php. Et toutes les nouvelles pages sont créées selon le même principe. Seul le contenu sera différent, tout le reste sera commun, et il sera facile de changer instantanément !!!

Et quel que soit le programme qui ouvre vos fichiers php, j'ai installé le programme PHP Expert Editor, grâce auquel il est très pratique de transcoder des pages, cela devrait se passer comme dans l'image. Deux fichiers sont requis et trois pages.

Et puis vous pouvez ajouter vos propres modifications, en fonction de ce que vous attendez de votre site. Par exemple, si vous saisissez une variable qui affichera le titre de chaque page séparément,
alors vous devez ajouter ce code au fichier header.php




<?php echo «$title»; ?>


Et ajoutez du code au modèle qui contiendra le nom de votre page unique, ce qui est nécessaire pour corriger les fichiers .






$title =’Exemple de site web dynamique en PHP. ';


nécessite 'header.php' ;


?>



Contenu du site



Ici, vous pouvez écrire n'importe quoi et insérer n'importe quelle information,


destiné au visiteur.






Je voudrais attirer votre attention sur un point très important. Cela s'applique au développement d'un site Web de toute complexité - avant de créer un nouveau projet, déterminez très soigneusement et clairement toutes les fonctions futures du projet. Par exemple, s'il y a un blog, alors vous avez besoin d'un bloc de commentaires, et pour cela vous devez saisir une variable qui déterminera l'adresse unique de la page, etc. En un mot - le général doit être réfléchi avant..., car après - il y aura de nombreux défauts qui seront très longs et péniblement à corriger, et ce conseil s'applique aussi bien aux sites simples qu'aux projets complexes construits sur un super nouveau moteur !

Nous n'avons parlé que des pages statiques, c'est-à-dire celles qui, quelle que soit la façon dont l'utilisateur interagit avec elles, restent toujours inchangées, et pour que leur contenu ou leur conception change, le propriétaire de la page doit modifier le code manuellement.

Pages dynamiques et ce dont elles ont besoin

En plus des pages statiques, il existe également des pages dynamiques. Ce sont désormais la majorité des internautes. Les informations qu'ils contiennent sont chargées à partir de sources externes, telles qu'une base de données ou d'autres fichiers. Le contenu et le formatage de ces pages peuvent changer en fonction de l'activité de l'utilisateur. Pour éditer des sites dynamiques, il n'est pas nécessaire d'interférer avec leur code - il suffit de modifier le contenu dans un fichier ou une base de données spécialement conçu, qui, soit dit en passant, est aussi un fichier, uniquement structuré d'une certaine manière.

HTML et CSS ne suffisent pas à eux seuls pour créer des sites Web dynamiques. Des langages de programmation sont également utilisés ici, ainsi que des bases de données et des langages de requête pour ceux-ci. Le plus souvent, les sites Web dynamiques modernes utilisent HTML, CSS, PHP, JavaScript et SQL dans leur travail. Les deux premières abréviations vous sont déjà familières, SQL est utilisé pour accéder aux bases de données, JavaScript est un langage client dont les commandes sont traitées par le navigateur et sont souvent utilisées pour vous montrer toutes sortes de beautés comme des rideaux ou des photographies qui s'ouvrent en douceur. , mais PHP est un langage de programmation côté serveur, qui fonctionne, entre autres, avec le contenu du site et le rend dynamique, nous y entrerons en contact aujourd'hui.

Exemple d'utilisation de la commande include

Dans l'article précédent, j'ai parlé de la mise en page en blocs du site et donné l'exemple d'une page simple (document index.html et le fichier qui y est joint style.css).

Nous allons maintenant diviser le document index.html en plusieurs fichiers, chacun contiendra sa propre partie de la page, ce qui permettra de diviser davantage le code, d'améliorer la structure du modèle et, en fait, de rendre la page dynamique. Pour cela, nous utiliserons le langage PHP, ou plutôt une seule de ses directives - la fonction inclure(), qui inclut un fichier dans un autre.

1. Modifiez la résolution du fichier créé dans l'article sur la disposition des blocs indice Avec .html sur .php pour que le document s'appelle index.php. Type de fichier .PHP indique au serveur que le document a été rédigé ou utilise des insertions dans le langage de programmation du même nom.

2. Dans le dossier contenant la page, créez un répertoire blocs.

3. Nous placerons toutes les informations complémentaires (haut, bas, navigation et barre latérale du site) dans des fichiers séparés, que nous placerons dans un dossier. blocs.

Créez donc quatre fichiers dans le répertoire des blocs : en-tête.php, navigation.php, barre latérale.php Et pied de page.php. Remplissez les fichiers avec du code.

4. Vérifiez la structure des dossiers de modèles. Les fichiers doivent être à la racine index.php, style.css et répertoire blocs.

Structure des dossiers blocsça devrait être comme ça.

5. Au dossier index.php supprimez le code existant et écrivez-en un nouveau :

Disposition des blocs

Contenu de la page principale



Dans le navigateur, le fichier index.php a exactement le même aspect qu'avant, mais la structure du modèle a complètement changé. Nous parlerons de ce qui s'est passé plus tard, mais maintenant nous répondrons à la question sur les commandes mystérieuses comme .

Comme le code HTML, le code PHP a également sa propre désignation de début et de fin. Vous devez donc lancer l'insertion PHP avec la commande , et terminez par la ligne ?> . Entre ces commandes, le code principal est écrit. Dans notre cas, ce n'est qu'une seule commande - inclure.

Fonction inclure() insère le code d'un autre fichier dans un fichier, permettant de stocker différentes parties d'une page dans différents documents, les séparant ainsi de manière fiable les unes des autres.

À la suite des actions effectuées, nous avons reçu une page dynamique index.php, dont certaines parties sont chargées à partir de différents fichiers. Grâce à cela, vous pouvez créer d'autres pages en y chargeant de la même manière des éléments auxiliaires à partir de fichiers de dossiers. blocs.

Cette approche est bonne car si vous souhaitez modifier, par exemple, le nom d'un élément de menu sur un site Web de 20 à 30 pages, alors dans un modèle avec une structure nouvellement créée, vous n'aurez besoin de modifier qu'un seul fichier - blocs/ navigation.php, et le menu changera immédiatement sur toutes les pages dans lesquelles il est inclus. Si le site était statique, pour changer le nom d'un élément de menu, vous devrez apporter des modifications à chaque de 20 à 30 pages. La différence est évidente.

Des leçons précédentes, nous avons appris qu'en utilisant la méthode GET, nous pouvons transmettre certains paramètres directement à l'URL. Cependant, rien ne nous empêche de le faire sans formulaires, il suffit de les lister dans l'URL.

Nous pouvons transmettre des paramètres via une URL. Et nous pouvons obtenir ces paramètres directement dans le script. Alors, qu'est-ce qui nous empêche d'afficher différentes pages à l'utilisateur en fonction des paramètres de l'URL ?

Créer une page dynamique

Pour afficher différentes pages à l'utilisateur, vous devez préparer le contenu. Laissez-le se trouver dans un tableau multidimensionnel :

"Création de pages dynamiques", "content" => "Texte de l'article sur les pages dynamiques."

Le paramètre dynamique dans l'URL sera appelé id, et nous le récupérerons dans $_GET["id"] . Nous pourrions ajouter un champ d'identification à chaque élément du tableau, mais nous devrons alors parcourir tous les éléments et rechercher le sous-tableau avec l'identifiant souhaité. Par conséquent, il est beaucoup plus facile d’utiliser les clés du tableau principal comme identifiants.

En termes simples, nous prenons l'identifiant et essayons de trouver un article avec cette clé dans le tableau $articles. Cela ressemble à ceci :

Il ne reste plus qu'à esquisser la sortie du menu et à vérifier l'exactitude de l'identifiant. Il s’avère qu’il s’agit d’un véritable routeur PHP !

"Page d'accueil", "content" => "Texte de l'article sur notre site" ], [ "title" => "Création de pages dynamiques", "content" => "Texte de l'article sur les pages dynamiques." ], [ "title" => "Comment attraper un chaton", "content" => "Texte de l'article sur les chatons."

] ];

# Si l'identifiant est passé, écrivez l'article dans $article ou null s'il n'y a pas d'article avec cet identifiant if(isset($_GET["id"])) $current_article = $articles[$_GET["id"]] ?? nul; # Si l'identifiant n'est pas transmis, alors c'est la page principale, nous pouvons afficher la page avec l'identifiant = 0 sinon $current_article = $articles; ?>

$article) : ?> ">

Erreur 404 : page introuvable

Vous pouvez désormais créer des sites dynamiques où le nombre de pages dépend du nombre d'éléments du tableau, plutôt que des fichiers PHP. :) Si le site doit avoir différents types de pages, par exemple un article et un produit, vous pouvez transmettre le type de page comme deuxième paramètre : site.ru?type=article&id=5 .

Bien entendu, ce système n’est pas parfait. Après un certain temps, vous apprendrez à créer une CNC normale (URL plus pratiques, par exemple site.ru/articles/5/) et à stocker des articles dans un fichier ou une base de données.
Nous créons une table dans la nouvelle base de données. Appelons-le « pages ». Ce tableau stockera les pages statiques du futur site et les informations les concernant. Le tableau doit contenir les champs suivants :

  • page_id - identifiant de page (SMALLINT, clé primaire, auto_increment) ;
  • page_alias - alias de page pour la ligne d'adresse CNC (VARCHAR, 255) ;
  • page_title - titre de la page dans la fenêtre du navigateur (VARCHAR, 255) ;
  • page_meta_d - méta description de la page pour la balise méta description (VARCHAR, 255) ;
  • page_meta_k - mots-clés méta pour la balise méta-mots-clés (VARCHAR, 255) ;
  • page_h1 - titre de la page (VARCHAR, 255) ;
  • page_s_desc - une brève description du matériel, par exemple, si le matériel du site se présente sous la forme d'un blog (TEXTE) ;
  • page_content - le texte principal de la page, qui sera affiché dans la colonne centrale du site (TEXTE) ;
  • page_publish - contient « Y » - si la page est publiée, ou « N » - si elle est masquée (CHAR, « Y » par défaut).

Immédiatement après avoir créé le tableau, nous y insérons les valeurs de la page principale du site. Dans le champ « page_alias » de la page principale, je suggère d'insérer la valeur « home ». Les balises méta correspondent au thème de l’ensemble du site. De la même manière, vous pouvez créer d'autres pages, par exemple « A propos de l'entreprise » avec l'alias « à propos » et vos propres balises méta, ou « Contacts » avec l'alias « contacts », etc.

2. Créez un fichier de configuration de site

Dans le dossier racine du site, qui doit être vide à ce stade, nous créons un dossier « cfg », et dans celui-ci, à l'aide de .htaccess, nous fermons l'accès avec la directive « refuser de tous ». Créez un fichier core.php avec le contenu suivant :

//MYSQL
classe MaDB
{
var $dblogin = "racine"; // VOTRE CONNEXION À LA BASE DE DONNÉES
var $dbpass = ""; // VOTRE MOT DE PASSE POUR LA BASE DE DONNÉES
var $db = "monsite"; // NOM DE LA BASE DE DONNÉES DU SITE
var $dbhost="localhost";

Var $lien;
var $requête ;
var $erreur;
var $résultat ;
var $données ;
var $fetch;

Fonction connecter() (
$this->link = mysql_connect($this->dbhost, $this->dblogin, $this->dbpass);
mysql_select_db($this->db);
mysql_query("DÉFINIR LES NOMS utf8");
}

Fonction close() (
mysql_close($this->link);
}

Fonction exécutée($requête) (
$this->query = $query;
$this->result = mysql_query($this->query, $this->link);
$this->err = mysql_error();
}
fonction ligne() (
$this->data = mysql_fetch_assoc($this->result);
}
fonction récupérer() (
while ($this->data = mysql_fetch_assoc($this->result)) (
$this->fetch = $this->data;
retourner $this->fetch ;
}
}
fonction stop() (
unset($this->données);
unset($this->result);
unset($this->fetch);
unset($this->err);
unset($this->query);
}
}

Ce fichier ne contient actuellement qu'une simple classe de connexion à la base de données, mais à l'avenir, vous pourrez y ajouter diverses fonctions utiles qui seront accessibles depuis n'importe où dans le code du site. N'oubliez pas de modifier le login et le mot de passe de votre base de données.

Si vous travaillez dans un environnement Windows, je peux vous recommander d'utiliser le . Cet éditeur dispose d'une numérotation de ligne et convertit facilement le texte d'un encodage à un autre. ATTENTION! Si vous travaillez avec l'encodage UTF-8, convertissez les fichiers en UTF-8 sans nomenclature - cela permettra d'éviter des problèmes à l'avenir.

3. Créez index.php - le contrôleur principal du site

Le fichier de configuration a été créé. Maintenant, dans le dossier racine du site, nous créons index.php - ce sera le script principal du site, une sorte de « contrôleur principal ». Contenu du fichier index.php :

définir("INDEX", ""); // RÉGLAGE DE LA CONSTANTE DU CONTRÔLEUR PRINCIPAL

Require_once($_SERVER."/cfg/core.php"); // CONNEXION DU NOYAU

// CONNEXION À LA BD
$db = new MaDB();
$db->connect();

// CONTRÔLEUR PRINCIPAL
commutateur ($_GET) (
cas "page":
include($_SERVER."/com/page.php");
casser;
défaut:
include($_SERVER."/com/home.php");
casser;
}

Inclure($_SERVER."/template.php");
$db->close();

La variable $_GET indiquera au contrôleur principal quel composant de site charger lorsque cela lui est demandé. Actuellement, notre site ne comporte que deux composants : « page » et « page principale » (en principe, vous pouvez vous en sortir avec un seul composant pour afficher une page normale, mais souvent l'apparence de la page principale du site diffère des pages d'éléments de menu classiques) . La logique du contrôleur principal est la suivante : le nom du composant recherché (la valeur de la variable $option) est extrait de la chaîne URL en fonction de sa valeur, le fichier du composant lui-même (contenu dans le dossier /com) ; ) est inclus. Le fichier de composant effectue tout le travail nécessaire, extrait les données de la base de données et les écrit dans des variables pour les transférer vers le modèle de conception. A la toute fin, le fichier de conception du site est connecté, dans lequel sont transférées toutes les variables et données extraites dans les composants. Cela semble beaucoup plus compliqué que cela ne fonctionne.

4. Créez un composant de sortie de page standard

À la racine du site, créez un dossier « com » - les fichiers des composants y seront stockés. Un composant de site, à mon sens, est un fichier dans lequel les données sont traitées pour différentes sections du site. Par exemple, un composant de page standard récupère le titre, la description et le texte du matériel de la base de données et les écrit dans les variables $title, $meta_d, $meta_k, $content, etc. Ces données sont ensuite transférées au modèle de conception ( vous pouvez créer votre propre modèle de conception pour chaque composant) et sont affichés à l'utilisateur sous forme de page HTML. Par exemple, un composant de catalogue qui pourrait être créé à l'avenir ferait presque la même chose, mais avec des données sur les produits - et il a ses propres spécificités, d'autres champs dans le tableau, etc. Par conséquent, pour chaque section fonctionnelle du site, il convient de créer un composant distinct. Dans le schéma MVC (Model-View-Controller), le composant agit comme un modèle.

Créez un fichier « page.php » dans le dossier « com ». Le contenu du fichier est le suivant :

/* COMPOSANT DE LA PAGE */
$alias = $_GET ;
$query = "SELECT * FROM pages WHERE page_alias="".$alias."" AND page_publish="Y" LIMIT 1";
$db->run($query);
$db->ligne();
// VARIABLES DES COMPOSANTS
$id = $db->données ;
$alias = $db->données ;
$titre = $db->données ;
$h1 = $db->données ;
$meta_d = $db->données ;
$meta_k = $db->données ;
$s_desc = $db->données ;
$component = $db->données ;
//SI LA PAGE N'EXISTE PAS
si ($id) (
en-tête("HTTP/1.1 404 introuvable");
$component = "ERREUR 404 ! Cette page n'existe pas" ;
}
$db->stop();

5. Créez le composant d'affichage de la page principale

La page principale de notre base de données est stockée sous le pseudonyme « home » et jusqu'à présent, sa structure ne diffère pas des pages habituelles du site - il s'agit simplement d'un article. Néanmoins, nous créerons un composant distinct pour cela - pour l'avenir, pour ainsi dire.


Le contenu du composant « home.php » dans le dossier « com » est presque identique au contenu du composant page standard, à l'exception de la chaîne de requête de la base de données et du nom du composant. La chaîne de requête ressemble maintenant à ceci :

$query = "SELECT * FROM wx_pages WHERE page_alias="home" LIMIT 1";

6. Créez un modèle de conception pour l'ensemble du site

A la racine du site nous créons un fichier template.php. Essentiellement, il s’agit d’une mise en page de conception Web classique au format HTML+CSS, uniquement avec des variables PHP aux bons endroits. Insérer entre les balises de titre, dans la colonne centrale du site il y a un encartet ainsi, tout au long du modèle, nous plaçons les variables nécessaires qui sont déclarées dans les composants.

Le dossier racine doit également contenir les dossiers « css » et « images » pour les éléments de conception. Dans le fichier /css/style.css - vous pouvez personnaliser les styles à votre discrétion.

7. Nettoyer les liens et le fichier .htaccess

Pour créer des liens propres, j'utilise mod_rewrite avec des instructions directes pour les règles de chaque composant séparément, car je considère que l'analyse de la barre d'adresse à l'aide du contrôleur lui-même est une fonctionnalité inutile. Le contenu de .htaccess à ce stade est :


Réécriture du moteur activé
RéécrireBase /

RéécritureCond %(REQUEST_FILENAME) !-d
RéécritureCond %(REQUEST_FILENAME) !-f

# FICHIERS INTERDITS
RéécrireRule .htaccess - [F]
RewriteRule template.php - [F]

# RÈGLES mod_rewrite
RewriteRule page/(+)([\/](0,1))\.htm$ index.php?option=page&alias=$1 [L]

À l'avenir, nous ajouterons des règles pour les composants de recherche, le catalogue, le blog d'articles, etc. Il n'y a qu'un seul point : convertir des liens comme « mysite.com/index.php?option=pages&alias=about » en un lien comme « mysite.com/pages/about.htm » - ça a l'air plutôt sympa. Essayez d'éviter le tableau $_GET en développement pour des raisons de sécurité et ne vous y fiez pas. Il est conseillé d'y stocker uniquement les paramètres du contrôleur principal (la variable $option) et du composant (la variable $alias).

De plus, dans chaque dossier du site, "juste au cas où", créez un fichier index.html vide - ceci est nécessaire pour que lors de l'accès au répertoire via la barre d'adresse, rien ne s'affiche.

Tags : php, mysql, moteur de site, contrôleur, création de site, mvc

Erreur 404 : page introuvable

Vous pouvez désormais créer des sites dynamiques où le nombre de pages dépend du nombre d'éléments du tableau, plutôt que des fichiers PHP. :) Si le site doit avoir différents types de pages, par exemple un article et un produit, vous pouvez transmettre le type de page comme deuxième paramètre : site.ru?type=article&id=5 .

Bien entendu, ce système n’est pas parfait. Après un certain temps, vous apprendrez à créer une CNC normale (URL plus pratiques, par exemple site.ru/articles/5/) et à stocker des articles dans un fichier ou une base de données.
Nous créons une table dans la nouvelle base de données. Appelons-le « pages ». Ce tableau stockera les pages statiques du futur site et les informations les concernant. Le tableau doit contenir les champs suivants :

  • page_id - identifiant de page (SMALLINT, clé primaire, auto_increment) ;
  • page_alias - alias de page pour la ligne d'adresse CNC (VARCHAR, 255) ;
  • page_title - titre de la page dans la fenêtre du navigateur (VARCHAR, 255) ;
  • page_meta_d - méta description de la page pour la balise méta description (VARCHAR, 255) ;
  • page_meta_k - mots-clés méta pour la balise méta-mots-clés (VARCHAR, 255) ;
  • page_h1 - titre de la page (VARCHAR, 255) ;
  • page_s_desc - une brève description du matériel, par exemple, si le matériel du site se présente sous la forme d'un blog (TEXTE) ;
  • page_content - le texte principal de la page, qui sera affiché dans la colonne centrale du site (TEXTE) ;
  • page_publish - contient « Y » - si la page est publiée, ou « N » - si elle est masquée (CHAR, « Y » par défaut).

Immédiatement après avoir créé le tableau, nous y insérons les valeurs de la page principale du site. Dans le champ « page_alias » de la page principale, je suggère d'insérer la valeur « home ». Les balises méta correspondent au thème de l’ensemble du site. De la même manière, vous pouvez créer d'autres pages, par exemple « A propos de l'entreprise » avec l'alias « à propos » et vos propres balises méta, ou « Contacts » avec l'alias « contacts », etc.

2. Créez un fichier de configuration de site

Dans le dossier racine du site, qui doit être vide à ce stade, nous créons un dossier « cfg », et dans celui-ci, à l'aide de .htaccess, nous fermons l'accès avec la directive « refuser de tous ». Créez un fichier core.php avec le contenu suivant :

//MYSQL
classe MaDB
{
var $dblogin = "racine"; // VOTRE CONNEXION À LA BASE DE DONNÉES
var $dbpass = ""; // VOTRE MOT DE PASSE POUR LA BASE DE DONNÉES
var $db = "monsite"; // NOM DE LA BASE DE DONNÉES DU SITE
var $dbhost="localhost";

Var $lien;
var $requête ;
var $erreur;
var $résultat ;
var $données ;
var $fetch;

Fonction connecter() (
$this->link = mysql_connect($this->dbhost, $this->dblogin, $this->dbpass);
mysql_select_db($this->db);
mysql_query("DÉFINIR LES NOMS utf8");
}

Fonction close() (
mysql_close($this->link);
}

Fonction exécutée($requête) (
$this->query = $query;
$this->result = mysql_query($this->query, $this->link);
$this->err = mysql_error();
}
fonction ligne() (
$this->data = mysql_fetch_assoc($this->result);
}
fonction récupérer() (
while ($this->data = mysql_fetch_assoc($this->result)) (
$this->fetch = $this->data;
retourner $this->fetch ;
}
}
fonction stop() (
unset($this->données);
unset($this->result);
unset($this->fetch);
unset($this->err);
unset($this->query);
}
}

Ce fichier ne contient actuellement qu'une simple classe de connexion à la base de données, mais à l'avenir, vous pourrez y ajouter diverses fonctions utiles qui seront accessibles depuis n'importe où dans le code du site. N'oubliez pas de modifier le login et le mot de passe de votre base de données.

Si vous travaillez dans un environnement Windows, je peux vous recommander d'utiliser le . Cet éditeur dispose d'une numérotation de ligne et convertit facilement le texte d'un encodage à un autre. ATTENTION! Si vous travaillez avec l'encodage UTF-8, convertissez les fichiers en UTF-8 sans nomenclature - cela permettra d'éviter des problèmes à l'avenir.

3. Créez index.php - le contrôleur principal du site

Le fichier de configuration a été créé. Maintenant, dans le dossier racine du site, nous créons index.php - ce sera le script principal du site, une sorte de « contrôleur principal ». Contenu du fichier index.php :

définir("INDEX", ""); // RÉGLAGE DE LA CONSTANTE DU CONTRÔLEUR PRINCIPAL

Require_once($_SERVER."/cfg/core.php"); // CONNEXION DU NOYAU

// CONNEXION À LA BD
$db = new MaDB();
$db->connect();

// CONTRÔLEUR PRINCIPAL
commutateur ($_GET) (
cas "page":
include($_SERVER."/com/page.php");
casser;
défaut:
include($_SERVER."/com/home.php");
casser;
}

Inclure($_SERVER."/template.php");
$db->close();

La variable $_GET indiquera au contrôleur principal quel composant de site charger lorsque cela lui est demandé. Actuellement, notre site ne comporte que deux composants : « page » et « page principale » (en principe, vous pouvez vous en sortir avec un seul composant pour afficher une page normale, mais souvent l'apparence de la page principale du site diffère des pages d'éléments de menu classiques) . La logique du contrôleur principal est la suivante : le nom du composant recherché (la valeur de la variable $option) est extrait de la chaîne URL en fonction de sa valeur, le fichier du composant lui-même (contenu dans le dossier /com) ; ) est inclus. Le fichier de composant effectue tout le travail nécessaire, extrait les données de la base de données et les écrit dans des variables pour les transférer vers le modèle de conception. A la toute fin, le fichier de conception du site est connecté, dans lequel sont transférées toutes les variables et données extraites dans les composants. Cela semble beaucoup plus compliqué que cela ne fonctionne.

4. Créez un composant de sortie de page standard

À la racine du site, créez un dossier « com » - les fichiers des composants y seront stockés. Un composant de site, à mon sens, est un fichier dans lequel les données sont traitées pour différentes sections du site. Par exemple, un composant de page standard récupère le titre, la description et le texte du matériel de la base de données et les écrit dans les variables $title, $meta_d, $meta_k, $content, etc. Ces données sont ensuite transférées au modèle de conception ( vous pouvez créer votre propre modèle de conception pour chaque composant) et sont affichés à l'utilisateur sous forme de page HTML. Par exemple, un composant de catalogue qui pourrait être créé à l'avenir ferait presque la même chose, mais avec des données sur les produits - et il a ses propres spécificités, d'autres champs dans le tableau, etc. Par conséquent, pour chaque section fonctionnelle du site, il convient de créer un composant distinct. Dans le schéma MVC (Model-View-Controller), le composant agit comme un modèle.

Créez un fichier « page.php » dans le dossier « com ». Le contenu du fichier est le suivant :

/* COMPOSANT DE LA PAGE */
$alias = $_GET ;
$query = "SELECT * FROM pages WHERE page_alias="".$alias."" AND page_publish="Y" LIMIT 1";
$db->run($query);
$db->ligne();
// VARIABLES DES COMPOSANTS
$id = $db->données ;
$alias = $db->données ;
$titre = $db->données ;
$h1 = $db->données ;
$meta_d = $db->données ;
$meta_k = $db->données ;
$s_desc = $db->données ;
$component = $db->données ;
//SI LA PAGE N'EXISTE PAS
si ($id) (
en-tête("HTTP/1.1 404 introuvable");
$component = "ERREUR 404 ! Cette page n'existe pas" ;
}
$db->stop();

5. Créez le composant d'affichage de la page principale

La page principale de notre base de données est stockée sous le pseudonyme « home » et jusqu'à présent, sa structure ne diffère pas des pages habituelles du site - il s'agit simplement d'un article. Néanmoins, nous créerons un composant distinct pour cela - pour l'avenir, pour ainsi dire.


Le contenu du composant « home.php » dans le dossier « com » est presque identique au contenu du composant page standard, à l'exception de la chaîne de requête de la base de données et du nom du composant. La chaîne de requête ressemble maintenant à ceci :

$query = "SELECT * FROM wx_pages WHERE page_alias="home" LIMIT 1";

6. Créez un modèle de conception pour l'ensemble du site

A la racine du site nous créons un fichier template.php. Essentiellement, il s’agit d’une mise en page de conception Web classique au format HTML+CSS, uniquement avec des variables PHP aux bons endroits. Insérer entre les balises de titre, dans la colonne centrale du site il y a un encartet ainsi, tout au long du modèle, nous plaçons les variables nécessaires qui sont déclarées dans les composants.

Le dossier racine doit également contenir les dossiers « css » et « images » pour les éléments de conception. Dans le fichier /css/style.css - vous pouvez personnaliser les styles à votre discrétion.

7. Nettoyer les liens et le fichier .htaccess

Pour créer des liens propres, j'utilise mod_rewrite avec des instructions directes pour les règles de chaque composant séparément, car je considère que l'analyse de la barre d'adresse à l'aide du contrôleur lui-même est une fonctionnalité inutile. Le contenu de .htaccess à ce stade est :


Réécriture du moteur activé
RéécrireBase /

RéécritureCond %(REQUEST_FILENAME) !-d
RéécritureCond %(REQUEST_FILENAME) !-f

# FICHIERS INTERDITS
RéécrireRule .htaccess - [F]
RewriteRule template.php - [F]

# RÈGLES mod_rewrite
RewriteRule page/(+)([\/](0,1))\.htm$ index.php?option=page&alias=$1 [L]

À l'avenir, nous ajouterons des règles pour les composants de recherche, le catalogue, le blog d'articles, etc. Il n'y a qu'un seul point : convertir des liens comme « mysite.com/index.php?option=pages&alias=about » en un lien comme « mysite.com/pages/about.htm » - ça a l'air plutôt sympa. Essayez d'éviter le tableau $_GET en développement pour des raisons de sécurité et ne vous y fiez pas. Il est conseillé d'y stocker uniquement les paramètres du contrôleur principal (la variable $option) et du composant (la variable $alias).

De plus, dans chaque dossier du site, "juste au cas où", créez un fichier index.html vide - ceci est nécessaire pour que lors de l'accès au répertoire via la barre d'adresse, rien ne s'affiche.

Tags : php, mysql, moteur de site, contrôleur, création de site, mvc



Des questions ?

Signaler une faute de frappe

Texte qui sera envoyé à nos rédacteurs :