Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Besoin de vos yeux expert [ Base de données / MySQL ] (Anthotill)

mardi 9 janvier 2007 à 12:07:36 | Besoin de vos yeux expert

Anthotill

Bonjour à tous

J'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 formulaire (formulaire d'inscription ou de connexion)
Si les infos viennent du formulaire d'inscription, je vérifie si le pseudo n'existe pas et je créé le membre le cas échéant.

A l'heure acutelle, seul la connexion de l'utilisateur avec des identifiants correct fonctionne sinon:

_ lorsqu'un
utilisateur se connecte avec ces login et mot de passe correct, c'est OK il est redirigé vers la page d'ou il se connecte
_ lorsqu'un utilisateur se connecte avec ces login et mot de passe incorrect,  il n'est pas connecté mais il ne se passe rien (alors que normalement je le redirige vers erreur.php)
_ lorsqu'un utilisateur créé un compte avec un pseudo qui existe il n'est pas créé mais rien ne se passe non plus (alors que normalement je le redirige vers erreur.php)
_ lorsqu'un utilisateur créé un compte avec un pseudo qui n'existe pas il n'est pas créé alors que normalement si ...

Voici mon code, peut être que vos yeux expert trouverons le probleme moi j'ai beau essayé dès que je change quelque chose c'est un autre truc qui ne va pas etc ...

[code]

<?php session_start();
/// CONFIGURATION DE LA BASE DE DONNEE
define('SQL_SERVER','XX');
define('SQL_USER','XX');
define('SQL_PASS','XX');
define('SQL_BDD','XX');
$db_link = @mysql_connect(SQL_SERVER,SQL_USER,SQL_PASS);
mysql_select_db(SQL_BDD);
##########################################################################################
###################### RECUPERATION DES DONNEES DU FORMULAIRE ######################
##########################################################################################
$ip = $_POST['ip'] ;
$prenom = $_POST['prenom'] ;
$login = $_POST['login'] ;
$pass_crypt = md5($_POST['pass']);
$email = $_POST['email'] ;
##########################################################################################
####################### CONTROLES EXISTANCE OU NON DU PSEUDO ########################
##########################################################################################
if(isset($_POST['inscription']) == 'oui')
{
$sql = "SELECT login FROM site_va_user WHERE login='".$_POST['login']."'";
$req = mysql_query($sql) or die($sql.' '.mysql_error());
if(mysql_num_rows($req) != '1')
{
header("location: erreur.php");
}
}
##########################################################################################
######################### SI PSEUDO INEXISTANT CREATION SQL #############################
##########################################################################################
elseif(isset($_GET['ajout']) and strlen($_GET['ajout']) and is_numeric($_GET['ajout'])) {
if(isset($_POST['login']) and isset($_POST['pass']) and isset($_POST['email']) and isset($_POST['ip']) and isset($_POST['prenom'])) {
$sql = "INSERT INTO site_va_user (prenom,login,pass,email,ip,date_inscription) values ('".$prenom."','".$login."','".$pass_crypt."','".$email."','".$ip."',NOW())";
mysql_query($sql);   header("location: ". $_SERVER['HTTP_REFERER']);  
}  else  { die('<b>Erreur</b>');  }   }
##########################################################################################
##################### ENVOIS DES INFOS A LA VARIABLE DE SESSION ########################
################ CREATION DE LA REQUETTE POUR SELECTIONNER LE LOGIN ##################
##########################################################################################
$sql = 'SELECT userid,login,prenom FROM site_va_user WHERE login = "'.mysql_escape_string($login).'" and pass = "'.$pass_crypt.'" LIMIT 1' ;
$rc = mysql_query($sql);
while($data=mysql_fetch_assoc($rc)) { if(mysql_result($rc,0) == '0') {
// REDIRECTION VERS LA PAGE D'ERREUR SI UN DES IDENTIFIANTS EST FAUX
header("location: erreur.php"); }
// CREATION DES VARIABLES DE SESSION
$_SESSION['log'] = true ;
$_SESSION['pseudo'] = $data['login'] ;
$_SESSION['userid'] = $data['userid'] ;
$_SESSION['prenom'] = $data['prenom'] ;
}
// REDIRECTION VERS LA PAGE CONCERNEE SI LES LOGIN ET MOT DE PASSE SONT OK
header("location: ". $_SERVER['HTTP_REFERER']);
##########################################################################################
################################### DECONNEXION #########################################
##########################################################################################
if(isset($_GET['logout']) and strlen($_GET['logout']) and is_numeric($_GET['logout'])) {
$_SESSION['log'] = false ; header("location: index.php"); }
?>


[/code]

Merci beaucoup :)
Antho


mardi 9 janvier 2007 à 17:44:40 | Re : Besoin de vos yeux expert

