Upload
hamalaadm
View
932
Download
0
Embed Size (px)
Citation preview
SI405C –Les logiciels libres de gestion de conte nu
Initiation au langage de programmation PHP
Ecoles des Sciences de l’InformationEcoles des Sciences de l’Information
Enseignants : Ahmed BACHR Hassan HAMALA
Année universitaire : 2007-2008
SI405C –Les logiciels libres de gestion de conte nu
1
…
2
…
3
…
4
…
5
…
6
…
Contenu
Présentation du langage PHP
Qu’est ce que le PHP ?
Les principes de base
Les fonctions d’affichage
Connexion à une BDD Mysql La lecture des données dans une BDD Mysql
SI405C –Les logiciels libres de gestion de conte nu
Présentation du langage PHP?
Pages Web statiques :– Actualisation difficile (FTP, template, …)– Manque d’interactivité pour l’internaute– Aucune automatisation possible pour les tâches d’administration (test des liens morts, gestion d’utilisateurs impossible, pas detemplate…)
Pages web dynamiques :– La page est générée en fonction des paramètres qui lui sont passés– Interaction avec l’internaute– Possibilité d’interaction avec les bases de données– Réduction du nombre de pages sur le serveur– Tâches de maintenances automatisées ou centralisés
SI405C –Les logiciels libres de gestion de conte nu
Qu’est ce que le PHP?
PHP signifiait à l'origine Personnal Home Page, on considère maintenant qu'il veut dire PHP Hypertext Preprocessor.
PHP est un langage de script côté serveur. C'est-à-dire qu'il est utilisé pour écrire des petits programmes (scripts), qui seront appelés par un client (navigateur Web) en leur passant des valeurs issues d’un formulaire d'une page HTML, et qui seront exécutés par le serveur. Le résultat sera par exemple une page HTML renvoyée au client.
PHP est un langage interprêté par le serveur : le serveur lit le code PHP le traduit en langage machine, l’exécute et génère la page HTML qu’il envoie au client.
SI405C –Les logiciels libres de gestion de conte nu
Les principes de base:
Le code PHP s'insère dans le code HTML au moyen des Balises (tags) :
<?php au début du script et ?> à la fin.
<html><head> <title>Le premier script</title></head><body><?phpecho"bonjour tout le monde";?></body></html>
Une instruction PHP se termine toujours par un point virgule. Si vous l'oubliez, votre
navigateur vous enverra des messages d'erreurs (parse error) NB : A la place des balises <?php et ?> peuvent être remplacées par <? et ?>, ou <SCRIPT LANGAGE="php"> et </SCRIPT>. On peut aussi utiliser les balises à la mode ASP de Microsoft <% et %>.
SI405C –Les logiciels libres de gestion de conte nu
SI405C –Les logiciels libres de gestion de conte nu
Commentez vos scripts :
Il est fortement conseiller de commenter vos scripts, afin d'en faciliter la compréhension. Ces commentaires vous seront très utiles, si vous décidez de reprendre un script sur lequel vous n'avez pas travaillé depuis un moment. Ces petites indications seront ignorées par le serveur et le navigateur ne les affichera pas.
<?// Vous placez ici votre commentaire.?>
A la place des // , on peut utiliser # . Ces signes sont adaptés à un commentaire sur une seule ligne. Si vous souhaitez apporter des commentaires plus longs, utilisez la syntaxe suivante :<?php instructions PHP
/* votre commentaire */
suite des instructions PHP?>
SI405C –Les logiciels libres de gestion de conte nu
Fonctions d’affichage<?phpecho “Les logiciels libres de gestion de contenu";?>
echo indique au navigateur qu'il faut afficher ce qui est placé entre les guillemets.
L'instruction peut être remplacée par print qui donne les mêmes résultats.
<?phpprint “Les logiciels libres de gestion de contenu ";?>
A l'aide de la balise echo, vous pouvez écrire du code HTML.
Exemple: <?phpecho "<p align='center'> Les logiciels libres de gestion de contenu</p>";?>
SI405C –Les logiciels libres de gestion de conte nu
Connexion à la BDD
1- Connexion à Mysql
Pour vous connecter, vous utiliserez la fonction PHP : mysql_connect(). <?php mysql_connect("localhost", « root", ""); //le nom de l’hôte, le login et le mot de passe par défaut?>
Cette fonction a besoin de 3 arguments qu'il vous faudra renseigner :
Le nom de l'hôte : c'est l'IP de l'ordinateur où MySQL est installé. Le plus souvent, MySQL est installé sur le même ordinateur que PHP. Dans ce cas, mettez la valeur "localhost ".Le login : ça permet de vous identifier. Le mot de passe : votre mot de passe déclaré au niveau du serveur
Le code suivant permet d'établir une connexion à MySQL :
SI405C –Les logiciels libres de gestion de conte nu
Connexion à la BDD
2- Sélection de la base de données
La fonction qui permet de sélectionner la BDD est : mysql_select_db()
<?phpmysql_connect("localhost", "root", ""); // Connexion à MySQL
mysql_select_db (" archivesi"); // Sélection de la base archivesi?>
3- La déconnexion
La fonction qui permet se déconnecter de MySQL est :mysql_close()
<?phpmysql_connect("localhost", « root", ""); // Connexion à MySQLmysql_select_db("archivesi"); // Sélection de la base archivesi
// On est connectés, on peut travailler sur la BDD// ...// On a fini de travailler, on ferme la connexion :mysql_close(); // Déconnexion de MySQL?>
SI405C –Les logiciels libres de gestion de conte nu
La lecture la BDD
1- Faire une requête
La fonction qui permet de faire une requête : mysql_query<?php$reponse = mysql_query ("SELECT titre_dossier FROM dossier");?>
•Cette fonction prend un paramètre : ce que PHP doit aller dire à MySQL (en langage SQL). •Cette fonction renvoie une valeur, il faut donc qu'une variable récupère ce que MySQL nous a répondu.<?php$reponse = mysql_query("Tapez votre requête SQL ici");?>
La variable $reponse contiendra la réponse de MySQL
Exemple:
SI405C –Les logiciels libres de gestion de conte nu
La lecture la BDD
1- Afficher le résultat de la requête <?phpmysql_connect("localhost", "root", ""); // Connexion à MySQLmysql_select_db(« archivesi"); // Sélection de la base archivesi$reponse = mysql_query("SELECT title_dossier FROM dossier"); // Requête SQL
// Avec cette boucle, on liste uniquement le titre des dossiers :
WHILE ($donnees = mysql_fetch_array($reponse) ){echo $donnees[‘titre_dossier];echo "<br />";}mysql_close(); // Déconnexion de MySQL?>
Le problème, c'est que $reponse affiche quelque chose d'inexploitable imaginez une table à 10 champs, avec 200 entrées, ça fait plus de 2000 informations dans une variable. PHP dispose d'une fonction toute prête, mysql_fetch_array, qui va créer un array à partir de $reponse
Par exemple, si vous vous intéressez au champ "Titre", vous utiliserez l'array $donnees[‘Titre']
SI405C –Les logiciels libres de gestion de conte nu
La lecture la BDD
1- Afficher le résultat de la requête(suite)
$reponse contenait la réponse de MySQL en vrac. $donnees est un array renvoyé par la fonction mysql_fetch_array. A chaque fois qu'on fait une boucle, mysql_fetch_array va chercher dans $reponse l'entrée suivante et organise les champs dans $donnees.
2- Traquer les erreurs
Pour afficher des détails sur l'erreur, prenez l'habitude de rajouter le code or die(mysql_error()) sur la même ligne que vos mysql_query.
$reponse = mysql_query("SELECT titre_dossier FROM dossier") or die(mysql_error());