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
Prochaine révision Les deux révisions suivantes
utilisateurs:hypathie:tutos:creer-son-site-web-en-php-_-installer-mysql-creer-une-bdd-pour-un-site-en-php-objet [24/06/2016 10:35]
Hypathie [Utilisation]
utilisateurs:hypathie:tutos:creer-son-site-web-en-php-_-installer-mysql-creer-une-bdd-pour-un-site-en-php-objet [08/08/2016 16:26]
Hypathie [Utilisation]
Ligne 16: Ligne 16:
 ===== Utilisation ===== ===== Utilisation =====
  
-====Base de données, table login ====+====Base de données, table membre====
 ===On crée la base de données === ===On crée 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 login ===+=== 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`; 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;​
  
-CREATE TABLE IF NOT EXISTS ​login + 
-  ​user_id ​int(10UNSIGNED ​NOT NULL AUTO_INCREMENT+DROP TABLE IF EXISTS `membre`; 
-  ​username varchar(20) NOT NULL, +  
-  ​password varchar(100) NOT NULL, +CREATE TABLE IF NOT EXISTS ​membre
-  PRIMARY KEY  (user_id), +  ​membre_id ​int NOT NULL AUTO_INCREMENT,​ 
-  ​UNIQUE ​KEY username ​(username)+  prenom VARCHAR(50) NOT NULL, 
 +  ​nom VARCHAR(50) NOT NULL, 
 +  ​mail VARCHAR(100) NOT NULL, 
 +  isAdmin tinyint(1) NOT NULL DEFAULT 0, 
 +  dateInscription TIMESTAMP DEFAULT CURRENT_TIMESTAMP(),​ 
 +  dateModif TIMESTAMP DEFAULT 0, 
 +  idLogin int NOT NULL, 
 +  PRIMARY KEY  (membre_id), 
 +  ​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 login (username, password) VALUES ​ 
-('​test',​ MD5('​pass'​)),​ 
-('​toto',​MD5('​toto'​));​ 
 </​code>​ </​code>​
  
-===On vérifie ===+<code user>​mysql -uessaiLogin -p <​insertTableMembreLogin.sql</​code>​
  
-<code user>mysql -uessaiLogin ​-p essaiLogin -e "select * from login;"</​code>​+<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 
 +<​code>​BOOL,​ BOOLEAN 
 + 
 +These types are synonyms for TINYINT(1). A value of zero is considered false. Nonzero values are considered true</​code>​ 
 + 
 +  * 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 php> 
 +// pour première insertion 
 +$pseudo = "​admin";​ 
 +$motPasse = "​admin";​ 
 +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);​ 
 + 
 +// retour : 
 +//mot de passe pour admin: 
 +//​$2y$09$OLK0HP3JDYjMKSoJxC00o.MCnMWHjT/​sUI.rynSHxw.p9A6tSZYM. 
 +//boolean true 
 + 
 +</​code>​ 
 + 
 +</​note>​ 
 + 
 + 
 +<​note>​ 
 +**Remarque sur les dates :** 
 + 
 +Pour le champ ''​dateModif'',​ si on avait choisi le type ''​DATE''​ à la place de ''​TIMESTAMP''​
  
 <​code>​ <​code>​
-Enter password: ​ +CREATE TABLE IF NOT EXISTS membre( 
-+---------+----------+----------------------------------+ +<...> 
-| user_id | username | password ​                        | +  ​dateInscription TIMESTAMP DEFAULT CURRENT_TIMESTAMP,​ 
-+---------+----------+----------------------------------+ +  ​dateModif DATE, 
-|       1 | test     | 1a1dc91c907325c69271ddf0c944bc72 | +<...> 
-|       2 | toto     | f71dbe52628a3f83a77ab494817525c6 | +)ENGINE=InnoDB DEFAULT CHARSET=utf8;​
-+---------+----------+----------------------------------++
 </​code>​ </​code>​
 +
 +On aurait pu modifier la date seulement ​
 +
 +  * avec la fonction mysql ''​now()''​ :
 +
 +<​code>​UPDATE `membre` SET `dateModif`=NOW() WHERE `pseudo`='​admin';</​code>​
 +
 +  * ou avec la fonction mysql ''​CURRENT_TIMESTAMP()''​ :
 +
 +
 +<​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>​
 ++-------+------------+
 +| pseudo | dateModif ​ |
 ++-------+------------+
 +| admin | 2016-06-24 |
 ++-------+------------+
 +
 +</​code>​
 +
 +</​note>​
utilisateurs/hypathie/tutos/creer-son-site-web-en-php-_-installer-mysql-creer-une-bdd-pour-un-site-en-php-objet.txt · Dernière modification: 01/09/2016 10:48 par Hypathie

Pied de page des forums

Propulsé par FluxBB