Internet > Création web > Le PHP : Utilisation

Le PHP : Utilisation

Page précédente : Installation

 

 

Le PHP - Utilisation :

Attention : certains fournisseurs d'accès (Orange par exemple) n'autorisent pas l'utilisation de pages en PHP.
Se renseigner avant.

 

 

Premier exemple en PHP :

- créer une nouvelle page que l'on nomme essai.php
- copier-coller le texte suivant :

<html><head><title>PHP Test</title></head>
<body>
<?php echo "Premier essai en PHP<p>"; ?>
</body></html>

- enregistrer le document,
- ajouter un lien hypertexte sur une autre page pour accéder à la page essai,
- transférer les deux fichiers sur le serveur distant,
- visualiser le résultat dans le navigateur.

Exemple :

cliquer ici pour afficher la page essai.php

Pour tester cette page, il a fallu la transférer sur le serveur distant. Car il faut un serveur web pour l'afficher.
Afin de pouvoir visualiser la page sur son ordinateur, il faut installer un serveur web local.

 

 

Quelques fonctionnalités intéressantes quand on utilise des pages en php

PS : Pour qu'on puisse utiliser des fonctions PHP, il faut que les pages du site portent l'extension PHP
Si on a conçu son site en HTM, pour ne pas perdre son référencement, on peut utiliser l'URL Rewriting : voir ma page

 

Fonction include :

La fonction include est d'un grand intérêt dans le cadre de la conception de pages web :
Elle permet d'insérer une page à l'intérieur d'une autre page.

Cela est particulièrement utile pour insérer un menu dans les pages d'un site.

- On crée un menu sous forme de liste : exemple menu.inc.php
- Dans chaque page, on insère une commande include qui pointe vers le fichier menu.inc.php
A chaque ouvertur de la page, le serveur web incorporera le fichier menu à l'endroit choisi.
Très efficace.

C'est ce qui m'a fait adopter l'utilisation de pages en php (obligatoire pour utiliser des fonctions PHP et des includes)

 

Exemple d'une fonction include intégrée dans une balise DIV :

<div>
<?php include('menu.inc.php'); ?>
</div>

 

 

Organisation des dossiers lorsqu'on utilise des include :

C'est un point important.
L'utilisation d'include est plus difficile lorsqu'on a des fichiers dans des sous-dossiers.
On peut être obligé de mettre le fichier include dans chaque sous-dossier contenant des fichiers.

Deux solutions :

