Cours PHP
Cours PHP
Cours PHP
COURS DE
PROGRAMMATION WEB 2
PHP-MySQL
1. Langage interprété
Un langage informatique est par définition différent du langage
machine. Il faut donc le traduire pour le rendre intelligible du point de
vue du processeur. Un programme écrit dans un langage interprété a
besoin d’un programme auxiliaire (l’interpréteur) pour traduire au fur
et à mesure les instructions du programme
2. Langage compilé
Un programme écrit dans un langage dit « compilé » va être traduit une
fois pour toutes par un programme annexe (le compilateur) afin de
générer un nouveau fichier qui sera autonome, c’est-à-dire qui n’aura
plus besoin d’un programme autre que lui pour s’exécuter (on dit
d’ailleurs que ce fichier est exécutable). Un programme écrit dans un
langage compilé a comme avantage de ne plus avoir besoin, une fois
compilé, de programme annexe pour s’exécuter. De plus, la traduction
étant faite une fois pour toute, il est plus rapide à l’exécution. Toutefois
il est moins souple qu’un programme écrit avec un langage interprété
car à chaque modification du fichier source (fichier intelligible par
l’homme : celui qui va être compilé) il faudra recompiler le programme
pour que les modifications prennent effet.
I.1 Définition
PHP est un langage de script HTML exécuté du côté du serveur. Il veut
dire « PHP : Hypertext Preprocessor ». Sa syntaxe est largement inspirée
du langage C, de Java et de Perl, avec des améliorations spécifiques. Le
but du langage est d'écrire rapidement des pages HTML dynamiques.
WINDOWS
➢ Intégration à HTML
Une page php porte l'extension « .php ». Une page PHP peut être
entièrement programmée en PHP ou mélangée avec du code html. PHP
est un langage « Embedded HTML », c'est à dire qu'il apparaît à
n'importe quel endroit de la page HTML. Pour ça on le place dans des
balises particulières : <?php et ?>. On peut aussi utiliser les balises
<script language="php"> et </script>. La première forme est préférable
pour plus de simplicité et une compatibilité XHTML. On écrit donc une
page HTML dans laquelle on intègre du code PHP.
<html>
<head>
<title>Titre</title>
</head>
<body>
<html>
<head>
<title>Titre</title>
</head>
<body>
Hello word!
</body>
</html>
<?php
if ( expression ) {
?>
<strong>Ceci est vrai.</strong>
<?php
} else {
?>
<strong>Ceci est faux.</strong>
<?php
➢ Séparateur d'instructions
Comme en C une instruction se termine par un point-virgule « ; ». Notez
que la balise fermante ?> implique la fin d'une instruction.
<?php
echo "Ceci est un test";
?>
<?php echo "Ceci est un test" ?>
➢ Bloc d'instructions
Un bloc d'instructions se place entre accolades { et }. Un bloc
d'instructions peut contenir du code de n'importe quelle longueur et
est considéré dans le reste du code comme une instruction unique. Si
c'est une expression (qui a une valeur) on peut donc assigner le bloc,
faire des calculs, ...
➢ Commentaires
Les commentaires s'utilisent comme en C et en C++ avec /* .. */ et //.
Notez qu'une balise fermante ferme le commentaire en cours.
<?php
/* echo "salut !" */
// Commentaire sur cette ligne
?>
// Déclaration et règles
$var=1; // $var est à 1
$Var=2; // $ Var est à 2
$_toto='Salut'; // Ok
$3petitscochons=5; // Invalide : commence par un chiffre
// Déclaration et transtypage
$var = '2'; // Une chaîne 2
Par défaut les variables sont assignées par valeur : la valeur assignée à
la variable est recopiée dans la variable. PHP peut aussi travailler par
référence. Une variable peut donc référencer une autre variable. On dit
alors que la variable devient un alias, ou pointe sur une autre variable.
On assigne par référence en utilisant le signe « & » devant la variable
assignée.
}
Pour accéder à une variable globale dans une fonction, il faut utiliser
le mot-clé global.
echo $b;//affiche 3
$a = "var";
$$a = 1; // $$a=1 equivaut en fait à $var=1
echo $a; // affiche var
echo $$a; // affiche 1
echo $var; // affiche 1
III.5.1 booléens
Un booléen peut prendre deux valeurs TRUE ou FALSE. Les deux
constantes TRUE et FALSE peuvent être utilisées sans aucune
distinction de casse (pas de différences entre les majuscules et les
minuscules).
III.5.2 Entiers
Un entier est l'ensemble des nombres naturels, c'est à dire sans virgule,
positifs ou négatifs. Les entiers sont généralement codés sur 32 bits
mais cela dépend de l'architecture. Si on affecte un nombre entier qui
dépasse la capacité de la variable, celle-ci sera transformée en réel
(float). Enfin il n'y a pas de notion d'entier non signé.
<?php
$vardbl = 1952.36;
$vardbl2= 1.95236E3;//Soit 1.95236 x 1000
echo $vardbl2,"<br />";//Affiche 1952.36
$vardbl3= 1.95236e3;
echo $vardbl3,"<br />";//Affiche 1952.36
echo $vardbl3*100000000000,"<br />";//Affiche 1.95236E14
?>
Séquence Valeur
\\ Antislash
\$ Caractère $
N'importe quelle variable peut être affichée dans une chaîne comme ci-
dessus mais attention si deux variables ont un nom proche ! Il faut
alors utiliser les accolades { } comme en shell. Enfin on peut accéder à
n'importe quel caractère dans une chaîne en indiquant sa position (qui
commence à zéro) entre deux accolades collées juste après le nom de la
variable.
$fic = 'toto.fic';
$fics = 'riri fifi loulou';
echo "$fics ${fic}s"; // affiche riri fifi loulou toto.fics
$var=array(10,15,17,23,9);
echo $var[0]; // 10
echo $var[3]; // 23
$tab=array("a"=>12,"nom"=>"toto","pipo",17,4=>5);
$tab[0] = 2004;
$tab[1] = 31.14E7;
$tab[2] = "PHP5";
$tab[35] = $tab[2]. "et MySQL";
$tab[] = TRUE;
$ind = 40;
$tab[$ind] = "Dernier élément";
echo "Nombre d'éléments = ", count($tab);
On peut aussi créer des tableaux multidimensionnels à l'aide des deux
méthodes précédentes.
$tab=array("un"=>array("riri",1=>"fifi",2=>'loulou'),2=>array(1,2,3),array('un','deux'
,'trois'));
echo $tab['un'][0]; // riri
echo $tab[2][1]; // 2
class Test {
function affiche_hello() {
echo "Hello !";
}
}
$obj=new test();
$obj->affiche_hello();
define(CONSTANTE,"valeur");
echo CONSTANTE; // affiche "valeur"
Exemple : define( ‘’PI’’, 3.1415926535 ) ;
echo PI ;
Quelques constantes prédéfinies :
Constantes Significations
PHP_VERSION Version de PHP installée sur le serveur
PHP_OS Nom du système d’exploitation du serveur
DEFAULT_INCLUDE_PATH Chemin d’accès aux fichiers par défaut
__FILE__ Nom du fichier en cours d’exécution
__LINE__ Numéro de la ligne en cours d’exécution
Les types retournés sont "boolean", "integer", "double" (pour des raisons
historiques, "double" est retournée lorsqu'une valeur de type float est
fournie, au lieu de la chaîne "float"), "string", "array", "object",
"resource" (depuis PHP 4), "NULL" (depuis PHP 4), "unknown type"
Exemple :
Exemple :
Décrémentation Incrémentation
$var=56; $var=56;
echo $var––; //affiche 56 puis décrémente $var. echo $var++; //affiche 56 puis incrémente $var.
echo $var; //affiche 55. echo $var; //affiche 57.
echo ––$var; //décrémente $var puis affiche 54. echo ++$var; //incrémente $var puis affiche 58.
Opérateur Description
OR Teste si l’un au moins des opérandes a la valeur TRUE :
$a = true;
$b = false;
$c = false;
$d = ($a OR $b);//$d vaut TRUE.
$e = ($b OR $c); //$e vaut FALSE.
$a="Bonjour";
$b=$a." les amis"; // $b contient Bonjour les amis
$b.="! Salut."; // $b contient Bonjour les amis! Salut.
V.1 L’instruction if
if(expression)
{
// bloc de code
}
Exemple :
<?php
$a=6;
if(is_integer($a) && ($a<10 && $a>5) && ($a%2==0) ) {
echo "Conditions satisfaites";
}
?>
<?php
$prix=55;
if($prix>100)
{
echo "<b>Pour un montant d'achat de $prix F, la remise est de 10 % </b><br />";
echo "Le prix net est de ",$prix*0.90;
}
else
{
echo "<b>Pour un montant d'achat de $prix F, la remise est de 5 %</b><br />";
echo "<h3>Le prix net est de ",$prix*0.95,"</h3>";
}
?>
Le bloc qui suit les instructions if ou else peut contenir toutes sortes
d’instructions, y compris d’autres instructions if...else. Nous obtenons
dans ce cas une syntaxe plus complexe, de la forme :
if(expression1)
{//Bloc 1}
elseif(expression2)
{//Bloc 2}
else
{//Bloc 3}
Exemple :
V.1.2 L’opérateur ?
L’opérateur ? permet de remplacer avantageusement une instruction
if...else en évaluant une expression et en attribuant à une variable une
première valeur si la condition est vraie ou une autre valeur si elle est
fausse.
Sa syntaxe est la suivante :
$var = expression ? valeur1 : valeur2
Elle est équivalente à :
if(expression) {
$var=valeur1;
}
else {
$var=valeur2;
}
<?php
$dept=75;
switch($dept)
{
//Premier cas
case 75:
case "Capitale":
echo "Paris";
break;
//Deuxième cas
case 78:
echo "Hauts de Seine";
break;
//Troisième cas
case 93:
case "Stade de france":
echo "Seine Saint Denis";
break;
//la suite des départements...
//Cas par défaut
default:
echo "Département inconnu en Ile de France";
break;
}
?>
<?php
for($i=1;$i<7;$i++)
{
echo "<h$i> $i :Titre de niveau $i </h$i>";
}
?>
Les trois expressions utilisées dans la boucle for peuvent contenir
plusieurs parties séparées par des virgules. La boucle peut en ce cas
être réalisée sur plusieurs variables, comme illustré à l’exemple ci-
après :
Exemple
<?php
do
{
// bloc d'instructions;
}
while(condition);
?>
Exemple :
<?php
do
{
$n = rand(1,100);
echo $n," / ";
}
while($n%7!=0);
?>
<?php
//Création du tableau de 9 éléments
for($i=0;$i<=8;$i++)
{
$tab[$i] = pow(2,$i);
}
$val ="Une valeur";
echo $val,"<br />";
//Lecture des valeurs du tableau
echo"Les puissances de 2 sont :";
foreach($tab as $val)
{echo $val." : ";}
?>
<?php
//Création d'un tableau de noms
$tab[1]="Basile";
$tab[2]="Conan";
$tab[3]="Albert";
$tab[4]="Vincent";
//Boucle de lecture du tableau
for($i=1;$i<count($tab);$i++)
{
if ($tab[$i][0]=="A")
{
echo "Le premier nom commençant par A est le n˚ $i: ",$tab[$i];
break;
}
}
?>
Exemple :
➢ L’élément TEXTAREA
<Textarea name= "commentaire " rows=10 cols=40 >
//Taper vos commentaires ici
</Textarea>
➢ Bouton option
<input type="radio" name="sexe" value="F" checked>Feminin <BR>
<input type="radio" name="sexe" value="M">Masculin
➢ L’élément Select—option
Cet élément sert à définir des listes (menus déroulant ou ascenseurs).
Elle s’utilise avec l’élément OPTION
<select name="liste">
<option> Taro
<option> Patate
<option> Igname
<option selected> Pomme de Terre
<option> Oignon
<option> Ail
</select >
➢ Boutons
<input type="submit" value="Envoyer">
<input type="reset" value="Annuler">
return $valeur
Une fonction n'a pas besoin d'être déclarée avant d'être utilisée (sauf si
vous voulez rester compatible avec PHP3), du moment qu'elle apparaît
dans le script.
VII.2 Arguments
On peut passer autant d'arguments que souhaité à une fonction PHP,
de tous types. Les arguments sont séparés par des virgules. Par défaut
ils sont passés par copie.
Function affiche($msg) {
echo $msg;
}
Il est possible de passer des arguments par référence, on peut donc en
changer la valeur à l'intérieur de la fonction. Pour cela on rajoute un «
function modif(&$msg) {
echo $msg;
}
$msg="salut";
modif($msg);
On peut aussi définir des valeurs par défaut mais ATTENTION, dans la
liste des paramètres les valeurs par défaut doivent être en dernier.
function acquis($capital,$taux)
{
static $acquis=1;
//corps de la fonction
}
VIII.1 Présentation
MySQL est un SGBDR : « Système de Gestion de base de Données
Relationnel » qui se définit luimême comme étant « La base de données
Open Source la plus populaire au monde ». Rien que ça. Et c'est vrai !
Edité par la société MySQL AB, MySQL est un produit Open Source
libre d'utilisation sous licence GPL pour les projets libres. Cependant
une licence commerciale est nécessaire dans les autres cas, notamment
si on souhaite redistribuer MySQL avec un produit non libre ou si on
souhaite un support technique.
➢ PhpMyAdmin
S'il reste bien entendu possible d'utiliser MySQL en ligne de commande,
un peu comme « sqlplus » de Oracle, on est bien plus à l'aise avec un
environnement plus intuitif. Ainsi, l'outil phpMyAdmin est une
interface web à MySQL permettant d'effectuer la plupart des tâches de
maintenance et d'utilisation. Cette solution fonctionne depuis
n'importe quel navigateur et est indépendante de la machine. On
accède à phpMyAdmin généralement par l'URL
http://server_name/mysql.
$host="hostname"
$user="username";
$b_base="db_l2";
$db=msql_select_db($b_base);
if(!$db) die("Erreur de connexion à la base $b_base");
$id=mysql_insert_id();
$result=mysql_query("select sujet, texte from f_message where
id_message=$id");
$tab=mysql_fetch_array($result);
IX.1 Principe
Les sessions permettent de préserver des données lors de la visite d'un
site. Chaque personne se voit attribué un identifiant unique appelé
identifiant de session, ou SID. Ce SID est soit stocké dans un cookie,
soit passé par URL. On peut ainsi définir un nombre infini de variables
qui seront accessibles durant toute la durée de la session.
IX.2 Utilisation
IX.2.1 Ouverture
Si dans PHP.INI la valeur « session.auto_start » est activée, les sessions
sont démarrées de manière automatique lors de l'accès à une page.
Sinon il faut utiliser explicitement la fonction session_start(). Son
appel créé une session ou restaure une session précédemment stockée
sur le serveur.
Méthode 1 (déconseillée) :
if(session_is_registered('txt')) {
session_unregister('txt');
unset($txt); }