Verification de "login" php

Résolu/Fermé
Graig083 - 18 oct. 2011 à 18:20
Autumn`Tears Messages postés 1054 Date d'inscription samedi 14 mars 2009 Statut Membre Dernière intervention 23 octobre 2013 - 18 oct. 2011 à 19:54
Bonjour,

Mes compétences en php sont assez limitées...
Je souhaiterais faire un livre d'or pour le site Internet de mon association mais je souhaiterais que seuls les adhérents de l'asso puissent y inscrire des articles.
J'ai déjà une base de données qui regroupe la liste des adhérents (champs = nom, prenom, email, adresse, etc) et je viens d'en créer une pour les messages du livre d'or (2 champs : id en autoincrement et contenu du message).
Mon formulaire html comporte 2 champs : email (pour vérification de l'appartenance aux adherents) et contenu du message
En revanche je n'arrive pas à configurer le code qui me permette de vérifier que la personne qui complète le formulaire est bien inscrite dans la base de données des adhérents avant d'enregistrer son message dans celle du livre d'or du style

Connexion à la base de données "adhérents"
verification que l'adresse mail saisie dans le champs "email" du formulaire apparait bien dans la base
si ok alors connexion a la base de données "livre d'or" et enregistrement des valeurs saisies dans le champs "message"
sinon message "votre adresse mail n'apparait pas dans la liste de nos adherents"

J'espère avoir été assez clair...
Merci d'avance de votre aide

Graig

10 réponses

jiantox Messages postés 1081 Date d'inscription mardi 30 septembre 2008 Statut Membre Dernière intervention 26 janvier 2019 114
18 oct. 2011 à 18:26
salut,

petite interrogation, ton formulaire apparait si l'utilisateur est connecté ou à tout le monde ?

si c'est à tout le monde alors inutile de faire la verification, il suffit de prendre l'e-mail d'un inscrit et de l'entrer pour pouvoir poster sous une autre identité que la sienne...

ce qu'il faudrais que tu fasses plutot c'est l'afficher que quand la personne est connectée, et ça logiquement tu as une vérification pour le savoir :)
0
Autumn`Tears Messages postés 1054 Date d'inscription samedi 14 mars 2009 Statut Membre Dernière intervention 23 octobre 2013 144
Modifié par Autumn`Tears le 18/10/2011 à 18:30
Salut,

$co=msql_connect('BDD','id', 'mdp');
mysql_select_db('taBase');
$verif=mysql_query("SELECT * FROM taTable WHERE champ_e_mail='.$_POST['email'].'");
if(mysql_num_rows($verif) != )
{
mysql_query("INSERT INTO 'livredor' ('contenu') VALUES ('.$_POST['message'].')");
header('location:livredor.php?message=ok'); //Redirige sur la page du livre d'or avec un message de validation (il faudra modifier ta page livredor pour ça)
}
else
{
header('location:livredor.php?message=err'); //Pour le message d'erreur
}
mysql_close($co);
Cordialement,

Adrien.
0
merci pour la réponse rapide.
Et si je n'ai pas besoin qu'un message de validation apparaisse (la liste des messages du livre d'or apparaissent en dessous du formulaire en fait donc la personne voit tout de suite que son message a bien été enregistré)
0
jiantox Messages postés 1081 Date d'inscription mardi 30 septembre 2008 Statut Membre Dernière intervention 26 janvier 2019 114
18 oct. 2011 à 18:46
eh bien tu met rien deriere le "livredor.php" ^^
0
Autumn`Tears Messages postés 1054 Date d'inscription samedi 14 mars 2009 Statut Membre Dernière intervention 23 octobre 2013 144
18 oct. 2011 à 18:46
C'est juste de l'amélioration, si la personne ne voit pas de changement, elle peut se demander pourquoi mais le principal, c'est déjà d'arriver à faire ton traitement !
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
En fait voila ce que j'ai a l'heure actuelle qui fonctionne bien mais sans verification préalable et que je voudrais adapter si possible...



