DOSSIER D'ACTIVITES SUR LE PHP N 07 Supprimer des données d'une base de données Objectifs : Apprendre à l apprenant à lancer un serveur local «Apache» Apprendre à l'apprenant à lancer un serveur MySQL Apprendre à l'apprenant à créer un fichier de requête en PHP Apprendre à l'apprenant à configurer une requête de suppression MySQL Apprendre à l'apprenant à lier la variable $id_news et la requête de suppression MySQL Apprendre à l apprenant à visualiser les fichiers PHP créés Apprendre à l apprenant à changer les droits d'accès d'un fichier
La procédure de lancement du serveur Web «Apache» en local Pour visualiser toute page Web en PHP, il faut avoir à sa disposition : - soit un serveur Web local sur son ordinateur - soit un serveur Web distant sur lequel le développeur va télécharger les fichiers pour les visualiser. Le serveur Web «Apache» est actuellement le serveur Web le plus utilisé dans le monde. Il appartient au monde des logiciels libres. Il est d ailleurs très souvent installé par défaut sur les différentes distributions Linux. 1. Ouvrir le menu «K». 2. Choisir la commande «Paramètres de système > Paramètres de serveur > Services». La fenêtre «Configuration du service» apparaît. 3. Cocher la case «httpd» présente dans le cadre à gauche de la fenêtre, puis cliquer sur le bouton «démarrer» situé dans la barre des boutons de la même fenêtre. 4. Lorsque le serveur est bien démarré, une fenêtre d information apparaît. Elle présente le texte suivant «httpd start successful». 5. Lancer un navigateur et saisir l adresse suivante : http://localhost, pour s assurer que le serveur Web «Apache» est effectivement bien opérationnel. La procédure de lancement du serveur MySQL Le fonctionnement des bases de données sous MySQL est lié à celui d'un serveur spécifique : le serveur MySQL. Le lancement du serveur MySQL est couramment effectué à l'aide d'un logiciel spécifique qui devra être précédemment installé. Il s'agit ici de Webmin, un logiciel OpenSource qui permet l'administration complète d'un serveur. 1. Ouvrir un navigateur. 2. Saisir l'adresse suivante : http://localhost.localdomain:10000
3. Saisir les identifiant et mot de passe nécessaires pour accéder à l'outil Webmin. 4. Une fois, dans l'outil, cliquer sur le bouton «Serveur» présent dans la barre de navigation. 5. Puis cliquer sur le bouton «MySQL Server». 6. Ensuite cliquer sur le bouton «Start my SQL Server». La nouvelle page qui apparaît alors, informe l'utilisateur que les bases de données sont désormais accessibles sur le serveur. La procédure d'ouverture d'un logiciel «éditeur de textes» 1. Choisir le Menu K ou Red Hat. 2. Choisir le menu des «Editeurs de textes». 3. Cliquer, par exemple, sur Kate, sur Kwrite ou sur Kedit (Editeur de textes) pour lancer l'éditeur de votre choix. Les balises de définition de toute page Web <!DOCTYPE HTML PUBLIC «-//W3C//DTD HTML 4.01 Transitional//EN» «http://www.w3.org/tr/html4/transitional.dtd»> <html> <head> </head> <body> </body> </html>
L'insertion d'un lien vers la page de suppression L'ajout de code dans le fichier «administrer/index.php» est nécessaire pour l'insertion d'un lien vers la page de suppression. Cet ajout est spécifié en gras : [...] <? echo("<table cellspacing=\"0\" cellpadding=\"0\" border=\"1\" width=\"800\">"); while($array=mysql_fetch_array($requete)) echo("<tr>"); echo("<td><a href=\"modification.php?id_news=".$array[id_news]. "\">Modification</a></td>"); echo("<td>".$array[titre]."</td>"); echo("<td>".$array[auteur]."</td>"); echo("<td><a href=\"suppression.php?id_news=".$array[id_news]. "\">Suppression</a></td>"); echo("</tr>"); echo("</table>");?> [...] L'objectif est de créer un lien vers une page PHP qui permettra la suppression d'un article. Cette page de suppression sera unique pour chaque article. Pour différencier chaque page, on s'appuie sur le seul champ unique de chaque enregistrement dans la base de données, le champ id_news, champ dont le contenu est unique pour chaque enregistrement puisqu'auto-incrémenté.
La procédure de visualisation d'un fichier PHP 1. Ouvrir un navigateur (Mozilla, Konqueror, etc), depuis la barre de tâches ou le menu K puis Internet. 2. Saisir dans la barre d adresses : http://localhost/site_prenom/administrer/index.php 3. Appuyer sur la touche «Entrée». La procédure de visualisation des modifications effectuées dans un fichier PHP dans un navigateur 1. Effectuer les modifications sur le fichier PHP. 2. Enregistrer de nouveau le fichier PHP. 3. Si la fenêtre du navigateur est toujours ouverte, cliquer sur le bouton «Actualiser» : pour Mozilla pour Konqueror tous deux présents dans la barre des boutons standards. Sinon, reprendre la procédure de visualisation d'un fichier dans un navigateur.
Le fichier PHP pour la suppression d'un article Le code du fichier «administrer/suppression.php» est le suivant : <? $connexion=mysql_connect("localhost","root",""); if(!$connexion) echo("<br />La connexion au serveur a échoué."); else echo("<br />La connexion au serveur est effective."); $database=mysql_select_db(bdd_prenom); if(!$database) echo("<br />L'accès à la BDD a échoué."); else echo("<br />L'accès à la BDD a réussi.");?> <!DOCTYPE HTML PUBLIC «-//W3C//DTD HTML 4.01 Transitional//EN» «http://www.w3.org/tr/html4/transitional.dtd»> <html> <head> <title>liste des articles</title> </head>
<body> <h1>etes-vous sur de vouloir supprimer cet article?</h1> <a href="confirmation_suppression.php?id_news=<? Echo($id_news);? >">Confirmation</a> <br /><br /> <a href="index.php">retour</a> </body> </html> L'objectif de cette page est de demander à l'utilisateur une confirmation avant la suppression définitive de l'article sélectionné dans la page index.php. La procédure d'enregistrement d'un fichier PHP 1. Trouver la fonction «Enregistrer sous» de l'éditeur de codes PHP utilisé. 2. Se placer dans le répertoire créé «var/www/html/site_prenom/administrer». 3. Saisir dans la zone de saisie réservée à cet effet, le nom (suppression) et l'extension du fichier (php) : suppression.php. 4. Enregistrer le fichier en cliquant sur le bouton «Enregistrer» ou «OK», selon l'éditeur de textes. Remarques : L'enregistrement d'un fichier au format PHP doit respecter les règles suivantes : - le nom du fichier peut inclure des lettres minuscules, des chiffres ou des tirets. Tout autre caractère est interdit, notamment les espaces ou les caractères spéciaux - l'extension des pages peut être en «.php», «.php3», «.php4» ou «.phtml» suivant le serveur de l'hébergeur. Toujours le vérifier auprès de l'hébergeur. - le nom du fichier PHP doit être explicitement représentatif de la fonction du script, afin de faciliter son identification ultérieure.
La procédure de changement des droits d'accès d'un fichier sous Linux 1. Se placer sur l icône du fichier «suppression.php». 2. Cliquer droit. Un menu contextuel apparaît. 3. Choisir l option «Propriétés». Une fenêtre de dialogue apparaît. 4. Dans l onglet «Permissions», cocher toutes les cases (lecture, écriture et exécution). 5. Cliquer sur le bouton «Appliquer». Remarques : Sous Linux, chaque fichier créé présente par défaut des droits d accès. Ceux-ci peuvent être changés par l utilisateur. Les droits d accès se définissent soit selon une valeur numérique (ou octale), soit sous la forme (rwx) qui revient à définir les droits du propriétaire (owner), du groupe (group), de tous les utilisateurs (all). Ainsi chacun des trois peut avoir le droit de lire (read=r), d écrire (write=w) ou d exécuter (execute=x) le fichier en question. Lorsque tout le monde a le droit d effectuer les 3 actions, les droits d accès ou chmod sont égaux à 777 et à rwx-rwx-rwx.
Le fichier PHP pour la confirmation de la suppression d'un article Le code du fichier «administrer/confirmation_suppression.php» est le suivant : <? $connexion=mysql_connect("localhost","root",""); if(!$connexion) echo("<br />La connexion au serveur a échoué."); else echo("<br />La connexion au serveur est effective."); $database=mysql_select_db(bdd_prenom); if(!$database) echo("<br />L'accès à la BDD a échoué."); else echo("<br />L'accès à la BDD a réussi.");
$requete=mysql_query("delete FROM news WHERE id_news='$id_news'"); if(!$requete) echo("<br />La suppression a échoué."); else echo("<br />La suppression a été réalisée avec succès.");?> <!DOCTYPE HTML PUBLIC «-//W3C//DTD HTML 4.01 Transitional//EN» «http://www.w3.org/tr/html4/transitional.dtd»> <html> <head> <title>suppression d'un article</title> </head> <body> <br /> <a href="index.php">retour</a> <br /> </body> </html> Cette page accueille la requête MySQL de suppression : DELETE FROM news WHERE id_news='$id_news' Il s'agit de supprimer de la table news l'article dont id_news correspond à celui sélectionné à l'aide du lien hypertexte vers la page «administrer/suppression.php».
Les possibilités de valider la suppression des données Il y a plusieurs manières de procéder pour valider que la modification des données est effective : - visualiser le test renvoyé par le fichier PHP - ouvrir PHPMyAdmin (http://localhost/phpmyadmin), afficher le contenu de la table news et visualiser si un nouvel enregistrement est présent - visualiser une page de sélection de la table news (http://localhost/site_prenom/index.php)