PHP .pdf



Nom original: PHP.pdfTitre: Microsoft PowerPoint - PHP3.pptxAuteur: SCCI

Ce document au format PDF 1.4 a été généré par PScript5.dll Version 5.2 / GPL Ghostscript 8.71, et a été envoyé sur fichier-pdf.fr le 09/04/2015 à 23:36, depuis l'adresse IP 197.28.x.x. La présente page de téléchargement du fichier a été vue 763 fois.
Taille du document: 949 Ko (27 pages).
Confidentialité: fichier public


Aperçu du document


Institut Supérieur des Etudes Technologiques de Sidi Bouzid
Département Technologies de l’Informatique

Développement Côté Serveur
FC
FC--LATI MDW 2

Enseignant :
Mohamed MANAA
Année Universitaire 2014-2015

Développement Côté Serveur : Plan
Rappel
Les langages de création de pages web dynamiques côté serveur
Intégration d’un script dans une page
Variables, types et opérateurs
Chaînes de caractères
Les tableaux
Les fonctions
Les classes
Les structures de contrôle
Les inclusions
Les expressions régulières
PHP-MySQL
Administration avec l’outil web phpMyAdmin
Mohamed MANAA

Développement Côté Serveur

1

Développement Côté Serveur : Rappel
Internet : Historique
1969 : L'agence DARPA (Defense Advanced Research Project Agency) dépendant
du DOD (Department Of Defense), développa le réseau ARPANET (Réseau d'ARPA)
avec 4 nœuds ⇒ constituer un réseau fiable, résistant aux attaques ennemies (si l'un
des nœuds venait à être détruit)
1972 : Début des spécifications de la pile de protocoles TCP/IP
1983 : TCP/IP était utilisé partout sur ARPANET / Interconnexion d’Arpanet et
d’autres réseaux
1993 : Introduction du service World Wide Web WWW

Développement Côté Serveur

Mohamed MANAA

Développement Côté Serveur : Rappel
World Wide Web : Fonctionnement

C'est un mécanisme client-serveur.
Le client demande un fichier, le serveur lui donne tel qu'il est stocké
(processus statique)

Le serveur peut aussi générer un fichier en fonction de la demande du client
(processus dynamique)
Requêtes
Programme
Client
Machine Client

Programme
Serveur

Internet
Document(s)

Document(s)
Documents
Machine Serveur

Mohamed MANAA

Développement Côté Serveur

2

Développement Côté Serveur
Les langages de création de pages web dynamiques côté serveur
Les CGI
Sont des composants exécutables (fichiers .exe ou .dll) qui produisent sur le
serveur des contenus html à envoyer aux clients.
Les CGI sont compilés. Ils sont rapides mais fortement liés à la plate-forme sur
laquelle ils tournent.
PERL
Employé sur de nombreux serveurs. Il tourne sur de nombreuses
plateformes : Unix, Linux, Windows, Mac
Prévu à l'origine pour la manipulation de chaînes de caractères, il est
rapidement devenu un véritable langage orienté objet.
Mohamed MANAA

Développement Côté Serveur

Développement Côté Serveur
Les langages de création de pages web dynamiques côté serveur
ASP
Basé sur des scripts écrits en VBscript, Jscript ou Javascript.
Largement répandu,
Facilité de mise en œuvre
Intimement liée à l'environnement Windows et au serveur IIS (Internet
Information Server) de Microsoft.
L’environnement Microsoft est nécessaire
JSP
Constitue la réponse de Sun aux ASP de Microsoft
Utilisation de Java
Au départ simple extension du langage Java
Est devenu un véritable langage de développement web
Possède une interface de qualité
Mohamed MANAA

Développement Côté Serveur

3

Développement Côté Serveur
Les langages de création de pages web dynamiques côté serveur
PHP
Connaît un succès toujours croissant sur le Web et se positionne comme un rival
important pour ASP
L'environnement Linux est sa plateforme de prédilection
Combiné avec le serveur Web Apache et la base de données MySQL, PHP offre
une solution particulièrement robuste, stable et efficace
Gratuité : Tous les logiciels sont issus du monde des logiciels libres (Open
Source).

Développement Côté Serveur

Mohamed MANAA

Développement Côté Serveur
PHP : Introduction

