Marcel Bosc Introduction Web Université Paris-13Département informatiqueIUT de Villetaneuse ère année, cours - 3/5
table des matières contenu dynamique introduction au PHP interaction et formulaires
contenu dynamique 1ère partie
client musique.org navigateur internet très simplifié... page html statique serveur web 1 2 affichage essai.html 4 3 fichier
client musique.org navigateur internet logiciel très simplifié... html généré par le serveur rechercher "concerts lundi" base de données serveur web génère html montrant les résultats de recherche 5 6 affichage html
musique.org rechercher base de données serveur web html début page connexion à la BDD recherche -> requête SQL pour chaque résultat générer html avec liens html fin page 5 html search.php utiliser interpréteur PHP interpréteur PHP internet 4 html généré par le serveur
langages web - coté serveur PHP Java / JSP CGI - C, C++... Perl, Python, Ruby... ASP public class HelloServlet extends GenericServlet { public void service (ServletRequest request, ServletResponse response) { PrintWriter out = response.getWriter(); out.println (" "); out.println (" Bonjour! "); out.println (" "); }}} exemple Java (simplifié) <?php echo ' '; echo ' Bonjour! '; echo ' '; ?> exemple PHP
client votre poste de TP aquanux navigateur intranet très simplifié... configuration à l'IUT serveur web 6 affichage html serveur de fichiers essai.php 2 apache PH P ~/public_html/essai.php
introduction au PHP 2ème partie manuel du PHP :
mon-site.org essai serveur web html essai.php utiliser interpréteur PHP interpréteur PHP internet 3 html généré, PHP <?php echo 'bonjour1'; echo 'bonjour2'; ?> l'affichage est envoyé vers le client début du code PHP début du code PHP fin du code PHP fin du code PHP bonjour1 bonjour2
PHP et HTML Mon article Un peu de texte. article a été consulté <?php $nbLecture=calculer(); echo $nbLecture; ?> fois début du code PHP début du code PHP fin du code PHP fin du code PHP essai.php (fichier sur le serveur) requête: simplifié HTM L PHP Mon article Un peu de texte. article a été consulté 123 fois
PHP et HTML vous avez marqué points vous avez marqué 50 points <?php echo " vous avez marqué" ; echo $score ; echo " points "; ?P> exemple1.php exemple2.php HTML généré
variables et types // pas de déclaration $maVariable = 123; echo $maVariable; variables non déclarées, types gérés automatiquement! PHP Java // déclaration int a ; // affectation a=1 ; // utilisation System.out.println(a); // pas de déclaration // affectation $a=1 ; // utilisation echo $a;
variables et types Java $v = 123;// entier $w = false;// booléen $x = ;// flottant $y = "bonjour"; // chaîne int v = 123; // entier booleanw = false;// booléen float x = ;// flottant String y = "bonjour"; // chaîne PHP
chaînes de caractères echo 'une chaîne'; echo "une chaîne"; echo ' '; echo "L'utilisateur Toto a 20 ans"; choisir le plus pratique! Guillemets simples Guillemets doubles
concaténation : «. » echo 'une '.'chaîne'; $nom='Toto'; echo 'je suis '.$nom; Java System.out.println("une" + "chaîne"); String nom="Toto"; System.out.println("je suis" + nom); PHP
chaînes et variables $nom = 'Durand'; echo "je suis $nom"; echo 'je suis $nom'; je suis Durand je suis $nom Guillemets simples ou doubles $nom='Toto'; $age=20; echo "L'utilisateur $nom a $age ans"; echo 'L\'utilisateur '.$nom.' a '.$age.' ans'; concaténation
boucles for($i=0; $i<10;$i++) { echo " ligne numéro $i "; } boucle classique Peu utilisé! En pratique on parcourt des tableaux
fonctions function ma_fonction($nom) { echo "je suis $nom"; } définition: ma_fonction("Dupond"); appel:
fonctions class Essai { void exemple(String nom) { System.out.println("je suis " + nom); } public static void main(String[] args) { this.exemple("Dupond"); } Java function ma_fonction($nom) { echo "je suis $nom"; } ma_fonction("Dupond"); PHP
tableaux indexés $t[0] = "Paris"; $t[1] = "Dijon"; pas de déclaration String[] t = new String[100] ; t[0]= "Paris"; t[1]= "Dijon"; String[] t = {"Paris", "Dijon"}; System.out.println(t[1]); Java PHP Java PHP $t = array("Paris", "Dijon"); echo $t[1]; élément 0 élément 1
tableaux indexés $villes[] = 'Lyon' ; $villes[] = 'Nancy' ; $villes[] = 'Metz'; ajouter des éléments [] : ajouter à la fin PHP Java 2 "Metz" 0 "Lyon" 1 "Nancy"
tableaux associatifs simple en PHP clévaleur 'Ahmed' 13,1 'Dupond' 10,5 tableau associatiftableau indexé indexvaleur 2 13,1 3 10, 'Durand' 'Chen' 11 séquence d'entiers séquence d'entiers clés arbitraires clés arbitraires $notes['Dupond'] = 10,5 notes[3] = 10,5 classique : C, Java... Très utilisé !!!
tableaux associatifs $notes = array('durand'=>12, 'chen' =>11); echo $notes['chen']; clé valeur élément 'durand' élément 'chen' $notes['durand'] = 12; $notes['chen'] = 11; clé valeur
Exemples de tableaux $etudiant['nom']='Toto'; $etudiant['age']=20; echo $etudiant['nom']; $etudiant['age']=$etudiant['age']+2; var_dump($variable); print_r($tableau); pratique pour débugger :
foreach : boucles / tableaux $notes = array('durand'=>12, 'chen' =>11); $notes['ahmed']=13; foreach($notes as $nom => $points) { echo "$nom a eu $points/20"; } durand a eu 12/20 chen a eu 11/20 ahmed a eu 13/20
include utiliser le contenu d'un autre fichier PHP <?php echo 'bonjour'; include 'fichier2.php'; echo 'aurevoir'; ?> fichier1.php <?php echo 'dans fichier2'; echo 'bla bla bla'; ?> fichier2.php <?php echo 'bonjour'; echo 'dans fichier2'; echo 'bla bla bla'; echo 'aurevoir'; ?>
include : variantes include 'toto.php' include_once 'toto.php' require 'toto.php' require_once 'toto.php' include require erreur si le fichier n'existe pas ok, même si le fichier n'existe pas _once ne pas re-inclure si le fichier l'a déjà été utiliser le contenu d'un autre fichier PHP en général : require_once
classes et objets <?php class Personne { var $age; function viellir() {$this->age++;} function __construct() { echo "Création d'une personne"; } class Etudiant extends Personne { //.... } $p1 = new Personne(); $p2 = new Etudiant(); ?> $this est obligatoire PHP4 != PHP5
interaction et formulaires 3ème partie
formulaire : exemple simple form.html simplifié...
formulaire : exemple 2 termes à chercher: en francais? form.html
client (navigateur) serveur internet search.php interaction base de données affichage formulaire form.html form.html apache form.html html résultats recherche soumission du formulaire saisie utilisateur 4 apache 5 PH P affichage résultats recherche 7 site.org 2 8 concert lundi
client (navigateur) serveur search.php soumission d'un formulaire base de données 6 soumission du formulaire saisie utilisateur 4 apache 5 PH P site.org informations saisies client serveur 2 méthodes: GE T POS T recherche le mot "basse" champ texte: name="terms" terms="basse"
formulaires PHP <?php... $saisie=$_GET['terms'];... echo "vous avez écrit: $saisie"; ?>... form.html search.php soumission du formulaire concert lundi
méthode GET GET: ne modifie pas l'état sur le serveur. Peut-être répété sans conséquences exemples: modifier l'affichage faire une recherche contre-exemples: payer en ligne ajouter un commentaire sur un forum "lire des infos sur le serveur"
méthode POST POST: change l'état du serveur. Répétition potentiellement gênante terms=basse dans la requête http contre-exemples: modifier l'affichage faire une recherche exemples: payer en ligne ajouter un commentaire sur un forum "écrire des infos sur le serveur"
ce document est distribué librement : sous licence GNU FDL : les originaux sont disponibles aux formats OpenOffice et powerpoint