-==<XTBA>==-

Windows ne demande jamais à Chuck Norris d'envoyer le rapport d'erreur. Bill Gates vient le chercher lui même, avec toutes ses excuses.
Nous sommes le jeu. 28 mars 2024, 21:53

Heures au format UTC+03:00




Poster un nouveau sujet  Répondre au sujet  [ 15 messages ] 
Auteur Message
MessagePosté : lun. 21 déc. 2009, 18:31 
Hors ligne
VIP
VIP
Avatar de l’utilisateur

Enregistré le : mar. 7 oct. 2008, 19:02
Messages : 3596
Pseudo Boinc : [XTBA>XTC] Dodo29
Localisation : Entre le bar VIP et la scène principale
Yop :hello:


Je sais qu'il y'en a qui tâtent le sql par ici :)


Donc, je suis en train d'essayer de faire une page de login pour une partie admin de mon site web, et j'aimerais que les utilisateurs soient dans une bases sql.

Donc, la page de login se prénste comme ça :

Connexion.php :
Code :
<?php
// on teste si le visiteur a soumis le formulaire de connexion
if (isset($_POST['connexion']) && $_POST['connexion'] == 'Connexion') {
   if ((isset($_POST['login']) && !empty($_POST['login'])) && (isset($_POST['pass']) && !empty($_POST['pass']))) {

      $base = mysql_connect ('localhost', 'Utilisateur_sql', 'Mot_de_passe');
      mysql_select_db ('Base_sql', $base);

      // on teste si une entrée de la base contient ce couple login / pass
      $sql = 'SELECT count(*) FROM admin WHERE login="'.mysql_escape_string($_POST['login']).'" AND pass_md5="'.mysql_escape_string(md5($_POST['pass'])).'"';
      $req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
      $data = mysql_fetch_array($req);

      mysql_free_result($req);
      mysql_close();

      // si on obtient une réponse, alors l'utilisateur est un membre
      if ($data[0] == 1) {
         session_start();
         $_SESSION['login'] = $_POST['login'];
         header('Location: index.html');
         exit();
      }
      // si on ne trouve aucune réponse, le visiteur s'est trompé soit dans son login, soit dans son mot de passe
      elseif ($data[0] == 0) {
         $erreur = 'Compte non reconnu.';
      }
      // sinon, alors la, il y a un gros problème :)
      else {
         $erreur = 'Probème dans la base de données : plusieurs membres ont les mêmes identifiants de connexion.';
      }
   }
   else {
      $erreur = 'Au moins un des champs est vide.';
   }
}
?>
<html>
<head>
<title>Accueil</title>
</head>

<body>
Connexion à l'espace membre :<br />
<form action="index.php" method="post">
Login : <input type="text" name="login" value="<?php if (isset($_POST['login'])) echo htmlentities(trim($_POST['login'])); ?>"><br />
Mot de passe : <input type="password" name="pass" value="<?php if (isset($_POST['pass'])) echo htmlentities(trim($_POST['pass'])); ?>"><br />
<input type="submit" name="connexion" value="Connexion">
</form>
<a href="inscription.php">Vous inscrire</a>
<?php
if (isset($erreur)) echo '<br /><br />',$erreur;
?>
</body>
</html>



Jusque là : Aucun soucis, je vois comment fonctionne le machin.

En fait là où ça bloque, c'est au niveau du sql.

Je met ça en sql dans ma base :
Code :
CREATE TABLE admin (
   id int(11) NOT NULL auto_increment,
   login text NOT NULL,
   pass_md5 text NOT NULL,
   PRIMARY KEY  (id)
) TYPE=MyISAM;

il me créé une table "admin" ==> Ok
avec ça dedans :
Fichier(s) joint(s) :
Sans titre.png
Sans titre.png [ 13.6 Kio | Vu 8349 fois ]


Mais ça correspond à quoi, concrètement ?

Et comment dois-je faire pour entrer dans cette base un utilisateur "admin" avec un mot de passe "admin002"


Merci de votre aide :)


Modifié en dernier par Dodo29 le mer. 23 déc. 2009, 20:15, modifié 1 fois.

Haut
   
MessagePosté : lun. 21 déc. 2009, 18:45 
Hors ligne
Moderateur
Moderateur
Avatar de l’utilisateur

Enregistré le : mar. 7 oct. 2008, 14:59
Messages : 10937
Pseudo Boinc : [XTBA>XTC] Pousse Mousse
Localisation : ST Maurice (94)
Tu te retrouve donc avec une table admin qui a 3 champs :
- Id qui sera donc un identifiant unique d'autant plus qu'il est la clé de ta table (une clé = unique tu es donc capable de retrouver toutes les info juste en ayant la clé)
- Login : bah tout betement le login utilisiteur
- pass_md5 : le password


Ah mon avis je pense que tu as déja un champ de trop : ID
Pour moi le login peut faire office de clé, tu n'aura donc pas le droit d'voir 2 fois le même login mais ça me semble normal.

