PHP Fichiers Sessions Mysql

download PHP Fichiers Sessions Mysql

of 39

  • date post

    14-Jul-2016
  • Category

    Documents

  • view

    10
  • download

    3

Embed Size (px)

description

php

Transcript of PHP Fichiers Sessions Mysql

  • Programmation PHP

    CI1 GI Mohammed AL ACHHABENSA Ttouan2013/2014 alachhab@gmail.com

  • Rappel

    FichiersSe souvenir de login de l'utilisateur

  • PlanIntroduction aux chiers

    Introduction aux :sessionscoockies

    Bases de donnesPHP/MySQL

  • Les fichiersintroductionPourquoi ?

    trs souvent utiliss en PHPrecueillir les informations en provenance des postes clients/BDcas de donnes simples et de taille modeste

    BD pour les donnes complexes et les traitements pointuesexemple d'utilisations :

    le nombre des visiteurssondagesdonnes temporelles (BD)

    Manipulation de fichiers proche du langage C : ouverture / cration, criture / lecture / modification, fermeture

  • Les fichiersfopen()Avant de raliser des oprations de lecture ou d'criture sur un fichier il faut l'ouvrir explicitement

    Fonction: $id_file = fopen(string $nom, string $mode)$nom : le nom du fichier :

    "monfichier.txt" "../../repertoire/monfichier.txt""c:\\repertoire\\monfichier.txt" (sous windows)"http://www.monsite.net/repertoire/monfichier.txt"FTP

    $mode : mode d'accs : a, a+, r, r+, w, c, b,...Valeur de retour : $id_file un pointeur sur le dbut du fichier ouvert (c'est un flux)

  • Les fichiers lecture

    fgets($id_file [, nombre_octets]) : rcupre la ligne courante sur laquelle se trouve le pointeur du fichier

    La chaine de retour est nulle si pas de ligne extrairePour parcourir un fichier texte utiliser une boucle

    fread($id_file, nb_octets) : lit jusqu' nb_octets octets dans le fichier rfrenc par id_file

    La lecture s'arrte si la fin du fichier est atteinte

    Cette fonction est adapt des fichiers ou la longueur des donnes extraire est fixe en avance et qu'ils sont enregistres par paquets

    ManipFile.php

    Monfichier.txt

  • Les fichiers : lectureautres fonctions

    fwrite($id_file, $chaine) : cette fonction crit le contenu de la chaine dans le fichier identifi par $id_file

    fputs( $id_file, $chaine) :

    fclose() : fermeture d'un fichier

    foef() : vrifier si la fin du fichier est atteinte

    fgetc($id_file) : lit un caractre la fois

    fseek() / rewind() / ftell() : positionnement dans le fichier

    filesize() : retourne la taille totale du fichier

    copy() / rename() / unlink() : copie/renomme/efface un fichier

  • Les fichiers Exemple : Compteur de visites

    compteur.php

    DEMO ?

    Visiteur 1Ecrire dans le fichier

    Visiteur NEcrire dans le fichier

    Visiteur 2Lire le fichier

  • Les fichiers verouillageProblme de concurrence :

    Plusieurs clients demandent un fichier simultanmentdeux scripts modient un chier en mme temps Conit

    Verrouiller un fichier pour ne pas autoriser tout accs / modification / ajout ce fichierboolean flock($id_file, int N)

    N : dfinit le mode de verrouillage du fichier :=LOCK_SH (ou 1) : bloque l'criture dans le fichier mais laisse le libre accs en lecture tous les utilisateurs=LOCK_EX( ou 2) : bloque l'criture et la lecture du fichier par un autre script=LOCK_UN ( ou 3) : libre le verrou install prcdemment

  • Les fichiers Exemple : Compteur de visites

    compteur.php

    flock($id_file, 3) // libre le verrou

    flock($id_file, 1) // bloque l'criture dans le fichier

    flock($id_file, 3) // libre le verrou

    flock($id_file, 2) // bloque l'criture et la lecture du fichier

  • Inclusion de fichiers

    Inclusion d'un autre chier PHP :

    Regroupement de fonctions (lies la manipulation de BD par exemple) ou de variables (compt !!!)Organisation d'un site Web

    include("nom_fichier.php");Exemple :

  • Cookies & sessions

    FichiersSe souvenir de login de l'utilisateur

  • Cookies & sessions

    Techniques qui permettent de conserver des informations (chez le visiteur ou le serveur) pour amliorer le service rendu par un site

    Se souvenir du login du visiteur pour les sites avec authenticationSe souvenir des rfrences indiquant quoi le visiteur s'intresseSe souvenir des dernires pages visites par l'utilisateur...

  • Les cookiesUn cookie est un petit chier plac sur l'ordinateur du visiteurLes cookies servent stocker de l'information chez le visiteur

    Ils sont propres un PC et ne sont pas rcuprables si l'utilisateur se reconnecte partir d'un autre poste

    PHP permet d'crire et de lire les cookies sur l'ordinateur du visiteur

    Ces informations peuvent tre utilises pour authentification, prfrences d'unsite, le contenu d'un panier d'achat, En gnral, un cookie n'est accessible que par le site qui l'a crit

  • Les cookies

    Pour crire un cookie, il faut utiliser la fonction setcookie():

    setcookie() doit tre appele avant d'crire sur la sortie standard

    Par dfaut, le cookie expire la fermeture du navigateur et est accessible par toutes les pages de votre domaine

    Pour changer cela :

  • Les cookiesExemple

    DEMO ?menu Google Chrome Paramtres paramtres avancs "Confidentialit" Paramtres de contenu

    Attention : Les cookies ne sont pas immdiatement accessibles par la page qui vient de les crer

  • Les cookiesExemple

    La lecture des cookies se fait via la variable superglobale $_COOKIE :

    page2

    Contenu de la page page1.php

    Contenu de la page page2.php

  • Les cookiesExemple : tableaux associatifs

    La lecture des cookies se fait via la variable superglobale $_COOKIE :

  • Les cookiesExemple

  • Cookies & sessions

    FichiersSe souvenir de login de l'utilisateur

  • Les sessionsUne session permet de stocker des informations de l'utilisateur sur le serveur et de les rutiliser dans toutes les pages du site pour un mme visiteur :

    Identifiants de connexion, informations personnelles,

    Chaque utilisateur se voit attribuer un identifiant de session li la session en cours

    cet identifiant est transmis d'une page une autre de deux manires diffrentes : PHPSESID

    soit en tant crit dans un cookie sur le poste clientsoit en tant ajout l'URL de la page cible d'un lien

    Une session est temporaire et est efface trs rapidement du serveur

    Le temps moyen est de 30 minutes par dfaut

  • Les sessions

    Dmarrer une session :Ouverture d'une session dans chaque page ayant accs aux donnes l'aide de la fonction : session_start(("nom", "valeur");Dans le cas de sessions avec cookie, il faut crire la fonction au dbut du script

    Dans le cas d'un dmarrage de nouvelle session, un fichier (cookie) est cr sur le serveur pour cette sessionDans le cas ou le fichier existe dj (session dj dmarre), la lecture des variables de sessions se fait via la variable superglobale $_SESSION avec comme cls les noms des variables

  • Les sessionsExemple : sessions avec cookies Contenu de la page page2.php

    Session sans cookie, on peut transmettre l'identiant de session via l'URL :echo ' page 2 ';

    Nom =Didi

  • Les sessionsExemple : autentification

    login : motde passe :

    FormulaireConnexion.php

    Bonjour ,Pourvous deconnecter, cliquez : ici

    FormulaireDeconnexion.php

  • Les sessionsExemple : autentification Index.html

    Demo 2N'oublier pas de supprimer les variables de sessions

  • En rsum

    Les fichiers : pour les donnes simples taille modeste

    partages entre tous les utilisateurs

    Les cookies : fichier sur le poste clientLes sessions : fichier personelles sur le serveur

  • Rappel

    FichiersSe souvenir de login de l'utilisateur

  • Accs MySQL avec PHPAdministration d'une base de donnes MySQL

    phpMyAdmin est un outil qui permet une administration aise des bases de donnes MySQL

    Son interface permet de :Crer des bases de donnesCrer des tablesInsrer/Modifier/Supprimer des enregistrements

    Dmo :

    Lancer phpMyAdminCrer la base des donnes BDTP3 (filires + tudiants)Cls trangresInsrer des enregistrementsAfficher .

  • Accs MySQL avec PHPmanipulation d'une BD MySQL

    On peut, pour une table d'une base de donnes:Insrer des donnes

    Modifier des donnes

    Supprimer des donnes

    4 tapes sont ncessaires:

    Connexion au serveur MySQL : mysql_connectChoix de la base de donnes : mysql_select_dbEnvoi de requtes SQL au serveur (insertion, lecture, suppression ou mise jour des donnes)Rcupration du rsultat de la requte

  • Accs MySQL avec PHPmanipulation d'une BD MySQL : connexionAvant d'interroger le serveur MySQL il faut ouvrir la connexion :

    $idcon= mysql_connect( $host, $user, $pass [, $multi])$host : le nom du serveur MySQL.

    Pour notre cas : $host="localhost" $user : le nom sous lequel l'utilisateur est autoris accder au serveur. De la cas de Wampserver $user= "root"$pass : le mot de passe associ l'utilisateur $user. Dans le cas de Wampserver c'est une chaine vide$multi : un boolen permettant ou non multiconnexion. S'il vaut TRUE, deux appels de mysql_connect() avec des paramtres identiques dans un mme script crent deux connexions diffrentes

    La fonction mysql_connect() retourne un lien de connexion vers la base de donnes slectionne

  • Accs MySQL avec PHPmanipulation d'une BD MySQL : connexion

    Fermeture de connexion : mysql_close($idcon)Ferme une connexion $idconSelection de la base de donnes :

    mysql_select_db($nom_base [, $idcon])$nom_base : nom de la base de donnes$idcon : identifiant de la connexionLa fonction retourne TRUE si la base existe et FALSE dans le cas contraire

  • Accs MySQL avec PHPmanipulation d'une BD MySQL

    Exemple : Connexion, slection de la base, fermeture de la connexion

    On suppose que le serveur MySQ