Maison / Tutoriels Windows / Création de l'index php. Pages dynamiques en PHP. Créer un composant de sortie de page normale

Création de l'index php. Pages dynamiques en PHP. Créer un composant de sortie de page normale

De nombreux lecteurs de n'importe quel livre sur les ordinateurs parcourront tout ce qui n'est pas d'un intérêt immédiat et passeront à ce qu'ils pensent réellement. vouloir connaître. Personnellement, je fais exactement cela. Cependant, il n'y a rien à craindre - il y a rarement des livres techniques qui doivent être lus d'un bout à l'autre. Ou peut-être avez-vous fait exactement cela - sauté les huit chapitres initiaux et repris ce chapitre parce qu'il avait le titre le plus intéressant ? Et qui veut perdre du temps sur des détails quand un autre projet est en feu au travail ?

Heureusement, cette hâte ne vous empêchera pas de maîtriser la deuxième partie du livre, qui traite de l'utilisation de PHP pour créer des sites Web et interagir avec le Web. Dans ce chapitre, vous apprendrez à modifier facilement le contenu des pages Web et à naviguer sur le Web à l'aide de liens et de diverses fonctions standard. Le chapitre suivant viendra compléter le matériel présenté - il aborde en détail les moyens d'interaction de l'utilisateur dans les formulaires HTML Le chapitre 11 décrit l'organisation de l'interface avec les bases de données. Le reste des chapitres de la partie 2 couvre les aspects non triviaux de la programmation Web en PHP.

Cependant, il convient de rappeler que le matériel de la partie 1 absolument essentiel pour une connaissance normale de PHP. Il est supposé que vous avez lu la première partie, de sorte que les exemples utiliseront de nombreux concepts abordés précédemment. Ainsi, si vous avez parcouru une partie du livre, vous devrez de temps en temps revenir aux chapitres précédents et vous rattraper.

Liens simples

<а href = "date.php">

$lien = "date.php" ;

imprimer"<а href = \"$link\">Voir la date d'aujourd'hui
\n"

Vous vous demandez peut-être pourquoi il y a une barre oblique inverse (\) avant les guillemets ("") dans le code du lien ? C'est parce que les guillemets sont des caractères spéciaux en PHP et sont utilisés comme délimiteurs de chaîne. Par conséquent, les guillemets sont des chaînes littérales dans les chaînes. doit être protégé .

Si le besoin d'échapper aux guillemets vous ennuie, activez simplement le mode magic_quotes_gpc dans votre fichier php.ini. Le résultat est composé uniquement d'apostrophes, de guillemets, de barres obliques inverses et de caractères nuls. sont automatiquement échappés dans le texte !

Développons l'exemple donné. Pour afficher rapidement une liste de liens dans le navigateur, vous pouvez utiliser un tableau :

// Crée un tableau de sections

$contents - array("tutoriels", "articles", "scripts", "contact");

// Boucle et affiche chaque élément du tableau de manière séquentielle

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

imprimer " ".$contenu[$i]."
\n" ;

// - désignation spéciale du point marqueur endfor ;

Composants de fichier (modèles)

Nous sommes arrivés à l'une de mes fonctionnalités PHP préférées. Un modèle (tel qu'appliqué à la programmation Web) est une partie d'un document Web que vous allez utiliser dans plusieurs pages. Les modèles, comme les fonctions PHP, vous évitent d'avoir à copier/coller des fragments de contenu de page et de code de programme. À mesure que l'échelle du site augmente, l'importance des modèles augmente, car ils vous permettent d'apporter facilement et rapidement des modifications au niveau de l'ensemble du site. Cette section décrira certaines des possibilités qui s'ouvrent lors de l'utilisation des modèles les plus simples.

