PHP+SQL gestion de membres
Marion
-
Marion -
Marion -
Bonjour,
dans le cadre de mes études j'ai un projet à réaliser, dont l'élaboration d'un site web.
Je me bats avec le PHP+MYSQL pour créer une partie membres !
J'ai déjà créer le formulaire d'inscription avec accès à la base de données, après il faut donc une page de login pour s'identifier, mais comment faire pour que une fois identifié le membre ai des "avantages".
Par exemple avoir des pages masquées pour les visiteurs, mais visible pour les membres.
Je suis encore débutante donc merci d'être le plus précis possible :$
Merci.
dans le cadre de mes études j'ai un projet à réaliser, dont l'élaboration d'un site web.
Je me bats avec le PHP+MYSQL pour créer une partie membres !
J'ai déjà créer le formulaire d'inscription avec accès à la base de données, après il faut donc une page de login pour s'identifier, mais comment faire pour que une fois identifié le membre ai des "avantages".
Par exemple avoir des pages masquées pour les visiteurs, mais visible pour les membres.
Je suis encore débutante donc merci d'être le plus précis possible :$
Merci.
A voir également:
- PHP+SQL gestion de membres
- Logiciel gestion locative gratuit excel - Télécharger - Comptabilité & Facturation
- Gestion de fichiers - Télécharger - Gestion de fichiers
- Logiciel gestion photo gratuit - Guide
- Easy php - Télécharger - Divers Web & Internet
- Gestion autorisation application android - Guide
31 réponses
bonsoir marion je pense que c'est tout simplement parce que tu n'a pas recuipere tes valeurs POST
en effet ta requete c'est :
$sql = "SELECT * FROM adherent WHERE login='$login' AND pw='$pw'";
mais je vois pas la trace de $login et $pw
donc rajoute ca avant de lancer ta connexion
(je passe les verif si les valeurs sont presentes avec isset)
$login=$_POST['login'];
$pw=$_POST['pw'];
@+
en effet ta requete c'est :
$sql = "SELECT * FROM adherent WHERE login='$login' AND pw='$pw'";
mais je vois pas la trace de $login et $pw
donc rajoute ca avant de lancer ta connexion
(je passe les verif si les valeurs sont presentes avec isset)
$login=$_POST['login'];
$pw=$_POST['pw'];
@+
Cherche avec Google miss, tu trouvera un tas de tutoriaux (a en perdre le nord d'ailleurs) sur PHP et MySQL
Mais avec un peu de patience et une recherche par mot clés logique, tu trouvera tout ce que tu cherche je t'assure lol
je m'y connais pas plus que ça sur le sujet désolé.
++
Mais avec un peu de patience et une recherche par mot clés logique, tu trouvera tout ce que tu cherche je t'assure lol
je m'y connais pas plus que ça sur le sujet désolé.
++
Waw c'est quand même super difficile tout ça !
Le problème avec les recherches sur le net c'est qu'il y a vraiment tout et n importe quoi et on est obligé de lire des dizaines de page pour voir si c'est ce qu'effectivement on cherche...
Pour l'instant j'ai créer une table membre avec un champ id, login, pass, email.
Je vais déjà cherché un code pour se loger donc...
Merciii
Le problème avec les recherches sur le net c'est qu'il y a vraiment tout et n importe quoi et on est obligé de lire des dizaines de page pour voir si c'est ce qu'effectivement on cherche...
Pour l'instant j'ai créer une table membre avec un champ id, login, pass, email.
Je vais déjà cherché un code pour se loger donc...
Merciii
Merci oui ça m'a un peux éclairé en ce qui concerne l'affichage ou non d'un bouton ou autre..
Pour l'instant je vais déjà essayé pour que les membres inscrit puisse s'identifier, dur dur de trouver des tutos la dessus!!
PS : tu as suivi quoi comme études ?
Pour l'instant je vais déjà essayé pour que les membres inscrit puisse s'identifier, dur dur de trouver des tutos la dessus!!
PS : tu as suivi quoi comme études ?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Ah oui super le truc de login c'est exactement ce à quoi je voudrais arriver :D
Je reviendrais quand j'aurais réussi à avancer un peu...
Mercii en tout cas.
Je reviendrais quand j'aurais réussi à avancer un peu...
Mercii en tout cas.
Merci mais c'est juste pour un projet scolaire et tout ça ce n'est pas encore indispensable !
Déjà si mon inscription et mon login fonctionnerait je serais contente :D
@plustard
Déjà si mon inscription et mon login fonctionnerait je serais contente :D
@plustard
Et bien pour l'instant je refais moi même le module d'inscription, j'en suis la :
<?php
if (isset($_POST['login']) AND isset($_POST['pw']) AND isset($_POST['prenom']) AND isset($_POST['email']))
{
if ($_POST['login'] != NULL AND $_POST['pw'] != NULL AND $_POST['prenom'] != NULL AND $_POST['email'] != NULL)
{
// D'abord, on se connecte à MySQL
mysql_connect("localhost", "root", "");
mysql_select_db("php");
// On utilise les fonctions PHP mysql_real_escape_string et htmlspecialchars pour la sécurité
$login = ($_POST['login']);
$pw = ($_POST['pw']);
$prenom = ($_POST['prenom']);
$email = ($_POST['email']);
// Ensuite on enregistre le message
mysql_query("INSERT INTO adherent VALUES('', '$login', '$pw', '$prenom', '$email')");
// On se déconnecte de MySQL
mysql_close();
}
}
?>
Mais ça ne marche pas très bien car ça me rajoute des champs vide dans ma bdd
lol
<?php
if (isset($_POST['login']) AND isset($_POST['pw']) AND isset($_POST['prenom']) AND isset($_POST['email']))
{
if ($_POST['login'] != NULL AND $_POST['pw'] != NULL AND $_POST['prenom'] != NULL AND $_POST['email'] != NULL)
{
// D'abord, on se connecte à MySQL
mysql_connect("localhost", "root", "");
mysql_select_db("php");
// On utilise les fonctions PHP mysql_real_escape_string et htmlspecialchars pour la sécurité
$login = ($_POST['login']);
$pw = ($_POST['pw']);
$prenom = ($_POST['prenom']);
$email = ($_POST['email']);
// Ensuite on enregistre le message
mysql_query("INSERT INTO adherent VALUES('', '$login', '$pw', '$prenom', '$email')");
// On se déconnecte de MySQL
mysql_close();
}
}
?>
Mais ça ne marche pas très bien car ça me rajoute des champs vide dans ma bdd
lol
je regarde ca demain matin la je vais au dodo ,juste une piste avant d'aller me coucher dans ton formulaire les balises <form action...
et </form> sont bien presente ?
et tu a bien precisé <form action="ton_ fichier.php" method="post"> ?
rapidement tu a mis ca :
if ($_POST['login'] != NULL AND $_POST['pw'] != NULL AND $_POST['prenom'] != NULL AND $_POST['email'] != NULL)
essaye plutot comme ca
if ((!$_POST['login'] = NULL) AND (!$_POST['pw'] = NULL) AND (!$_POST['prenom'] = NULL) AND (!$_POST['email'] = NULL) )
tiens moi au courant bonne nuit
et </form> sont bien presente ?
et tu a bien precisé <form action="ton_ fichier.php" method="post"> ?
rapidement tu a mis ca :
if ($_POST['login'] != NULL AND $_POST['pw'] != NULL AND $_POST['prenom'] != NULL AND $_POST['email'] != NULL)
essaye plutot comme ca
if ((!$_POST['login'] = NULL) AND (!$_POST['pw'] = NULL) AND (!$_POST['prenom'] = NULL) AND (!$_POST['email'] = NULL) )
tiens moi au courant bonne nuit
yessss :D
j'ai enfin réussi mon formulaire d'inscription, si ça marche redirection vers le login sinon retour au formulaire...
Par contre pour le login je ne sais pas du tout j'essaye de trouver un ancien post pour m'en inspirer !
Biz & merci :D
j'ai enfin réussi mon formulaire d'inscription, si ça marche redirection vers le login sinon retour au formulaire...
Par contre pour le login je ne sais pas du tout j'essaye de trouver un ancien post pour m'en inspirer !
Biz & merci :D
Bon j'arrête pour ce soir !
Petit récapitulatif...
L'inscription ça fonctionne...
Voici mon formulaire pour le login :
[quote]
<form method="post" action="index.php?page=login">
<b><font face="Verdana" size="1">Login<br>
<input type="text" name="login">
<br>
<br>
Mot de passe</font></b><br>
<input type="password" name="pw">
<br>
<br>
<input type="submit" name="Submit" value="Entrer">
</form>
[/quote]
et voici ma page login :
[quote]
<?php
// CONNEXION A LA BASE DE DONNEE
$db_link = @mysql_connect("localhost","root","");
if(!$db_link) {echo "Connexion impossible à la base de données"; exit;}
// ON SELECTIONNE L'ENREGISTREMENT CONTENANT LE LOGIN ET MOT DE PASSE
$requete=mysql_db_query("php","select login,pw from adherent where login=\"$login\" and pw=\"$pw\"",$db_link) or die(mysql_error());
// SI AUCUN ENREGISTREMENT NE CORRESPOND
if(mysql_num_rows($requete)==0)
{
echo "erreuuuuuuuuuuuuuuuuuuuuuuuur";
}
// SI LE LOGIN ET MOT DE PASSE SONT EXACTES
else
{
echo "vous ete connecte";
}
// DECONNEXION MYSQL
mysql_close($db_link);
?>
[/quote]
Et....ça ne marche pas, j'ai toujours le msg "erreur" je pense donc qu'il y a un probleme avec mysql_db_query qui retourne toujours false !
Si vous avez une solutions, des idées...
Merci, a demain.
Petit récapitulatif...
L'inscription ça fonctionne...
Voici mon formulaire pour le login :
[quote]
<form method="post" action="index.php?page=login">
<b><font face="Verdana" size="1">Login<br>
<input type="text" name="login">
<br>
<br>
Mot de passe</font></b><br>
<input type="password" name="pw">
<br>
<br>
<input type="submit" name="Submit" value="Entrer">
</form>
[/quote]
et voici ma page login :
[quote]
<?php
// CONNEXION A LA BASE DE DONNEE
$db_link = @mysql_connect("localhost","root","");
if(!$db_link) {echo "Connexion impossible à la base de données"; exit;}
// ON SELECTIONNE L'ENREGISTREMENT CONTENANT LE LOGIN ET MOT DE PASSE
$requete=mysql_db_query("php","select login,pw from adherent where login=\"$login\" and pw=\"$pw\"",$db_link) or die(mysql_error());
// SI AUCUN ENREGISTREMENT NE CORRESPOND
if(mysql_num_rows($requete)==0)
{
echo "erreuuuuuuuuuuuuuuuuuuuuuuuur";
}
// SI LE LOGIN ET MOT DE PASSE SONT EXACTES
else
{
echo "vous ete connecte";
}
// DECONNEXION MYSQL
mysql_close($db_link);
?>
[/quote]
Et....ça ne marche pas, j'ai toujours le msg "erreur" je pense donc qu'il y a un probleme avec mysql_db_query qui retourne toujours false !
Si vous avez une solutions, des idées...
Merci, a demain.
salut,
je pense que c'est un problème de test, il faudrait tester le type.
et tant qu'à apprendre&helip;
je te soumets ma façon de traiter une connexion/requête.
si cette façon de coder de déstabilise, oublie, sinon on pourra t'expliquer ligne par ligne.
dans tous les cas :
• présente bien ton code (aération, indentation, majuscules pour les mots clé SQL…) c'est juste une bonne habitude à prendre
• pense à aller voir dans le manuel PHP quels sont les types retournés par les fonctions et si besoin est de tester le type avec un triple égale dans tes tests.
PS : le bouton pour mettre en forme le code.
je pense que c'est un problème de test, il faudrait tester le type.
if( mysql_num_rows($requete) === 0 )
et tant qu'à apprendre&helip;
je te soumets ma façon de traiter une connexion/requête.
si cette façon de coder de déstabilise, oublie, sinon on pourra t'expliquer ligne par ligne.
<?php // utilisation de constantes, plus pratiques pour modifier les valeurs quand tu passes chez ton hébergeur define( 'DB_HOST' , 'localhost' ); define( 'DB_USER' , 'root' ); define( 'DB_PASSWORD' , '' ); define( 'DB_NAME' , 'php' ); // sandwich Try/Catch, toutes les erreurs sont gérées au même endroit // chaque fois que tu lèves une erreur avec 'throw new Exception()' le code saute au 'Catch()' try { $db_link = @mysql_connect( DB_HOST , DB_USER , DB_PASSWORD ); if( !$db_link ) { throw new Exception('Connexion impossible au serveur de données'); } if( !@mysql_select_db( DB_NAME ) ) { throw new Exception( 'Impossible de sélectionner la base de données' ); } $sql = "SELECT `login` , `pw` FROM `adherent` WHERE login='$login' AND pw='$pw' LIMIT 1;"; $result = mysql_query( $sql , $db_link ); // soigne la rédaction, ça facilite le débogage if( $result === false ) // test de type, important ! { throw new Exception( 'Erreur lors de l\'exécution de la requête;' ); } if( mysql_num_rows($requete) !== 1 ) { throw new Exception( 'Connexion échouée' ); } echo '<p>Connexion réussie</p>'; } catch( Exception $e ) { echo "<p>{$e->getMessage()}</p>" } ?>
dans tous les cas :
• présente bien ton code (aération, indentation, majuscules pour les mots clé SQL…) c'est juste une bonne habitude à prendre
• pense à aller voir dans le manuel PHP quels sont les types retournés par les fonctions et si besoin est de tester le type avec un triple égale dans tes tests.
PS : le bouton pour mettre en forme le code.
Décidément je dois vraiment être nulle...C'est vrai que votre code Dalida à l'air plus propre et plus professionnel, je l'ai plutôt bien compris, mais la page ne s'exécute pas, il semblerait qu'il y a une erreur avec le catch, j'ai essayé de le changer mais toujours pareil...
Quand à ton code lewis, il semblerait que j'ai encore un problème avec "mysql_query" avec cette ligne :
$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
PS: vous mettez quelles balises pour écrire votre code dans le forum?
Quand à ton code lewis, il semblerait que j'ai encore un problème avec "mysql_query" avec cette ligne :
$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
PS: vous mettez quelles balises pour écrire votre code dans le forum?
salut,
mon code est en PHP5, ce n'est peut être pas la version de ton serveur.
le bouton pour le code ou entre balises "code" (comme celle de HTML).
mon code est en PHP5, ce n'est peut être pas la version de ton serveur.
le bouton pour le code ou entre balises "code" (comme celle de HTML).
bonjour ,logique qu'il y est une erreur c'est de ma faute..
je t'ai marqué ca :
$sql = "SELECT * FROM adherent WHERE login='$pw' AND pw='$pw'"
alors qu'il faut marquer
$sql = "SELECT * FROM adherent WHERE login='$login' AND pw='$pw'";
j'avais oublié le ; à la fin et le champp login je l'avais appelé pw...dsl
je t'ai marqué ca :
$sql = "SELECT * FROM adherent WHERE login='$pw' AND pw='$pw'"
alors qu'il faut marquer
$sql = "SELECT * FROM adherent WHERE login='$login' AND pw='$pw'";
j'avais oublié le ; à la fin et le champp login je l'avais appelé pw...dsl
Et bien j'ai la dernière version de wampserver donc je pense quand même qu'il gère le PHP5, je vais essayer de trouver ce qui ne va pas un peu plus tard cette après-midi...
Merci de votre aide encore!
Merci de votre aide encore!
Ah oui, c'est vrai que j'avais vu l'erreur avec le pw-login mais j'avais pas fait attention au ; à la fin !
Par contre il y a encore un problème c'est que la base de donnée "php" n'est pas selectionner !
Par contre il y a encore un problème c'est que la base de donnée "php" n'est pas selectionner !
J'ai donc mis ça en début de code
en suivant l'example de Dalida pour les Define, mais j'ai comme hier toujours "erreuuuuuur"
mysql_select_db( DB_NAME );
en suivant l'example de Dalida pour les Define, mais j'ai comme hier toujours "erreuuuuuur"
re,
travaille étape par étape.
à chaque fois que tu utilises une variable, imprime la. par exemple pour ta requête SQL :
et pareil pour les valeur à tester.
en fait c'est du débogage ligne par ligne !
à mon avis c'est ton test d'égalité, si c'est toujours celui là que tu utilises. sinon C/C ton code entier stp.
travaille étape par étape.
à chaque fois que tu utilises une variable, imprime la. par exemple pour ta requête SQL :
$sql = "blablabla"; echo( "<p>$sql</p>" );
et pareil pour les valeur à tester.
echo( "<p>{mysql_num_rows($requete)}</p>" ); if(mysql_num_rows($requete)==0) { ...
en fait c'est du débogage ligne par ligne !
à mon avis c'est ton test d'égalité, si c'est toujours celui là que tu utilises. sinon C/C ton code entier stp.
Bonsoir, j'ai bien essayé de suivre ton conseil en affichant les variables même si je n'ai pas très bien compris en quoi cela pouvait m'aider :s
Néanmoins voici le code peut-être trouverez vous l'erreur :
PAGE LOGIN.php :
et voici mon formulaire de login
PAGE MEMBRES.PHP
Néanmoins voici le code peut-être trouverez vous l'erreur :
PAGE LOGIN.php :
<div id="contenu"> <?php // utilisation de constantes, plus pratiques pour modifier les valeurs quand tu passes chez ton hébergeur define( 'DB_HOST' , 'localhost' ); define( 'DB_USER' , 'root' ); define( 'DB_PASSWORD' , '' ); define( 'DB_NAME' , 'php' ); // sandwich Try/Catch, toutes les erreurs sont gérées au même endroit // chaque fois que tu lèves une erreur avec 'throw new Exception()' le code saute au 'Catch()' // CONNEXION A LA BASE DE DONNEE $db_link = @mysql_connect( DB_HOST , DB_USER , DB_PASSWORD ); mysql_select_db( DB_NAME ); if(!$db_link) {echo "Connexion impossible à la base de données"; exit;} // ON SELECTIONNE L'ENREGISTREMENT CONTENANT LE LOGIN ET MOT DE PASSE $sql = "SELECT * FROM adherent WHERE login='$login' AND pw='$pw'"; echo( "<p>$sql</p>" ); $requete = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error()); // SI AUCUN ENREGISTREMENT NE CORRESPOND echo( "<p>{mysql_num_rows($requete)}</p>" ); if(mysql_num_rows($requete)===0) { echo "erreuuuuuuuuuuuuuuuuuuuuuuuur"; } // SI LE LOGIN ET MOT DE PASSE SONT EXACTES else { echo "vous ete connecte"; } // DECONNEXION MYSQL mysql_close($db_link); ?> </div>
et voici mon formulaire de login
PAGE MEMBRES.PHP
<form method="post" action="index.php?page=login"> <b><font face="Verdana" size="1">Login<br> <input type="text" name="login"> <br> <br> Mot de passe</font></b><br> <input type="password" name="pw"> <br> <br> <input type="submit" name="Submit" value="Entrer"> </form>
Ralala je suis vraiment conne ! ça à l'air de fonctionné, je vais essayé de trouver des exemples d'utilisation de isset
lol
t'inkiete pas ca arrive
tien pour isset
http://www.manuelphp.com/php/function.isset.php#function.isset
t'inkiete pas ca arrive
tien pour isset
http://www.manuelphp.com/php/function.isset.php#function.isset
Peux-tu m'aider à incorporer une vérification pour la forme de l'email stp
Vérifier par exemple qu'il y a bien un @
Merci beaucoup
Vérifier par exemple qu'il y a bien un @
Merci beaucoup
on peut voir ca demain je vaisau dodo
je te colle un code a moi quifonctionne je t'expliquerais ca demain si tu veut
bonne nuit
@+
je te colle un code a moi quifonctionne je t'expliquerais ca demain si tu veut
//verification quel 'adresse mail est valide $test_mail=eregi ('^[_a-z0-9-]+(.[_a-z0-9-]+)*@[a-z0-9-]+(.[a-z0-9-]+)+$', $_POST['email']); if(!$test_mail) //L'adresse est inavlide { ?> <p><strong>Attention votre adresse mail est invalide</strong></p> <td align="center"><a href="/index.php">retourner au formulaire d'inscription</a></td> <? exit(); }
bonne nuit
@+
Salut, merci pour ce code, j'ai retrouvé la trace sur le siteduzero et ça à était !
Par contre je me posé une question peut être toute bête, mais une fois "logué" ou est stockée cette "information" pour ne pas avoir à se reconnecter à chaque page privé, quelle valeur faut-il récupérée sur une page protégée..
Comment faire quoi :o
Thanks so much
Par contre je me posé une question peut être toute bête, mais une fois "logué" ou est stockée cette "information" pour ne pas avoir à se reconnecter à chaque page privé, quelle valeur faut-il récupérée sur une page protégée..
Comment faire quoi :o
Thanks so much
Bonsoir marion tu peut mettre en debut de chaque page le principe des sessions
ilfaut mettre ca en tout debut
<? //// On appelle la session session_start(); //////je verifie que la ssession est remplie if (empty($_SESSION['visiteur'] ))// la session est vide donc le type est pas loggé { header ("Location:/login.php");//tu le redirige vers la page de connexion exit(); } $visiteur=$_SESSION['visiteur'];//nom de la session pour le nom de profil
ilfaut mettre ca en tout debut