36
Php: Bases de données, programmation oriente objet et RSS Madalina Croitoru

Php: Bases de données, programmation oriente objet et RSScroitoru/PHP-MySQL-Objects-2010.pdf · correspondent aux noms des variables transmises et ... • With RSS you can create

Embed Size (px)

Citation preview

Page 1: Php: Bases de données, programmation oriente objet et RSScroitoru/PHP-MySQL-Objects-2010.pdf · correspondent aux noms des variables transmises et ... • With RSS you can create

Php: Bases de données, programmation oriente objet et RSS

Madalina Croitoru

Page 2: Php: Bases de données, programmation oriente objet et RSScroitoru/PHP-MySQL-Objects-2010.pdf · correspondent aux noms des variables transmises et ... • With RSS you can create

Interaction Php et MySQLInteraction Php et MySQL

• L'intérêt n'est pas négligeableL intérêt n est pas négligeable

• 1. Récupération des données d'un formulaire pour l'introduire ensuite dans la basepour l introduire ensuite dans la base.

• 2. Sélectionner des données dans la base que l'on va ensuite récupérer à l'aide de PHP et ensuite on l'affichera dans un tableau html. 

Page 3: Php: Bases de données, programmation oriente objet et RSScroitoru/PHP-MySQL-Objects-2010.pdf · correspondent aux noms des variables transmises et ... • With RSS you can create

Formulaire HTMLFormulaire HTML

<form method="post" action="traitement.php"> 

<legend>Renseignement sur un élève</legend> 

<label for="nom">Nom:</label> /<input type="text" name="nom" id="nom" />

<label for="prenom">Prénom:</label> <input type="text" name="prenom" id="prenom" /><input type= text  name= prenom  id= prenom  />

<label for="adresse">Adresse:</label><textarea name="adresse"></textarea>

<input type="submit" value="envoyer" /> </form> 

Page 4: Php: Bases de données, programmation oriente objet et RSScroitoru/PHP-MySQL-Objects-2010.pdf · correspondent aux noms des variables transmises et ... • With RSS you can create

Traitement des données saisiesTraitement des données saisies

• Connexion à la base:Connexion à la base:– Faut ouvrir et fermer une connexion à la base.

Libérer et fermer cette connexion– Libérer et fermer cette connexion.

• Connexion au serveur: mysql_connect()

• Sélection de la base de données : mysql_select_db() 

• Fermeture de la base : mysql_close()

Page 5: Php: Bases de données, programmation oriente objet et RSScroitoru/PHP-MySQL-Objects-2010.pdf · correspondent aux noms des variables transmises et ... • With RSS you can create

fonctionBD.phpfonctionBD.php• <?php

//ouverture de la connexion//ouverture de la connexion function connect_bd() { $nomserveur='localhost'; //nom du seveur$nombd='ecole'; //nom de la base de données ; //$login='root'; //login de l'utilisateur $pass=''; // mot de pass$bd=mysql_connect($nomserveur, $login, $pass)or die("Connexion échouée"); mysql_select_db($nombd,$bd)or die("La base ne peut pas être selectionnée"); return $bd;return $bd; 

//fermeture de la connexion function deconnect bd($bd) _ ($ ){ mysql_close($bd); $db=0; 

} ?>?> 

Page 6: Php: Bases de données, programmation oriente objet et RSScroitoru/PHP-MySQL-Objects-2010.pdf · correspondent aux noms des variables transmises et ... • With RSS you can create

Traitement de donnéesTraitement de données• <?php

//inclure les fonctions pour la base i l d ("f i BD h ")include("fonctionBD.php"); 

//récupération des données et les formater un peu $nom = addslashes($_POST["nom"]); $prenom = addslashes($_POST["prenom"]); $adresse = addslashes($_POST["adresse"]); 

//Insertion de données//Insertion de données $bd=connect_bd(); if($bd<>0) { 

$requete="insert into eleve VALUES ('', '".$nom."','".$prenom."','".$adresse."')"; $resultat=@mysql_query($requete,$bd); if($resultat<>FALSE)if($resultat<>FALSE) { echo 'Enregistrement réussi, merci. Les valeurs insérées sont :<br />'; echo $nom.'<br />'; echo $prenom.'<br />'; echo $adresse.'<br />'; 

}} else{ echo "Echec de l'enregistrement, désolé"; 

} deconnect_bd($bd); 

} ?> 