En règle générale, les éléments de contenu/code communs (c'est-à-dire les modèles) sont stockés dans des fichiers séparés. Lors de la création d'un document Web, vous "incluez" simplement ces fichiers aux endroits appropriés de la page. PHP a deux fonctions pour cela : include() et require().

inclure () et exiger ()

L'un des aspects les plus remarquables de PHP est la possibilité de créer des modèles et des bibliothèques de programmation, puis de les insérer dans de nouveaux scripts. L'utilisation de bibliothèques permet d'économiser du temps et des efforts pour utiliser des fonctionnalités communes sur différents sites Web. Les lecteurs avec

expérience de programmation dans d'autres langages (par exemple C, C++ ou Java), familiarité avec le concept de bibliothèques de fonctions et leur utilisation dans des programmes pour étendre les fonctionnalités.

L'inclusion d'un ou plusieurs fichiers dans un script se fait à l'aide des fonctions PHP standard require() et include(). Comme nous le verrons dans la section suivante, chacune de ces fonctions est utilisée dans une situation spécifique.

Les fonctions

PHP a quatre fonctions pour inclure des fichiers dans les scripts PHP :

  • comprendre();
  • inclure_une fois();
  • exiger();
  • Demandez une fois().

Malgré la similitude des noms, ces fonctions effectuent des tâches différentes.

La fonction include() inclut le contenu d'un fichier dans un script. La syntaxe de la fonction include() est :

inclure (fichier fichier]

La fonction include() a une fonctionnalité intéressante - elle peut être exécutée de manière conditionnelle. Par exemple, si un appel de fonction est inclus dans un bloc d'instruction if. alors le fichier n'est inclus dans le programme que si la condition i f est vraie. Si la fonction includeO est utilisée dans une commande conditionnelle, alors elle devoirêtre entouré d'accolades ou de délimiteurs alternatifs. Comparez les différences de syntaxe dans les listings 9.1 et 9.2.

Liste 9.1. Utilisation incorrecte de include()

si (un_conditionnel)

inclure("text91a.txt"); autre

inclure("text91b.txt");

Liste 9.2. Utilisation correcte de include()

if (some_conditional) :

inclure("text91a.txt");

inclure("text91b.txt");

Tout le code PHP dans le fichier inclus nécessairement est dans les balises PHP. Ne présumez pas que le simple fait de stocker une commande PHP dans un fichier garantira qu'elle est traitée correctement :

Au lieu de cela, vous devez placer la commande dans les balises appropriées, comme illustré dans l'exemple suivant :

print "ceci est un fichier d'inclusion invalide" ;

La fonction include_once() fait la même chose que include(), à une exception près : elle vérifie si le fichier a déjà été inclus avant d'être inclus dans le programme. Si le fichier a déjà été inclus, l'appel include_once() est ignoré, et sinon, le fichier est inclus par défaut. À tous autres égards, include_once() n'est pas différent de include(). La syntaxe de la fonction include_once() est :

include_once (fichier fichier)

En général, la fonction require() est similaire à include() -- elle inclut également le modèle dans le fichier contenant l'appel à require(). La syntaxe de la fonction require() est :

exiger (fichier fichier)

Cependant, il existe une différence importante entre les fonctions require() et include(). Le fichier spécifié par le paramètre require() est inclus dans le script, quel que soit l'emplacement de require() dans le script. Par exemple, si vous appelez requirere() dans un bloc if avec une condition fausse, le fichier sera toujours inclus dans le script !

Dans de nombreuses situations, il est pratique de créer un fichier avec des variables et d'autres informations utilisées sur le site, puis de l'inclure si nécessaire. Bien que le nom de ce fichier soit arbitraire, je l'appelle généralement init.tpl (abréviation de "initializaion.template"). Le Listing 9.3 montre à quoi ressemble un fichier init.tpl très simple. Dans le Listing 9-4, le contenu de init.tpl est inclus dans le script avec la commande require().

Liste 9.3. Exemple de fichier d'initialisation

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

$contact_email = " [courriel protégé]";

$contact_name = "WJ Gilmore" ;

Liste 9.4. Utilisation du fichier init.tpl

<? print $site_title; ?>

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

Passer une URL lors de l'appel de require() n'est autorisé que si le mode "URL fopen wrappers" est activé (ce mode est activé par défaut).

Au fur et à mesure que la taille du site augmente, il peut arriver que certains fichiers soient inclus plus d'une fois dans le script. Parfois, cela ne pose pas de problème, mais dans certains cas, la réactivation du fichier réinitialise les variables modifiées. Si des fonctions sont définies dans un fichier inclus, des conflits de noms peuvent se produire. Cela dit, nous arrivons à la fonction suivante, require_once().

La fonction require_once() garantit que le fichier ne sera inclus qu'une seule fois dans le script. Après un appel à requi re_onse(), toutes les autres tentatives d'inclusion du même fichier sont ignorées. La syntaxe de la fonction require_onse() est :

Vous utiliserez probablement la fonctionnalité d'inclusion de fichier plus souvent à mesure que la taille de vos applications Web augmentera. Ces fonctions sont souvent utilisées dans les exemples de ce livre pour réduire la redondance du code. Les premiers exemples sont abordés dans la section suivante sur les principes de construction de modèles de base.

Composants de construction

Lors de la définition de la structure d'une page Web typique, je la décompose généralement en trois parties : un en-tête, un corps et un pied de page. En règle générale, la plupart des sites Web bien organisés ont un titre qui ne change pas beaucoup. la partie principale affiche le contenu demandé du site, il change donc souvent ; Enfin, le pied de page contient des informations sur les droits d'auteur et des liens de navigation. Le pied de page, comme l'en-tête, reste généralement inchangé. Ne vous méprenez pas, je n'essaie pas du tout d'étouffer votre créativité. J'ai vu beaucoup de grands sites qui ne suivaient pas ces principes. J'essaie simplement de proposer une structure générale qui puisse servir de point de départ pour d'autres travaux.

entête

Un fichier d'en-tête (comme celui du Listing 9.5) est présent dans presque chacun de mes sites Web compatibles PHP. Ce fichier contient

des informations sur l'ensemble du site, telles que le titre, les coordonnées et certains composants du code de la page HTML.

Liste 9.5. Exemple de fichier d'en-tête

// Fichier : header.tpl

// Finalité : fichier d'en-tête du site PhpRecipes.

$site_name = "PHPRecipes" ;

$site_email=" [courriel protégé]";

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

<? print $site_name; ?>

// Affiche la date et l'heure courante

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

Il est assez courant que les visiteurs restreignent l'accès aux fichiers inclus, surtout si les fichiers contiennent des informations sensibles (telles que des mots de passe). Dans Apache, vous pouvez empêcher l'affichage de certains fichiers en modifiant les fichiers http.conf ou htaccess. L'exemple suivant montre comment désactiver l'affichage de tous les fichiers .tpl :

commande autoriser, refuser

Autoriser à partir de 127.0.0.1

Les problèmes de PHP et de sécurité du site sont traités en détail au chapitre 16.

Titre courant

L'en-tête (pied de page) est généralement appelé les informations situées au bas des pages du site - coordonnées, liens et informations de copyright. Ces informations peuvent être placées dans un fichier séparé et incluses en tant que modèle de la même manière qu'un en-tête. Disons qu'avec l'arrivée de la nouvelle année, vous deviez modifier les informations de copyright et les amener sous la forme "Copyright © 2000-2001". Il y a deux façons : passer le réveillon de Noël fébrilement à éditer des centaines de pages statiques ou utilisez un modèle comme celui du Listing 9.6. Un simple changement et vous pouvez reprendre vos corvées de vacances.

Liste 9.6. Exemple de fichier de pied de page (footer.tpl)

Contactez |

votre vie privée

Notez l'utilisation de la variable globale $site_email dans le fichier de pied de page. La valeur de cette variable est à l'échelle de la page, et nous supposons que les fichiers header.tpl et footer.tpl seront inclus dans la même page finale. Notez également la présence du $site_path dans le lien Confidentialité. J'inclus toujours les chemins d'accès complets à tous les liens dans mes modèles - si l'URL du lien se composait du nom unique privacy.php, alors le fichier de pied de page serait codé en dur dans un répertoire spécifique.

Partie principale

Le contenu de l'en-tête et du pied de page est inclus dans la partie principale de la page. En substance, c'est la partie principale qui contient les informations d'intérêt pour les visiteurs du site. L'en-tête est spectaculaire, le pied de page contient des informations utiles, mais c'est pour la partie principale de la page que les utilisateurs reviennent encore et encore sur le site. Bien que je ne puisse fournir aucun conseil sur la structure spécifique de la page, des modèles comme celui du Listing 9-7 facilitent grandement l'administration des pages.

Liste 9.7. Exemple du corps principal de la page (index_body.tpl)

/tutoriels.php">tutoriels

articles

scripts

contact

Bienvenue sur PHPRecipes. le point de départ pour les scripts PHP, les tutoriels,

et des informations sur la cuisine gastronomique!

Rassembler le tout : en-tête, pied de page et corps

Peut-être que mon humeur est mieux exprimée par le colonel "Hannibal" Smith (George Peppard) de la célèbre série A-Team : "J'adore quand tout tombe en place." Je ressens quelque chose de similaire lorsque des modèles disparates sont combinés pour former un document Web complet. En combinant trois sections de document : header.tpl, index_body.tpl et footer.tpl, vous pouvez rapidement créer une page simple comme celle du Listing 9-8.

Liste 9.8. Construire la page index.php en incluant plusieurs fichiers

// Fichier : index.php

// Destination : page d'accueil de PHPRecipes

// Afficher le titre

include("header.tpl");

// Sortie du corps principal

include("index_body.tpl");

// Sortir le pied de page

include("footer.tpl");

Bien comment? Trois commandes simples - et vous avez une page finie devant vous. Le texte de la page de résumé est affiché dans le Listing 9.9.

Liste 9.9. La page HTML construite dans le Listing 9-8 (index.php)

Recettes PHP

23 août, 15h17

tutoriels

des articles

scénarios

Contactez

Bienvenue sur PHPRecipes, le point de départ pour les scripts PHP, les tutoriels,

et des astuces et recettes de cuisine gourmande !

Copyright 2000 PHPRecipes. Tous les droits sont réservés.

Contactez |

votre vie privée

Sur la fig. La figure 9-1 montre à quoi ressemble la page résultante dans le navigateur. Bien que je n'utilise généralement pas de bordures de tableau, cette fois je les ai incluses afin que les trois parties de la page ressortent plus clairement dans la figure.

Riz. 9.1. L'apparence de la page construite dans le listing 9.8

Optimisation du modèle

Dans la deuxième variante (à mon avis, plus préférable), les modèles sont réalisés sous la forme de fonctions situées dans un fichier séparé. Cela fournit une structuration supplémentaire pour vos modèles. J'appelle ce fichier le fichier d'initialisation et y stocke d'autres informations utiles. Comme nous avons déjà examiné les exemples relativement longs d'en-tête et de pied de page, les listings 9-10 et 9-11 ont été légèrement raccourcis pour illustrer la nouvelle idée.

Liste 9.10. Modèle de site optimisé (site_init.tpl)

// Fichier : site_init.tpl

// Objectif : fichier d'initialisation PhpRecipes

$site_name = "PHPRecipes" ;

$site_email = " [courriel protégé]";

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

fonction show_header($site_name) (

<? print $site_name: ?>

C'est l'en-tête

fonction afficher le pied de page()

C'est le pied de page

Liste 9.11. Application d'un fichier d'initialisation

// Inclut le fichier d'initialisation

include("site_init.tpl");

// Afficher le titre

afficher l'en-tête($site_name);

// Contenu du corps Ceci est une information sur le corps

// Afficher le pied de page Show_footer();

Projet : générateur de pages

Alors que la plupart des sites Web que j'ai créés ont généré le contenu principal des pages en fonction des informations lues dans la base de données, il y aura toujours quelques pages qui changeront à peine. En particulier, ils peuvent afficher des informations sur l'équipe de développement, des informations de contact, des publicités, etc. Je stocke généralement ces informations "statiques" dans un dossier séparé et j'utilise un script PHP pour les charger à la demande. Bien sûr, vous avez une question - s'il s'agit d'informations statiques, à quoi sert le script PHP ? Pourquoi ne pas charger des pages HTML normales ? L'avantage de PHP est que vous pouvez utiliser des modèles et insérer des extraits statiques selon vos besoins.

<а href = "/static.php?content=$content">Nom de page statique

Commençons par créer des pages statiques. Pour simplifier, je me limiterai à trois pages contenant des informations sur le site (Liste 9.12), la publicité (Liste 9.13) et les informations de contact (Liste 9.14).

Liste 9.12. Informations sur le site (about.html)

À propos des recettes PHP

Quel programmeur ne mélange pas la programmation toute la nuit avec des biscuits gourmands. Ici, à PHPRecipes. Il ne se passe pas une nuit sans qu'un de nos codeurs ne mélange un peu de HTML avec une savoureuse assiette de champignons Portobello ou même de fondue. Nous avons donc décidé de vous apporter le meilleur de ce qu'on aime le plus : PHP et la bouffe !

C'est vrai, lecteurs. Tutoriels, scripts, soufflés et plus encore. 0uniquement sur PHPRecipes.

Informations publicitaires

Qu'ils viennent pour apprendre les dernières techniques PHP ou pour se perfectionner

pour cuire du poulet, vous pouvez parier que nos lecteurs sont des décideurs. Ils sont l'industrie

professionnels qui décident de ce que leur entreprise achète.

Pour des informations publicitaires, contactez

">[courriel protégé].

Liste 9.14. Coordonnées (contact.html)

Contactez-nous

Vous avez une astuce de codage ?

Connaissez-vous la garniture parfaite pour les ignames confites ?

Faites le nous savoir! Contactez l'équipe au [courriel protégé].

Passons à la construction de la page static.php, qui affiche les informations statiques demandées. Ce fichier (voir Listing 9-15) inclut les composants de la page de notre site et le fichier d'initialisation site_init.tpl.

Liste 9.15. Sortie générale des pages statiques (static.php)

// Fichier : statique.php

// Objectif : afficher les pages statiques demandées.

// ATTENTION : on suppose que le fichier "site_init.tpl" et tout

// les fichiers statiques sont dans le même répertoire.

// Charger les fonctions et les variables include("site_init.tpl") :

// Afficher le titre show_header($site_name);

// Afficher le contenu demandé include("$content.html") :

// Afficher le pied de page afficher le pied de page();

Maintenant, tout est prêt pour construire le script principal. Inclure simplement dans la page

<а href = "static.php?content=about">Nom de page statique

Informations publicitaires

Contactez-nous

Cliquer sur l'un de ces liens chargera la page statique correspondante intégrée dans static.php dans le navigateur !

Résultats

Dans ce chapitre, vous avez découvert l'objectif principal pour lequel PHP a été conçu : la construction dynamique de pages Web. Les questions suivantes ont été examinées :

  • traitement d'URL ;
  • créer du contenu dynamique ;
  • inclusion et construction de modèles de base.

Le chapitre se termine par un générateur de pages, un programme qui charge des pages statiques dans un modèle et facilite la gestion d'un grand nombre de pages HTML statiques.

Le chapitre suivant traite de l'utilisation de PHP en combinaison avec des formulaires HTML pour améliorer considérablement l'interactivité de votre site. Et puis - interaction avec les bases de données ! Vous devez apprendre beaucoup de choses intéressantes.

Bonjour! Nous allons maintenant essayer de mettre en œuvre l'enregistrement le plus simple sur le site en utilisant PHP + MySQL. Pour ce faire, Apache doit être installé sur votre ordinateur. Le fonctionnement de notre script est illustré ci-dessous.

1. Commençons par créer la table des utilisateurs dans la base de données. Il contiendra les données de l'utilisateur (login et mot de passe). Passons à phpmyadmin (si vous créez une base de données sur votre PC http://localhost/phpmyadmin/). Créer un tableau utilisateurs, il aura 3 champs.

Je le crée dans la base de données mysql, vous pouvez le créer dans une autre base de données. Ensuite, définissez les valeurs, comme dans la figure :

2. Une connexion à cette table est requise. Créons un fichier bd.php. Son contenu :

$db = mysql_connect("votre serveur MySQL","connectez-vous à ce serveur","mot de passe pour ce serveur");
mysql_select_db ("nom de la base de données à laquelle se connecter", $db);
?>

Dans mon cas ça ressemble à ça :

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

Nous sauvons bd.php.
Excellent! Nous avons une table dans la base de données, une connexion à celle-ci. Vous pouvez maintenant commencer à créer une page où les utilisateurs laisseront leurs données.

3. Créez un fichier reg.php avec du contenu (tous les commentaires à l'intérieur) :



Inscription


Inscription
















4. Créer un dossier, qui entrera des données dans la base de données et enregistrera l'utilisateur. save_user.php(commentaires à l'intérieur):



{
}
//si le login et le mot de passe sont entrés, alors nous les traitons afin que les balises et les scripts ne fonctionnent pas, vous ne savez jamais ce que les gens peuvent entrer


// supprimer les espaces supplémentaires
$login = trim($login);
$password = trim($password);
// se connecte à la base de données
// vérifie l'existence d'un utilisateur avec le même login
$result = mysql_query("SELECT id FROM utilisateurs WHERE login="$login"",$db);
if (!empty($maligne["id"])) (
exit("Désolé, le nom d'utilisateur que vous avez entré est déjà enregistré. Veuillez entrer un autre nom d'utilisateur.");
}
// s'il n'y en a pas, enregistrez les données
$result2 = mysql_query ("INSERT INTO users (login,password) VALUES("$login","$password")");
// Vérifie s'il y a des erreurs
si ($result2=="TRUE")
{
echo "Vous vous êtes inscrit avec succès ! Vous pouvez maintenant accéder au site. Page principale";
}
autre(
echo "Erreur ! Vous n'êtes pas connecté.";
}
?>

5. Maintenant, nos utilisateurs peuvent s'inscrire ! Ensuite, vous devez créer une "porte" pour entrer sur le site pour les utilisateurs déjà enregistrés. index.php(commentaires à l'intérieur):

// toute la procédure fonctionne sur les sessions. C'est dans celui-ci que les données de l'utilisateur sont stockées pendant qu'il est sur le site. Il est très important de les lancer en tout début de page !!!
session_start();
?>


Page d'accueil


Page d'accueil











S'inscrire



// Vérifie si les variables login et user id sont vides
si (vide($_SESSION["login"]) ou vide($_SESSION["id"]))
{
// Si vide, nous n'affichons pas le lien
echo "Vous êtes connecté en tant qu'invité
Ce lien n'est disponible que pour les utilisateurs enregistrés" ;
}
autre
{

Dans le fichier index.php nous afficherons un lien qui ne sera ouvert qu'aux utilisateurs enregistrés. C'est tout l'intérêt du script - restreindre l'accès à toutes les données.

6. Il existe un fichier avec vérification du login et du mot de passe saisis. testreg.php (commentaires à l'intérieur):

session_start();// toute la procédure fonctionne sur les sessions. C'est dans celui-ci que les données de l'utilisateur sont stockées pendant qu'il est sur le site. Il est très important de les lancer en tout début de page !!!
if (isset($_POST["login"])) ( $login = $_POST["login"]; if ($login == "") ( unset($login);) ) //mettre le login saisi par l'utilisateur dans la variable $login, si elle est vide, alors nous détruisons la variable
if (isset($_POST["password"])) ( $password=$_POST["password"]; if ($password =="") ( unset($password);) )
//met le mot de passe saisi par l'utilisateur dans la variable $password, si elle est vide, puis détruit la variable
if (empty($login) or empty($password)) //si l'utilisateur n'a pas entré d'identifiant ou de mot de passe, alors nous émettons une erreur et arrêtons le script
{
exit("Vous n'avez pas saisi toutes les informations, revenez en arrière et remplissez tous les champs !");
}
//si le login et le mot de passe sont entrés, alors nous les traitons afin que les balises et les scripts ne fonctionnent pas, vous ne savez jamais ce que les gens peuvent entrer
$login = stripslashes($login);
$login = htmlspecialchars($login);
$password = stripslashes($password);
$password = htmlspecialchars($password);
// supprimer les espaces supplémentaires
$login = trim($login);
$password = trim($password);
// se connecte à la base de données
include("bd.php");// le fichier bd.php doit être dans le même dossier que tout le monde, si ce n'est pas le cas, changez simplement le chemin

$result = mysql_query("SELECT * FROM utilisateurs WHERE login="$login"",$db); //récupérer toutes les données sur l'utilisateur avec le login saisi à partir de la base de données
$maligne = mysql_fetch_array($result);
si (vide($maligne["mot de passe"]))
{
//si l'utilisateur avec le login saisi n'existe pas
}
autre(
// s'il existe, vérifier les mots de passe
if ($myrow["password"]==$password) (
//si les mots de passe correspondent, alors nous démarrons la session pour l'utilisateur ! Vous pouvez le féliciter, il est entré !
$_SESSION["login"]=$myrow["login"] ;
$_SESSION["id"]=$myrow["id"];//ces données sont très souvent utilisées, donc l'utilisateur connecté les "portera"
echo "Vous avez réussi à vous connecter au site ! Page principale" ;
}
autre(
// si les mots de passe ne correspondent pas

Exit("Désolé, le login ou le mot de passe que vous avez entré est incorrect.");
}
}
?>

OK, tout est fini maintenant ! Peut-être que la leçon est ennuyeuse, mais très utile. Seule l'idée d'inscription est présentée ici, vous pouvez ensuite l'améliorer : ajouter une protection, un design, des champs de données, télécharger des avatars, vous déconnecter de votre compte (pour cela, il suffit de détruire les variables de la session avec la fonction non défini) etc. Bonne chance!

Tout vérifié, ça marche bien !

Dans la dernière leçon, nous avons déterminé en quoi consistera le modèle de voyage, afin que vous puissiez commencer. Commençons par créer deux dossiers :

images - ce dossier contiendra tous les fichiers image utilisés pour styliser le modèle. Car nous n'avons pas encore de développements de conception, alors jetez n'importe quel fichier graphique dans ce dossier, sinon Joomla n'installera pas le modèle et donnera une erreur si le dossier est vide.

ATTENTION : Les graphiques de contenu ne peuvent pas être placés dans le dossier images du modèle !

css - ce dossier contiendra fichiers de feuille de style en cascade. Pour commencer, plaçons-y un fichier template.css vide, à l'aide duquel différents styles de conception seront attribués aux éléments du site.

Ensuite, vous pouvez commencer à créer le fichier index.php le plus important, qui déterminera l'emplacement visuel des éléments du site et indiquera au CMS Joomla dans quel bloc placer divers composants et modules. Le fichier est une combinaison de PHP et HTML.

J'utilise toujours uniquement Macromedia Dreamweaver lors de l'écriture de code. Un excellent programme, je le conseille vivement aux débutants, car. si vous faites une erreur en travaillant sur le code, le programme mettra définitivement en évidence votre jambage.

Sur le site vous trouverez un tutoriel sur Macromedia Dreamweaver. Si vous envisagez de développer des sites Web, ce programme doit être maîtrisé, au moins au niveau initial, afin de modifier les codes de modèle sans erreur.

Le positionnement des éléments (blocs) de la page se fait à l'aide de code HTML, plus précisément nous utiliserons des balises DIV. Mais la façon dont notre site fonctionnera sur le moteur Joomla, c'est-à-dire il sera dynamique, vous devrez également utiliser le langage PHP. Avec son aide, nous déterminerons dans quels blocs les positions d'affichage des modules seront situées, et comment ces positions seront appelées, si les blocs vont s'effondrer ou non. Connectons les feuilles de style à partir de fichiers externes, la langue du contenu, définissons comment la taille du site va changer, etc.

index.php

En-tête de fichier

L'en-tête du fichier se compose de plusieurs parties. La première partie du code d'en-tête PHP consiste à s'assurer que le fichier n'est pas accessible directement pour des raisons de sécurité.

< ?php
défini ("_JEXEC" ) ou die ;
JHtml::_("behavior.framework" , true ) ;
$app = JFactory::getApplication() ;
?>
< ?php echo "< ?" ; ?> xml version="1.0" encodage=" < ?php echo $cette-> _charset ?> "?>

DOCTYPE est un paramètre très important sur la base duquel le navigateur décide comment afficher cette page et comment interpréter le CSS.

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

Les extraits suivants langue installée de la configuration globale.

< html xmlns= "http://www.w3.org/1999/xhtml" xml:lang=" < ?php echo $cette->langue ; ?>" lang=" < ?php echo $cette->langue ; ?>" rép=" < ?php echo $cette-> orientation ; ?>" >

Voici un extrait de code qui inclut Informations Complémentaires pour l'en-tête défini dans la configuration globale. Vous pouvez voir ces informations en consultant le code source de n'importe quelle page Web. En particulier, ce sont les balises meta que vous connaissez déjà.

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

Les lignes suivantes dans l'en-tête contiennent des liens vers les principaux styles CSS de Joomla.

< link rel= "stylesheet" href= "< ?php echo $cette-> baseurl ?> /templates/system/css/system.css" type="texte /css" / >
< link rel= "stylesheet" href= "< ?php echo $cette-> baseurl ?> /templates/system/css/general.css" type="texte /css" / >

Pour utiliser les styles de conception de modèles, nous créons un lien vers le fichier contenant les feuilles de style en cascade template.css, qui se trouve dans le dossier CSS. Peu importe que ce fichier soit encore vide, l'essentiel est de le connecter, nous nous occuperons de la conception plus tard lorsque nous installerons le modèle sur Joomla. Cela permettra de voir plus facilement le résultat.

< link rel= "stylesheet" href= "< ?php echo $cette-> baseurl ?> /templates/< ?php echo $cette-> modèle ?> / css/ modèle.css" type="texte /css" / >

L'extrait de code suivant nous permet de réduire les colonnes de gauche ou de droite s'il n'y a pas de modules dans les positions "gauche" et "droite". Si les deux colonnes sont réduites, le contenu occupe 100 % de la largeur de la page. Si une seule colonne est incluse, le contenu occupe 80 %. Avec deux colonnes incluses, le contenu représente 60 % de la largeur de la page.

< ?php
si ($ cette-> countModules("left and right" ) == 0) $contentwidth = "100" ;
si ($ cette-> countModules("left or right" ) == 1) $contentwidth = "80" ;
si ($ cette-> countModules("left and right" ) == 1) $contentwidth = "60" ;
?>

Fermeture de l'en-tête

< / head>

< body>

Le bloc « page » contient le design de la seule page du site, ce sera la largeur de 950px.

< div id= "page" >

Le bloc "top" est situé tout en haut de la page et contient deux blocs "logo" et "user1".

< div id= "top" >

Dans le bokeh « logo », nous placerons le fichier graphique du logo, celui-ci sera écrit dans les feuilles de style. Mais nous écrivons la sortie automatique du nom du site dans le fichier index.php, et le nom est placé dans la balise H1, ce qui est très important pour l'optimisation des moteurs de recherche.

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

Définissons la position "user1" dans le bloc du même nom pour afficher le module de recherche de site.

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

Sortie du module de menu horizontal dans le bloc "user2" à la position "user2". Le bloc s'effondrera s'il n'y a pas de module à cette position.

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

Vient ensuite le bloc d'en-tête du site "header". Dans celui-ci, nous définirons la position "en-tête" pour la sortie des modules. Le bloc s'effondrera s'il n'y a pas de module à cette position. J'ai intentionnellement étendu les capacités de ce bloc afin de pouvoir y placer non seulement l'image d'en-tête, mais également les rotateurs d'image.

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

Dans le bloc "user3", définir la position "user3" pour l'affichage des modules.

Le bloc se repliera si aucun module n'est affiché à cette position "user3".

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

Le bloc de la colonne de gauche s'ouvre, qui s'effondrera s'il n'y a pas de module en position « gauche ».

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

Le bloc de contenu le plus important s'ouvre, qui peut occuper 100 % de la largeur de la page, 80 % et 60 %, selon le nombre de colonnes incluses.

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

Affichage des messages dans les composants

< jdoc:include type= "message" / >

Sortie de contenu.

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

Le bloc de la colonne de droite s'ouvre, qui sera réduit s'il n'y a pas de module dans la position « droite ».

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

Sortie du bloc "footer", conçu pour afficher le module "code HTML" avec les informations de copyright. Vous pouvez également placer le bas ici menu horizontal ou un module de présentation de contenu. Le bloc s'effondrera si plus d'un module n'est pas affiché dans cette position de "pied de page"

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

Le bloc de page du site "page", le corps et tout le code sont fermés.

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

Nous avons créé un fichier index.php complet. Vous savez maintenant avec quelles commandes et dans quel ordre les blocs de modèle sont affichés.

ATTENTION : Pour que le code du modèle soit lu depuis le panneau d'administration de joomla, le fichier index.php doit être ouvert dans l'éditeur AkelPad et enregistré en encodage UTF-8, tout en décochant BOM. Si vous avez utilisé le programme Macromedia Dreamweaver pour travailler avec le fichier, vous devez alors sélectionner "Edition" > "Propriétés de la page" dans le menu de retour et sélectionner le codage de document Unicode (utf-8), tout en décochant "activer les signatures Unicode (BOM )". Cependant, je vous déconseille fortement de modifier le code depuis le panneau d'administration de Joomla, si vous bousillez quelque chose - il n'y a pas de retour en arrière, contrairement au programme Macromedia Dreamweaver, où vous pouvez toujours annuler les modifications apportées.

La conception même des blocs sera décrite dans template.css. Mais nous personnaliserons les feuilles de style après avoir installé le modèle sur Joomla 3 (joomla 2.5), et pour cela, vous devez créer

Créez un fichier appelé hello.php dans le répertoire racine du serveur Web (DOCUMENT_ROOT) et écrivez-y ce qui suit :

Exemple #1 Premier script PHP : hello.php



Tester PHP


"

Bonjour le monde!

" ; ?>

ouvert fichier donné dans un navigateur en tapant le nom de votre serveur Web et /bonjour.php. Lors du développement local, ce lien pourrait être quelque chose comme http://localhost/hello.php ou http://127.0.0.1/hello.php, mais cela dépend des paramètres de votre serveur. Si tout est correctement configuré, ce fichier sera traité par PHP et le navigateur affichera le texte suivant :

Test PHP

Bonjour le monde

Ce programme est extrêmement simple et vous n'avez même pas besoin d'utiliser PHP pour créer une page aussi simple. Tout ce qu'elle fait c'est inférer Bonjour le monde en utilisant l'instruction PHP écho. Veuillez noter que le fichier n'a pas besoin d'être exécutable ou autrement différent des autres fichiers. Le serveur sait que ce fichier doit être traité par PHP parce que le fichier a une extension ".php", dont les paramètres du serveur indiquent que ces fichiers doivent être transmis à PHP. Considérez-le comme un fichier HTML normal qui a la chance d'avoir un ensemble de balises spéciales (également disponibles pour vous) qui peuvent faire beaucoup de choses intéressantes.

Si cet exemple n'affiche rien pour vous ou affiche une fenêtre de téléchargement, ou si vous voyez l'intégralité de ce fichier sous forme de texte, il est fort probable que votre serveur Web ne prenne pas en charge PHP ou qu'il ait été configuré de manière incorrecte. Demandez à votre administrateur de serveur d'activer cette prise en charge. Proposez-lui des instructions d'installation : la section Installation de cette documentation. Si vous développez des scripts PHP chez vous (localement), lisez également ce chapitre pour vous assurer que tout est correctement configuré. Assurez-vous également que vous demandez le fichier au serveur via le protocole http. Si vous ouvrez simplement le fichier à partir de votre système de fichiers, il ne sera pas traité par PHP. Si les problèmes persistent, n'hésitez pas à demander de l'aide à l'un des reçus de support PHP.

Le but de l'exemple est de montrer le format des balises spéciales PHP. Dans cet exemple, nous avons utilisé comme balise d'ouverture, suivie des commandes PHP se terminant par la balise de fermeture ?> . De cette façon, vous pouvez "entrer" et "sortir" du mode PHP n'importe où dans le fichier HTML. Vous pouvez en savoir plus à ce sujet dans la section Syntaxe de base du manuel.

Commentaire: Une note sur les nouvelles lignes

Les sauts de ligne ne signifient pas grand-chose en HTML, mais c'est une bonne idée de garder le HTML lisible en l'enveloppant sur une nouvelle ligne. PHP supprime automatiquement les nouvelles lignes immédiatement après la balise de fin ?> . Cela peut être extrêmement utile si vous utilisez de nombreux blocs de code PHP ou si vous incluez des fichiers PHP qui ne devraient rien produire. En même temps, cela peut être déroutant. Vous pouvez mettre un espace après la balise fermante ?> puis l'espace sera sorti avec la nouvelle ligne, ou vous pouvez spécifiquement ajouter une nouvelle ligne au dernier appel echo/print à partir du bloc de code PHP.

Commentaire: Quelques mots sur les éditeurs de texte

Il y a beaucoup de éditeurs de texte et des environnements de développement intégrés (IDE) où vous pouvez créer et modifier des fichiers PHP. Pour une liste de certains éditeurs, voir » Liste des éditeurs PHP. Si vous souhaitez recommander un éditeur, veuillez visiter cette page et demander qu'un éditeur soit ajouté à la liste. L'utilisation d'un éditeur avec coloration syntaxique peut être d'une grande aide pour votre travail.

Commentaire: Quelques mots sur les traitements de texte

Traitements de texte (StarOffice Writer, Microsoft Word, Abiword, etc.) dans la plupart des cas ne conviennent pas à l'édition Fichiers PHP. Si vous souhaitez toujours utiliser l'un ou l'autre pour votre script de test, assurez-vous d'enregistrer le fichier sous texte brut(texte brut), sinon PHP ne pourra pas lire et exécuter votre script.

Commentaire: Quelques mots sur le Bloc-notes Windows

Lors de l'écriture de scripts PHP à l'aide de la fonction intégrée Bloc-notes Windows il est nécessaire d'enregistrer les fichiers avec l'extension .php. (Le Bloc-notes ajoutera automatiquement l'extension .txt si vous ne suivez pas les étapes suivantes.) Lorsque vous êtes invité à entrer un nom de fichier lors de l'enregistrement d'un fichier, tapez le nom de fichier entre guillemets doubles (par exemple, " hello.php "). De plus, vous pouvez cliquer sur le menu déroulant " Documents texte" dans la boîte de dialogue d'enregistrement du fichier et sélectionnez "Tous les fichiers". Après cela, vous pouvez entrer le nom du fichier sans les guillemets.

Maintenant que vous avez réussi à créer un script PHP fonctionnel, il est temps de créer le script PHP le plus célèbre de tous les temps ! Appeler une fonction phpinfo() et vous verrez beaucoup informations utiles sur votre système et votre configuration, telles que les variables prédéfinies disponibles, les modules PHP chargés et les options de configuration. Prenez le temps d'étudier ces informations importantes.

Exemple #2 Obtenir des informations système depuis PHP

Pour résoudre le troisième problème, le programme Denwer, qui peut être installé gratuitement sur votre ordinateur, est bien adapté. Si vous ne savez pas de quel type de programme il s'agit, alors je vous conseille de lire : comment installer Denwer, cet article explique étape par étape (pour les débutants) comment l'installer et comment l'utiliser.

Bien sûr, il existe d'autres outils qui permettent d'interpréter PHP. Par exemple, Apatch, mais c'est assez compliqué dans les réglages, et si vous êtes débutant, alors je vous déconseille de commencer par ça.

Afin de commencer à développer un site en PHP, vous avez besoin de connaissances de base en HTML. J'ai déjà écrit sur la façon de créer une page HTML simple. Il décrit toutes les balises html, sans lesquelles il est impossible de créer un site. Par conséquent, je recommande fortement de commencer à étudier la création de sites à partir de cet article.

Quelle est la différence entre un site PHP et un site HTML nu ?

Un site PHP est presque impossible à distinguer d'un site HTML nu. La seule différence est une configuration et une gestion plus flexibles du site, ainsi que la possibilité d'automatiser de nombreuses fonctions. Je vais donner un exemple simple.

Disons que dans l'en-tête du site, vous devez changer littéralement un mot. Si le site est réalisé en HTML nu, il sera alors nécessaire d'ouvrir chaque fichier html afin d'apporter une modification, ce qui est très gênant. Si l'en-tête du site est créé en PHP en tant que composant de plug-in, les modifications ne devront être apportées qu'à un seul fichier et elles seront automatiquement modifiées dans tout le site.

La structure d'un site PHP typique :

Maintenant, je vais donner le code du modèle de site en PHP. Veuillez noter que les pages créées en utilisant php sont recommandées avec l'extension .php, bien que ce ne soit pas une condition préalable. Sous certains paramètres d'hébergement, les fichiers avec l'extension habituelle .html peuvent également traiter du code PHP.

Code du fichier index.php :

<span>Titre de la page</span> ... $_SERVER["DOCUMENT_ROOT"]."/head.php"; ?> ... ...
$_SERVER["DOCUMENT_ROOT"]."/top.php"; ?>
...
...
... La partie principale du site...
... ... ...

Examinons maintenant chacun des éléments connectés séparément :

  • tête.php
  • top.php
  • sidebar1.php
  • sidebar2.php
  • footer.php

Veuillez noter qu'ils sont connectés via une commande PHP spéciale :

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

Chaque fichier est respectivement responsable d'une partie distincte du site. J'ai essayé de les nommer aussi informatifs et compréhensibles que possible. Le site peut être composé d'un plus grand nombre de ces plug-ins. Regardons chaque élément dans l'ordre de haut en bas.