Requète de connexion pour membres
Résolu
labourette
Messages postés
657
Date d'inscription
Statut
Membre
Dernière intervention
-
labourette Messages postés 657 Date d'inscription Statut Membre Dernière intervention -
labourette Messages postés 657 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Quelque chose de particulier qui me pose un problème, ça va même vous étonner.
Sur mon site pour que les membres puisses accéder à leurs comptes, ils renseignent deux champs, mail et mot de passe.
Mais je voudrais que deux membres qui ont la même adresse mail puissent accéder à leurs compte il y aurait juste le mot de passe qui fait la différence.
C'est des personnes de la même famille pour leurs éviter de créer une deuxième adresse mail.
Merci de vos réponses et surtout de vos compétences.
[code]
<?php
if(isset($_POST) && !empty($_POST['email']) && !empty($_POST['password']))
{
extract($_POST);
$sql = "select password from cruet_membre where email='".$email."'";
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
$data = mysql_fetch_assoc($req);
if($data['password'] != $password)
{
echo "<b><font color='red'>Mauvaise adresse Email ou Mauvais mot de passe...<br> Merci de recommencer.</font></b>";
include('user_login_form.php5');
exit;
}
else
{
$_SESSION['pseudo'] = $email;
echo "<b><font color='red'>Vous êtes bien logué.</font></b>";//Vous êtes bien logué.
echo "<br><a href='index.php5'>Cliquez ici</a>";
exit;
}
}
else
{
echo "<b><font color='red'>Veuillez remplir tous les champs !!!</font></b>";
include('user_login_form.php5');
exit;
}
?>
/code
Quelque chose de particulier qui me pose un problème, ça va même vous étonner.
Sur mon site pour que les membres puisses accéder à leurs comptes, ils renseignent deux champs, mail et mot de passe.
Mais je voudrais que deux membres qui ont la même adresse mail puissent accéder à leurs compte il y aurait juste le mot de passe qui fait la différence.
C'est des personnes de la même famille pour leurs éviter de créer une deuxième adresse mail.
Merci de vos réponses et surtout de vos compétences.
[code]
<?php
if(isset($_POST) && !empty($_POST['email']) && !empty($_POST['password']))
{
extract($_POST);
$sql = "select password from cruet_membre where email='".$email."'";
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
$data = mysql_fetch_assoc($req);
if($data['password'] != $password)
{
echo "<b><font color='red'>Mauvaise adresse Email ou Mauvais mot de passe...<br> Merci de recommencer.</font></b>";
include('user_login_form.php5');
exit;
}
else
{
$_SESSION['pseudo'] = $email;
echo "<b><font color='red'>Vous êtes bien logué.</font></b>";//Vous êtes bien logué.
echo "<br><a href='index.php5'>Cliquez ici</a>";
exit;
}
}
else
{
echo "<b><font color='red'>Veuillez remplir tous les champs !!!</font></b>";
include('user_login_form.php5');
exit;
}
?>
/code
A voir également:
- Requète de connexion pour membres
- Gmail connexion - Guide
- Connexion chromecast - Guide
- Gmail connexion autre compte - Guide
- Site inaccessible n'autorise pas la connexion - Guide
- Connexion sctr - Forum Réseaux sociaux
12 réponses
Crées deux membre différents dans la table avec la même adresse email mais pas le même mot de passe.
Ensuite, fait comme ça :
Ensuite, fait comme ça :
<?php ... // Retirer les espaces en début et en fin de chaine (sécurité) $mail = trim($_POST['mail']); $motdepasse = trim($_POST['motdepasse']); // Requête SQL $sql = 'SELECT id FROM membres WHERE email = "'.$mail.'" AND motdepasse = "'.$motdepasse.'"'; $req = mysql_query($sql); $nb = @mysql_num_rows($req); if($nb > 0) { echo 'Vous êtes connecté'; $membre = mysql_fetch_assoc($req); $_SESSION['membre_id'] = $membre['id']; } else { echo 'Erreur'; } ... ?>N'oublie pas de sécurisé le script (lors de la requête par exemple avec mysql_real_escape_string).
Il est où le session_start() ?
Et par pitié, n'utilise pas la fonction extract(), pour ton bien et le bien de ton site que te dis ça.
Où as-tu été chercher cette fonction ?
Il ne faut jamais l'utiliser sur POST ni GET.
Aussi, réfléchis un peu sur ton code, trouve tu normal d'appliquer un trim sur des variables POST avant d'avoir tester leurs existences ?
Et par pitié, n'utilise pas la fonction extract(), pour ton bien et le bien de ton site que te dis ça.
Où as-tu été chercher cette fonction ?
Il ne faut jamais l'utiliser sur POST ni GET.
Aussi, réfléchis un peu sur ton code, trouve tu normal d'appliquer un trim sur des variables POST avant d'avoir tester leurs existences ?
Salut, tu dis que ton session_start() est dans ta page header, hors j'imagine que tu la places via un include dans les balises :
hors si je ne me trompe pas session_start() doit être placé au tout début de la page, il ne doit absolument RIEN y avoir avant lui, en dehors de la balise ouvrant le code php.
Il faut donc procéder ainsi :
Bien entendu, tu retires le session_start() de ton fichier header.php. Normalement, ça peut éviter quelques problèmes.
Pour celui de ta requête et du array qui ne sort que le g, essaye plutôt ça :
<html> <head> <?php include "header.php"; ?> </head>
hors si je ne me trompe pas session_start() doit être placé au tout début de la page, il ne doit absolument RIEN y avoir avant lui, en dehors de la balise ouvrant le code php.
Il faut donc procéder ainsi :
<?php session_start(); ?> <html> <head> <?php include "header.php"; ?> </head>
Bien entendu, tu retires le session_start() de ton fichier header.php. Normalement, ça peut éviter quelques problèmes.
Pour celui de ta requête et du array qui ne sort que le g, essaye plutôt ça :
mysql_fetch_arrayà la place de :
mysql_fetch_assocAh oui et retire le @ dans :
$data = @mysql_num_rows($req);le @ masque les messages d'erreur mais ne les supprime pas.
Merci de votre réponse, j'ai essayé ca fonctionne il y a juste un petit soucis que je vais essayer de résoudre si je peux, c'est d'afficher le compte des membres lorsqu'ils se connectent.
Merci encore
Merci encore
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bonjour,
Merci de vos réponses.
Je galère pour mon problème quelque chose que je ne vois pas, pouvez-vous m'aider.
Je souhaite que les membres puissent se connecter avec la même adresse mail juste le password qui fait la différence. Avec ceci ca n'affiche pas le compte des membres.
Merci beaucoup de votre aide.
[code]
<?php
// Retirer les espaces en début et en fin de chaine (sécurité)
$email = trim($_POST['email']);
$password = trim($_POST['password']);
if(isset($_POST) && !empty($_POST['email']) && !empty($_POST['password']))
{
extract($_POST);
$sql = 'SELECT id
FROM cruet_membre
WHERE email = "'.$email.'"
AND password = "'.$password.'"';
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
$data = @mysql_num_rows($req);
if($data > 0)
{
echo "<b><font color='red'>Vous êtes bien logué.</font></b>";//Vous êtes bien logué.
echo "<br><a href='index.php5'>Cliquez ici</a>";
$data = mysql_fetch_assoc($req);
$_SESSION['pseudo'] = $email['id'];
exit;
}
if($data['password'] != $password)
{
echo "<b><font color='red'>Mauvaise adresse Email ou Mauvais mot de passe...<br> Merci de recommencer.</font></b>";
include('user_login_form.php5');
exit;
}
}
else
{
echo "<b><font color='red'>Veuillez remplir tous les champs !!!</font></b>";
include('user_login_form.php5');
exit;
}
?>
/code
Et le code de ma page header
[code]
<?php
//deconnection
if (isset($_GET['action']) && $_GET['action'] == "deco")
$_SESSION['pseudo'] = NULL;
//set username
if (isset($_SESSION['pseudo']) && $_SESSION['pseudo'] != NULL)
{
$pseudo = $_SESSION['pseudo'];
}
//Etablishing page body
if (isset($_GET['body']) && $_GET['body'] != NULL)
$body = "pages/" . $_GET['body'] . ".php5";
else
$body = "pages/main.php5";
?>
/code
Merci de vos réponses.
Je galère pour mon problème quelque chose que je ne vois pas, pouvez-vous m'aider.
Je souhaite que les membres puissent se connecter avec la même adresse mail juste le password qui fait la différence. Avec ceci ca n'affiche pas le compte des membres.
Merci beaucoup de votre aide.
[code]
<?php
// Retirer les espaces en début et en fin de chaine (sécurité)
$email = trim($_POST['email']);
$password = trim($_POST['password']);
if(isset($_POST) && !empty($_POST['email']) && !empty($_POST['password']))
{
extract($_POST);
$sql = 'SELECT id
FROM cruet_membre
WHERE email = "'.$email.'"
AND password = "'.$password.'"';
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
$data = @mysql_num_rows($req);
if($data > 0)
{
echo "<b><font color='red'>Vous êtes bien logué.</font></b>";//Vous êtes bien logué.
echo "<br><a href='index.php5'>Cliquez ici</a>";
$data = mysql_fetch_assoc($req);
$_SESSION['pseudo'] = $email['id'];
exit;
}
if($data['password'] != $password)
{
echo "<b><font color='red'>Mauvaise adresse Email ou Mauvais mot de passe...<br> Merci de recommencer.</font></b>";
include('user_login_form.php5');
exit;
}
}
else
{
echo "<b><font color='red'>Veuillez remplir tous les champs !!!</font></b>";
include('user_login_form.php5');
exit;
}
?>
/code
Et le code de ma page header
[code]
<?php
//deconnection
if (isset($_GET['action']) && $_GET['action'] == "deco")
$_SESSION['pseudo'] = NULL;
//set username
if (isset($_SESSION['pseudo']) && $_SESSION['pseudo'] != NULL)
{
$pseudo = $_SESSION['pseudo'];
}
//Etablishing page body
if (isset($_GET['body']) && $_GET['body'] != NULL)
$body = "pages/" . $_GET['body'] . ".php5";
else
$body = "pages/main.php5";
?>
/code
As-tu mis <?php session_start(); ?> au tout début de ton fichier (avant le DOCTYPE, sans aucun espace avant <?php) ?
Bizarre... Tu n'as aucun message d'erreur ?
Mets ça après avoir défini la variable de session et sur la page header :
Mets ça après avoir défini la variable de session et sur la page header :
echo '<pre>'.htmlspecialchars(print_r($_SESSION,1)).'</pre>';
Bonjour,
Grand merci de pouvoir m'aider, je suis vraiment dans l'impasse...........
Ca m'ouvre une page mais vide au lieu d'ouvrir la page du compte d'un membre ça me dit simplement "bonjours" au lieu de dire "bonjours Gilbert"
En plus ça me met ceci sur la page?
Array
(
[pseudo] => g
)
Le G correspond bien au membre à laquel je me suis connecter là c'est Gilbert
Merci vraiment de ton aide
Grand merci de pouvoir m'aider, je suis vraiment dans l'impasse...........
Ca m'ouvre une page mais vide au lieu d'ouvrir la page du compte d'un membre ça me dit simplement "bonjours" au lieu de dire "bonjours Gilbert"
En plus ça me met ceci sur la page?
Array
(
[pseudo] => g
)
Le G correspond bien au membre à laquel je me suis connecter là c'est Gilbert
Merci vraiment de ton aide
Bonjour et merci de vos réponses.
Je débute en php, pouvez vous me developper un peu plus pourquoi on ne peux pas mettre la fonction extract($_POST) ?
Pour le session_start() c'est sur ma page header et toutes mes pages on un include.
Merci vraiment de votre savoir si vous pouvez encore me donner quelques conseil afin que je puisse mettre en place ce code pour que les membres puisses se connecter avec la même adresse mail, seul le password fera la différence.
Merci
[code]
<?php
if(isset($_POST) && !empty($_POST['email']) && !empty($_POST['password']))
{
extract($_POST);
$sql = 'SELECT id
FROM cruet_membre
WHERE email = "'.$email.'"
AND password = "'.$password.'"';
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
$data = @mysql_num_rows($req);
if($data > 0)
{
echo "<b><font color='red'>Vous êtes bien logué.</font></b>";//Vous êtes bien logué.
echo "<br><a href='index.php5'>Cliquez ici</a>";
$data = mysql_fetch_assoc($req);
$_SESSION['pseudo'] = $email['id'];
exit;
}
if($data['password'] != $password)
{
echo "<b><font color='red'>Mauvaise adresse Email ou Mauvais mot de passe...<br> Merci de recommencer.</font></b>";
include('user_login_form.php5');
exit;
}
}
else
{
echo "<b><font color='red'>Veuillez remplir tous les champs !!!</font></b>";
include('user_login_form.php5');
exit;
}
?>
/code
Je débute en php, pouvez vous me developper un peu plus pourquoi on ne peux pas mettre la fonction extract($_POST) ?
Pour le session_start() c'est sur ma page header et toutes mes pages on un include.
Merci vraiment de votre savoir si vous pouvez encore me donner quelques conseil afin que je puisse mettre en place ce code pour que les membres puisses se connecter avec la même adresse mail, seul le password fera la différence.
Merci
[code]
<?php
if(isset($_POST) && !empty($_POST['email']) && !empty($_POST['password']))
{
extract($_POST);
$sql = 'SELECT id
FROM cruet_membre
WHERE email = "'.$email.'"
AND password = "'.$password.'"';
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
$data = @mysql_num_rows($req);
if($data > 0)
{
echo "<b><font color='red'>Vous êtes bien logué.</font></b>";//Vous êtes bien logué.
echo "<br><a href='index.php5'>Cliquez ici</a>";
$data = mysql_fetch_assoc($req);
$_SESSION['pseudo'] = $email['id'];
exit;
}
if($data['password'] != $password)
{
echo "<b><font color='red'>Mauvaise adresse Email ou Mauvais mot de passe...<br> Merci de recommencer.</font></b>";
include('user_login_form.php5');
exit;
}
}
else
{
echo "<b><font color='red'>Veuillez remplir tous les champs !!!</font></b>";
include('user_login_form.php5');
exit;
}
?>
/code