Page 7: Php: Bases de données, programmation oriente objet et RSScroitoru/PHP-MySQL-Objects-2010.pdf · correspondent aux noms des variables transmises et ... • With RSS you can create

Les tableaux superglobaux $_POST et $$_GET

• Générés à la volée par PHP avant même que la Gé é és à a o ée pa a a t ê e que apremière ligne du script ne soit exécuté.

• Ce sont des tableaux associatifs: les clés correspondent aux noms des variables transmises et les valeurs à celles associées à ces variables.

• Superglobaux, c'est à dire visibles de partout dans le programme (même à l'intérieur d'une fonction utilisateur)fonction utilisateur).

• Accessibles en lecture et en écriture. Il est donc possible de les modifierpossible de les modifier.

Page 8: Php: Bases de données, programmation oriente objet et RSScroitoru/PHP-MySQL-Objects-2010.pdf · correspondent aux noms des variables transmises et ... • With RSS you can create

$ POST$_POST

• Le tableau $ POST contient tous les couplesLe tableau $_POST contient tous les couples variable / valeur transmis en POST, c'est à dire les informations qui ne proviennent ni de l'urlles informations qui ne proviennent ni de l url, ni des cookies et ni des sessions:

<?php

echo $_POST['prenom'];

?>

Page 9: Php: Bases de données, programmation oriente objet et RSScroitoru/PHP-MySQL-Objects-2010.pdf · correspondent aux noms des variables transmises et ... • With RSS you can create

Sélection et Affichage des donnéesSélection et Affichage des données• <?php

//select $bd=connect bd();$bd=connect_bd(); if($bd<>0) { $requete="select * from eleve"; $resultat=@mysql_query($requete,$bd); if($resultat<>FALSE) { echo "<table border=\"1\">"; //entête du tableau//entête du tableau echo "<tr>"; echo "<th>Numero</th>"; 

echo "<th>Nom</th>"; echo "<th>Prénom</th>"; 

echo "<th>adresse</th>"; echo "</tr>"; 

//fin de l'entête 

while ($row=mysql_fetch_array($resultat)) { echo "<tr>"; echo "<td>".$row['numero']."</td>"; echo "<td>".$row['nom']."</td>"; echo "<td>".$row['prenom']."</td>"; echo "<td>".$row['adresse']."</td>"; echo '</tr>';echo </tr> ; } echo "</table>"; 

} else{ 

echo "Echec de l'enregistrement, désolé"; } deconnect bd($bd);deconnect_bd($bd); } ?> 

Page 10: Php: Bases de données, programmation oriente objet et RSScroitoru/PHP-MySQL-Objects-2010.pdf · correspondent aux noms des variables transmises et ... • With RSS you can create

Programmation orientée objetProgrammation orientée objet

• Code présenté de façon compréhensible : La Code p ése té de aço co p é e s b e : abonne conceptualisation dans la méthode objet nous permet d'avoir un code naturel, facilement 

éh bl f l à lcompréhensible et facile à utiliser.• Réutilisabilité du code : On peut réutiliser un type 

bj t ét t dèl t tobjet comme étant un modèle pour un autre type en ne réimplémentant que ce qui change entre les deux.les deux.

• Modularité du code : La programmation objet nous permet d'isoler facilement un module.p

Page 11: Php: Bases de données, programmation oriente objet et RSScroitoru/PHP-MySQL-Objects-2010.pdf · correspondent aux noms des variables transmises et ... • With RSS you can create

ClassesClasses• <?php

class Animalclass Animal { 

public $age; public $poids; public $taille; public $couleur; 

function dormir() { echo ("Bonne nuit"); }} 

function manger() { echo ("Je mange"); } 

f i i ($ )function crier($mot) { $reponse = "waou ".$mot; return $reponse; } }

} ?>

Page 12: Php: Bases de données, programmation oriente objet et RSScroitoru/PHP-MySQL-Objects-2010.pdf · correspondent aux noms des variables transmises et ... • With RSS you can create

