Précédent   Forum du club des développeurs et IT Pro > PHP > Outils > phpMyAdmin
phpMyAdmin Forum d'entraide sur l'outil phpMyAdmin : installation, utilisation, etc. Avant de poster -> Cours phpMyAdmin
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 30/12/2012, 01h35   #1
bouzoubad
Invité de passage
 
Homme
Étudiant
Inscription : décembre 2012
Messages : 31
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Étudiant
Secteur : Enseignement

Informations forums :
Inscription : décembre 2012
Messages : 31
Points : 3
Points : 3
Par défaut insertion code dans phpmyadmin

Bonjour,

Je souhaite faire ce tuto http://dsilvera.developpez.com/tutor...es-script-php/ mais je bloque sur la première partie : l'insertion du code pour la base de donnée dans phpmyadmin :

Lorsque que je met le code :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
 
-- phpMyAdmin SQL Dump
-- version 2.6.4-pl4
-- http://www.phpmyadmin.net
-- 
-- Host: localhost
-- 
 
-- --------------------------------------------------------
 
-- 
-- Création Table `auth_table`
-- 
 
CREATE TABLE IF NOT EXISTS auth_table (
  user_id int(10) UNSIGNED NOT NULL AUTO_INCREMENT,
  username varchar(20) NOT NULL DEFAULT '',
  password varchar(32) NOT NULL DEFAULT '',
  PRIMARY KEY  (user_id),
  UNIQUE KEY username (username),
) TYPE = InnoDB;
 
-- 
-- Insertion Table `auth_table`
-- 
 
INSERT INTO auth_table (username, password)
VALUES ('test', MD5('pass'));
j'ai toujours la même erreur :
Citation:
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '=InnoDB' at line 20
Merci de m'aider.
bouzoubad est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/12/2012, 09h16   #2
sabotage
Modérateur
 
Avatar de sabotage
 
Homme Vincent
Inscription : juillet 2005
Messages : 16 507
Détails du profil
Informations personnelles :
Nom : Homme Vincent

Informations forums :
Inscription : juillet 2005
Messages : 16 507
Points : 21 343
Points : 21 343
Remplace par
sabotage est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 30/12/2012, 22h47   #3
bouzoubad
Invité de passage
 
Homme
Étudiant
Inscription : décembre 2012
Messages : 31
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Étudiant
Secteur : Enseignement

Informations forums :
Inscription : décembre 2012
Messages : 31
Points : 3
Points : 3
Bonjour,

Désolé toujours le même problème :
Citation:
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ') ENGINE = InnoDB' at line 20
bouzoubad est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/12/2012, 22h49   #4
Exia93
Membre Expert
 
Homme
Étudiant
Inscription : avril 2012
Messages : 611
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : avril 2012
Messages : 611
Points : 1 069
Points : 1 069
Bonsoir,

vire la , à cette ligne :
Code :
UNIQUE KEY username (username),
ligne 20 dans ton scirpt.

Et remplace TYPE par ENGINE comme l'a dit précédemment sabotage.
Exia93 est actuellement connecté   Envoyer un message privé Réponse avec citation 10
Vieux 30/12/2012, 22h53   #5
bouzoubad
Invité de passage
 
Homme
Étudiant
Inscription : décembre 2012
Messages : 31
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Étudiant
Secteur : Enseignement

Informations forums :
Inscription : décembre 2012
Messages : 31
Points : 3
Points : 3
Dans la version originale il n'y a pas de virgule à la fin de la ligne 20 et avec cette version mais en remplacant "TYPE" par "ENGINE" comme ceci :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
 
-- phpMyAdmin SQL Dump
-- version 2.6.4-pl4
-- http://www.phpmyadmin.net
-- 
-- Host: localhost
-- 
 
-- --------------------------------------------------------
 
-- 
-- Création Table `auth_table`
-- 
 
CREATE TABLE IF NOT EXISTS auth_table (
  user_id int(10) UNSIGNED NOT NULL AUTO_INCREMENT,
  username varchar(20) NOT NULL DEFAULT '',
  password varchar(32) NOT NULL DEFAULT '',
  PRIMARY KEY  (user_id),
  UNIQUE KEY username (username)
) ENGINE = InnoDB;
 