<form method="post" action="livredor.php">
<p align="center">
<textarea id="livredor" name="contenu" rows="10" cols="60"></textarea><br />
<span id="carac_reste_textarea_1"></span> caractères restants.<br />
<script type="text/javascript">
maxlength_textarea('livredor','carac_reste_textarea_1',600);
</script>
<input type="submit" value="Soumettre" />
</p>
</form>

<?php
$db = mysql_connect('localhost', '***', '***');
mysql_select_db('***',$db);

if (isset($_POST['contenu']))
{
$contenu = $_POST['contenu'];
$contenu = nl2br($contenu);

mysql_query("INSERT INTO livredor VALUES('', '" . $contenu . "')");
}
?>

<p> </p>

<?php
$sql = 'SELECT * FROM livredor ORDER BY id';
$req = mysql_query($sql) or die('Impossible de se connecter au serveur
'.$sql.'
'.mysql_error());

while($data = mysql_fetch_array($req))
{
echo '<p>' . $data['contenu'] . '<hr size="1" style="color:#D1D1E1" /></p>';
}

mysql_close();
?>
0
Autumn`Tears Messages postés 1054 Date d'inscription samedi 14 mars 2009 Statut Membre Dernière intervention 23 octobre 2013 144
Modifié par Autumn`Tears le 18/10/2011 à 18:55
Formulaire :
Email : <input type="text" name="email" id="email">

Côté PHP :

if (isset($_POST['contenu']))
{
$contenu = $_POST['contenu'];
$contenu = nl2br($contenu);
$resmysql_query("SELECT * FROM TableEmail WHERE email='.$_POST[''].'");
if(mysql_num_rows($res) != 0)
{
mysql_query("INSERT INTO livredor VALUES('', '" . $contenu . "')");
}
}
0
J'ai un message d'erreur

Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in F:\inetpub\vhosts\***.fr\httpdocs\livredor.php on line 144

la ligne 144 etant :

$resmysql_query("SELECT * FROM adherents WHERE mail='.$_POST['mail'].'");


pourtant la base s'appelle bien "adherents" et le champs "mail"...
0
Autumn`Tears Messages postés 1054 Date d'inscription samedi 14 mars 2009 Statut Membre Dernière intervention 23 octobre 2013 144
18 oct. 2011 à 19:10
Où ai-je la tête... J'avais oublié un morceau !
$res=mysql_query("SELECT * FROM adherents WHERE mail='.$_POST['email'].'");
0
je suis desolé ça ne fonctionne tjs pas, il y a tjs le même message d'erreur
j'ai essayé

$res=mysql_query("SELECT * FROM adherents WHERE mail=" . $mail . "");

et la page s'affiche mais il y a un nouveau mesage d'erreur quand je fais un test de saisie

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in F:\inetpub\vhosts\***.fr\httpdocs\livredor.php on line 146

la ligne 146 etant

if(mysql_num_rows($res) != 0)
0
Autumn`Tears Messages postés 1054 Date d'inscription samedi 14 mars 2009 Statut Membre Dernière intervention 23 octobre 2013 144
18 oct. 2011 à 19:27
En fait il reste une erreur à la ligne 145, question de guillemets !

$mail=$_POST['email'];
$res=mysql_query("SELECT * FROM adherents WHERE mail='.$mail."'");
0
c'est parfait j'ai rectifié ça fonctionne il ne reste qu'un détail c'est que je voudrais juste que si l'adresse mail n'est pas dans la base adhérent cela affiche le message "désolé votre email n'apparaît pas dans la liste... blablabla"
0
Autumn`Tears Messages postés 1054 Date d'inscription samedi 14 mars 2009 Statut Membre Dernière intervention 23 octobre 2013 144
18 oct. 2011 à 19:54
juste après if(mysql_num_rows...{}
else {
header('location:livredor.php?message=err');
}

Et où tu veux après dans ton affichage :
<?php
if(isset($_GET['message']))
{
if($message == 'err')
{
?><div id='erreur'>Ereur, votre email n'est pas dans la base...</div>
<?php
}
?>
0