Donc moi je créerais la table suivante :

Code :
CREATE TABLE admin (
   login text NOT NULL,
   pass_md5 text NOT NULL,
   PRIMARY KEY  (login )
) TYPE=MyISAM;


Après je ne connais pas bien la syntaxe mysql je travail quasiement que sous Oracle mais tu dois avoir une requete pour insérer dans ta table dans le style :

Code :
INSERT INTO admin VALUES ('Dodo29', 'mypassword')

Ensuite tu as des function qui vont coder le mot de passe en table, et la idem je ne connais pas la syntaxe mysql ;)

_________________
Image


Haut
   
MessagePosté : lun. 21 déc. 2009, 18:53 
Hors ligne
VIP
VIP
Avatar de l’utilisateur

Enregistré le : mar. 7 oct. 2008, 19:02
Messages : 3596
Pseudo Boinc : [XTBA>XTC] Dodo29
Localisation : Entre le bar VIP et la scène principale
Donc, selon toi, il suffit d'utiliser une syntaxe pour entrer le nom est le pass.

D'acc'. Je vais chercher la syntaxe

Je vais chercher la fonction mysql qui va hacher le mdp avec md5


Haut
   
MessagePosté : lun. 21 déc. 2009, 18:57 
Hors ligne
Moderateur
Moderateur
Avatar de l’utilisateur

Enregistré le : mar. 7 oct. 2008, 14:59
Messages : 10937
Pseudo Boinc : [XTBA>XTC] Pousse Mousse
Localisation : ST Maurice (94)
Ouai
mais je pense que tu dois pouvoir trouver ça la ou tu as pris le code que tu as indiqué.
Après moi je ne connais pas le php du coup je ne vois pas exactement ce que peuvent faire les commandes suivantes :

Code :
$sql = 'SELECT count(*) FROM admin WHERE login="'.mysql_escape_string($_POST['login']).'" AND pass_md5="'.mysql_escape_string(md5($_POST['pass'])).'"';
      $req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
      $data = mysql_fetch_array($req);

      mysql_free_result($req);
      mysql_close();


mysql_query($sql) --> exécute la requête
mysql_fetch_array($req) --> stock le résultat dans un tableau
mysql_free_result($req) --> la par contre je ne vois pas ce que ça fait

_________________
Image


Haut
   
MessagePosté : lun. 21 déc. 2009, 19:05 
Hors ligne
VIP
VIP
Avatar de l’utilisateur

Enregistré le : mar. 7 oct. 2008, 19:02
Messages : 3596
Pseudo Boinc : [XTBA>XTC] Dodo29
Localisation : Entre le bar VIP et la scène principale
Mon code php ne fait que comparer le login/mdp fourni par l'utilisateur dans le champs sur la page avec ceux stockés dans la BDD

Parce que la partie php c'est bon, y'a pas de soucis. Mais pour comparer, faut avoir qque chose à comparer :lol:


Haut
   
MessagePosté : lun. 21 déc. 2009, 19:07 
Hors ligne
Moderateur
Moderateur
Avatar de l’utilisateur

Enregistré le : mar. 7 oct. 2008, 14:59
Messages : 10937
Pseudo Boinc : [XTBA>XTC] Pousse Mousse
Localisation : ST Maurice (94)
Ah bah sous mysql il me semble que tu peux facilement ajouter des lignes dans une table alors ;)

_________________
Image


Haut
   
MessagePosté : lun. 21 déc. 2009, 19:37 
Hors ligne
VIP
VIP
Avatar de l’utilisateur

Enregistré le : mar. 7 oct. 2008, 19:02
Messages : 3596
Pseudo Boinc : [XTBA>XTC] Dodo29
Localisation : Entre le bar VIP et la scène principale
C'est good :)

J'ai réussi :)


En fait j'ai fait un tit script en php pour ajouter les users (Bon, là c'est chiant faut les éditer à la main dans le php, mais j'y rajouterai des champs :)

Code :
<?PHP

$db = mysql_connect('localhost', 'utilisateur_sql', 'mdp_base');
mysql_select_db('base_à_editer',$db);

$sql = "INSERT INTO admin VALUES('ID','utilisateur_à_ajouter',MD5('mot_de_passe'))";
mysql_query($sql)
or die('Erreur SQL !'.$sql.'
'.mysql_error());

echo 'L'utilisateur à été ajouté';
mysql_close();

?>



Merci pousse :)


Haut
   
MessagePosté : lun. 21 déc. 2009, 19:41 
Hors ligne
Moderateur
Moderateur
Avatar de l’utilisateur

Enregistré le : mar. 7 oct. 2008, 14:59
Messages : 10937
Pseudo Boinc : [XTBA>XTC] Pousse Mousse
Localisation : ST Maurice (94)
Pas de soucis :jap:

_________________
Image


Haut
   
MessagePosté : lun. 21 déc. 2009, 19:53 
Hors ligne
VIP
VIP
Avatar de l’utilisateur

Enregistré le : mar. 7 oct. 2008, 19:02
Messages : 3596
Pseudo Boinc : [XTBA>XTC] Dodo29
Localisation : Entre le bar VIP et la scène principale
:jap:

Du coup je suis en train de faire une jolie page d'accès à mon backoffice :)


Haut
   
MessagePosté : lun. 21 déc. 2009, 20:18 
Hors ligne
La chose a Biour
La chose a Biour
Avatar de l’utilisateur

Enregistré le : sam. 4 oct. 2008, 00:47
Messages : 17319
Pseudo Boinc : [XTBA>TSA] Poulpito
Localisation : Grenoble (38)
a ton back orifice ?


Haut
   
MessagePosté : lun. 21 déc. 2009, 20:39 
Hors ligne
VIP
VIP
Avatar de l’utilisateur

Enregistré le : mar. 7 oct. 2008, 19:02
Messages : 3596
Pseudo Boinc : [XTBA>XTC] Dodo29
Localisation : Entre le bar VIP et la scène principale
Oui, mon anus :jap:


Haut
   
MessagePosté : mer. 23 déc. 2009, 20:14 
Hors ligne
VIP
VIP
Avatar de l’utilisateur

Enregistré le : mar. 7 oct. 2008, 19:02
Messages : 3596
Pseudo Boinc : [XTBA>XTC] Dodo29
Localisation : Entre le bar VIP et la scène principale
Allez résolu


Et en plus je suis en train de dev une tite appli pour gérer mes bases sql ^^

En fait c'est super simple à developper, faut juste ajouter le mysql connector au projet c# :D

Voilà ce que ça donne maintenant (Encore en dev, donc y'a des labels qui traînent... :lol: )
Avant la connexion :
Fichier(s) joint(s) :
ac001.png
ac001.png [ 133.41 Kio | Vu 8272 fois ]


Après la connexion (Le panneau "Connexion" est un menu déroulant) :
Fichier(s) joint(s) :
ac002.png
ac002.png [ 132.47 Kio | Vu 8272 fois ]


Et lorsqu'on ajoute un user
Fichier(s) joint(s) :
ac003.png
ac003.png [ 136.57 Kio | Vu 8272 fois ]


Y'a d'autres menus, mais comme le nombre max de pièces jointes du forum est 3, j'avais la merde d'aller héberger mes images autrepart [fier.gif]


Ca tourne super :D


Haut
   
MessagePosté : mer. 23 déc. 2009, 20:15 
Hors ligne
La chose a Biour
La chose a Biour
Avatar de l’utilisateur

Enregistré le : sam. 4 oct. 2008, 00:47
Messages : 17319
Pseudo Boinc : [XTBA>TSA] Poulpito
Localisation : Grenoble (38)
YA UN TRUC SPECIAL XTBA POUR HEBERGER SES IMAGESS RRGGEGGGGDZDKJFKJKJZEFZEZEF EFZE [colere2.gif] [colere2.gif] [colere2.gif]


Haut
   
MessagePosté : mer. 23 déc. 2009, 20:16 
Hors ligne
La chose a Biour
La chose a Biour
Avatar de l’utilisateur

Enregistré le : sam. 4 oct. 2008, 00:47
Messages : 17319
Pseudo Boinc : [XTBA>TSA] Poulpito
Localisation : Grenoble (38)
sinon simpa la tite appli :jap:


Haut
   
MessagePosté : mer. 23 déc. 2009, 20:19 
Hors ligne
VIP
VIP
Avatar de l’utilisateur

Enregistré le : mar. 7 oct. 2008, 19:02
Messages : 3596
Pseudo Boinc : [XTBA>XTC] Dodo29
Localisation : Entre le bar VIP et la scène principale
poulpito a écrit :
YA UN TRUC SPECIAL XTBA POUR HEBERGER SES IMAGESS RRGGEGGGGDZDKJFKJKJZEFZEZEF EFZE [colere2.gif] [colere2.gif] [colere2.gif]

Ah ui, c'est vrai [fier.gif] [:rideau]


poulpito a écrit :
sinon simpa la tite appli :jap:


:)


Haut
   
Afficher les messages postés depuis :  Trier par  
Poster un nouveau sujet  Répondre au sujet  [ 15 messages ] 

Heures au format UTC+03:00


Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 1 invité


Vous ne pouvez pas poster de nouveaux sujets
Vous ne pouvez pas répondre aux sujets
Vous ne pouvez pas modifier vos messages
Vous ne pouvez pas supprimer vos messages
Vous ne pouvez pas joindre des fichiers

Rechercher :
Aller à :  
cron
Développé par phpBB® Forum Software © phpBB Limited
Traduit par phpBB-fr.com