-- 
-- Insertion Table `auth_table`
-- 
 
INSERT INTO auth_table (username, password)
VALUES ('test', MD5('pass'));
Cela me donne :
Citation:
#1062 - Duplicate entry 'test' for key 'username'
bouzoubad est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/12/2012, 22h59   #6
Exia93
Membre Expert
 
Homme
Étudiant
Inscription : avril 2012
Messages : 611
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : avril 2012
Messages : 611
Points : 1 069
Points : 1 069
Code :
UNIQUE KEY username (username)
cette ligne veut dire que tu ne peut pas avoir deux fois la même valeur pour deux ligne différente,

exemple :
Code :
1
2
3
username | password
test     | 12345
test     | 12345
donc tu doit déjà avoir dans ta table un user avec username avec test.
Exia93 est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/12/2012, 23h13   #7
bouzoubad
Invité de passage
 
Homme
Étudiant
Inscription : décembre 2012
Messages : 31
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Étudiant
Secteur : Enseignement

Informations forums :
Inscription : décembre 2012
Messages : 31
Points : 3
Points : 3
Citation:
Envoyé par Exia93 Voir le message
Code :
UNIQUE KEY username (username)
cette ligne veut dire que tu ne peut pas avoir deux fois la même valeur pour deux ligne différente,

exemple :
Code :
1
2
3
username | password
test     | 12345
test     | 12345
donc tu doit déjà avoir dans ta table un user avec username avec test.
Merci pour la réponse mais je comprend pas, je dois rajouter qqc ou en enlever ?
bouzoubad est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/12/2012, 23h18   #8
Exia93
Membre Expert
 
Homme
Étudiant
Inscription : avril 2012
Messages : 611
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : avril 2012
Messages : 611
Points : 1 069
Points : 1 069
ça dépend de ton besoin,

cette contrainte fait que deux utilisateur ne pourront pas avoir le même username,

donc si tu a besoin de cette contrainte laisse la.
Exia93 est actuellement connecté   Envoyer un message privé Réponse avec citation 10
Vieux 30/12/2012, 23h19   #9
bouzoubad
Invité de passage
 
Homme
Étudiant
Inscription : décembre 2012
Messages : 31
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Étudiant
Secteur : Enseignement

Informations forums :
Inscription : décembre 2012
Messages : 31
Points : 3
Points : 3
Oui j'ai besoin de cette contrainte. Donc le script est bon ? Parce que j'ai toujours cette erreur...
Et que donc je ne peux pas insérer ce script dans phpmyadmin.
bouzoubad est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/12/2012, 23h23   #10
Exia93
Membre Expert
 
Homme
Étudiant
Inscription : avril 2012
Messages : 611
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : avril 2012
Messages : 611
Points : 1 069
Points : 1 069
Ton scirpt fait plusieurs chose,

Code :
CREATE TABLE IF NOT EXISTS auth_table
il va te créer une table auth_table si elle n'existe pas,

dans ton cas je pense qu'elle existe déjà et que des données sont présente déjà,

ensuite dans ta table tu à la contrainte uniquesur la colonne username,

tu essaye ensuite d'insérer via la requête :
Code :
1
2
INSERT INTO auth_table (username, password)
VALUES ('test', MD5('pass'));
une nouvelle ligne avec comme valeur username = 'test' et password = MD5('pass');

j'image que dans ta table tu à déjà une ligne avec comme username test donc ta requête d'insertion plante.

Donc soit tu vide la table auth_table dans ta base de données soit tu supprime la table,

ton script s'occupera de la recréer et de la re-remplir avec les données contenu dans ton scirpt.

ATTENTION vide pas ta table directement, fait un back-up de ta table ( à par si ton script est déjà un back-up)
Exia93 est actuellement connecté   Envoyer un message privé Réponse avec citation 10
Vieux 30/12/2012, 23h36   #11
bouzoubad
Invité de passage
 