Création d'objet PHPCréation d objet PHP

• <?phpp p//définition de la classe 

class CompteBancaire{{ public $numero ="XXXX"; public $solde = 0; }} 

//instanciation //$mon_compte = new CompteBancaire; 

?> 

Page 13: Php: Bases de données, programmation oriente objet et RSScroitoru/PHP-MySQL-Objects-2010.pdf · correspondent aux noms des variables transmises et ... • With RSS you can create

Objets PhpObjets Php

• Soit on met la classe dans le même fichierSoit on met la classe dans le même fichier que l'instance

• Soit on le met dans un autre fichier et on fait• Soit on le met dans un autre fichier et on fait un include ou un require pour inclure le fichier contenant la classecontenant la classe

Page 14: Php: Bases de données, programmation oriente objet et RSScroitoru/PHP-MySQL-Objects-2010.pdf · correspondent aux noms des variables transmises et ... • With RSS you can create

Attribut d'une classAttribut d une class

• //instanciation//instanciation $mon_compte = new CompteBancaire; 

//Affichage solde//Affichage solde echo "Solde: ".$mon_compte‐>solde; 

Page 15: Php: Bases de données, programmation oriente objet et RSScroitoru/PHP-MySQL-Objects-2010.pdf · correspondent aux noms des variables transmises et ... • With RSS you can create

Méthodes d'un objetMéthodes d un objet• <?php

//définition de la classe //class CompteBancaire{ public $numero ="XXXX"; public $solde = 0; 

function crediter($montant)function crediter($montant) { $this‐>solde += $montant; } 

