Requète de connexion pour membres
Résolu/Fermé
labourette
Messages postés
657
Date d'inscription
dimanche 24 août 2008
Statut
Membre
Dernière intervention
24 juillet 2016
-
13 oct. 2009 à 06:03
labourette Messages postés 657 Date d'inscription dimanche 24 août 2008 Statut Membre Dernière intervention 24 juillet 2016 - 19 oct. 2009 à 06:44
labourette Messages postés 657 Date d'inscription dimanche 24 août 2008 Statut Membre Dernière intervention 24 juillet 2016 - 19 oct. 2009 à 06:44
A voir également:
- Requète de connexion pour membres
- Gmail connexion - Guide
- Hotmail connexion - Guide
- Facebook connexion - Guide
- Connexion chromecast - Guide
- Formate pour taxer connexion internet - Forum Webmastering
12 réponses
avion-f16
Messages postés
19249
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
15 juin 2024
4 505
13 oct. 2009 à 07:09
13 oct. 2009 à 07:09
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).
P@t@ch0n
Messages postés
565
Date d'inscription
mercredi 15 avril 2009
Statut
Membre
Dernière intervention
28 décembre 2009
85
18 oct. 2009 à 19:50
18 oct. 2009 à 19:50
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 ?
avion-f16
Messages postés
19249
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
15 juin 2024
4 505
18 oct. 2009 à 20:21
18 oct. 2009 à 20:21
+1
C'est clair quand testant si la variable existe après l'avoir défini ne sert à rien ...
Par contre, il peut vérifier si elle est vide avec empty($chaine) (qui renvoie true sur la chaine est vide).
C'est clair quand testant si la variable existe après l'avoir défini ne sert à rien ...
Par contre, il peut vérifier si elle est vide avec empty($chaine) (qui renvoie true sur la chaine est vide).
Torkass
Messages postés
166
Date d'inscription
jeudi 20 décembre 2007
Statut
Membre
Dernière intervention
21 janvier 2016
95
19 oct. 2009 à 00:04
19 oct. 2009 à 00:04
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.
labourette
Messages postés
657
Date d'inscription
dimanche 24 août 2008
Statut
Membre
Dernière intervention
24 juillet 2016
6
15 oct. 2009 à 05:16
15 oct. 2009 à 05:16
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
avion-f16
Messages postés
19249
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
15 juin 2024
4 505
15 oct. 2009 à 07:03
15 oct. 2009 à 07:03
Tu peux stocker l'id du membre dans une variable session (comme $_SESSION['id']).
labourette
Messages postés
657
Date d'inscription
dimanche 24 août 2008
Statut
Membre
Dernière intervention
24 juillet 2016
6
18 oct. 2009 à 09:59
18 oct. 2009 à 09:59
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
avion-f16
Messages postés
19249
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
15 juin 2024
4 505
18 oct. 2009 à 11:33
18 oct. 2009 à 11:33
As-tu mis <?php session_start(); ?> au tout début de ton fichier (avant le DOCTYPE, sans aucun espace avant <?php) ?
labourette
Messages postés
657
Date d'inscription
dimanche 24 août 2008
Statut
Membre
Dernière intervention
24 juillet 2016
6
18 oct. 2009 à 16:31
18 oct. 2009 à 16:31
Bonjour,
oui je l'ai mis.............
oui je l'ai mis.............
avion-f16
Messages postés
19249
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
15 juin 2024
4 505
18 oct. 2009 à 16:38
18 oct. 2009 à 16:38
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>';
labourette
Messages postés
657
Date d'inscription
dimanche 24 août 2008
Statut
Membre
Dernière intervention
24 juillet 2016
6
18 oct. 2009 à 19:31
18 oct. 2009 à 19:31
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
labourette
Messages postés
657
Date d'inscription
dimanche 24 août 2008
Statut
Membre
Dernière intervention
24 juillet 2016
6
18 oct. 2009 à 23:15
18 oct. 2009 à 23:15
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
labourette
Messages postés
657
Date d'inscription
dimanche 24 août 2008
Statut
Membre
Dernière intervention
24 juillet 2016
6
19 oct. 2009 à 06:44
19 oct. 2009 à 06:44
Bonjour
En fait maintenant si je garde la même adresse mail et juste en changeant le password, ca m'ouvre la page mais ne reconnait pas les comptes des membres.
Aucun messages d'erreur n'apparait.
Pour la fonction session_start() c'est exactement ce que j'ai fait.
Merci vraiment pour votre aide
En fait maintenant si je garde la même adresse mail et juste en changeant le password, ca m'ouvre la page mais ne reconnait pas les comptes des membres.
Aucun messages d'erreur n'apparait.
Pour la fonction session_start() c'est exactement ce que j'ai fait.
Merci vraiment pour votre aide