begin process at 2012 05 31 02:07:24
  Trouver un code source :
 
dans
 
Accueil > Forum > 

PHP

 > 

Base de données

 > 

MySQL

 > 

Problème de login


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Problème de login

vendredi 1 juin 2007 à 17:07:41 | Problème de login

Masterchiefer

Bonjour tout le monde, je suis en train de créer un système de login à partir d'un code déjà écrit. J'ai fait les modifs nécessaires mais j'ai une erreur...

Voici le code provoquant l'erreur :

<?php
// On démarre la session
session_start();
$loginOK = false;  // cf Astuce

// On n'effectue les traitement qu'à la condition que
// les informations aient été effectivement postées
if ( isset($_POST) && (!empty($_POST['Login'])) && (!empty($_POST['Mdp'])) ) {

  extract($_POST);  // je vous renvoie à la doc de cette fonction

  // On va chercher le mot de passe afférent à ce login
  $sql = "SELECT Login, Mdp FROM Admin WHERE Login='".addslashes($login)."'";
  $req = mysql_query($sql) or die('Erreur SQL : <br />'.$sql);
 
  // On vérifie que l'utilisateur existe bien
  if (mysql_num_rows($req) > 0) {
     $data = mysql_fetch_assoc($req);
  
    // On vérifie que son mot de passe est correct
    if ($password == $data['Mdp']) {
      $loginOK = true;
    }
  }
}

// Si le login a été validé on met les données en sessions
if ($loginOK) {
echo '<a href="index3.php" />';
}
else {
  echo 'Une erreur est survenue, veuillez réessayer !';
}
?>

Le code appellant cette procédure est le suivant :

<td>
                      <form method="post" action="verifLogin.php">
                      <tr>
                      <td width="1">Login</td>
                      <td width="10"><input type="text" name="Login"></td>
                      </tr>
                      <tr>
                      <td width="1">Mot de passe</td>
                      <td width="10"><input type="password" name="Mdp"></td>
                      </tr>
                      <tr>
                      <td colspan="2">
                      <input type="submit" name="submit" value="Login">
                      </td>
                      </tr>
                      </form>
</td>

Le message d'erreur étant le suivant :

Erreur SQL :
SELECT Login, Mdp FROM Admin WHERE Login = ''

J'ai vérifié la ligne (en couleur dans le précèdent code) et je n'ai pas vu d'erreur une idée (si vous pouviez par la meme occasion m'expliquez d'ou vient mon erreur, je cherche a progresser ^^)
vendredi 1 juin 2007 à 18:24:08 | Re : Problème de login

neigedhiver

Salut, extract($_POST); // je vous renvoie à la doc de cette fonction L'auteur du code te renvoie à la doc de cette fonction, mais pas nous. Donc... En premier lieu, le message d'erreur de MySQL n'est pas très explicite, mais je ne pense pas que ce soit la faute à MySQL. Ensuite, il semble que la variable $login soit vide, mais sans le code de la fonction extract, pas facile à dire. Pour terminer, addslashes ne protège absolument pas des injections SQL, il est préférable d'utiliser mysql_real_escape_string() (Cf la doc php de cette fonction)
samedi 2 juin 2007 à 09:47:57 | Re : Problème de login

Masterchiefer

merci pour le tuyau, et j'ai fouiller le site et je trouve pas son soit disant doc :/ donc je crois que je vais chercher un autre moyen ^^
samedi 2 juin 2007 à 10:42:00 | Re : Problème de login

Masterchiefer

Re, j'ai trouvé une autre solution mais la aussi sa ne marche pas :/ je vais finir par croire que je suis maudit

Alors voici le code lanceant le login :

<td><table width="0" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td><form name="login" method="post" action="validate.php"></td>
<p align="right">Login <input type="text" name="user_name"></p>
<p align="right">Pass <input type="password" name="password"></p>
<td><input type="submit" value="Envoyer"></td>
</form>
</tr>
</table></td>

On arrive donc sur la page de vérification :

<?php
 session_start();
 
 //Connection à mysql et sélection de la base de données
 $connection = mysql_connect("***") or die(mysql_error());
 mysql_select_db("*", $connection) or die(mysql_error());
 
 //Préparation de la requête
 $query = "SELECT * FROM Admin
 WHERE Login=".$_POST['user_name']." AND Mdp=".$_POST['password'] ."";
 
 //exécution de la requête et récupération du nombre de résultats
 $result = mysql_query($query, $connection);
 $affected_rows = mysql_num_rows($result);
 
 //S'il y a exactement un résultat, l'utilisateur est authentifié, sinon, on l'empêche d'entrer
 if($affected_rows == 1) {
 print 'Vous êtes authentifié';
 
 //On ajoute l'utilisateur aux variables de session
 $_SESSION'user_name' = $user_name;
 //a href = "index3.php" (je ne sais pas si ce lien est valable ici)
 ; }
 else {
 print 'Accès refusé';
 }
 ?>