Homme
Étudiant
Inscription : décembre 2012
Messages : 31
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Étudiant
Secteur : Enseignement

Informations forums :
Inscription : décembre 2012
Messages : 31
Points : 3
Points : 3
Effectivement, la table était déjà rentré donc j'ai supprimer l'ancienne et ré exécuter le script et cela fonctionne. Maintenant comme je souhaite suivre ce tuto : http://dsilvera.developpez.com/tutor...es-script-php/ je voudrai savoir (je débute tous juste dans le php) qu'est-ce que je doit faire ensuite et que veut dire mon code ? Si par la suite qqn souhaite s'identifier est-ce que son username devra être "test" et le mot de passe défini par phpmyadmin ? Désolé je débute...
bouzoubad est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/12/2012, 23h50   #12
Exia93
Membre Expert
 
Homme
Étudiant
Inscription : avril 2012
Messages : 611
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : avril 2012
Messages : 611
Points : 1 069
Points : 1 069
Ensuite,

tu va devoir faire un formulaire avec deux champs,

username et password,

l'utilisateur va les remplir par exemple test et pass,

en php tu va récupérer les valeurs du formulaire et vérifier dans ta BDD si un utilisateur utilise l'username test et pass comme password ( attention vue que tu hash le password avec la fonction MD5() dans ta requête de vérification tu devra aussi l'utiliser).
Exia93 est actuellement connecté   Envoyer un message privé Réponse avec citation 10
Vieux 31/12/2012, 00h08   #13
bouzoubad
Invité de passage
 
Homme
Étudiant
Inscription : décembre 2012
Messages : 31
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Étudiant
Secteur : Enseignement

Informations forums :
Inscription : décembre 2012
Messages : 31
Points : 3
Points : 3
Citation:
Envoyé par Exia93 Voir le message
Ensuite,

tu va devoir faire un formulaire avec deux champs,

username et password,

l'utilisateur va les remplir par exemple test et pass,
Sa j'ai compris.

Citation:
en php tu va récupérer les valeurs du formulaire et vérifier dans ta BDD si un utilisateur utilise l'username test et pass comme password ( attention vue que tu hash le password avec la fonction MD5() dans ta requête de vérification tu devra aussi l'utiliser).
Là par contre j'aimerai savoir si c'est a moi de définir tous les username autorisés avec leurs mot de passe ?

Et je n'ai pas compris ce que tu veux dire par "hasher le password avec la fonction".

Merci
bouzoubad est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/12/2012, 00h15   #14
Exia93
Membre Expert
 
Homme
Étudiant
Inscription : avril 2012
Messages : 611
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : avril 2012
Messages : 611
Points : 1 069
Points : 1 069
après à toi de voir si tu accepte la création de compte ou si c'est toi qui créer les comptes à la main.

Pour le mot de passe il vaut mieux ne pas les stocker en clair dans la BDD au cas ou une personne venait à accéder à la BDD,

donc pour éviter cela on hash le mot de passe, pour cela des fonctions toutes faite existe qui utilise des algorithmes de chiffrement ( exemple MD5, SHA1, ...),

par exemple pour ton mot de passe 'pass' en BDD il sera stocké une chaîne de caractère tel que 'a7zeez15rez3251rez9',

donc lorsqu'un utilisateur va se connecter avec les informations username 'test' et mot de passe 'pass', si tu lui demande simplement si un utilisateur utilise ces informations la BDD te répondra non car le mot de passe 'pass' n'est pas stocké en BDD,

il faut d'abord chiffrer le mot de passe avec l'algorithme que tu à choisit (MD5 dans ton cas) et ensuite demander à la BDD avec ces nouvelles informations.
Exia93 est actuellement connecté   Envoyer un message privé Réponse avec citation 10
Vieux 31/12/2012, 00h26   #15
bouzoubad
Invité de passage
 
Homme
Étudiant
Inscription : décembre 2012
Messages : 31
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Étudiant
Secteur : Enseignement