function debiter($montant) {{ $this‐>solde ‐= $montant; } 

function affiche_solde() { echo "Le solde d compte est " $this >soldeecho "Le solde du compte est : ". $this ‐>solde; } 

//instanciation $$mon_compte = new CompteBancaire; //utilisation méthode 

$mon_compte‐>debiter(500); echo "Solde: ".$mon_compte‐>solde; ?> 

Page 16: Php: Bases de données, programmation oriente objet et RSScroitoru/PHP-MySQL-Objects-2010.pdf · correspondent aux noms des variables transmises et ... • With RSS you can create

RSS (English!)RSS (English!)

• RSS stands for Really Simple SyndicationRSS stands for Really Simple Syndication

• RSS was designed to show selected data

• RSS is useful for web sites that are updated• RSS is useful for web sites that are updated frequently, like:

News sites Lists news with title date and– News sites ‐ Lists news with title, date and descriptions

– Companies ‐ Lists news and new productsCompanies  Lists news and new products

– Calendars ‐ Lists upcoming events and important days

– Site changes ‐ Lists changed pages or new pagesg g p g p g

Page 17: Php: Bases de données, programmation oriente objet et RSScroitoru/PHP-MySQL-Objects-2010.pdf · correspondent aux noms des variables transmises et ... • With RSS you can create

Benefits of RSSBenefits of RSS

• With RSS you can choose to view the newsWith RSS you can choose to view the news you want, the news that interest you and are relevant to your workrelevant to your work

• With RSS you can create your own news channel and publish it to the Internetchannel, and publish it to the Internet

Page 18: Php: Bases de données, programmation oriente objet et RSScroitoru/PHP-MySQL-Objects-2010.pdf · correspondent aux noms des variables transmises et ... • With RSS you can create

HistoryHistory• 1997 ‐ Dave Winer develops scriptingNews. RSS was born.

• 1999 ‐ Netscape develops RSS 0.90 (which supported scriptingNews). This was simply XML with an RDF Header.

• 1999 ‐ Dave Winer at UserLand develops scriptingNews 2.0b1 (This included Netscape's RSS 0.90 features)

• 1999 ‐ Netscape develops RSS 0.91. In this version they removed the RDF header, but included most features from scriptingNews 2 0b1scriptingNews 2.0b1.

• 1999 ‐ UserLand gets rid of scriptingNews and uses only RSS 0.91

• Netscape stops their RSS development

• 2000 ‐ UserLand releases the official RSS 0.91 specification

• 2000 ‐ A group lead by Rael Dornfest at O'Reilly develops RSS 1.0. This format uses RDF and namespaces. This version is often confused as being a new version of 0.91, but this is a completely new format with no ties to RSS 0.91

• 2000 ‐ Dave Winer at UserLand develops RSS 0.92

• 2002 ‐ Dave Winer develops RSS 2.0 after leaving Userland

• 2003 ‐ The official RSS 2.0 specification is released

Page 19: Php: Bases de données, programmation oriente objet et RSScroitoru/PHP-MySQL-Objects-2010.pdf · correspondent aux noms des variables transmises et ... • With RSS you can create

RDF?RDF?

• The idea behind RDF was to help create aThe idea behind RDF was to help create a Semantic Web. However, this does not matter too much for ordinary users but by using webtoo much for ordinary users, but by using web standards it will be easier for persons and applications to exchange dataapplications to exchange data. 

Page 20: Php: Bases de données, programmation oriente objet et RSScroitoru/PHP-MySQL-Objects-2010.pdf · correspondent aux noms des variables transmises et ... • With RSS you can create

RSSRSS

• Is There an RSS Web Standard?Is There an RSS Web Standard?– There is no official standard for RSS.

About 50 % of all RSS feeds use RSS 0 91– About 50 % of all RSS feeds use RSS 0.91

– About 25 % use RSS 1.0

Th l t 25 % i lit b t RSS 0 9 i– The last 25 % is split between RSS 0.9x versions and RSS 2.0

Page 21: Php: Bases de données, programmation oriente objet et RSScroitoru/PHP-MySQL-Objects-2010.pdf · correspondent aux noms des variables transmises et ... • With RSS you can create

How RSS WorksHow RSS Works

• RSS is used to share content betweenRSS is used to share content between websites.– First create an RSS document and save it with an– First, create an RSS document and save it with an .xml extension. 

– Then upload the file to your websiteThen, upload the file to your website. 

– Next, register with an RSS aggregator.

Page 22: Php: Bases de données, programmation oriente objet et RSScroitoru/PHP-MySQL-Objects-2010.pdf · correspondent aux noms des variables transmises et ... • With RSS you can create

RSS ExampleRSS Example• <?xml version="1.0" encoding="ISO‐8859‐1" ?>

<rss version="2 0"><rss version= 2.0 >

<channel><title>W3Schools Home Page</title><link>http://www.w3schools.com</link>p // /<description>Free web building tutorials</description><item><title>RSS Tutorial</title><link>http://www.w3schools.com/rss</link><description>New RSS tutorial on W3Schools</description><description>New RSS tutorial on W3Schools</description></item><item><title>XML Tutorial</title><link>http://www.w3schools.com/xml</link>p // / /<description>New XML tutorial on W3Schools</description></item></channel>

</rss></rss>

Page 23: Php: Bases de données, programmation oriente objet et RSScroitoru/PHP-MySQL-Objects-2010.pdf · correspondent aux noms des variables transmises et ... • With RSS you can create

RSS SyntaxRSS Syntax

• The <channel> element has three required child elements:– <title> ‐ Defines the title of the channel (e.g. W3Schools Home Page)g )

– <link> ‐ Defines the hyperlink to the channel (e.g. http://www.w3schools.com)

– <description> ‐ Describes the channel (e.g. Free web p ( gbuilding tutorials)

• Each <channel> element can have one or more <item> elementselements.

• Each <item> element defines an article or "story" in the RSS feed.

Page 24: Php: Bases de données, programmation oriente objet et RSScroitoru/PHP-MySQL-Objects-2010.pdf · correspondent aux noms des variables transmises et ... • With RSS you can create

RSS is XMLRSS is XML

• All elements must have a closing tagAll elements must have a closing tag

• Elements are case sensitive

l b l d• Elements must be properly nested

• Attribute values must always be quoted

Page 25: Php: Bases de données, programmation oriente objet et RSScroitoru/PHP-MySQL-Objects-2010.pdf · correspondent aux noms des variables transmises et ... • With RSS you can create

Other RSS tagsOther RSS tags

• <category>Web development</category>g y p / g y• <copyright>2006 Refsnes Data as. All rights reserved.</copyright>

• <image><url>http://www.w3schools.com/images/logo.gif</url>f /url<title>W3Schools.com</title><link>http://www.w3schools.com</link></image></image>

• <language>en‐us</language>• EtcEtc.

Page 26: Php: Bases de données, programmation oriente objet et RSScroitoru/PHP-MySQL-Objects-2010.pdf · correspondent aux noms des variables transmises et ... • With RSS you can create

Get Your RSS Feed Up On The WebGet Your RSS Feed Up On The Web

• 1 Name your RSS file Notice that the file1. Name your RSS file. Notice that the file must have an .xml extension.

• 2 Validate your RSS file (a good validator can• 2. Validate your RSS file (a good validator can be found at http://www.feedvalidator.org).

3 U l d h RSS fil b di• 3. Upload the RSS file to your web directory on your web server.

• 4. Copy the little orange or button to your web directory. 

Page 27: Php: Bases de données, programmation oriente objet et RSScroitoru/PHP-MySQL-Objects-2010.pdf · correspondent aux noms des variables transmises et ... • With RSS you can create

Get Your RSS Feed Up On The WebGet Your RSS Feed Up On The Web• 5. Put the little orange "RSS" or "XML" button on the page where you will offer RSS to the 

world (e g on your home page) Then add a link to the button that links to the RSS file Theworld (e.g. on your home page). Then add a link to the button that links to the RSS file. The code will look something like this:<a href="www.w3schools.com/rss/myfirstrss.xml">< img src="www.w3schools.com/rss/rss.gif" width="36" height="14"></a>.

• 6 Submit your RSS feed to the RSS Feed Directories (you can Google or Yahoo for "RSS Feed• 6. Submit your RSS feed to the RSS Feed Directories (you can Google or Yahoo for  RSS Feed Directories"). Note: The URL to your feed is not your home page, it is the URL to your feed, like "http://www.w3schools.com/rss/myfirstrss.xml". Here are some free RSS aggregation services:

– Syndic8: Over 300,000 feeds listed. Register your feed here– Newsisfree: Over 18,000 feeds. Register your feed here

• 7. Register your feed with the major search engines:– Yahoo ‐ http://publisher.yahoo.com/rss_guide/submit.php– Google ‐ http://www.google.com/ig (Google's personalized homepage. Google will index 

RSS f d dd d h )any RSS feed added here)– MSN ‐ http://w.moreover.com/site/products/ind/pingserver.html (MSN search uses the 

Moreover news database)• 8. Update your feed ‐ Now you have registered your RSS feed with Google, Yahoo, and MSN. 

Now you must make sure that you update your content frequently and that your RSS feed isNow you must make sure that you update your content frequently and that your RSS feed is constantly available.

Page 28: Php: Bases de données, programmation oriente objet et RSScroitoru/PHP-MySQL-Objects-2010.pdf · correspondent aux noms des variables transmises et ... • With RSS you can create

Custom RSS Feed with PHP and MySQL

• Create two database tables and then how toCreate two database tables and then how to retrieve data from them which will be formatted into an RSS feedformatted into an RSS feed. 

Page 29: Php: Bases de données, programmation oriente objet et RSScroitoru/PHP-MySQL-Objects-2010.pdf · correspondent aux noms des variables transmises et ... • With RSS you can create

RSS with PHP and MySQLRSS with PHP and MySQL

• Two database tables:Two database tables:– the first is called webref_rss_details, which contains the details for the feedcontains the details for the feed 

– the second is called webref_rss_items, which contains all of the items.contains all of the items.

Page 30: Php: Bases de données, programmation oriente objet et RSScroitoru/PHP-MySQL-Objects-2010.pdf · correspondent aux noms des variables transmises et ... • With RSS you can create

webref rss detailswebref_rss_details

• CREATE TABLE 'webref_rss_details' ( • 'id' int(11) NOT NULL auto_increment, • 'title' text NOT NULL, • 'description' mediumtext NOT NULL, • 'link' text, • 'language' text, • 'image_title' text, • 'image_url' text,• 'image_link' text, • 'image width' text, g _ ,• 'image_height' text, • PRIMARY KEY ('id') )

Page 31: Php: Bases de données, programmation oriente objet et RSScroitoru/PHP-MySQL-Objects-2010.pdf · correspondent aux noms des variables transmises et ... • With RSS you can create

webref rss itemswebref_rss_items

• CREATE TABLE 'webref rss items' (CREATE TABLE  webref_rss_items  ( 

• 'id' int(11) NOT NULL auto_increment, 

' i l ' O• 'title' text NOT NULL, 

• 'description' mediumtext NOT NULL, 

• 'link' text, 

• PRIMARY KEY ('id')PRIMARY KEY ( id ) 

• )

Page 32: Php: Bases de données, programmation oriente objet et RSScroitoru/PHP-MySQL-Objects-2010.pdf · correspondent aux noms des variables transmises et ... • With RSS you can create

index.phpindex.php

• <?<?

• header("ContentType: application/xml; charset=ISO‐8859‐1"););

• include("classes/RSS.class.php");

• $rss = new RSS();$rss new RSS();

• echo $rss‐>GetFeed();

• ?>?>

Page 33: Php: Bases de données, programmation oriente objet et RSScroitoru/PHP-MySQL-Objects-2010.pdf · correspondent aux noms des variables transmises et ... • With RSS you can create

mysql connect.phpmysql_connect.php

• $dbc = @mysql connect (DB HOST DB USER D$dbc = @mysql_connect (DB_HOST, DB_USER, DB_PASSWORD) OR die ('Could not connect to MySQL: ‘SQL:

• mysql_select_db (DB_NAME) OR die ('Could notselect the database: ' mysql error() ); ' mysqlselect the database: . mysql_error() ); . mysql_error() );

Page 34: Php: Bases de données, programmation oriente objet et RSScroitoru/PHP-MySQL-Objects-2010.pdf · correspondent aux noms des variables transmises et ... • With RSS you can create

Class RSSClass RSS

<? class RSS {<? class RSS { 

public function RSS() { i (' tht / l t h ') }{ require_once ('pathto.../mysql_connect.php'); } 

public function GetFeed() { return $this‐>getDetails() . $this‐>getItems(); } 

private function dbConnect() { DEFINE ('LINK', mysql_connect (DB_HOST, DB_USER, DB_PASSWORD)); } 

Page 35: Php: Bases de données, programmation oriente objet et RSScroitoru/PHP-MySQL-Objects-2010.pdf · correspondent aux noms des variables transmises et ... • With RSS you can create

Class RSSClass RSSprivate function getDetails() 

{ $detailsTable = "webref_rss_details"; 

$this‐>dbConnect($detailsTable); 

$ "SELECT * FROM " $d t il T bl$query = "SELECT * FROM ". $detailsTable; 

$result = mysql_db_query (DB_NAME, $query, LINK); 

while($row = mysql_fetch_array($result)) 

{ $details = '<?xml version="1.0" encoding="ISO‐8859‐1" ?> 

<rss version="2.0"> 

<channel> 

<title>'. $row['title'] .'</title> 

<link>'. $row['link'] .'</link>

<description>'. $row['description'] .'</description> 

<language>'. $row['language'] .'</language> 

<image> g

<title>'. $row['image_title'] .'</title>

<url>'. $row['image_url'] .'</url> 

<link>'. $row['image_link'] .'</link> 

<width>'. $row['image width'] .'</width><width> . $row[ image_width ] . </width> 

<height>'. $row['image_height'] .'</height>

</image>'; } 

return $details; } 

Page 36: Php: Bases de données, programmation oriente objet et RSScroitoru/PHP-MySQL-Objects-2010.pdf · correspondent aux noms des variables transmises et ... • With RSS you can create

Class RSSClass RSSprivate function getItems() {{ $itemsTable = "webref_rss_items"; $this‐>dbConnect($itemsTable); $query = "SELECT * FROM ". $itemsTable; q y ;$result = mysql_db_query (DB_NAME, $query, LINK); $items = ''; while($row = mysql_fetch_array($result)) { $items = '<item>{ $items .=  <item> <title>'. $row["title"] .'</title> <link>'. $row["link"] .'</link> <description><![CDATA['. $row["description"] .']]></description> </item>'; } $items .= '</channel> </rss>'; return $items; }}