Puis au début de ma page index3.php je place les variables suivantes :

<?include("verifLogin.php");?>
<?Session_start();?>

Tout ceci pour arriver à sa ===> Parse error: parse error, unexpected T_CONSTANT_ENCAPSED_STRING in /homepages/6/d121071583/htdocs/pc-planet.fr/test/validate.php on line 21

Alors, vous voyez ce qui cloche mon niveau n'étant pas très avancé, je ne sais pas très bien maitrisé les sessions donc si j'ai fait une erreur j'aimerais avoir une petite explication svp, merci d'avance
mardi 5 juin 2007 à 14:38:31 | Re : Problème de login
mardi 5 juin 2007 à 15:01:22 | Re : Problème de login

neigedhiver

Salut, $_SESSION'user_name' = $user_name; C'est plutôt : $_SESSION['user_name'] = $user_name; Sinon, dans le formulaire, le login c'est Login (avec une majuscule) Si ensuite, tu le changes et que tu mets user_name, ça peut plus marcher. Ensuite, dans le code php, il faut utiliser $Login (avec une majuscule) et non pas $login. Pareil pour le mot de passe : if ($password == $data['Mdp']) { $loginOK = true; } Or dans le formulaire, c'est Mdp : Y'a rien de cohérent dans ton code, ça peut pas marcher...
mardi 5 juin 2007 à 15:12:14 | Re : Problème de login

Masterchiefer

olalala en effet, j'ai fait plein de faute d'inatention :/ désolé et merci pour le coup de main. ++

mardi 5 juin 2007 à 15:18:11 | Re : Problème de login

Masterchiefer

je vien de modif le code et il a marché mais j'ai voulu rajouter quelque chose et sa plante :/

je voudrais qu'après verif du login il m'emmene sur une autre page, cela est-il possible?

j'ai essayé quelque chose mais je ne sais plus comment faire pour lancer un lien, j'ai essayé ceci mais je ne suis pas sur des balises :/

$_SESSION['Login'] = $Login;
 echo 'a href = "index3.php";' }

ps : si vous connaissez un site expliquant les balises if etc sa m'arrangerait ;)
mardi 5 juin 2007 à 15:20:50 | Re : Problème de login

neigedhiver

Réponse acceptée !
RTFM => la doc est assez explicite... http://fr2.php.net/manual/fr/language.control-structures.php#control-structures.if
mardi 5 juin 2007 à 15:21:48 | Re : Problème de login

Masterchiefer

merci beaucoup ;)


Cette discussion est classée dans : code, erreur, login, sql, post


Répondre à ce message

Sujets en rapport avec ce message

Prob : UPDATE, erreur SQL... [ par tomatokatchup ] Voici la syntaxe de mon update :$descr = addslashes($_POST['desc']);$lien = mysql_connect ($hote, $user, $mdp);$requete = "UPDATE tmt_tourney SET titr insertion dans une base [ par 01cod10 ] pouvez vous m'aider à corriger ce bout de script. Voici le message d'erreur que j'ai eu :  Erreur SQL !INSERT INTO membres VALUES("", "monia", "ff3d00 mes erreur de ce marque pas espace membre [ par speedylol ] bonjour voici , j ai un script membres que j'ai modifier a mon goût mes les erreur de fonction pas je vois pas pq seriez vous m'eclairez la dessus svp Probleme de base de donnée --> conf.php3 --> création de Login <-- [ par astuces_jeux ] Bonjour,jai un probleme sur mon site en créant une page de connexion je ne sais pas comment configurer conf.php3ici :/*------------------------------- Erreur unexpected T_IF [ par jimmypage64 ] Bonjour j'ai une petite erreur dans mon code et je ne vois pas du tout d'ou cela peut venir !!! Mon code est le suivant : if (isset($_POST['validinsc Besoin de vos yeux expert [ par Anthotill ] Bonjour à tousJ'ai un probleme avec une page que je suis en train de créer, une page d'authentification.Je récupère les informations de deux formulair erreur dans ma requête [ par gigawatt ] BonjourJ'ai un message d'erreur qui s'affiche dès que je lance mon appli.Ci joint mon code sous php sql.$sql .= " select ct_num, ct_code, ct_dte, ct_d probleme avec les cookies [ par grandmugule ] g un bleme avec les cookies voici l'index de mon espace membres:setCookie("login","$login",time()+3600); setCookie("pass","$pass",time()+3600);< Problème de requete SQL [ par MrsDallara ] Bonjour à tous, j'ai une requete SQL qui ne s'execute pas, alors que je ne vois pas où l'erreur peut se trouver. Voici donc l'ensemble du code qui nou Variables [ par Toolsweb ] Bon j'ai çainclude("../conf.php"); if(isset($_POST) && !empty($_POST['login']) && !empty($_POST['pass'])) {  extract($_POST);  // on recupère le passw


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,357 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales