1 / 23

Mysql et Sessions PHP

Mysql et Sessions PHP. Modex Web Dominique Rossin. La semaine passée ?. C:xampphtdocsindex.php. http://www.polytechnique.fr/index.php. index.php. OUTPUT de PHP index.php. Mysql. PHP. Détruire des données. SELECT * FROM ‘contact‘ WHERE (login1 = ’rossin’) OR (login2 = ’rossin’).

prema
Download Presentation

Mysql et Sessions 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. Mysql et Sessions PHP Modex Web Dominique Rossin

  2. La semaine passée ? C:\xampp\htdocs\index.php http://www.polytechnique.fr/index.php index.php OUTPUT de PHP index.php Mysql PHP

  3. Détruire des données SELECT * FROM ‘contact‘ WHERE (login1 = ’rossin’) OR (login2 = ’rossin’) Recherche des contacts de rossin DELETE FROM ‘contact‘ WHERE (login1 = ’rossin’) OR (login2 = ’rossin’) DELETE  SELECT *

  4. Mise à jour d’un enregistrement Solution 1 DELETE INSERT On veut changer l’age de Olivier Serre

  5. Exemple On détruit l’enregistrement DELETE FROM `table_nom` WHERE `nom`=‘serre’ AND `prenom`=‘olivier’ • On réinsère le nouveau • INSERT INTO`table_nom` (`prenom`,`nom`,age `) VALUES (‘olivier’, ‘serre’,’30’) PB : id a changé

  6. Patch INSERT INTO`table_nom` (`id`,`prenom`,`nom`,age `) VALUES (‘1’,‘olivier’, ‘serre’,’30’) OK

  7. Problème : retour en arrière INCOHERENCE • On détruit l’enregistrement • DELETE FROM `table_nom` WHERE `nom`=‘serre’ AND `prenom`=‘olivier’

  8. Bonne solution : UPDATE UPDATE `table_nom` SET `age`=’30’ WHERE `id`=‘1’ UPDATE `table_nom`  Quelle table SET `age`=’30’  Quellemodif WHERE `id`=‘1’ Quels enregistrements

  9. Exemple : Mots de passe • Changement de mot de passe. • 2 opérations: • Vérification de l’ancien mot de passe • Modification du mot de passe UPDATE `tableLogin` SET `mdp`=‘groupir’ WHERE `login`=‘morain’ AND `mdp`=‘ouichef’

  10. Opération réussie ? Connaitre le nombre de lignes qui ont changé mysql_query(‘’UPDATE ……..’’); if (mysql_affected_rows()==1) … Bonne méthode : les transactions et le système de verrou

  11. Concurrence Effacement d’un utilisateur (ex : serre) • Action sur 2 tables • 2 opérations DELETE sont nécessaires

  12. LOCK des tables LOCK TABLES `personnes`,`contact` WRITE DELETE from `personnes` WHERE ... DELETE from `contact` WHERE ... UNLOCK TABLES Entre LOCK et UNLOCK personne ne peut toucher aux tables.

  13. Système de réservation Réservation de places Gestion d’un panier On doit réserver des éléments pour une certaine durée de temps TIMESTAMP : Tampon de temps

  14. TimeStamp Champ DATETIME ou TIMESTAMP On stocke NOW() lors de la réservation Pour vérifier la disponibilité on vérifie le délai depuis le TIMESTAMP.

  15. Retour sur PHP < ?php $var = 3 ; var_dump(isset($var)) ; unset($var) ; var_dump(isset($var)) ; $var = NULL ; var_dump(isset($var)) ; ?> TRUE FALSE FALSE

  16. Clés de tableaux < ?php $search_array = array(’premier’ => null, ’second’=> 4); isset($search_array[’premier’]) ; array_key_exists(’premier’, $search_array) ; ?> FALSE TRUE

  17. Sessions Une session permet de garder des informations d’une visite à l’autre d’un utilisateur On peut garder des informations entre les pages Les variables se transmettent sous forme de tableau $_SESSION Il est toujours possible de pirater une session Ajout de cryptographie

  18. Comment ? On commence par session_start() avant tout code HTML. On travaille ensuite avec les tableau $_SESSION vu comme un tableau persistent

  19. Exemple Pas d’espace <?php session_start(); if (isset($_GET[’reset’])) unset($_SESSION[’count’]); if (isset($_SESSION[’count’])) $_SESSION[’count’]++; else $_SESSION[’count’] = 0; $sess = $_SESSION[’count’]; echo <<<END <html> <body> <a href="index.php">retour $sess</a> <a href="index.php?reset=1">reset</a> </body> </html> END; ?>

  20. Utilisation Connexion des utilisateurs: <?php session_start(); if ($_POST[‘action’]==‘login’ && estUtilisateurValide()) { $_SESSION[‘login’] = …; } if (array_key_exists(‘login’,$_SESSION)) echo ‘’Bonjour ‘’.$_SESSION[‘login’]; ?>

  21. La face cachée des sessions A chaque session est associé un identifiant ou SID Le SID est un identifiant unique Le SID est transmis de manière transparente de page en page Soit utilisation de cookie, soit via l’URL Un SID n’est valable que pendant la visite du site et 30 min environ après

  22. Détruire une session <?php session_start() ; //destruction de toutes les variable de sessions session_unset() ; //destruction de la session session_destroy() ; // redirection header("Location: index.php") ; ?>

  23. CNIL • Dans le cas d’enregistrement d’un utilisateur et d’un mail. • Déclaration à la CNIL • Envoi d’un mail de vérification mail(destinataire, objet, contenu) • Possibilité de désinscription

More Related