YBET Rue Albert 1er, 7 6810 Pin - Chiny Route Arlon - Florenville (/fax: 061/32.00.15 |
Le PHP - MySQL, créer un site internet dynamique |
|
YBET informatique | Contact |
1. Création de fonctions personnelles. - 2. Fonction conditionnelle si - 3. Fonction répétitive WHILE - 4. Opérateurs logiques - 5. La commande switch - 6. La commande isset() - 7. Informations sur les visiteurs - 8. Fonction include() et require()
Cette partie du cours PHP va nous permettre de créer nos propres fonctions et d'utiliser des fonctions plus complexes pour la création de notre site Internet. La principale partie reprend les tests en boucles et les paramètres de comparaison pour les conditions. Toutes ne sont pas proposées ici.
Créer une fonction en PHP va nous permettre de définir des fonctionnalités supplémentaires dans nos pages Internet et de les réutiliser au sein d'une même page. En php 3, les fonctions doivent être établies au préalable (en début de page), plus en PHP4 et suivants. La syntaxe d'une fonction est:
|
FUNCTION (mot réservé) permet de spécifier que les lignes suivantes (encadrées par { et }) reprennent les arguments d'une fonction.
$argument1 et $argument2 sont des variables transférées à la fonction, $variable, le résultat (précédé de return).
Comme exemple, créons la fonction qui calcule et affiche un prix TVA comprise suivant un prix de départ et un taux de TVA
<?php |
Ces lignes affichent le prix TVAc d'un produit de 19,23 € pour un taux de 21 %, soit 23,2683
Remarques:
Comme beaucoup d'autres langages de programmation, PHP utilise la fonction IF pour les opérations conditionnelles. Sa structure:
|
Si la condition 1 est vraie, le programme exécute la fonction1, sinon, elle vérifie la condition 2. Si cette condition est remplie, elle exécute la fonction2. Si les premières conditions ne sont pas corretes, c'est la fonction3 qui est exécutée.
Le tableau suivant reprend les comparaisons possibles.
condition | exemple | Utilisation |
= = | $valeur1==$valeur2 | égal: vrai si $valeur1 est égal à $valeur2 |
= = = | $valeur1===$valeur2 | identique: vrai si $valeur1 est égal à $valeur2 et s'ils sont de même type (à partir de PHP version 4) |
<> | $valeur1<>$valeur2 | différent: vrai si $valeur1 est différente de la $valeur2 |
< | $valeur1<$valeur2 | inférieur: vrai si $valeur1 est inférieure à $valeur2 |
> | $valeur1>$valeur2 | supérieur: vrai si $valeur1 est supérieure à $valeur2 |
<= | $valeur1<=$valeur2 | inférieur ou égal: vrai si $valeur1 est inférieure ou égale à $valeur2 |
>= | $valeur1>=$valeur2 | supérieur ou égal: vrai si $valeur1 est supérieure ou égale à $valeur2 |
Le sigle égal est réservé pour introduire des données dans une variable. Dans les versions inférieures à PHP 4, "1" == 1 renvoie la valeur vraie (même s'ils sont de types différents).
Cette fonction permet de faire une boucle tant que la condition est vraie. Attention de mettre une valeur qui varie dans le temps (par exemple un compteur qui s'incrémente à chaque boucle), sinon, le programme tourne sur lui même à l'infini (en boucle).
While(condition) |
En PHP, la fonction While peut par exemple afficher les nombre de 0 à 9 par le script:
|
Comme dans la majorité des langages de programmations, vous pouvez utiliser les fonctions Et et Ou dans les fonctions conditionnelles Si:
Comparateur | exemple | Nom | description |
AND | $valeur1 AND $valeur2 | ET | Vrai si toutes les conditions sont exactes |
OR | $valeur1 OR $valeur2 | Ou | Vrai si une des condition est exacte |
XOR | $valeur1 XOR $valeur2 | Ou exclusif | Vrai si une des condition est exacte, mais pas toutes en même temps |
! | ! $valeur1 | Non | Vrai si $valeur1 est fausse |
&& | $valeur1 && $valeur2 | ET | Vrai si toutes les conditions sont exactes |
|| | $valeur1 || $valeur2 | Ou | Vrai si une des condition est exacte |
La commande Switch permet de définir une liste de commande en fonction d'une variable.
switch($variable){ case valeur1: commmande 1 break; case valeur2: commande 2 break; default: commande avec valeur break; } |
Exemple:
<?php $variable=1; switch($variable){ case 1: echo '1'; break; case 2: echo'2'; break; default: echo'autre valeur'; break; } ?> |
Ce petit programme affiche 1 si $variable vaut 1, 2 si la variable est 2 et autre dans tous les autres cas.
La commande ISSET() est régulièrement utilisée dans les fonctions conditionnelles, elle vérifie si une variable est définie et renvoie true (Vrai). Dans le cas contraire, la fonction renvoie False (faux).
Prenons un exemple:
<?PHP $a="valeur"; print(isset($a)); print(" -la valeur a est bien définie<br>"); print(isset($b)); ?> |
Affichera "1 - La valeur a est bien définie". Remarquez que la fonction ISSET($b) n'est pas affichée. Nous pouvons modifier nos lignes de commandes comme:
<?php If (isset($b)==FALSE){ print ("Valeur PHP b non définie"); } ?> ou <?php if (!isse($b) { print ("variable PHP b non définie"); } |
Nous avons inséré la commande print("<br>"); qui envoie un saut de ligne et utilisé une ligne de commande Si pour afficher "Valeur PHP b non définie". Remarquez que pour tester l'égalité, nous utilisons ==. Le signe = est utilisé uniquement pour associer une valeur à une variable. La deuxième méthode utilise la négation ! (différent de) et donne un résultat identique.
PHP inclut en standard quelques fonctions permettant de mieux connaître les visiteurs d'un site. Elles sont automatiquement récupérées par PHP.
Les données sont intégrées dans un tableau $_SERVER["ligne"]="valeur" ($HTTP_SERVER_VARS["ligne"]= "Valeur" dans les anciennes versions PH3, et PH4). Les valeurs possibles sont:
Fonction | description | exemple de valeur |
$_SERVER["REMOTE_ADDR"] | adresse IP de l'internaute | 62.32.56.269 |
$_SERVER["HTTP_USER_AGENT"] | Type de navigateur utilisé |
- Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; .NET CLR
1.1.4322): Windows 2000 sous Internet explorer 6.0 - Mozilla/5.0 (Windows; U; Windows NT 5.0; fr; rv:1.8.0.1) Gecko/20060111 Firefox/1.5.0.1: Win 2000 sous Firefox1.5 |
$_SERVER["SCRIPT_FILENAME"] | le nom du fichier PHP en cours | index.php |
$_SERVER["REQUEST_URI"] | L'adresse de la page sans le nom de domaine | /index.php ou / |
$_SERVER["REQUEST_METHOD"] | procédure pour obtenir la page | Par défaut GET, sauf pour les formulaires ou l'on peut également utiliser la fonction POST |
$_SERVER["HTTP_REFERER"] | nom complet de la page Internet précédente | L'adresse complète de la page qui fait un lien. Depuis PHP 5.3, cette commande donne une erreur en cas d'accès direct (par les favoris par exemple) |
$_SERVER["HTTP_HOST"] | le nom de domaine de la page | http://www.ybet.be |
L'affichage de ces valeurs utilise les fonctions en Print() ou Echo.
Exemple d'utilisation:
<?PHP date_default_timezone_set('Europe/Brussels'); // évite le message d'erreur à partir de 5.3 print('Nous sommes le '); print(date('d/m/Y')); print('. Il est actuellement '); print(date('H:i:s')); print('.'); Print(' Ton adresse Internet IP '); Print($_SERVER['REMOTE_ADDR']); print(" "); Print($_SERVER['HTTP_USER_AGENT']); print("Ta page d'arrivée est: "); print($_SERVER['HTTP_REFERER']); ?> |
Nous sommes le 22/12/2024. |
PHP permet d'intégrer des fichiers (contenu) dans des pages. Prenons quelques exemples: insérer une partie navigation, insérer des fonctions, ... sur plusieurs pages. L'idée est de créer un fichier à part reprenant une page php, html ou même javascript et de l'insérer sur une page existante. L'avantage est d'automatiser les modifications en ne modifiant que un fichier à part.
PHP utilise deux fonctions distinctes pour intégrer d'autres fichiers dans une page:
require('fichier'); inclus le contenu du fichier dans la page et arrête le script si le fichier est introuvable.
include('fichier'); même fonction mais n'arrête pas le programme si le fichier ,'existe pas.
Ces deux fonctions seront utilisées de différentes manières.
Nous utiliserons l'une ou l'autre très souvent dans la suite, notamment pour exécuter les codes de connexion aux bases de données MySQL.
En complément: Utilisation des variables $_server, détection et interdiction des visiteurs non standards
> 5. Variables en tableaux |
Mise en ligne: 20/02/2006, modification 24/03/2012 (PHP 5.3)