Informations forums :
Inscription : décembre 2012
Messages : 31
Points : 3
Points : 3
Citation:
Envoyé par Exia93 Voir le message
après à toi de voir si tu accepte la création de compte ou si c'est toi qui créer les comptes à la main.

Pour le mot de passe il vaut mieux ne pas les stocker en clair dans la BDD au cas ou une personne venait à accéder à la BDD,

donc pour éviter cela on hash le mot de passe, pour cela des fonctions toutes faite existe qui utilise des algorithmes de chiffrement ( exemple MD5, SHA1, ...),

par exemple pour ton mot de passe 'pass' en BDD il sera stocké une chaîne de caractère tel que 'a7zeez15rez3251rez9',

donc lorsqu'un utilisateur va se connecter avec les informations username 'test' et mot de passe 'pass', si tu lui demande simplement si un utilisateur utilise ces informations la BDD te répondra non car le mot de passe 'pass' n'est pas stocké en BDD,

il faut d'abord chiffrer le mot de passe avec l'algorithme que tu à choisit (MD5 dans ton cas) et ensuite demander à la BDD avec ces nouvelles informations.
Donc si je comprend bien, pour chaque nouvel utilisateur, je dois lui créer son username et son mot de passe (si c'est sa, cela me convient). Et cette fonction en gros permet de créer un mot de passe "aléatoirement" comme celui que tu m'a donné. Dans mon cas je n'ai donc créer qu'un utilisateur non ? Le username serai "test" et le mot de passe, un truc du style : "a7zeez15rez3251rez9" (pour ne pas donner le vrai) ?
bouzoubad est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/12/2012, 00h34   #16
Exia93
Membre Expert
 
Homme
Étudiant
Inscription : avril 2012
Messages : 611
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : avril 2012
Messages : 611
Points : 1 069
Points : 1 069
voila sauf que aléatoirement n'est pas le terme exact car si tu re hash le mot 'pass' il te donnera toujours le même mot de passe chiffré.
Exia93 est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/12/2012, 00h39   #17
bouzoubad
Invité de passage
 
Homme
Étudiant
Inscription : décembre 2012
Messages : 31
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Étudiant
Secteur : Enseignement

Informations forums :
Inscription : décembre 2012
Messages : 31
Points : 3
Points : 3
D'accord mais si maintenant je veux créer un 2ème utilisateur, comment je fais ?
bouzoubad est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/12/2012, 00h46   #18
Exia93
Membre Expert
 
Homme
Étudiant
Inscription : avril 2012
Messages : 611
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : avril 2012
Messages : 611
Points : 1 069
Points : 1 069
tu va devoir créer dans ta table un nouvel utilisateur ayant un nom différent.
Exia93 est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/12/2012, 00h48   #19
bouzoubad
Invité de passage
 
Homme
Étudiant
Inscription : décembre 2012
Messages : 31
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Étudiant
Secteur : Enseignement

Informations forums :
Inscription : décembre 2012
Messages : 31
Points : 3
Points : 3
Citation:
Envoyé par Exia93 Voir le message
tu va devoir créer dans ta table un nouvel utilisateur ayant un nom différent.
Comment ?
bouzoubad est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/12/2012, 00h55   #20
Exia93
Membre Expert
 
Homme
Étudiant
Inscription : avril 2012
Messages : 611
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : avril 2012
Messages : 611
Points : 1 069
Points : 1 069
Code :
1
2
INSERT INTO auth_table (username, password)
VALUES ('nom', MD5('pass'));
cette requête SQL va ajouter une ligne à la table auth_table avec comme username nom ou pour chaque ligne tu doit avoir un username différent des autres lignes.

Mais si tu ne connais pas comment communiquer avec une BDD il va falloir que tu commence par la car pour pouvoir vérifier si l'utilisateur a bien rentré les bonne information tu devras aussi passé par une requête SQL.
Exia93 est actuellement connecté   Envoyer un message privé Réponse avec citation 10
Réponse Cette discussion est résolue.
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 15h37.


 
 
 
 
Partenaires

Hébergement Web