Il a été créé en 1994 par Rasmus Lerdorf pour les besoins des pages web
personnelles (livre d’or, compteurs, etc.). A l’époque, PHP signifiait Personnal Home
Page.

En 1997, PHP devient un projet collectif et son interpréteur est réécrit par Zeev
Suraski et Andi Gutmans pour donner la version 3 qui s’appelle désormais PHP :
Hypertext Preprocessor (acronyme récursif à l’exemple du système Open Source Linux
: Is Not UniX).

C’est un puissant langage de script embarqué dans les pages HTML et traité par le
serveur, pour dynamiser les pages Web.

C’est

un

logiciel

«

libre

»

(gratuit

et

«

open

source

»).

Fonctionne sous Unix, Windows et Mac.

Mohamed MANAA

Développement Côté Serveur

4

Développement Côté Serveur
PHP : Intégration d’un script dans une page
<?
echo (" Mon premier exemple en PHP");
?>

<?php
echo(" Mon premier exemple en PHP <br>
Avec un retour à la ligne");
?>

<script language="php">
echo (" Mon premier exemple en PHP ");
</script>

Mohamed MANAA

Développement Côté Serveur

Développement Côté Serveur
PHP : Commentaires

Un script php se commente comme en C
Tout ce qui se trouve dans un commentaire est ignoré. Il est conseillé de
commenter largement ses scripts.
<?php
// commentaire de fin de ligne
/* commentaire
sur plusieurs
lignes */
# commentaire de fin de ligne comme en Shell
?>
Mohamed MANAA

Développement Côté Serveur

5

Développement Côté Serveur
PHP : Variables, types et opérateurs

Le typage des variables est implicite en php. Il n’est donc pas nécessaire de
déclarer leur type au préalable ni même de les initialiser avant leur utilisation.

Les identificateurs de variable sont précédés du symbole « $ »
Exemple : $nom

Les variables peuvent être de type entier (integer), réel (double), chaîne de
caractères (string), tableau (array), objet (object), booléen (boolean).

Il est possible de convertir une variable en un type primitif grâce au cast
Exemple :
$str = ’’12’’;

// $str vaut la chaîne ‘’12’’

$nbr = (int)$str;

// $nbr vaut le nombre 12

Développement Côté Serveur

Mohamed MANAA

Développement Côté Serveur
PHP : Variables, types et opérateurs

Quelques fonctions :
empty($var) : renvoie vrai si la variable est vide
isset($var) : renvoie vrai si la variable existe
unset($var) : détruit une variable
gettype($var) : retourne le type de la variable
settype($var, ’’type’’) : convertit la variable en type type (cast)
is_long(), is_double(), is_string(), is_array(), is_object(), is_bool(),
is_float(), is_numeric(), is_integer(), is_int()…

Une variable peut avoir pour identificateur la valeur d’une autre variable.
Syntaxe : ${$var} = valeur;
$toto = ‘’foobar’’;

${$toto} = 2002;

echo $foobar; // la variable $foobar vaut 2002
Mohamed MANAA

Développement Côté Serveur

6

Développement Côté Serveur
PHP : Variables, types et opérateurs

La portée d’une variable est limitée au bloc dans lequel elle a été crée. Une
variable locale à une fonction n’est pas connue dans le reste du programme.
Tout comme une variable du programme n’est pas connue dans une fonction.

Une variable créée dans un bloc n’est pas connue dans les autres blocs,
mêmes supérieurs.

Mohamed MANAA

Développement Côté Serveur

Développement Côté Serveur
PHP : Variables, types et opérateurs

Opérateurs arithmétiques :
+ (addition), - (soustraction), * (multiplié), / (divisé), % (modulo), ++
(incrément), --(décrément). Ces deux derniers peuvent être pré ou post
fixés

Opérateurs d’assignement :
= (affectation), *= ($x*=$y équivalent à $x=$x*$y), /=, +=, -=, %=

Opérateurs logiques :
and, && (et), or, || (ou), xor (ou exclusif), ! (non)

Opérateurs de comparaison :
== (égalité), < (inférieur strict), <= (inférieur large), >, >=, != (différence)

Mohamed MANAA

Développement Côté Serveur

7

Développement Côté Serveur
PHP : Variables, types et opérateurs

Il existe une multitude de fonctions mathématiques.








abs($x) : valeur absolue
ceil($x) : arrondi supérieur
floor($x) : arrondi inférieur
pow($x,$y) : x exposant y
round($x,$i) : arrondi de x à la ième décimale
max($a, $b, $c …) : retourne l’argument de valeur maximum
pi() : retourne la valeur de Pi

Et aussi : cos, sin, tan, exp, log, min, pi, sqrt…
Quelques constantes :
M_PI : valeur de pi (3.14159265358979323846)
M_E : valeur de e (2.7182818284590452354)
Mohamed MANAA

Développement Côté Serveur

Développement Côté Serveur
PHP : Variables, types et opérateurs
Formatage d’un nombre :
number_format ($nbr[,$dec,[$a,$b]]) : retourne une chaîne de caractères
représentant le nombre $nbr avec $dec décimales après formatage. La chaîne $a
représente le symbole faisant office de virgule et $b le séparateur de milliers.
Par défaut, le formatage est anglophone : $a = ‘’.’’ et $b = ‘’,’’.
Exemples :
number_format (1000000.3333);
number_format (1000000.3333,2);
number_format (1000000.3333,2,",",".");

Mohamed MANAA

// affiche 1,000,000
// affiche 1,000,000.33
// affiche 1.000.000,33

Développement Côté Serveur

8

Développement Côté Serveur
PHP : Chaînes de caractères
Une variable chaîne de caractères n’est pas limitée en nombre de caractères. Elle est toujours
délimitée par des simples quotes ou des doubles quotes.
Exemples :
$nom = ‘’MANAA’’;
$prenom = ‘Mohamed’;
Les doubles quotes permettent l’évaluation des variables et caractères spéciaux contenus dans la
chaîne (comme en C ou en Shell) alors que les simples ne le permettent pas.
Exemples :
echo ‘’Nom: $nom‘’;

// affiche Nom: MANAA

echo ’Nom: $nom‘;

// affiche Nom: $nom

Quelques caractères spéciaux : \n (nouvelle ligne), \r (retour à la ligne), \t (tabulation
horizontale), \\ (antislash), \$ (caractère dollars), \’’ (double quote).
Exemple : echo ‘’Hello Word !\n’’;

Mohamed MANAA

Développement Côté Serveur

Développement Côté Serveur
PHP : Chaînes de caractères
Quelques fonctions:

strlen($str) : retourne le nombre de caractères d’une chaîne
strtolower($str) : conversion en minuscules
strtoupper($str) : conversion en majuscules
trim($str) : suppression des espaces de début et de fin de chaîne
substr($str,$i,$j) : retourne une sous chaîne de $str de taille $j et débutant à
la position $i

strnatcmp($str1,$str2) : comparaison de 2 chaînes
addslashes($str) : déspécialise les caractères spéciaux (‘, ‘’, \)
ord($char) : retourne la valeur ASCII du caractère $char

Mohamed MANAA

Développement Côté Serveur

9

Développement Côté Serveur
PHP : Chaînes de caractères
Les fonctions d’affichage :

echo() : écriture dans le navigateur
print() : écriture dans le navigateur
printf([$format, $arg1, $arg2]) : écriture formatée comme en C, i.e. la chaîne
de caractère est constante et contient le format d’affichage des variables
passées en argument
Exemples :
echo ‘’Bonjour $name’’;
print(‘’Bonjour $name’’);
printf(‘’Bonjour %s’’, $name);

Développement Côté Serveur

Mohamed MANAA

Développement Côté Serveur
PHP : Les tableaux
Une variable tableau est de type array. Un tableau accepte des éléments de tout type. Les
éléments d’un tableau peuvent être de types différents et sont séparés d’une virgule.
Un tableau peut être initialisé avec la syntaxe array.
Exemple :
$tab_colors = array(‘red’, ’yellow’, ’blue’, ‘white’);
$tab = array(‘foobar’, 2002, 20.5, $name);
Mais il peut aussi être initialisé au fur et à mesure.
Exemples :
$prenoms[ ] = ‘’Ali’’;

$villes[0] = ‘’Sfax’’;

$prenoms[ ] = ‘’Salah’’;

$villes[1] = ‘’Tunis’’;

$prenoms[ ] = ‘’Sami’’;

$villes[2] = ‘’Gabes’’;

L’appel d’un élément du tableau se fait à partir de son indice (dont l’origine est zéro comme en
C).
Exemple : echo $tab[10];
Mohamed MANAA

// pour accéder au 11ème élément
Développement Côté Serveur

10

Développement Côté Serveur
PHP : Les tableaux
Parcours d’un tableau.
$tab = array(‘Hugo’, ‘Jean’, ’Mario’);
Exemple 1 :
$i=0;
while($i <= count($tab)) {
// count() retourne le nombre d’éléments
echo $tab[$i].’\n’;
$i++;
}
Exemple 2 :
foreach($tab as $elem) {
echo $elem.’’\n’’;
}
La variable $elem prend pour valeurs successives tous les éléments du tableau
$tab.

Mohamed MANAA

Développement Côté Serveur

Développement Côté Serveur
PHP : Les tableaux
Quelques fonctions:

count($tab), sizeof : retournent le nombre d’éléments du tableau
in_array($var,$tab) : dit si la valeur de $var existe dans le tableau $tab
list($var1,$var2…) : transforme une liste de variables en tableau
range($i,$j) : retourne un tableau contenant un intervalle de valeurs
shuffle($tab) : mélange les éléments d’un tableau
sort($tab) : trie alphanumérique les éléments du tableau
rsort($tab) : trie alphanumérique inverse les éléments du tableau
implode($str,$tab), join : retournent une chaîne de caractères contenant les éléments du
tableau $tab joints par la chaîne de jointure $str

explode($delim,$str) : retourne un tableau dont les éléments résultent du hachage de la
chaîne $str par le délimiteur $delim

array_merge($tab1,$tab2,$tab3…) : concatène les tableaux passés en arguments
array_rand($tab) : retourne un élément du tableau au hasard
Mohamed MANAA

Développement Côté Serveur

11

Développement Côté Serveur
PHP : Les fonctions
Comme tout langage de programmation, php permet l’écriture de fonctions.
Les fonctions peuvent prendre des arguments dont il n’est pas besoin de spécifier le
type. Elles peuvent de façon optionnelle retourner une valeur.
L’appel à une fonction peut ne pas respecter son prototypage (nombre de paramètres).
Les identificateurs de fonctions sont insensibles à la casse.
Exemple :
function mafonction($toto) {
$toto += 15;
echo ‘’Salut !’’;
return ($toto+10);
}
$nbr = MaFonction(15.1);
/* retourne 15.1+15+10=40.1, les majuscules n’ont pas d’importance */
Mohamed MANAA

Développement Côté Serveur

Développement Côté Serveur
PHP : Les classes
Php gère la programmation orientée objet à l’aide de classes.
Exemple :
class Voiture {
// déclaration de la classe
var $couleur;
// déclaration d’un attribut
var $belle = TRUE; // initialisation d’un attribut
function voiture() { // constructeur
$this->couleur = ‘’noire’’;
} // le mot clé $this faisant référence à l’objet est obligatoire
function Set_Couleur($couleur) {
$this->couleur = $couleur;
}
}
$mavoiture = new Voiture();
// création d’une instance
$mavoiture->Set_Couleur(‘’blanche’’);
// appel d’une méthode
$coul = $mavoiture->couleur;
// appel d’un attribut
Mohamed MANAA

Développement Côté Serveur

12

Développement Côté Serveur
PHP : Les classes
Le système de classes de php ne gère que l’héritage simple.
Exemple :
class Voituredeluxe extends Voiture { // déclaration de la sous classe
var $couleur;
function voituredeluxe() {
// constructeur
$this->Voiture();
}
function Set_Couleur($couleur) {
$this->couleur = $couleur;
}
function Get_Couleur() {
return $this->couleur;
}
}
La nouvelle classe Voituredeluxe hérite de tous les attributs et méthodes de la classe
parente Voiture dont elle est une extension (extends). Il est possible de surcharger les
méthodes, d’en déclarer de nouvelles, etc.
Mohamed MANAA

Développement Côté Serveur

Développement Côté Serveur
PHP : Les classes
Quelques fonctions :
get_declared_classes() : retourne un tableau listant toutes les classes définies
class_exists($str) : vérifie qu'une classe dont le nom est passé en argument a été
définie
get_class($obj), get_parent_class : retournent le nom de la classe de l’objet $obj
get_class_methods($str) : retourne les noms des méthodes de la classe $str dans
un tableau
get_class_vars($str) : retourne les valeurs par défaut des attributs de la classe $str
dans un tableau associatif
get_object_vars($obj) : retourne un tableau associatif des attributs de l’objet $obj
les clés sont les noms des attributs et les valeurs, celles des attributs si elles existent
is_subclass_of($obj,$str) : détermine si l’objet $obj est une instanciation d’une
sous-classe de $str, retourne VRAI ou FAUX
method_exists($obj,$str) : vérifie que la méthode $str existe pour une classe dont
$obj est une instance, retourne VRAI ou FAUX
Mohamed MANAA

Développement Côté Serveur

13

Développement Côté Serveur
PHP : Les structures de contrôle
Structures conditionnelles (même syntaxe qu’en langage C) :
if( ... ) {

} elseif {

} else {

}
switch( … ) {
case … : { … } break

default : { … }
}
Mohamed MANAA

Développement Côté Serveur

Développement Côté Serveur
PHP : Les structures de contrôle
Structures de boucle (même syntaxe qu’en langage C) :
for( … ; … ; … ) {

}
while( … ) {

}
do {

} while( … );

Mohamed MANAA

Développement Côté Serveur

14

Développement Côté Serveur
PHP : Les structures de contrôle
L’instruction break permet de quitter prématurément une boucle.
Exemple :
while($nbr = $tab[$i++]) {
echo $nbr.’’<br />’’;
if($nbr == $stop)
break;
}
L’instruction continue permet d’éluder les instructions suivantes de l’itération
courante de la boucle pour passer à la suivante.
Exemple :
for($i=1; $i<=10; $i++) {
if($tab[$i] == $val)
continue;
echo $tab[$i];
}
Mohamed MANAA

Développement Côté Serveur

Développement Côté Serveur
PHP : Les inclusions
On peut inclure dans un script php le contenu d’un autre fichier.
require insert dans le code le contenu du fichier spécifié même si ce n’est pas du
code php. Est équivalent au préprocesseur #include du C.
Exemple :
require(‘’fichier.php’’);

include évalue et insert à chaque appel (même dans une boucle) le contenu du
fichier passé en argument.
Exemple :
include(‘’fichier.php’’);

Mohamed MANAA

Développement Côté Serveur

15

Développement Côté Serveur
PHP : Exemple
<html>
<head>
<title>Document sans titre</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
<form method="POST" action="test.php">
<input type="text" name="nom">
<input type="text" name="prenom">
<input type="submit" name="bouton" value="envoyer">
</form>
</body>
</html>
Page : test.php
<?
print 'votre nom est '.$_POST["nom"].' <br> et prenom '.$_POST["prenom"];
?>
Mohamed MANAA

Développement Côté Serveur

Développement Côté Serveur
PHP : Exemple
La page verif.php
<?
if(empty($_POST[nom]) || empty($_POST[prenom]))
//on vérifie avec empty voir si les champs sont vide
{
print "le champ nom ou le champ prénom est vide";
//si un des 2 champs n'est pas rempli, message d'erreur
}
else{ //sinon message de confirmation
print "les champs sont ok";
}
?>
Mohamed MANAA

Développement Côté Serveur

16

Développement Côté Serveur
PHP : Les expressions régulières
Les expressions régulières sont un outil puissant pour la recherche de motifs dans une
chaîne de caractères.
Fonctions :

ereg($motif, $str) : teste l’existence du motif $motif dans la chaîne $str
ereg_replace($motif, $newstr, $str) : remplace les occurrences de $motif dans
$str par la chaîne $newstr

split($motif, $str) : retourne un tableau des sous-chaînes de $str délimitées par
les occurrences de $motif

Les fonctions eregi, eregi_replace et spliti sont insensibles à la casse (c’est-àdire ne différencient pas les majuscules et minuscules).
Exemple :
if (eregi(‘’Sfax’’, $adresse))
echo ‘’Vous habitez Sfax.’’;
Mohamed MANAA

Développement Côté Serveur

Développement Côté Serveur
PHP : Les expressions régulières
$chaine = "Le php est un langage payant";
str_replace()
//Nous allons remplacer payant par gratuit
$chaine1 = str_replace("payant","gratuit",$chaine) ;
print $chaine1;
Affiche à l'écran
Le php est un langage gratuit
ereg_replace()
$chaine1 = ereg_replace("payant","gratuit",$chaine) ;
print $chaine1;
Affiche à l'écran
Le php est un langage gratuit
Mohamed MANAA

Développement Côté Serveur

17

Développement Côté Serveur
PHP : Les expressions régulières
Rechercher un mot:
$chaine = "Le php est un langage gratuit";
if( ereg('un',$chaine)) //on recherche le mot un dans la phrase
{
print 'le mot un est bien dans la phrase';
}
else{
print 'le mot n\'est pas trouvé';
}

Développement Côté Serveur

Mohamed MANAA

Développement Côté Serveur
PHP : Les expressions régulières
Découper une chaîne:
$chaine = "Le php est un langage gratuit";
//on utilise split() pour découper la phrase
$resultat = split(" ",$chaine); //on découpe la chaîne avec l'espace
//Attention: le résultat obtenu est sous forme de tableau
print $resultat[1];
Affiche à l'écran
php
Pour mémoire, le tableau obtenu se présente comme ceci
Le

php

est

un

0

1

2

3

Mohamed MANAA

langage
4

gratuit
5
Développement Côté Serveur

18

Développement Côté Serveur
PHP : Les expressions régulières
Vérifier si une variable est vide:
if( empty($variable_a_verifier)) //empty vérifie si la variable est vide
{
print "La variable est vide"; //message erreur variable vide
}
else{
print "c'est ok"; //la variable est attribuée c'est donc ok
}
#-- le contraire de empty() est isset()
if( isset($variable_a_verifier)) //isset vérifie si la variable est attribuée
{
print "ok la variable est attribué";
}
else{
print "la variable est vide";
}
Mohamed MANAA

Développement Côté Serveur

Développement Côté Serveur
PHP : Les expressions régulières
Vérifier une adresse email
<?
if(!ereg("\.",$_POST[email]) || !ereg("@",$_POST[email]))
{
print "adresse email non valide";
//le . ou @ ou les 2 ne sont pas dans le champ $email
}
else{
print "adresse email ok";
}
?>

Mohamed MANAA

Développement Côté Serveur

19

Développement Côté Serveur
PHP-MySQL

MySQL est une base de données implémentant le langage de requête SQL un
langage relationnel très connu. Cette partie suppose connue les principes des bases
de données relationnelles.

Il existe un outil libre et gratuit développé par la communauté des programmeurs
libres : phpMyAdmin qui permet l’administration aisée des bases de données MySQL
avec php. Il est disponible sur : http://sourceforge.net/projects/phpmyadmin/ et
http://www.phpmyadmin.net.

Avec MySQL vous pouvez créer plusieurs bases de données sur un serveur. Une
base est composée de tables contenant des enregistrements.

Plus d'informations sont disponibles à http://www.mysql.com/.

Mohamed MANAA

Développement Côté Serveur

Développement Côté Serveur
PHP-MySQL : Connexion

Pour se connecter à une base depuis php, il faut spécifier un nom de serveur, un nom
d’utilisateur, un mot de passe et un nom de base.
Les fonctions de connexion :
mysql_connect($server,$user,$password) : permet de se connecter au serveur
$server en tant qu’utilisateur $user avec le mot de passe $password, retourne
l’identifiant de connexion si succès, FALSE sinon
mysql_select_db($base[,$id]) : permet de choisir la base $base, retourne TRUE en
cas de succès, sinon FALSE
mysql_close([$id]) : permet de fermer la connexion
mysql_pconnect : idem que mysql_connect sauf que la connection est
persistante, il n’y a donc pas besoin de rouvrir la connexion à chaque script qui
travaille sur la même base.
Les identifiants de connexion ne sont pas nécessaires si on ne se connecte qu’à une
seule base à la fois, ils permettent seulement de lever toute ambiguïté en cas de
connexions multiples.
Mohamed MANAA

Développement Côté Serveur

20

Développement Côté Serveur
PHP-MySQL : Connexion - Exemple
if( $id = mysql_connect(‘’localhost’’,’’’’,’’’’) ) {
if( $id_db = mysql_select_db(‘’BaseTest’’) ) {
echo ‘’Succès de connexion.’’;
/* code du script … */
} else {
die(‘’Echec de connexion à la base.’’);
}
mysql_close($id);
} else {
die(‘’Echec de connexion au serveur de base de données.’’);
}

Mohamed MANAA

Développement Côté Serveur

Développement Côté Serveur
PHP-MySQL : Connexion - Exemple

@mysql_connect(‘’localhost’’,’’’’,’’’’) or die(‘’Echec de connexion au serveur.’’);
@mysql_select_db(‘’BaseTest’’) or die(‘’Echec de sélection de la base.’’);

Cet exemple est équivalent au précédent mais plus court à écrire. Le symbole @
(arobase) permet d’éviter le renvoie de valeur par la fonction qu’il précède.

On pourra avantageusement intégrer ce code dans un fichier que l’on pourra joindre
par include(). C’est aussi un moyen de sécuriser le mot de passe de connexion.

Une connexion persistante évite d’avoir à rouvrir une connexion dans chaque script.
Les connexions sont automatiquement fermées au bout d’un certain temps en cas
d’absence de toute activité…

Mohamed MANAA

Développement Côté Serveur

21

Développement Côté Serveur
PHP-MySQL : Interrogation
Pour envoyer une requête à une base de donnée, il existe la fonction : mysql_query($str) qui prend
pour paramètre une chaîne de caractères qui contient la requête écrite en SQL et retourne un
identificateur de résultat ou FALSE si échec.
Les requêtes les plus couramment utilisées sont : CREATE (création d’une table), SELECT
(sélection), INSERT (insertion), UPDATE (mise à jour des données), DELETE (suppression), ALTER
(modification d’une table), etc.
Exemple :
$result = mysql_query(‘’SELECT address FROM users WHERE name=\’’$name\’’’’);
Cet exemple recherche l’adresse de l’utilisateur portant pour nom la valeur de la chaîne $name.
L’identificateur de résultat $result permettra à d’autres fonctions d’extraire ligne par ligne les
données retournées par le serveur.
Attention, contrairement à Oracle SQL, les requêtes MySQL ne se terminent pas par un point
virgule ‘;’ et n’autorisent pas les SELECT imbriqués.
Mohamed MANAA

Développement Côté Serveur

Développement Côté Serveur
PHP-MySQL : Extraction de données
mysql_fetch_row($result) : retourne une ligne de résultat sous la forme d’un tableau.
Les éléments du tableau étant les valeurs des attributs de la ligne. Retourne FALSE s’il
n’y a plus aucune ligne.
Exemple 1 :
$requet = ‘’SELECT * FROM users’’;
if($result = mysql_query($requet)) {
while($ligne = mysql_fetch_row($result)) {
$id = $ligne[0];
$name = $ligne[1];
$address = $ligne[2];
echo ‘’$id - $name, $address <br />’’;
}
} else {
echo ‘’Erreur de requête de base de données.’’;
}
Ici, on accède aux valeurs de la ligne par leur indice dans le tableau.
Mohamed MANAA

Développement Côté Serveur

22

Développement Côté Serveur
PHP-MySQL : Extraction de données
mysql_fetch_array($result) : retourne un tableau associatif. Les clés étant les noms
des attributs et leurs valeurs associées leurs valeurs respectives. Retourne FALSE s’il
n’y a plus aucune ligne.
Exemple 2 :
$requet = ‘’SELECT * FROM users’’;
if($result = mysql_query($requet)) {
while($ligne = mysql_fetch_array($result)) {
$id = $ligne[‘’id’’];
$name = $ligne[‘‘name’’];
$address = $ligne[‘’address’’];
echo ‘’$id - $name, $address <br />’’;
}
} else {
echo ‘’Erreur de requête de base de données.’’;
}
Ici, on accède aux valeurs de la ligne par l’attribut dans le tableau associatif.
Mohamed MANAA

Développement Côté Serveur

Développement Côté Serveur
PHP -MySQL : Exemple
Construire une table
CREATE TABLE test_tbl (
id int NOT NULL auto_increment,
date varchar(20) NOT NULL,
prenom varchar (50) NOT NULL,
email varchar(55) NOT NULL,
PRIMARY KEY (id)
);
#insertion des données que l'on souhaite voir dans la table
INSERT INTO test_tbl VALUES('1','4-04- 2002','webmestre','webmaster@monsite.com');
INSERT INTO test_tbl VALUES ( '2', '4-04-2002', ‘mohamed', ‘mohamed@monsite.com');
INSERT INTO test_tbl values('3','4-04-2002',‘sami',‘sami@monsite.com');
INSERT INTO test_tbl values('4','4-04-2002',‘ali',‘ali@monsite.com');
Mohamed MANAA

Développement Côté Serveur

23

Développement Côté Serveur
PHP -MySQL : Exemple
Afficher le contenu de la table test_tbl
<?
$db = mysql_connect(‘localhost','','') or die ("erreur de connexion");
mysql_select_db(‘BaseTest',$db) or die ("erreur de connexion base");
$req = mysql_query("SELECT id,date,prenom,email from test_tbl ") or die ("erreur sql
".mysql_error());
while ( $resultat = mysql_fetch_array($req))
{
print 'l\'id ->'.$resultat[id].' date ->'.$resultat[date].' prenom->'.$resultat[prenom].' email >'.$resultat[email].'<br>';
}
mysql_close();
?>

Mohamed MANAA

Développement Côté Serveur

Développement Côté Serveur
PHP -MySQL : Exemple

Ce qui affichera à l'écran

l'id ->1 date ->4-04-2002 prenom-> webmestre email-> webmaster@monsite.com
l'id ->2 date ->4-04-2002 prénom-> mohamed email-> mohamed@monsite.com
l'id ->3 date ->4-04-2002 prénom-> paul email-> sami@monsite.com
l'id ->4 date ->4-04-2002 prenom-> ali email-> ali@monsite.com

Mohamed MANAA

Développement Côté Serveur

24

Développement Côté Serveur
PHP -MySQL : Exemple
Code HTML pour inserer les données

<html><head><title>formulaire</title>
<head>
<body>
<form method="post" action="inserer.php">
<input type="text" name="prenom"><br>
<input tupe="text" name="email"><br>
<input type="submit" name="submit" value="Insérer dans la base">
</form>
</body>
</html>

Mohamed MANAA

Développement Côté Serveur

Développement Côté Serveur
PHP -MySQL : Exemple
La page d'insertion inserer.php

<?
$db = mysql_connect(‘localhost','','') or die ("erreur de connexion");
mysql_select_db(‘BaseTest',$db) or die ("erreur de connexion base");
$date = date("d-m-Y");
mysql_query("INSERT INTO test_tbl (id,date,prenom,email) VALUES
('','$date','$prenom','$email') ") or die ("erreur insert ".mysql_error());
mysql_close();
?>

Mohamed MANAA

Développement Côté Serveur

25

Développement Côté Serveur
Administration avec l’outil web phpMyAdmin

L’outil phpMyAdmin est développé en PHP et offre une interface intuitive pour
l’administration des base de données du serveur.

Cet outil permet de :
créer de nouvelles bases
créer/modifier/supprimer des tables
afficher/ajouter/modifier/supprimer des tupes dans des tables
effectuer des sauvegarde de la structure et/ou des données
effectuer n’importe quelle requête
gérer les privilèges des utilisateurs

Mohamed MANAA

Développement Côté Serveur

Développement Côté Serveur
Administration avec l’outil web phpMyAdmin

Mohamed MANAA

Développement Côté Serveur

26

Développement Côté Serveur

Mohamed MANAA

Développement Côté Serveur

27


PHP.pdf - page 1/27
 
PHP.pdf - page 2/27
PHP.pdf - page 3/27
PHP.pdf - page 4/27
PHP.pdf - page 5/27
PHP.pdf - page 6/27
 




Télécharger le fichier (PDF)


PHP.pdf (PDF, 949 Ko)

Télécharger
Formats alternatifs: ZIP



Documents similaires


cours l2 php mysql chap 2
cours l2 php pdo
php
initiation php
guide php
installation de vbulletin

Sur le même sujet..