Anthomicro

Salut,

if(isset($_POST['inscription']) == 'oui')

c'est if(isset($_POST['inscription'])) qu'il faut mettre, mais il faudrait que tu penses à mettre des isset() pour tes autres champs de formulaire que tu récupères ($_POST['ip'], etc ...) avant tout traitement, pour éviter les erreurs d'undefined variable.

a +

mardi 9 janvier 2007 à 18:07:21 | Re : Besoin de vos yeux expert

Anthotill

salut antho

j'avais mis if(isset($_POST['inscription']) == 'oui') parce que inscription est un champ hidden qui a pour valeur oui je savais pas qu'on pouvait ne rien mettre.

Mon probleme n'est toujours pas résolu pour autant je comprend vraiement pas pourquoi il me redirige pas vers la page erreur.php ...

Tu ne vois pas pourquoi ça fonctionne pas ??

Antho

mardi 9 janvier 2007 à 18:37:07 | Re : Besoin de vos yeux expert

Anthomicro

while($data=mysql_fetch_assoc($rc)) { if(mysql_result($rc,0) == '0') {
// REDIRECTION VERS LA PAGE D'ERREUR SI UN DES IDENTIFIANTS EST FAUX
header("location: erreur.php"); }


====>


if(mysql_num_rows($rc) === 0)
{
    header('location:erreur.php');
    exit;
}

$data=mysql_fetch_assoc($rc);

$_SESSION['log'] = TRUE;
$_SESSION['pseudo'] = $data['login'];
$_SESSION['userid'] = $data['userid'];
$_SESSION['prenom'] = $data['prenom'];

ça devrait aller mieux.


mardi 9 janvier 2007 à 23:04:21 | Re : Besoin de vos yeux expert

Anthotill

Re antho merci pour ton aide

Alors enfait maintenant ca fonctionne pour ceci:

Utilisateur se connectant avec login et mot de passe correct (redirection vers $_SERVER['HTTP_REFERER'])
Utilisateur se connectant avec login et mot de passe incorrect (redirection vers la page d'erreur)

Par contre, pour ce qui est de la création de compte, (if(isset($_POST['inscription'])) normalement si l'utilisateur créé un compte et que le pseudo existe déjà on le redirige sur erreur.php mais la il est redirigé même si le pseudo qu'il choisit n'est pas inscrit dans la base de donnée

Est ce que tu vois d'ou ca peux venir ?

Antho


mercredi 10 janvier 2007 à 09:59:20 | Re : Besoin de vos yeux expert

Anthomicro

if(mysql_num_rows($req) === 1)
{
     header('location: erreur.php');
}

mercredi 10 janvier 2007 à 11:58:17 | Re : Besoin de vos yeux expert

Anthotill

Salut

Ca ne fonctionne toujours pas désolé de t'emmer.... avec ca

Grace à ton aide, mon code est devenu ceci :

<?php session_start();
/// CONFIGURATION DE LA BASE DE DONNEE
define('SQL_SERVER','XX');
define('SQL_USER','XX');
define('SQL_PASS','XX');
define('SQL_BDD','XX');

$db_link = @mysql_connect(SQL_SERVER,SQL_USER,SQL_PASS);
mysql_select_db(SQL_BDD);
##########################################################################################
###################### RECUPERATION DES DONNEES DU FORMULAIRE ######################
##########################################################################################
$ip = $_POST['ip'] ;
$prenom = $_POST['prenom'] ;
$login = $_POST['login'] ;
$pass_crypt = md5($_POST['pass']);
$email = $_POST['email'] ;
##########################################################################################
####################### CONTROLES EXISTANCE OU NON DU PSEUDO ########################
##########################################################################################
if(isset($_POST['inscription']))
{
$sql = "SELECT login FROM site_va_user WHERE login='".$_POST['login']."'";
$req = mysql_query($sql) or die($sql.' '.mysql_error());
if(mysql_num_rows($req) == 1)
{
header('location: erreur.php');
exit;
}
}
##########################################################################################
######################### SI PSEUDO INEXISTANT CREATION SQL #############################
##########################################################################################
elseif(isset($_GET['ajout']) and strlen($_GET['ajout']) and is_numeric($_GET['ajout']))
{
if(isset($_POST['login']) and isset($_POST['pass']) and isset($_POST['email']) and isset($_POST['ip']) and isset($_POST['prenom']))
{
$sql = "INSERT INTO site_va_user (prenom,login,pass,email,ip,date_inscription) values ('".$prenom."','".$login."','".$pass_crypt."','".$email."','".$ip."',NOW())";
mysql_query($sql);  
}
}
header("location: ". $_SERVER['HTTP_REFERER']);
 
##########################################################################################
##################### ENVOIS DES INFOS A LA VARIABLE DE SESSION ########################
##########################################################################################
$sql = 'SELECT userid,login,prenom FROM site_va_user WHERE login = "'.mysql_escape_string($login).'" and pass = "'.$pass_crypt.'" LIMIT 1' ;
$rc = mysql_query($sql);

################################### DECONNEXION #########################################
if(isset($_GET['logout']) and strlen($_GET['logout']) and is_numeric($_GET['logout']))
{
$_SESSION['log'] = false ;
header("location: index.php");
exit;
}
################################## FIN DECONNEXION #######################################

if(mysql_num_rows($rc) == 0)
{
header('location:erreur.php');
exit;
}

$data=mysql_fetch_assoc($rc);

$_SESSION['log'] = true;
$_SESSION['pseudo'] = $data['login'];
$_SESSION['userid'] = $data['userid'];
$_SESSION['prenom'] = $data['prenom'];
header("location: ". $_SERVER['HTTP_REFERER']);  
exit;
?>

Toujours le meme probleme, la création d'utilisateur ne fonctionne pas que le login existe ou non je suis quand meme redirigé vers la page d'erreur arf

Merci
Antho


jeudi 11 janvier 2007 à 17:44:25 | Re : Besoin de vos yeux expert
jeudi 11 janvier 2007 à 19:42:06 | Re : Besoin de vos yeux expert

Anthomicro

if(isset($_GET['logout']) and strlen($_GET['logout']) and is_numeric($_GET['logout']))

==> strlen renvoie un int donc ça c'est pas bon ...

if(isset($_GET['logout']) AND is_numeric($_GET['logout']))

mais ça c'est pareil :

$ip = $_POST['ip'] ;
$prenom = $_POST['prenom'] ;
$login = $_POST['login'] ;
$pass_crypt = md5($_POST['pass']);
$email = $_POST['email'] ;

===>

if(isset($_POST['ip'], $_POST['prenom'], $_POST['login'], $_POST['pass'], $_POST['email']))
{
$ip = $_POST['ip'] ;
$prenom = $_POST['prenom'] ;
$login = $_POST['login'] ;
$pass_crypt = md5($_POST['pass']);
$email = $_POST['email'] ;
}



jeudi 11 janvier 2007 à 23:40:49 | Re : Besoin de vos yeux expert

Anthotill

Salut antho (c'est toi qui gère mon dossier ? lol :))

Merci pour ton aide ...

Les solutions que tu donne ci-dessus ne sont pas les bonnes parce que mes problemes ne viennent pas de là il viennent de l'inscription uniquement.

Enfait, si un membre créé un compte, qu'il choisit un login qui n'existe pas dans la base il est quand même redirigé vers erreur.php alors que normalement si le pseudo n'existe pas le membre doit être créé et redirigé vers la page concerné.

Ton aide ma aidé a résoudre les autres problèmes mais celui là semble corriace et j'ai tout essayé sans succès

Antho


1 2

Cette discussion est classé dans : mysql, login, sql, post, pass


Répondre à ce message

Sujets en rapport avec ce message

insertion de photo dans mysql via formulaire ne fonction pas [ par speedylol ] <TD id=HB_Focus_Element vAlign=top width="100%" background="" height=250 UNSELECTAB 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 COOKIE probléme de passage [ par speedylol ] Bonjour ,j 'aimerais faire passer certaine donnée de mon script log par une session cookie pour inseré les membre qui son online dans une table voila 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 Problème de variable [ par Bartheleway ] Voilà, j'ai un site avec une partie membre. Pour s'y inscrire, il faut remplir un formulaire d'inscription qui m'est envoyé pour que je valide l'inscr Problème de variable et de prog [ par Bartheleway ] Voilà, j'ai un site avec une partie membre. Pour s'y inscrire, il faut remplir un formulaire d'inscription qui m'est envoyé pour que je valide l'inscr Problème de variable et de prog [ par Bartheleway ] Voilà, j'ai un site avec une partie membre. Pour s'y inscrire, il faut remplir un formulaire d'inscription qui m'est envoyé pour que je valide l'inscr Comparaison d'une donnée avec une donnée d'une table [ par monsieurmartinez ] Bonjour je crée actuellement un site internet pour une faculté roumaine.Je suis actuellement en train de créer un formulaire d'inscription pour les él 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 validation l'inscription par mail et inertion code captcha [ par achachia ] Bonjour j'aimerai vous m'aider s'il vous plait.et merci d'avance. voila mon souci .c'estque j'ai cré une page d'inscription pour mon espace membre.et


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Comparez les prix Nouvelle version

Photothèque Nouveau !



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
Temps d'éxécution de la page : 0,406 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.