logo Debian Debian Debian-France Debian-Facile Debian-fr.org Forum-Debian.fr Debian ? Communautés logo inclusivité

Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

Vous n'êtes pas identifié(e).


L'icône rouge permet de télécharger chaque page du wiki visitée au format PDF et la grise au format ODT → ODT PDF Export

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
utilisateurs:hypathie:tutos:creer-son-site-web-en-php-_-installer-mysql-creer-une-bdd-pour-un-site-en-php-objet [24/06/2016 14:45]
Hypathie [Utilisation]
utilisateurs:hypathie:tutos:creer-son-site-web-en-php-_-installer-mysql-creer-une-bdd-pour-un-site-en-php-objet [01/09/2016 10:48] (Version actuelle)
Hypathie [Utilisation]
Ligne 6: Ligne 6:
   * Débutant, à savoir : [[:​doc:​systeme:​commandes:​le_debianiste_qui_papillonne|Utiliser GNU/Linux en ligne de commande, tout commence là !.]] :-)   * Débutant, à savoir : [[:​doc:​systeme:​commandes:​le_debianiste_qui_papillonne|Utiliser GNU/Linux en ligne de commande, tout commence là !.]] :-)
  
-===== Introduction =====+
  
 ===== Installations relative à la base de données ===== ===== Installations relative à la base de données =====
Ligne 23: Ligne 23:
 <code user>​./​creerMysqlBDDetUser.sh essaiLogin essaiLogin <​motDePasse></​code>​ <code user>​./​creerMysqlBDDetUser.sh essaiLogin essaiLogin <​motDePasse></​code>​
  
-=== Création ​de la table membre===+=== Création ​des tables ​membre ​et login===
  
 <code sql> <code sql>
 +#-- fichier : /​home/​$user/​createTableMembreLogin.sql
 USE essaiLogin; USE essaiLogin;
 + 
 +DROP TABLE IF EXISTS `login`;
 + 
 +CREATE TABLE IF NOT EXISTS login(
 +  login_id int NOT NULL AUTO_INCREMENT,​
 +  pseudo VARCHAR(20) NOT NULL,
 +  motPasse VARCHAR(100) NOT NULL,
 +  cle VARCHAR(50) NULL,
 +  actif TINYINT(1) NULL,
 +  mail VARCHAR(50) NOT NULL,
 +  lastConnect TIMESTAMP DEFAULT 0,
 +  PRIMARY KEY  (login_id),
 +  UNIQUE KEY username (pseudo)
 +)ENGINE=InnoDB DEFAULT CHARSET=utf8;​
  