1 - On utilise des liens relatifs (exemple : ../inc/fichier.inc.php) = obligatoire de mettre le fichier include dans chaque dossier où il est fait appel.
2 - On utilise des liens absolus (exemple : http://www.monsite.com/inc/fichier.inc.php) = fonctionne dans toutes les situations... sauf qu'on ne peut pas tester le site en local (avec localhost)

 

"la grosse différence entre les includes PHP et les autres objets (feuilles CSS, images, scripts) c'est que PHP raisonne à partir de la page affichée, alors que les autres raisonnent à partir de leurs positions dans l'arborescence.

Donc, pour une page PHP de niveau 1 contenant script/include.php et script/feuille.css on a :

Fichier include.php
<img src="images/mon image.jpg" />

Fichier feuille.css
#mondiv { background: white url(images/monimage2.jpg); }

CSS est obligé(e) de remonter au niveau 1 (../) puis de redescendre (rep images), alors que PHP, partant de ce niveau 1, n'a pas besoin de remonter.
Ceci vient du fait que où que soit placé le fichier inclus, il est appelé par la page initiale : ses appels se font donc depuis là.

La solution est soit de s'affranchir du système de répertoire, soit de tenir compte de cette logique. "

Contribution d'Arsene, vu ici :
18/05/2009 : Forum.alsacreations.com - Url pour include : css + images et sous-dossiers ?

 

Voir également :

Commentcamarche.net - PHP: fonction include et liens relatifs

 

 

insertion d'un menu dynamique dans une page web :

La structure de mes pages consiste essentiellement en un tableau de trois colonnes :
- un menu à gauche,
- une partie texte au centre,
- un menu à droite.
Lorsque je rajoute une page, j'insère un lien hypertexte dans l'un des deux menus.
Or, cela m'oblige à modifier le menu sur toutes mes pages... donc à transférer toutes les pages à la moindre modification.
La fonction include me permet "d'inclure" les menus dans mes pages web, sans qu'ils en fasse partie.

 

Préalable :

PS : certains recommandent de nommer cette page avec l'extension : .inc.php
.inc = pour reconnaitre la page
.php = la véritable extension de la page qui empêche son affichage individuel (voir alsacreations)

Cela donnera : menu.inc.php

 

En pratique :

Je considère que les pages du site sont constituées d'un tableau divisé en deux colonnes : une pour le menu, une pour le texte.

1 - Création de la page menu.inc.php :

- créer une nouvelle page
- copier-coller uniquement le tableau constituant le menu du site (pas besoin de partie head ou body),
- nommer cette page menu.inc.php

 

2 - Insertion de la page menu.inc.php :

Pour chaque page du site, il faudra :
- sélectionner la partie menu (à l'intérieur des balises <TD> et </TD> si on utilise une présentation en tableau)
- la remplacer par l'appel de la fonction include, comme indiqué ci-dessous :

menu

texte

<? include("menu.inc.php") ;?>

 

Ou, en CSS, avec une balise DIV

 

3 - Renommage des pages web :

Pour que la fonction include fonctionne, il faudra évidemment renommer l'ensemble des pages du site avec l'extension .php.
On peut utiliser l'URL Rewriting pour conserver son référencement

 

4 - Créer une redirection :

Pour conserver son référencement, il faudra rediriger les appels pour les pages en HTM vers les pages en PHP

Deux façons de le faire :

URL Rewriting : la façon la plus efficace, et finalement la plus simple.

La redirection dans la partie HEAD de la page. Inconvénient : à faire pour chaque page redirigée :

Code à insérer dans la partie HEAD :

<meta http-equiv="refresh" content="0; URL=page.php">

(page.php sera à remplacer par le nom de la page correspondant)

 

 

Liens :

Alsacreations.com - Inclure un fichier dans un autre grâce à PHP - Qu'est-ce que la fonction include ?

Alsacreations.com - Le point sur la fonction PHP include

 

 

Redirection d'une page en php :

On préférera l'utilisation d'un fichier .HTACCESS : Voir ma page : Redirections - Fichier .htaccess

 

Si l'on veut renommer une page web :
exemple : pageweb.php en pageweb1.php
l'adresse correspondant à l'ancienne page (qu'elle se trouve dans les moteurs de recherche ou dans les Favoris d'un internaute) ne sera plus accessible : l'erreur 404 sera renvoyée = fichier non trouvé.

Pour remédier à ce problème, on peut conserver l'ancienne page avec seulement le texte suivant :

<?
header('Location: pageweb.php');
?>

"pageweb.php" est à remplacer par le nom de la page vers laquelle s'effectue la redirection.

 

 

register_globals  :

 

Journaldunet.com - Simplifier un code PHP avec register_globals = Off
"Comment alléger un programme ne fonctionnant qu'en "register_globals = On" en le rendant compatible avec "register_globals = Off" sans autre modification que l'inclusion d'un fichier d'une seule ligne...

Sur les serveurs Web correctement configurés, PHP fonctionne en "registers_global = Off": les variables des registres Environnement, GET, POST, Cookie, et Built-in (souvent désignées par variables EGPCS) ne sont pas vues comme des variables globales.
C'est naturellement plus sûr, en particulier pour les variables de formulaires qu'il est ainsi beaucoup plus dur d'abuser par une URL bien sentie...
Par contre c'est un peu plus lourd pour le programmeur qui doit, pour désigner la variable récupérée d'un formulaire, utiliser des lourds $_GET['toto'] ou $_POST['toto'] au lieu d'un simple $toto en register_globals = On.