Introduction au langage PHP - BTS Iris

Transcription

Introduction au langage PHP - BTS Iris
Programmation pour serveur web
Scripts exécutés sur machine serveur
•
Programmation de pages web statiques HTML ,XML
Un navigateur (netscape,iexplorer,mosaic) affiche la page HTML sélectionnée localement ou la page que lui envoie le serveur
HTTP (apache,iis) auquel il est connecté. Pour cela le navigateur a effectué une requête au serveur : le navigateur est client .
Le serveur répond aux requêtes des clients : il offre ses services et doit pouvoir répondre à n’importe quel moment ; il boucle
donc sans arrêt dans l’attente de nouvelles requêtes (daemon)
client web
Navigateur
serveur web HTTP
échange de documents Html
Requête
- Attente requête
- Traitement
-
Réponse
Réponse
vers attente requête
Internet ou Intranet
Le protocole HTTP est un protocole sans connexion : le client et le serveur terminent le processus à chaque commande.
D’une page à une autre les variables sont perdues à moins d’utiliser les cookies ou variables de sessions.
•
Programmation de pages web interactives et dynamiques
Différentes possibilités de fonctionnement existent côté serveur :
- le serveur envoie des scripts (javascript) ou applets Java qui s’exécutent sur la machine client.
- le serveur exécute un servlet (java) ou un script CGI ( perl ,python, php, c++,...) après avoir appelé l’interpréteur de
programmes (fig 1).
- le serveur intègre un module Php ( ou Asp) : c’est la solution la plus rapide et la plus sûre, en effet l’interpréteur fait
partie du serveur web; les règles de sécurité de celui-ci sont donc respectées (fig 2).
Les 2 dernières solutions sont plus sûres : le code reste sur le serveur, il est exécuté dessus.
serveur
serveur web
serveur
SQL
serveur
client via internet ou intranet
Serveur Apache
+ module Php
vers navigateur
CGi
serveur
SQL
fig 1
fig 2
javascript : interprété par le navigateur sur la machine cliente
php : interprété sur la machine serveur qui crée une page html
Une page contenant un formulaire Html est interactive : son contenu est modifié selon les interactions de l’utilisateur.
Une page est dynamique quand elle est créée à la volée suite à une requête d’un visiteur.
Le serveur peut lire les informations actualisées dans une base de données afin de générer la page dynamiquement. Un serveur
SQL permet de répondre aux requêtes de la base de données.
CGI est l’interface de passerelle commune entre le serveur web et les programmes traitant les formulaires Html ou les données
d’une base.
Le serveur HTTP et le programme Cgi communiquent à travers des variables d’environnement. Ce passage de paramètres, à un
script Cgi, s’effectue avec les méthodes Http GET ou POST.
BTS IRIS 1
introduction PHP
page 1/3
exemple partie html :
<form action=test.php method=post>
Nombre:<input type=text name=n >
<input type=hidden name=compteur value=5>
<input type=submit value=Ok>
</form>
envoi des paramètres n et compteur vers le fichier test.php
n est tapé par l’utilisateur
compteur est invisible pour l’utilisateur
l’envoi est effectif quand l’utilisateur clique sur le bouton ok.
Get : les variables sont visibles ; elles sont envoyées dans l’URL.
Post : les variables non visibles dans l’URL sont envoyées dans l’entête HTTP.
Entête HTTP :
HTTP_COOKIE_VARS, URL,
HTTP_POST_VARS......
SERVER_PROTOCOL (version http),
REMOTE_ADDR(ip client)
COOKIE : Mécanisme simple pour enregistrer des informations du côté client dans un fichier texte (4 ko max).
Les cookies sont utilisées pour :
- personnaliser les services et informations
- mémoriser des paniers (e-commerce)
- créer des pages web personnalisées en fonction des habitudes
- identifier les utilisateurs.
SESSION : Une session permet de conserver des informations durant la connexion d’un utilisateur et éventuellement de les
retrouver ultérieurement. Le protocole Http est un protocole sans connexion ; il n’existe aucun rapport entre les différentes
requêtes émises par le client.
Une session est utile, par exemple dans l’e-commerce, afin de mémoriser les informations se rapportant aux pages précédemment
visitées. L’identificateur de session peut être transmis avec un cookie, avec les méthodes Get, Post ou automatiquement si le
module Php a été compilé pour. Les variables de session sont enregistrées sur la machine serveur.
Glossaire
HTML : HyperText Marked up Language : langage hypertexte
XML : Extensible Marked up Language : langage hypertexte
HTTP : HyperText Transfer Protocol :
protocole de transfert hypertexte pour échanger des documents html
CGI :
Common Gateway Interface :
interface de passerelle commune entre le serveur et les programmes qui y sont
localisés
PHP :
Personnal Home Page tools (1995) devenu Personnal Hypertext Preprocessor : langage de script
SQL :
Structured Query Language (1970 IBM) : langage d’interrogation de bases de données.
MySQL : est un serveur Sql basé sur une bibliothèque de gestion de données éprouvée depuis des années et faisant appel à des
index d’arbres binaires : ce système est fiable et performant notamment lors d’accès indexés.
MySql utilise une architecture multi-utilisateur multi-traitement . Ceci permet d’établir des connexions rapides et
d’utiliser la même mémoire cache pour plusieurs requêtes.
BDD : Base De Données : permet de gérer un volume important de données
SGBD : Système de Gestion de Base de Données (dBase,Oracle...) Un SGBD permet de définir des bases, d’enregistrer ou
manipuler des données et d’adresser des requêtes à la base.
Sites : php.net
phpdebutant.com
vpontier.free.fr
BTS IRIS 1
easyphp.org
phpinfo.net
allhtm.com
mysql.org
introduction PHP
page 2/3
•
PHP : langage de script côté serveur qui permet de réaliser des pages web dynamiques en communiquant avec un serveur
web
qui lui-même communique avec un serveur SQL : serveur qui gère une
Php est un langage multi-plateformes dont la syntaxe est proche du C.
Ce langage est distribué librement et gratuitement ( utilisé par 15 (sur 57) millions de sites en 2004).
base
de
données.
Le code Php peut s’intégrer dans une page Html, on doit simplement renommer le fichier Html avec l’extension Php. Les balises
Html peuvent être également intégrées dans le code Php.
Exemple 1 :
fichier php présent sur le serveur
fichier Html envoyé au navigateur
<html>
Bonjour en Html
<br>
<?
// ou < ?php
= début de bloc Php
print(" <br> Bonjour en Php") ;
$i=1 ;
//les variables ne se déclarent pas et sont
//précédées de $
while ($i<=5)
{
print(" <br> Salut n°$i ") ;
$i++ ;
}
// fin de bloc Php
?>
Le code Php est masqué pour l’utilisateur au contraire du javascript . Une autre différence : le Php ne permet pas de lancer
d’applications sur la machine cliente.
Quelques ressemblances au langage C pour les structures conditionnelles:
while
(condition)
{
action ;
}
do{
action ;
} while (condition) ;
if ($a==$b)
{
action 1 ;
}
else {
action 2 ;
}
for ($i=0 ;$i<9 ;$i++)
{
action ;
}
Exemple 2 Appel de fonctions
< ? //microtime fonction qui retourne le nombre de microsecondes depuis la //dernière seconde et le nombre de secondes depuis le 01.01.1970
$temps=microtime();
$tab=explode(" ",$temps) ;
// ces 2 variables sont séparées par un espace
print(" <br> tab[0]= $tab[0]") ;
// explode sépare les 2 variables pour les placer dans le tableau $temps
$microsec=$tab[0] ;
print(" <br> microsec=$microsec ") ;
srand($microsec*1000000) ;
$alea=rand(0,100) ;
print("<br>alea = $alea ") ;
?>
// microsec est en millioniéme de seconde
Réalisation de fonctions :
function annee()
{
return 2008 ;
}
BTS IRIS 1
Appel :
$var=annee( ) ;
introduction PHP
page 3/3