Cours PHP
Cours PHP
PROGRAMMATION WEB
AVEC PHP
Plan
Introduction World Wide Web
Architecture client/serveur
Choix dans la mise en œuvre d’un serveur web
Le Langages de programmation web: PHP
1
04/03/2010
Introduction
3
2
04/03/2010
Définitions
Hypertexte
fichierde type texte dont certains mots (ou groupe de
mots) ancres sont reliés à d'autres documents par des
liens.
Hypermédia
fichier dont les liens peuvent référencer des fichiers
sons, images ...
Les ressources référencées peuvent être sur le même
ordinateur ou sur une machine distante.
Topologie du WWW
6
3
04/03/2010
Topologie du WWW
7
Topologie du WWW
8
4
04/03/2010
Topologie du WWW
9
5
04/03/2010
12
ARCHITECTURE
CLIENT/SERVEUR
6
04/03/2010
Architecture client/serveur
14
7
04/03/2010
Définition
15
Architecture client/serveur
16
CLIENT N
8
04/03/2010
Le client Web
17
Serveur Web
18
9
04/03/2010
clients
Problématique
Pour un client donné qui assure ces fonctionnalités ?
Notion d'application client/serveur 2 tiers ou 3 tiers
Tiers signifiant tierce partie
10
04/03/2010
Client/Serveur 1 tiers
21
Client/Serveur 2 tiers
22
11
04/03/2010
Client/Serveur 2 tiers
23
Niveau 1 Niveau 2
Client/Serveur 3 tiers
24
12
04/03/2010
Client/Serveur 3 tiers
25
Envoi de requête
Niveau 3:
Niveau 2:
Niveau 1 Serveur de
Serveur
Requête http Base de
d’applications
données
Envoi de réponse
Client/Serveur 3 tiers
26
13
04/03/2010
Client/Serveur N tiers
27
14
04/03/2010
Le Middleware
29
Middleware
Réseau
Avantage du Middleware
30
15
04/03/2010
Les sockets
32
Protocole Applicatif
Application cliente Application : serveur
IP IP
Physique Physique
16
04/03/2010
procA() procB()
17
04/03/2010
Le Middleware contemporains
35
36
18
04/03/2010
19
04/03/2010
Un site miroir
39
Exemple d’application
40
20
04/03/2010
Exemple d’application
41
42
21
04/03/2010
Langages du Web
43
Solution
intelligence du côté du serveur
Langages du Web
PHP
ASP
CGI
22
04/03/2010
Langage PHP
45
Fonctionnement
Le code PHP fait partie intégrante du fichier.
Quand l’URL est requise, le serveur interprète le code PHP
du fichier.
La page modifiée est envoyée au client.
Sommaire
46
Définition de PHP
Commentaires & E/S
Les variables
Les constantes
Les structures de contrôle PHP
Opérateurs de Comparaison, Opérateurs Logiques
Les tableaux
Variables d'environnement et issues de formulaires
Fonctions
Base de données et requêtes MySQL
23
04/03/2010
PHP
47
Définition de PHP
48
24
04/03/2010
25
04/03/2010
Premier programme
52
26
04/03/2010
Exercice
Intégration de script PHP dans une page Web :
écrire un programme [Link] qui permet
simplement d’afficher la chaîne « Mon premier
script PHP ».
Commentaires
Les E/S
27
04/03/2010
Commentaires
Le PHP supporte les commentaires comme en C, C++ et Shell
Unix.
Par exemple:
<?php
echo "Ceci est un test"; // Ceci est un commentaire sur une ligne comme
//en C++
/* Ceci est un commentaire sur plusieurs lignes, comme en C et C++ */
echo "Ceci est encore un test";
echo "Enfin, le test final"; # Ceci est un commentaire comme en Shell Unix
?>
Commentaires
28
04/03/2010
Les E/S
le PHP possède les fonctions qui permettent d’afficher ou de saisir
des variables de différents types.
Print: int print ( string arg )
print affiche la chaîne de caractères arg .
retourne toujours 1.
On n’est pas obligé d'utiliser des parenthèses.
Identique à echo
Exemples:
<?php print("Bonjour le monde");
print "Ce print() se répartit sur plusieurs lignes.
Il affiche aussi les nouvelles lignes";
print "L'échappement de caractères se fait : \"comme ceci\". "?>
29
04/03/2010
Les variables
59
30
04/03/2010
Type de variable
PHP supporte les huit types basiques suivants :
PHP supporte quatre types scalaires :
booléen ·
entier ·
nombre à virgule flottante ·
chaîne de caractères ·
PHP supporte deux types composés :
tableau ·
objet ·
PHP supporte le type spécial :
NULL ·
On utilise également quelques pseudo−types pour des raisons de lisibilités :
mixed ·
number ·
31
04/03/2010
Type Boolean
Un booléen exprime une valeur de vérité.
Il peut prendre comme valeur soit TRUE soit FALSE .
<?php
$fait = True; // assigne la valeur TRUE à la variable $fait
?>
Les valeurs suivantes sont considérées comme fausses ( FALSE ) :
Le booléen FALSE lui−même ·
L' entier 0 (zéro) ·
La chaîne de caractères vide et la chaîne de caractères "0" ·
Le tableau vide (aucun élément) ·
L' objet vide (aucun élément) (PHP 4 uniquement) ·
La type spéciale NULL ·
Toutes les autres valeurs sont considérées comme vraies ( TRUE).
−1 est considéré comme vrai, tout comme les nombres autres que zéro (aussi bien
positifs que négatifs) !
Type Entiers
Il est possible de spécifier les nombres entiers (integers) de la manière suivante :
<?php
$a = 1234; # nombre entier en base 10
$a = -123; # nombre entier négatif
$a = 0123; # nombre entier en base 8, octale (équivalent à 83 en base 10)
$a = 0x12; # nombre entier en base 16, hexadécimale (équivalent à 18 en base 10)
?>
Les entiers peuvent être spécifiés en:
base décimale (dite aussi base 10),
en hexadécimale (base 16)
ou octale (base 8).
Les entiers peuvent être optionnellement précédés par le signe plus ou moins (− ou +).
Pour utiliser la notation octale, le nombre doit être préfixé avec un zéro
Pour utiliser la notation hexadécimale, le nombre doit être préfixé avec 0x .
32
04/03/2010
decimal :[1−9][0−9]* | 0
hexadecimal : 0[xX][0−9a−fA−F]+
octal : 0[0−7]+
integer : [+ −]?decimal ou [+ −]?hexadecimal
ou [+ −]?octal
33
04/03/2010
34
04/03/2010
Exemple
<?php
$a = ($b = 4) + 5; // $a est maintenant égal à 9, et
$b vaut 4.
$a = 3;
$a += 5; // correspond à l’instruction ’$a = $a + 5’
?>
Division Entière
Il n'existe pas de division entière en PHP.
1/2 générera le float 0.5 .
35
04/03/2010
Pseudo−types
mixed
mixed indique qu'un paramètre accepte plusieurs types,
mais pas forcément tous les types.
number
number indique qu'un paramètre peut être du type
entier ou nombre à virgule flottante .
36
04/03/2010
syntaxe HereDoc
Guillemets simples
<?php
echo 'Ceci est une chaîne simple';
echo 'Arnold a coutume de dire : "I\'ll be back"';
// affiche tel que : "I'll be back"
echo 'Etes−vous sûr de vouloir effacer le dossier
C:\*.*?';
// affiche : tel que
echo 'Les variables ne seront pas $afficher $ici';
37
04/03/2010
Guillemets doubles
$ch=" bonjour ";
Conséquence:
Pour spécifier un guillemet simple littéral, vous devez
l'échapper avec un anti−slash ( \ ),
Si un anti−slash doit apparaître dans votre chaîne ou
bien en fin de chaîne, il faudra le doubler.
Exemple:
$str="salut les \"amis,\"\n ca va aujourd’hui ? " ;
echo "$str";
Syntaxe Heredoc
Un autre moyen de délimiter les chaînes est d'utiliser la syntaxe dite " Heredoc "
<<<, suivi d'un identifiant arbitraire, puis de la chaîne, puis l'identifiant initial pour terminer
la séquence.
L'identifiant utilisé doit suivre les mêmes règles suivantes: ne doit contenir que des caractères
alpha−numériques, et des soulignés ("_"), et commencer par un caractère alphabétique ou un
souligné.
Les variables sont remplacées par leur valeur
Exemple
<?php
$a=chaîne;
$str = <<<EOD
Exemple de $a
s'étalant sur
plusieurs lignes
avec la syntaxe heredoc
EOD;
38
04/03/2010
39
04/03/2010
Les constantes
80
define(“const”, “bleu”) ;
if (defined(‘’const’’)) {
print ‘’La valeur de ma constante est : ‘’.const
//les constantes ne sont pas dotées du préfixe $.
}
40
04/03/2010
Exercice 1
41
04/03/2010
Corrigé
Exercice 2
42
04/03/2010
Corrigé
Opérateurs de Comparaison
Ils permettent de comparer les valeurs de deux variables.
exemple : Ici $a et $b sont du même type de variable.
Opérateur ExempleRésultat
86
43
04/03/2010
Opérateurs Logiques
Ils permettent de combiner plusieurs tests entre eux.
exemple: Ici $a et $b peuvent prendre les valeurs booléennes
vrai ou faux.
Exemple opérateur Résultat
and ( && ) $a and $b vrai si $a et $b sont vrai
$a && $b tous les deux
or ( || ) $a or $b vrai si $a est vrai ou $b
$a || $b est vrai, ou encore si $a
et $b sont vrai tous les
deux
not ( ! ) not $a vrai si $a est faux !$a
87
Instruction de choix,…
44
04/03/2010
if / else / elseif
89
if / else / elseif
90
45
04/03/2010
if / else / elseif
91
if ($val==1)
{ echo "instruction 1"; }
elseif ($valeur==2)
{ echo "2"; }
else
{
echo "instruction 0";
}
Syntaxe alternative
Le PHP propose une autre manière de rassembler des
instructions à l’intérieur d’un bloc, pour les fonctions de
contrôle if, while, for, et switch.
Dans chaque cas, le principe est de remplacer
l’accolade d’ouverture par deux points (:) et l’accolade
de fermeture par, respectivement, endif;, endwhile;,
endfor;, ou endswitch;.
46
04/03/2010
Syntaxe alternative
<?php
if ($a == 5):
print "a égale 5";
print "...";
elseif ($a == 6):
print "a égale 6";
print "!!!";
else:
print "a ne vaut ni 5 ni 6";
endif;
?>
Exercice 1
47
04/03/2010
Corrigé
Corrigé
48
04/03/2010
Exercice 2
Ecrire un programme qui permet de dire si un
nombre est pair ou impair
<?php
$N=6;
If($N%2==0)
print "$N est pair";
else
print "$N est impair";
?>
Exercice 3
Ecrire un script :
qui permet d’afficher la chaîne « la couleur
préféré est rouge » ou chaîne « la couleur préférée
est bleue » selon que la variable $nom soit égale
à « fille » ou à « garçon » et que $age soit
inférieur ou supérieur à 12
Afficher la chaîne dans la couleur considérée ( bleu
ou rouge).
49
04/03/2010
Corrigé
<?php
$nom="fille";
$age= 10;
If($nom=="fille" && $age< 12)
print " la couleur préféré est les rouge";
Elseif ($nom=="garcon" && $age< 12)
print " la couleur préféré est le bleu";
?>
Corrigé
<html>
…
<?php
$nom="fille";
$age= 10;
If($nom=="fille" && $age< 12)
print " <font color=\"red\"> la couleur préféré est les rouge</font>";
Elseif ($nom=="garcon" && $age< 12)
print " <font color=\"blue\"> la couleur préféré est le bleu";
?>
50
04/03/2010
while / do...while
101
Exemple
102
<?php
$valeur=0;
while ($valeur<10)
{ echo $valeur;
$valeur++;
}
$valeur=0;
do
{ echo $valeur;
$valeur++;
}
while ($valeur<10);
?>
51
04/03/2010
Exercice 1
for
104
52
04/03/2010
for
105
Exemple :
for ($indice=0;$indice<10;$indice++)
{
echo $indice;
}
Exercices
Ecrire un programme qui permet de calculer le
factoriel d’un nombre
Lister tous les nombre premiers inférieurs à un
nombre N
53
04/03/2010
switch
107
switch
108
switch ($choix)
{ case 1:
echo "La valeur est 1";
break;
case 2:
echo "La valeur est 2";
break;
case 3:
echo "La valeur est 3";
break; }
54
04/03/2010
break
109
break
110
<?php
$i = 0;
while ($i < 10) {
if ($i <= 5)
Echo " $i ";
else break;
$i++;
}
55
04/03/2010
Continue
112
56
04/03/2010
Continue
113
<?php
$i=1;
while ($i< 10) {
If ($i==5)
{$i++; continue;}
else
{echo $i;
$i++;}
echo " la partie non affiché";
}
?>
Les tableaux
114
57
04/03/2010
Les tableaux
115
Exercices
116
4. Trier ce tableau
58
04/03/2010
Corrigé 1
117
59
04/03/2010
<?php
$a[1] = $f; # tableau à une dimension
$a["foo"] = $f;
$a[1][0] = $f; # tableau à deux dimensions
$a["foo"][2] = $f; # on peut mélanger les
indices associatifs et numériques
$a[3]["bar"] = $f;
$a["foo"][4]["bar"][0] = $f; # tableau à quatre
dimensions
?>
60
04/03/2010
61
04/03/2010
$i = 0;
while ($i < 10) {
Echo "$arr[$i] ";
}
$i++;
}
Variables d'environnement
124
62
04/03/2010
Variables d'environnement
125
$IP=$_SERVER[‘REMOTE_ADDR’]
echo $IP; @ IP de la machine cliente
63
04/03/2010
Exercice
1. Ecrire un programme qui permet d’afficher les
variables d’environnement suivantes
$HTTP_HOST, $SERVER_ADDR, $SERVER_,
$SERVER_NAME, $SERVER_PORT et la valeur
correspondante
64
04/03/2010
<?php
$NOM=$_POST[‘nom’];
echo $NOM;
?>
Exercices
1
65
04/03/2010
Les Fonctions
131
Les Fonctions
132
66
04/03/2010
Déclaration
133
fonction.
Déclaration :
Fonctions
134
exemple :
function bonjour( ) {
echo « Bonjour ! » ;
}
67
04/03/2010
Fonctions
135
Exemple:
Pour que la fonction retourne un résultat, on utilisera le mot
clé return
function bonjour2( ) {
return « Bonjour !» ;
}
echo bonjour2( ) ;
68
04/03/2010
Exercice 1
<?php
69
04/03/2010
Corrigé
Corrigé
70
04/03/2010
Corrigé
exemple :
function bonjour(&$phrase) {
$phrase= « bonjour » ;
}
$chaine = « Phrase qui va disparaître » ;
bonjour($chaine) ;
echo $chaine ; // affiche 'bonjour' à l’écran
71
04/03/2010
72
04/03/2010
foreach
146
<?php
/* exemple 1: valeur seule */
$a = array (1, 2, 3, 17);
foreach ($a as $v) {
print "Valeur courante de \$a: $v.\n";
}
/* exemple 1: valeur (avec clé associée) */
$a = array (1, 2, 3, 17);
$i = 0; /* pour affichage seulement*/
foreach($a as $v) {
print "\$a[$i] => $v.\n";
}
?>
73
04/03/2010
Foreach
147
each(..)
Cette fonction permet de parcourir tous les éléments d'un tableau sans
se soucier de ses bornes.
Elle retourne la combinaison clé-valeur courante du tableau passé en
paramètre, puis se positionne sur l'élément suivant, et cela du premier
au dernier indice.
Lorsque la fin du tableau est atteinte, each( ) retourne la valeur faux
(false).
list(..)
Associée à la fonction each(), elle permet d'affecter les éléments du
tableau dans des valeurs distinctes.
Reset()
le pointeur interne de tableau est automatiquement ramené au premier
élément du tableau
74
04/03/2010
<?php
$nom[“ali"]=“rassi";
$nom[« fati"]="Alilo";
$nom[« kamal"]="Dabar";
reset($nom);
while (list($clef,$valeur)=each($nom))
echo "$clef, $valeur<br>";
?>
75
04/03/2010
exemple :
$tableau = array("val1","val2","val3","val4"); //on crée un tableau
while ($var = each($tableau)) {
echo "$var[0] : $var[1]";
}
Ce code produit le résultat suivant :
0 : val1
1 : val2
2 : val3
3 : val4
ici l'indice est affecté au premier élément de $var et la valeur au deuxième élément
$var
Fonctions Mathématiques
152
76
04/03/2010
Chaînes de caractères
153
strpos (chaîne, sous chaîne) : retourne la position de la sous chaîne dans la chaîne. Dans le
cas où la chaîne existe en plusieurs exemplaires, c’est la position de la première
occurrence qui est retournée.
strrpos retourne quand à elle la position de la dernière occurrence.
strstr (chaîne, sous chaîne) retourne la portion de la chaîne à partir de la première
occurrence de la sous chaîne.
strlen (chaîne) : retourne la taille de la chaîne.
strtolower|strtoupper (chaîne) : retourne la chaîne passée en paramètres an minuscules
(resp. majuscules).
str_replace (car d’origine, car de destination, chaîne) : remplace le caractère d’origine
par le caractère de destination dans la chaîne.
g supprime les caractères invisibles (espaces,\n, …) au début et à la fin de la chaîne.
ereg(chaîne à chercher, chaîne) : retourne vrai si la chaîne à chercher (sous forme de
chaîne ou sous forme d’expression régulière) est contenue dans chaîne.
77
04/03/2010
Fonctions include
Par exemple, si on ne veut pas utiliser de "frames",
qui sont source de conflit avec certains navigateurs,
on est obligé de remettre le menu sur chaque page.
Avec une inclusion PHP, il suffit de définir le menu
dans un fichier et de l'appeler sur chaque page.
Ensuite lors d'une modification du menu, un seul fichier
est à modifier pour mettre à jour le site entier.
Cette manière de procéder prend toute son
importance avec la mise à jour d'un site comportant
des dizaines de pages.
78
04/03/2010
Fonction Require
La différence majeure entre les deux fonctions réside
dans le fait que "require" ne s'exécute qu'une seule
fois à l'appel de la fonction alors que "include"
s'exécute à chaque appel.
Ce qui implique que dans une boucle, il faut utiliser
include pour que le fichier soit inclus à chaque
passage.
require, à la différence de include, ne peut pas
retourner de valeur comme une fonction standard.
79
04/03/2010
Fonction date
159
Fonction Date
160
<?php
$date_du_jour = date ("d-m-Y");
$heure_courante = date ("H:i");
echo 'Nous sommes le : ';
echo $date_du_jour;
echo ' Et il est : ';
echo $heure_courante;
?>
80
04/03/2010
Fonction Date
161
Voici la liste des paramètres possibles pour la fonction date() :
- a : "am" (matin) ou "pm" (après-midi)
- A : "AM" (matin) ou "PM" (après-midi)
- d : Jour du mois, sur deux chiffres (éventuellement avec un zéros) : "01" à "31"
- D : Jour de la semaine, en trois lettres (et en anglais) : par exemple "Fri" (pour
Vendredi)
- F : Mois, textuel, version longue; en anglais, i.e. "January" (pour Janvier)
- h : Heure, au format 12h, "01" à "12"
- H : heure, au format 24h, "00" à "23"
- g : Heure, au format 12h sans les zéros initiaux, "1" à "12"
- G : Heure, au format 24h sans les zéros initiaux, "0" à "23"
- i : Minutes; "00" à "59"
- j : Jour du mois sans les zéros initiaux: "1" à "31"
- l : Jour de la semaine, textuel, version longue; en anglais, i.e. "Friday" (pour
Vendredi)
- L : Booléen pour savoir si l'année est bissextile ("1") ou pas ("0")
- m : Mois; i.e. "01" à "12"
- n : Mois sans les zéros initiaux; i.e. "1" à "12"
- M : Mois, en trois lettres (et en anglais) : par exemple "Jan" (pour Janvier)
- s : Secondes; i.e. "00" à "59"
- S : Suffixe ordinal d'un nom
81
04/03/2010
Exemples :
$fp = fopen("[Link]","r"); //lecture
$fp = fopen(" [Link] ","w");
//écriture depuis début du fichier
$fp = fopen(« [Link]","a");
//écriture depuis fin du fichier
82
04/03/2010
< ?php
$monfichier = fopen(‘’[Link]’’, ’’r’’) ; // ouverture en lecture
if ( !($monfichier)) {
print(« Impossible d’ouvrir le fichier ») ;
exit ;}
while ( !feof($monfichier) ) {
$ligne = fgets($monfichier,255); // 255 caractères max. ou bien
fin de ligne.
print ‘’ $ligne <BR> ‘’ ;
}
fclose ($monfichier) ;?>
<?
$monFichier = fopen(‘’[Link]’’,’’ w’’) ; // ouverture en
écriture
if ( !($monfichier)) {
print(‘’ Impossible de créer le fichier \n’’) ;
exit ;
}
fputs($monfichier, ‘’ligne 1’’) ; // on écrit deux lignes
fputs($monfichier, ‘’ligne 2’’) ;
83
04/03/2010
fclose($handle);?>
84
04/03/2010
Fonction Explode
169
Fonction Explode
170
<?php
if (!file_exists(« [Link] »)) {
print "<H3><BR>Erreur, fichier compteur manquant<BR>";
exit;
} else {
$fd = fopen($fic,"r");
while (!feof($fd)) {
$ligne = fgets($fd,255);
$tab=explode("|",$ligne);
print "Nom : $tab[0]<br>";
print "Prénom : $tab[1]<br>";
print "Age : $tab[2]<br>« ;}
fclose($fd);
}?>
85
04/03/2010
Introduction
Connexion à la base de données
Sélection de la base de données
Exécution d'une requête
Lecture des données
Fermeture de la connexion
Introduction
172
86
04/03/2010
87
04/03/2010
Ex :
$myhote="localhost";
$myuser="utilisateur";
$mypass="passeutilisateur";
$base_id = mysql_connect($myhote,
$myuser,$mypass);
if (!$base_id)
{
echo "Connexion à la base de données impossible
!";
}
La fonction "mysql_select_db(base_name,base_id)"
permet de sélectionner la base de données que l'on
souhaite utiliser.
les paramètres requis sont les suivants :
- base_name : Nom de la base de données
- base_id : Identifiant de la connexion au serveur
Mysql
cette fonction retourne "TRUE" en cas de succès,
"FALSE" sinon.
88
04/03/2010
Ex :
$mybase="perso";
if (!mysql_select_db("$mybase",$base_id))
{
echo "Impossible de sélectionner la base de données
!";
}
89
04/03/2010
Ex :
$query="SELECT * FROM matable";
$resultat=mysql_query($query,$base_id);
if (!$resultat)
{
echo "Impossible d'exécuter la requête !";
}
90
04/03/2010
91
04/03/2010
Ex :
while ($ligne=mysql_fetch_array($resultat))
{
// Affichage d'une ligne
echo $ligne["champs1"];
echo $ligne["champs2"];
echo $ligne["champs3"];
}
Fermeture de la connexion
184
92
04/03/2010
93
04/03/2010
94
04/03/2010
Formulaire (mail)
190
Présentation
Ce script permet de saisir et d'envoyer un mail, grâce
à la fonction mail.
Formulaire de saisie
95
04/03/2010
Formulaire (mail)
191
Formulaire (mail)
192
<BR>
Adresse E-mail du destinataire
<BR>
<INPUT TYPE="text" NAME="email2" SIZE=30
MAXLENGTH=50>
<BR>
<BR>
Titre du message
96
04/03/2010
Formulaire (mail)
193
<BR>
<INPUT TYPE="text" NAME="titre" SIZE=30
MAXLENGTH=50>
<BR>
<BR>
Message
<BR>
<TEXTAREA NAME="message" COLS=30 ROWS=6
WRAP="SOFT">
</TEXTAREA>
</FORM>
Formulaire (mail)
194
97
04/03/2010
Formulaire (mail)
195
<?
$headers="From: ".$email1;
mail($email2,$titre,$message,$headers);
include "[Link]";
?>
98
04/03/2010
Architecture CGI
198
99
04/03/2010
Architecture CGI
199
100
04/03/2010
Exemple :
#!/usr/bin/perl
print "Content-Type: text/html\n\n";
print "Hello World";
ou
#!/bin/sh
echo Content-Type: text/html
echo
echo
echo Hello World
ou
# main.c
int main() {
printf("Content-Type: text/html\n\n");
printf("Hello World");
return(0);
}
> gcc -o [Link] main.c
101
04/03/2010
102
04/03/2010
#include<stdio.h>
main()
{ printf("Content-type: text/html\n\n");
printf("<html>\n");
printf("<head><title>Mon premier script CGI
</title></head>\n");
printf("<body bgcolor=\"#FFFFFF\">\n");
printf("<br><br><br><br>\n");
printf("<center>\n");
printf("<h1>Salut à tous<br>voici mon premier script CGI</h1>\n");
printf("</center>\n");
printf("</body>\n");
printf("</html>\n");}
103
04/03/2010
104
04/03/2010
Inconvénients
210
105
04/03/2010
# main.c
int main() {
printf("Content-Type: text/html\n\n");
printf("Hello World");
return(0);
}
> gcc -o [Link] main.c
212
LES COOKIES
106
04/03/2010
Les cookies
214
107
04/03/2010
Les cookies
216
108
04/03/2010
Les cookies
217
Les cookies
218
Votre
Serveur W3 ordinateur
109
04/03/2010
Les cookies
219
110
04/03/2010
RESUME
221
Les cookies
222
111
04/03/2010
Les cookies
224
112
04/03/2010
Cookies et PHP
226
113
04/03/2010
<?php
echo $cookie_name;
echo $HTTP_COOKIE_VARS['cookie_name'];
echo $_COOKIE['cookie_name'];
?>
114
04/03/2010
Exemples
229
1- nombre de visites
<?php
$Visites++;
setcookie( "Visites", $Visites, time()+2592000, "/", ".[Link]",0); ?>
2- <?
setcookie("blob","Hello World");
print("<a href=[Link]>Click here</a>");
?>
--------------------------------------------
et une page [Link] avec ce code :
--------------------------------------------
<?
echo $HTTP_COOKIE_VARS["blob"];
?>
Suppression de cookies
230
115
04/03/2010
116
04/03/2010
117
04/03/2010
118
04/03/2010
119
04/03/2010
120
04/03/2010
121