Introduction à PHP
Retour vers la page d'accueil

Pourquoi ?

Hébergement

Création

Vérifier

F. A. Q.

Manuel

Conditions

Commander

Réserver

Contact
 

Manuel

Votre compte

Les scripts CGI

PHP

MySQL

MySQL et PHP

SSI

Les domaines

Petit glossaire


 
 
 

PHP est un excellent langage de programmation de type pré-processeur, c'est-à-dire qu'il permet de rajouter des instructions supplémentaires au code de base de vos pages web qui seront exécutées du côté serveur avant que le résultat ne soit envoyé à vote navigateur. Il représente une alternative avantageuse à la complexité d'utilisation de Perl dans, notamment, les scripts CGI d'interfaçage avec une base de données.

Pour pouvoir exécuter des instructions PHP dans vos pages web sur notre serveur, vous devez nommer vos pages avec l'extension .php, .php3 ou .phtml.
Voici un exemple basique d'instructions PHP intrégrées dans du code HTML d'une page web :

<html>
<head><title>Exemple d'utilisation de PHP</title></head>
<body>
<? if ($nom):?>
<? echo "Bonjour $nom!";?>  // affiche le contenu de $nom s'il n'est pas vide
<? else:?>  // sinon affiche le formulaire
<form method="POST">  // création du mini formulaire web
Quel est votre nom ? <input name=nom>
<p><input type=submit>
</form>
<? endif;?>  // fin de la condition
</body>
</html>
Chaque instruction ou groupe d'instructions PHP est balisée par les containers <? et ?>. Cet exemple affiche le nom du visiteur que ce dernier aura entré dans le champ. Nous allons voir maintenant comment interfacer une page web avec une base de données au format très courant dbase par l'intermédiaire de PHP.
 

1: Créez une table dbase

<?
$dbname = "test.dbf";  // votre table doit avoir l'extension .dbf
// définition de la table avec 3 champs : nom, prenom et age
$def = array(
array("nom",  "C",20),  // nom est de type caractère de taille 20
array("prenom",  "C",20),
array("age",  "N",3,0)  // age est un nombre à trois entiers sans décimale
);
// création de la table
if (!dbase_create($dbname, $def))
{print "<strong>Erreur!</strong>";}
else 
{print "<strong>Votre table ".$dbname." a été créee avec succès !</strong>";}
?>
Pour que la table test.dbf soit créée, exécutez ce code. Vous pouvez aussi la créer avec des logiciels tels que Dbase, Access ou Excel. Si vous y entrez des données par la même occasion, il vous faudra convertir les caractères accentués de votre table au format ANSI avec un bon éditeur de texte car ces logiciels sauvegardent une table dbase au format de caractères OEM que PHP ne convertit pas, hélas, en ANSI.
 

2 : Ajouter des enregistrements à la table

<?
if ($nom or $prenom or $age) {  // teste si nom, prenom ou age ont été remplis

$db=dbase_open(test,2);  // ouvre la base test.dbf en mode 2 (lecture et écriture)
$def = array($nom,$prenom,$age);  // définit le tableau $def pour contenir les données
dbase_add_record($db, $def);  // ajoute le contenu de $def dans la table

$nf = dbase_numfields($db);  // pour connaître le nombre de champs de la table
print "Nombre de champs : ".$nf."<br>";

$nr = dbase_numrecords($db);  // pour connaître le nombre d'enregistrements de la table
print "Nombre d'enregistrements : ".$nr."<br>";

dbase_close($db);  // ferme la table
}
?>
// création du formulaire de remplissage de la table
// le nom du fichier contenant le code PHP est à relié à action
<form method="POST" action="dbase_add.php3">
Entrer Nom : <input type=text name=nom><br>
Entrer Prénom : <input type=text name=prenom><br>
Entrer Age : <input type=text name=age><br>
<br><input type=submit name=ajouter value=ajouter>
</form>

ATTENTION, le module dbase de PHP ne protège pas en standard une table de données contre des écritures simultanées de plusieurs utilisateurs. Si cela se produisait, votre table pourrait être détruite ! Pour éviter cela, soit vous n'autorisez l'écriture qu'à une seule personne, soit vous complétez le code précédent avec la fonction flock() de PHP. Cette fonction, qui ne fonctionne pas sur Windows 95/98, est simple à utiliser, reportez-vous au manuel de PHP.
 

3 : Visualiser les enregistrements

<?
$db=dbase_open(test,0);  // ouvre la table en lecture uniquement

$nf = dbase_numfields($db);
print "Nombre de champs : ".$nf."<br>";

$nr = dbase_numrecords($db);
print "Nombre d'enregistrments : ".$nr;
?>
<br><br>
<table border=1 width=400 BGCOLOR=yellow>
<tr BGCOLOR=green><td width=10%>N°</td><td width=40%>Nom</td><td width=40%>Prénom</td><td width=10%>Age</td></tr>
<?
for ($a=1; $a <= $nr; $a++) {  // mouline chaque enregistrement à partir de 1
    print "<tr><td>$a</td>";
    $rec = dbase_get_record($db, $a); // met dans $rec l'enregistrement avec le n° $a

    for ($i=0; $i < $nf; $i++) { // mouline chaque champ à partir de 0
      print "<td> ".$rec[$i]." </td>";  // affiche le champ $i de l'enregistrement $rec 
    }
    print "</tr>";
}
dbase_close($db);
?>
</table>
 

4 : Effacer un enregistrement d'une table

<?
if ($numero) {
$db=dbase_open(test,2);
dbase_delete_record($db,$numero);  // marque le $numero d'enregistrement à effacer

dbase_pack($db);  // concrétise l'effacement dans la table
dbase_close($db);
}
else {
print "Veuillez entrer un numéro d'enregistrement.";
}
?>
<br>
// Mettez comme valeur dans action le nom du fichier contenant ce code
<form method="POST" action="dbase_delete.php3">
Entrer le numéro de l'enregistrement à effacer  : <input type=text name=numero><br>
<br>
<input type=submit name=effacer value=effacer>
</form>


Nous vous conseillons de tester ces codes et de les personnaliser en local avant de les transférer sur vos sites. Vous pouvez bien sûr réunir les fonctions d'ajout, de visualisation et de suppression dans un même fichier. La partie suivante du manuel consacrée à Mysql vous donnera un autre exemple d'utilisation de PHP.

Pour en savoir plus sur PHP et télécharger une version, visitez le site officiel ou son site miroir en France. Vous trouverez aussi des informations concernant PHP sur les excellents sites :

Pour tester PHP en local, il vous faudra aussi un serveur web. Nous vous conseillons OmniHTTPd pour windows et bien sûr Apache pour Unix ou Windows.