-DROP TABLE IF EXISTS `membre`; 
  
 +DROP TABLE IF EXISTS `membre`;
 + 
 CREATE TABLE IF NOT EXISTS membre( CREATE TABLE IF NOT EXISTS membre(
-  membre_id int(10) UNSIGNED ​NOT NULL AUTO_INCREMENT,​ +  membre_id int NOT NULL AUTO_INCREMENT,​ 
-  prenom ​varchar(50) NOT NULL, +  prenom ​VARCHAR(50) NOT NULL, 
-  nom varchar(50) NOT NULL, +  nom VARCHAR(50) NOT NULL, 
-  ​login varchar(20) NOT NULL, +  ​isAdmin tinyint(1) NOT NULL DEFAULT 0
-  ​motPasse varchar(100NOT NULL+  ​dateInscription TIMESTAMP DEFAULT CURRENT_TIMESTAMP(), 
-  ​mail varchar(100) NOT NULL+  ​dateModif TIMESTAMP DEFAULT 0
-  ​IsAdmin ​ TINYINT(M) ​NOT NULL,+  ​idLogin int NOT NULL,
   PRIMARY KEY  (membre_id),​   PRIMARY KEY  (membre_id),​
-  ​UNIQUE ​KEY username ​(login)+  ​CONSTRAINT FK_login FOREIGN ​KEY(`idLogin`) REFERENCES ​login(`login_id`)
 )ENGINE=InnoDB DEFAULT CHARSET=utf8;​ )ENGINE=InnoDB DEFAULT CHARSET=utf8;​
 +
 </​code>​ </​code>​
 +
 +<code user>​mysql -uessaiLogin -p <​createTableMembreLogin.sql</​code>​
  
 === Quelques insertions pour les tests=== === Quelques insertions pour les tests===
  
 <code sql> <code sql>
 +#--fichier : /​home/​$user/​insertTableMembreLogin.sql
 USE essaiLogin; USE essaiLogin;
    
 +SET FOREIGN_KEY_CHECKS=0;​
 TRUNCATE `login`; TRUNCATE `login`;
 +SET FOREIGN_KEY_CHECKS=1;​
 DELETE FROM `login`; DELETE FROM `login`;
 + 
 +INSERT INTO login(pseudo,​ motPasse, mail) VALUES ​
 +('​admin',​ '​$2y$09$vDdO6/​IMSHdk/​ja2MQGHfO1KJasWHNRCUDr4ZCecaZjtl4GpM3I9m',​ '​admin@adm.fr'​);​
 +
 +
 +SET FOREIGN_KEY_CHECKS=0;​
 +TRUNCATE `membre`;
 +DELETE FROM `membre`;
 +
 + 
 +INSERT INTO membre(prenom,​ nom, isAdmin, dateInscription,​ idLogin) VALUES ​
 +('​admin',​ '​Admin',​ 1, now(), 1);
  
-INSERT INTO membre(prenom,​ nom, login, motPasse, mail) VALUES ​ 
-('​prenom',​ '​nom',​ '​login',​ MD5('​motPasse'​),​ '​mail@mail.fr'​),​ 
-('​toto',​ '​toto',​ '​toto'​ ,​MD5('​toto'​),​ '​toto@toto.fr'​);​ 
 </​code>​ </​code>​
 +
 +<code user>​mysql -uessaiLogin -p <​insertTableMembreLogin.sql</​code>​
  
 <note tip> <note tip>
 +  * La ligne ''​isAdmin tinyint(1)NOT NULL DEFAULT 0,''​ \\ signifie que le champs est rempli par défaut avec la valeur ''​FALSE''​.\\ La valeur ''​TRUE''​ sera ''​1''​.
   * Voir : http://​dev.mysql.com/​doc/​refman/​5.7/​en/​numeric-type-overview.html   * Voir : http://​dev.mysql.com/​doc/​refman/​5.7/​en/​numeric-type-overview.html
 <​code>​BOOL,​ BOOLEAN <​code>​BOOL,​ BOOLEAN
Ligne 62: Ligne 96:
 These types are synonyms for TINYINT(1). A value of zero is considered false. Nonzero values are considered true</​code>​ These types are synonyms for TINYINT(1). A value of zero is considered false. Nonzero values are considered true</​code>​
  
-  * On insert un administrateur ​:+  * Le mot de passe pour admin a été généré à titre d'​exemple par la fonction php suivante. \\ La documentation déconseille l'​utilisation de md5 et de sha1 http://​php.net/​manual/​fr/​faq.passwords.php
  
-<​code ​user+<​code ​php
- mysql -uessaiLogin -essaiLogin -e "INSERT INTO membre(prenom, nom, login, ​motPasse, ​mailisAdmin) VALUES ('admin', '​Admin',​ '​admin'​ ,​MD5('<​passdwCHOISI>'), '​admin@admin.fr',​ 1);" +// pour première insertion 
-</code> +$pseudo = "​admin";​ 
-</note+$motPasse = "​admin";​ 
-===On vérifie ===+echo "<p>mot de passe pour " ​.$pseudo. ": </​p>";​ 
 +$motPasseHash = password_hash($motPasse,PASSWORD_BCRYPT,['cost' ​=9]); 
 +echo "<p>"​.$motPasseHash."​</p>"; 
 +// 
 +$bool password_verify($motPasse,​ $motPasseHash);​ 
 +var_dump($bool);​
  
-<code user>​mysql -uessaiLogin -p essaiLogin -e "​select * from membre;"<​/code> +// retour : 
- +//mot de passe pour admin
- +//​$2y$09$OLK0HP3JDYjMKSoJxC00o.MCnMWHjT/​sUI.rynSHxw.p9A6tSZYM
-<​code>​ +//boolean true
-Enter password:  +
-+-----------+--------+-------+-------+----------------------------------+----------------+---------+ +
-| membre_id | prenom | nom   | login | motPasse ​                        | mail           | isAdmin | +
-+-----------+--------+-------+-------+----------------------------------+----------------+---------+ +
-|         1 | prenom | nom   | login | 335368c4ed30a8f0f3b3919a2dfade2a | mail@mail.fr   ​| ​      0 | +
-|         2 | toto   | toto  | toto  | f71dbe52628a3f83a77ab494817525c6 | toto@toto.fr   ​| ​      0 | +
-|         3 | admin  | Admin | admin | 21232f297a57a5a743894a0e4a801fc3 | admin@admin.fr |       1 | +
-+-----------+--------+-------+-------+----------------------------------+----------------+---------++
  
 </​code>​ </​code>​
 +
 +</​note>​
  
  
 <​note>​ <​note>​
-Remarque sur les dates :+**Remarque sur les dates :** 
 + 
 +Pour le champ ''​dateModif'',​ si on avait choisi le type ''​DATE''​ à la place de ''​TIMESTAMP''​
  
 <​code>​ <​code>​
Ligne 98: Ligne 133:
 </​code>​ </​code>​
  
 +On aurait pu modifier la date seulement ​
  
-<​code>​UPDATE `membre` SET `dateModif`=NOW() WHERE `login`='admin';</​code>​+  * avec la fonction mysql ''​now()'' ​:
  
 +<​code>​UPDATE `membre` SET `dateModif`=NOW() WHERE `pseudo`='​admin';</​code>​
  
-<​code>​+-----------+--------+-------+-------+----------------------------------+----------------+---------+---------------------+------------+ +  ​* ou avec la fonction mysql ''​CURRENT_TIMESTAMP()'' ​:
-| membre_id | prenom | nom   ​| login | motPasse ​                        | mail           | isAdmin | dateInscription ​    | dateModif ​ | +
-+-----------+--------+-------+-------+----------------------------------+----------------+---------+---------------------+------------+ +
-|         1 | prenom | nom   | login | 335368c4ed30a8f0f3b3919a2dfade2a | mail@mail.fr ​  ​| ​      0 | 2016-06-24 14:18:51 | NULL       | +
-|         2 | toto   | toto  | toto  | f71dbe52628a3f83a77ab494817525c6 | toto@toto.fr ​  ​| ​      0 | 2016-06-24 14:18:51 | NULL       | +
-|         3 | admin  | Admin | admin | 21232f297a57a5a743894a0e4a801fc3 | admin@admin.fr |       1 | 2016-06-24 14:19:52 | 2016-06-24 | +
-+-----------+--------+-------+-------+----------------------------------+----------------+---------+---------------------+------------+ +
-</​code>​+
  
  
-<​code>​UPDATE `membre` SET `dateModif`=CURRENT_TIMESTAMP() WHERE `login`='​admin';</​code>​+<​code>​UPDATE `membre` SET `dateModif`=CURRENT_TIMESTAMP() WHERE `pseudo`='​admin';</​code>​
  
 +  * qui donneraient ce résultat :
 +
 +<​code>​select pseudo, dateModif from membre where pseudo='​admin';</​code>​
  
 <​code>​ <​code>​
-<...> ++-------+------------+ 
-        3 admin  ​| ​Admin | admin | 21232f297a57a5a743894a0e4a801fc3 | admin@admin.fr |       ​1 ​| 2016-06-24 ​14:​19:​52 ​2016-06-24 |+pseudo ​dateModif ​ | 
 ++-------+------------+ 
 +| admin | 2016-06-24 | 
 ++-------+------------+
  
-<...>+</code>
  
-</​code>​ 
 </​note>​ </​note>​
utilisateurs/hypathie/tutos/creer-son-site-web-en-php-_-installer-mysql-creer-une-bdd-pour-un-site-en-php-objet.1466772312.txt.gz · Dernière modification: 24/06/2016 14:45 par Hypathie

Pied de page des forums

Propulsé par FluxBB