1 / 25

Personal Home Page / Hypertext Processor (PHP)

Personal Home Page / Hypertext Processor (PHP). Génération dynamique de pages XHTML. URL (avec paramètres). Le client. Le serveur. fichier XHTML. Génération de la page. Attention, le client ne sait pas lire une page PHP ! C'est le serveur qui crée la page XHTML et l'envoie au client.

landis
Download Presentation

Personal Home Page / Hypertext Processor (PHP)

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Personal Home Page / Hypertext Processor(PHP)

  2. Génération dynamique de pages XHTML URL (avec paramètres) Le client Le serveur fichier XHTML Génération dela page • Attention, le client ne sait pas lire une page PHP ! C'est le serveur qui crée la page XHTML et l'envoie au client. • La page PHP contient des instructions • Une page PHP peut contenir du code HTML • On ne peut pas valider du PHP, on valide son résultat... (pas en local)

  3. PHP : exemple <html> <head > <title>Test de page PHP</title> </head > <body > <h2>Page de test</h2> <?php // Ceci est du code PHP $date = date("d/m/Y"); # Variable PHP + fonction $heure = date("H:i:s"); /* Affichage */ echo "Nous sommes le <strong>$date</strong> et il est <strong>$heure</strong>"; ?> <hr /> </body > </html> Commentaires 07/09/2014 22:11:41

  4. Instructions conditionnelles if (conditionA) { // instructions A } elsif (conditionB1 && conditionB2) { // instructions B } elsif (conditionC1 || conditionC2) { // instructions C } else { // instructions D }

  5. Boucles for ($i=0 ; $i < $n ; $i++) { // instructions } while (condition) { // instructions } do { // instructions } while (condition)

  6. Tableaux $tab = array("A", "B", "C"); $tab[0] = "A"; $tab[1] = "B"; $tab[2] = "C"; echo $tab[1]; // affiche "B" for ($i = 0 ; $i < count($tab) ; $i++) { echo "La valeur $i est $tab[$i] <br />"; } Parcours echo "<ul>"; foreach ($tab as $valeur) { echo "<li>$valeur</li>"; } echo "</ul>";

  7. Tableaux associatifs $notes = array("Marie" => 14, "Paul" => 12, "Pierre" => 7); $notes["Marie"] = 14; $notes["Paul"] = 12; $notes["Pierre"] = 7; echo "<table>"; foreach($notes as $clef => $valeur) { echo "<tr><td>$clef</td><td>$valeur</td></tr>\n"; } echo "</table>"; Parcours echo "<table>"; reset($notes); while(next($notes)) { // il y a aussi prev $etud = key($notes); $note = current($notes); echo "<tr><td>$etud</td><td>$note</td></tr>\n"; } echo "</table>";

  8. Fonctions function bonjour($nom) { echo "Bonjour $nom !<br />"; } bonjour("Marie"); function somme($x, $y) { return $x + $y; } $z = somme(3, 10); function coordonnees($ville) { ... return array($x, $y); } list($a, $b) = coordonnees("Tokyo");

  9. Quelques fonctions prédéfinies

  10. Quelques fonctions prédéfinies (chaînes, 1/2) $fruits = "abricot|kiwi|pomme|fraise|banane"; $liste_fruits = explode('|', $fruits); $fruits2 = implode(' ', $liste_fruits); echo $fruits2 // => "abricot kiwi pomme fraise banane"

  11. Quelques fonctions prédéfinies (chaînes, 2/2) $fruits = "abricot|kiwi|pomme|fraise|banane"; $tmp = strstr($fruits, '|'); echo $tmp; // => "|kiwi|pomme|fraise|banane" $tmp2 = substr($fruits, 8, 4); echo $tmp2; // => "kiwi"

  12. Quelques fonctions prédéfinies (tableaux)

  13. Transmettre des informations : méthode GET HTML PHP <formaction="script.php" method="get"> <labelfor="nom">Nom</label> <input type="text" name="nom" id="nom"> <labelfor="prenom">Prénom </label> <inputtype="text" name="prenom" id="nom"> <inputtype="submit" name="action" value="OK"> </form> <html> ... <div> Bonjour <?php echo $_GET["prenom"]." ". $_GET["nom"]; ?> </div> </html>

  14. Transmettre des informations : méthode POST HTML PHP <formaction="script.php" method="post"> <labelfor="nom">Nom</label> <input type="text" name="nom" id="nom"> <labelfor="prenom">Prénom </label> <inputtype="text" name="prenom" id="nom"> <inputtype="submit" name="action" value="OK"> </form> <html> ... <div> Bonjour <?php echo $_POST["prenom"]." ". $_POST["nom"]; ?> </div> </html>

  15. Méthodes GET et POST • Avec la méthode GET, les paramètres sont passés dans l'URL (donc visibles par l'internaute), et un formulaire n'est pas indispensable • Avec la méthode POST, les paramètres sont passés dans le corps de la requête HTTP • La méthode GET est la plus simple • Utiliser POST lorsque les paramètres sont longs ou confidentiels • Le tableau associatif $_REQUEST contient à la fois les variables des tableaux $_GET, $_POST et $_COOKIE • Les valeurs des tableaux associatifs peuvent être des variables simples ou des tableaux (si le code XHTML les a nommés avec un suffixe [])

  16. Gestion des fichiers • Les informations concernant le fichier téléchargé sont dans $_FILES[$nom] ou $nom est le nom du champ du formulaire d'où provient le fichier • Les clés de $_FILES[$nom] : • name le nom du fichier sur la machine du client • tmp_name le nom du fichier temporaire sur le serveur • size la taille du fichier • type le type du fichier • error : • UPLOAD_ERR_OK pas d’erreur, le transfert s’est bien passé • UPLOAD_ERR_INI_SIZE le fichier dépasse la taille maximale autorisée • UPLOAD_ERR_PARTIAL le fichier est transféré seulement partiellement • UPLOAD_ERR_NO_FILE aucun fichier n’a été transféré

  17. Gestion des fichiers HTML <form method="post" enctype="multipart/form-data" action="fic.php"> <div> <label for="photo">Insérez une photo :</label> <input type="file" name="photo" id="photo"/> <inputtype="submit" name="envoi" value="envoi" /> </div> </form> PHP $fichier = $_FILES['photo']; if ($fichier['error'] == UPLOAD_ERR_OK) { // Copie du fichier dans le répertoire PHOTOS $src = $fichier['tmp_name']; $dest = "./photos".$fichier['name']; copy($src, $dest); // Affichage de l'image echo "<img src=\"$dest\" alt=\"Votre photo\" />"; }

  18. Authentification et gestion de session • L'authentification HTTP au niveau du serveur Web est très simple (ex : .htaccess et .htpasswd) mais impose une modification de la configuration et est difficile à brancher à une base de données. • Cookies : fichiers placés chez le client, par exemple pour conserver des informations de session. • En PHP, utilisation de setcookie($nom, $valeur) et de la variable $_COOKIE. • Mais PHP permet de gérer des sessions avec cookies sans avoir à gérer le cookie lui-même.

  19. Authentification et sessions en PHP • Un formulaire demande l'identifiant et le mot de passe • Ces informations sont vérifiées : • Si c'est bon • on crée une session avec session_start() et on crée un paramètre sur le tableau associatif $_SESSION.Par exemple : $_SESSION['valid_user'] = 1; • On redirige vers les pages de contenu • Si ce n'est pas bon • On redirige vers une page d'erreur ou on retourne au formulaire • Sur les autres pages : • session_start() • Vérification de la variable $_SESSION['valid_user'] • Pour la déconnexion : session_destroy()

  20. Authentification et sessions en PHP <?php session_start(); if ($_SESSION['valid_user'] != 1) { // Redirection vers le formulaire } ?> dans script2.php <?php $id = $_POST['id']; $passwd = $_POST['pwd']; /* Vérification de l'identifiant et du mot de passe */ if (verif_ok($id, $passwd)) { session_start(); $_SESSION['valid_user'] = 1; // Redirection echo "<html>"; echo "<meta http-equiv=\"refresh\" content=\"0;url=./script2.php\" />"; echo "</html>"; } else { // Redirection vers le formulaire ... } ?> Doit être placé avant d'écrire des choses sur la page (avant l'écriture des entêtes HTTP) Redirection HTML au bout de 0 seconde

  21. Les expressions régulières • Définition de motifs de chaînes de caractères • informat.* correspond à "informaticien", "informatique", "informateur"... • sites? correspond à "site" ou "sites" • [Ii]nternet correspond à "Internet" ou "internet" • ph. correspond à "php", "phi", "phd", ... • youpi+ correspond à "youpi", "youpii", youpiii", ... • ... • On peut ensuite tester si une chaîne de caractères correspond à un motif donné

  22. Caractères spéciaux

  23. Caractères spéciaux Pour utiliser les caractères spéciaux (*, +, etc.) en tant que caractères réels, il faut les précéder d'un '\' Attention, certaines expressions ne sont pas universelles, celles-ci sont celles qui fonctionnent en PHP

  24. Fonctions PHP pour les expressions régulières

  25. Références • http://www.php.net/ • Pratique de MySQL et PHP, Philippe Rigaux, O’Reilly

More Related