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 15:18]
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(100) NOT NULL, +  dateInscription TIMESTAMP DEFAULT CURRENT_TIMESTAMP()
-  mail VARCHAR(100) NOT NULL, +  dateModif TIMESTAMP ​DEFAULT 0, 
-  ​isAdmin tinyint(1)NOT NULL DEFAULT 0, +  idLogin int NOT NULL,
-  dateInscription TIMESTAMP DEFAULT CURRENT_TIMESTAMP,​ +
-  dateModif TIMESTAMP,+
   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>
Ligne 65: Ligne 95:
  
 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>​
-</​note>​ 
  
-  * Ce qui donne :+  * 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>mysql -uessaiLogin -p essaiLogin -e "select * from membre;"</​code>​ +<​code ​php> 
-<code>Enter password:  +// pour première insertion 
-+-----------+--------+------+-------+----------------------------------+--------------+---------+---------------------+---------------------+ +$pseudo = "admin"; 
-| membre_id | prenom | nom  | login | motPasse ​                        | mail         | isAdmin | dateInscription ​    | dateModif ​          | +$motPasse = "admin";​ 
-+-----------+--------+------+-------+----------------------------------+--------------+---------+---------------------+---------------------+ +echo "<p>mot de passe pour " .$pseudo. "</​p>";​ 
-|         1 | prenom | nom  | login | 335368c4ed30a8f0f3b3919a2dfade2a | mail@mail.fr |       0 | 2016-06-24 15:08:29 | 0000-00-00 00:00:00 | +$motPasseHash = password_hash($motPasse,​PASSWORD_BCRYPT,​['​cost'​ => 9]); 
-|         2 | toto   | toto | toto  | f71dbe52628a3f83a77ab494817525c6 | toto@toto.fr |       0 | 2016-06-24 15:08:29 | 0000-00-00 00:00:00 | +echo "<​p>"​.$motPasseHash."</p>"; 
-+-----------+--------+------+-------+----------------------------------+--------------+---------+---------------------+---------------------+ +// 
-</code>+$bool = password_verify($motPasse,​ $motPasseHash);​ 
 +var_dump($bool);​
  
-  * On insert un administrateur ​:+// retour ​: 
 +//mot de passe pour admin: 
 +//​$2y$09$OLK0HP3JDYjMKSoJxC00o.MCnMWHjT/​sUI.rynSHxw.p9A6tSZYM. 
 +//boolean true
  
-<code user> 
- mysql -uessaiLogin -p essaiLogin -e "​INSERT INTO membre(prenom,​ nom, login, motPasse, mail, isAdmin) VALUES ('​admin',​ '​Admin',​ '​admin'​ ,​MD5('<​passdwCHOISI>'​),​ '​admin@admin.fr',​ 1);" 
 </​code>​ </​code>​
  
-  * On ajoute la date et l'​heure de l'​update pour l'​administrateur : +</note>
- +
-<code user>​mysql -uessaiLogin -p essaiLogin -e "​UPDATE \`membre\` SET \`dateModif\`=NOW() WHERE \`login\`='​admin';"</​code>​ +
- +
-===On vérifie === +
- +
-<code user>​mysql -uessaiLogin -p essaiLogin -e "​select * from membre;"</​code>​ +
- +
- +
-<​code>​ +
-Enter password:  +
-+-----------+--------+-------+-------+----------------------------------+----------------+---------+---------------------+---------------------+ +
-| membre_id | prenom | nom   | login | motPasse ​                        | mail           | isAdmin | dateInscription ​    | dateModif ​          | +
-+-----------+--------+-------+-------+----------------------------------+----------------+---------+---------------------+---------------------+ +
-|         1 | prenom | nom   | login | 335368c4ed30a8f0f3b3919a2dfade2a | mail@mail.fr ​  ​| ​      0 | 2016-06-24 15:08:29 | 0000-00-00 00:00:00 | +
-|         2 | toto   | toto  | toto  | f71dbe52628a3f83a77ab494817525c6 | toto@toto.fr ​  ​| ​      0 | 2016-06-24 15:08:29 | 0000-00-00 00:00:00 | +
-|         3 | admin  | Admin | admin | 21232f297a57a5a743894a0e4a801fc3 | admin@admin.fr |       1 | 2016-06-24 15:10:16 | 2016-06-24 15:12:40 | +
-+-----------+--------+-------+-------+----------------------------------+----------------+---------+---------------------+---------------------+ +
- +
- +
-</code>+
  
  
Ligne 126: Ligne 137:
   * avec la fonction mysql ''​now()''​ :   * avec la fonction mysql ''​now()''​ :
  
-<​code>​UPDATE `membre` SET `dateModif`=NOW() WHERE `login`='​admin';</​code>​+<​code>​UPDATE `membre` SET `dateModif`=NOW() WHERE `pseudo`='​admin';</​code>​
  
   * ou avec la fonction mysql ''​CURRENT_TIMESTAMP()''​ :   * ou avec la fonction mysql ''​CURRENT_TIMESTAMP()''​ :
  
  
-<​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 :   * qui donneraient ce résultat :
  
-<​code>​select ​login, dateModif from membre where login='​admin';</​code>​+<​code>​select ​pseudo, dateModif from membre where pseudo='​admin';</​code>​
  
 <​code>​ <​code>​
 +-------+------------+ +-------+------------+
-login | dateModif ​ |+pseudo ​| dateModif ​ |
 +-------+------------+ +-------+------------+
 | admin | 2016-06-24 | | admin | 2016-06-24 |
utilisateurs/hypathie/tutos/creer-son-site-web-en-php-_-installer-mysql-creer-une-bdd-pour-un-site-en-php-objet.1466774339.txt.gz · Dernière modification: 24/06/2016 15:18 par Hypathie

Pied de page des forums

Propulsé par FluxBB