Authentifier un visiteur !

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Authentifier un visiteur !

par nicolas » 04 déc. 2005, 14:20

<?php
if (isset($_POST['pseudo']) AND isset($_POST['mot_de_passe']) AND isset($_POST['e_mail']) AND isset($_POST['naissance']) AND isset($_POST['pays']) AND isset($_POST['commentaire']))
{
	if ($_POST['pseudo'] !=NULL AND $_POST['mot_de_passe'] !=NULL AND $_POST['e_mail'] !=NULL AND $_POST['naissance'] !=NULL AND $_POST['pays'] !=NULL OR $_POST['commentaire'] !=NULL)
	{
[/code]
[/quote]

Ce double test est inutile, d'autant plus que tu ne gères pas le else!
Regarde ce sujet:
[url]http://www.phpfrance.com/forums/voir_sujet-8982.php[/url]

Si une variable est définie alors elle est différente de NULL!

par Truc » 04 déc. 2005, 14:09

si tu as fais ces quelques modif, oui il tient la route :wink:

par flyxter » 04 déc. 2005, 11:34

Et si je fais ça !! Mon script est parfait ?

par Truc » 04 déc. 2005, 03:12

voila c'est ça, et pareil pour l'identification

par flyxter » 04 déc. 2005, 01:04

<?php
if (isset($_POST['pseudo']) AND isset($_POST['mot_de_passe']) AND isset($_POST['e_mail']) AND isset($_POST['naissance']) AND isset($_POST['pays']) AND isset($_POST['commentaire']))
{
	if ($_POST['pseudo'] !=NULL AND $_POST['mot_de_passe'] !=NULL AND $_POST['e_mail'] !=NULL AND $_POST['naissance'] !=NULL AND $_POST['pays'] !=NULL OR $_POST['commentaire'] !=NULL)
	{
	$pseudo = htmlentities ($_POST['pseudo']);
                $mot_de_passe = htmlentities($_POST['mot_de_passe']);
                $mot_de_passe = md5($mot_de_passe);
	$e_mail = htmlentities($_POST['e_mail']);
	$naissance = htmlentities($_POST['naissance']);
	$pays = htmlentities($_POST['pays']);
	$commentaire = htmlentities($_POST['commentaire']);
	
	mysql_connect("localhost","root","");
	mysql_select_db("essai_php");
	
	mysql_query("INSERT INTO inscription VALUES('','$pseudo','$mot_de_passe','$e_mail','$naissance','$commentaire','$pays')");
	mysql_close();
	}
}
?>

Code : Tout sélectionner

<form method="post" action="essai3.php"> <p> <label>Votre pseudo : <input type="text" name="pseudo" /></label></br> <label>Votre mot de passe : <input type="text" name="mot_de_passe"/></label></br> <label>Votre e_mail : <input type="text" name="e_mail" /></label></br> <label>Votre date de naissance : <input type="text" name="naissance" /></label></br> <label>Votre pays : <input type="text" name="pays" /></label><br> <label>Commentaire : <input type="text" name="commentaire" /></label></br> <input type="submit" value="envoyer"> </p> </form>
C'est bon comme ça ?

par Truc » 04 déc. 2005, 00:47

Hmm pas clair, mais c'est une fonction php tu peut donc faire appel a elle comme je l'ai montré.
ensuite tu dois avoir une requete d'insertion où tu enregistre les données du membre dans la BD avant cette requete tu traite donc le passe avec cette fonction.

et tu en fait autant pour l'identification, avant la requete SELECT hop md5() :wink:

par flyxter » 04 déc. 2005, 00:38

Tu veux dire que ce code se emt juste dans la partie d'inscription ?

par Truc » 04 déc. 2005, 00:34

eh bien, lorsque tu entre un nouveau compte dans la BD tu traite le passe avec cette fonction.
$passe_md5=md5($passe);
et la tu enregistre dans la BD le passe traité.

sans oublier d'en faire autant lors de l'identification, pour faire la requete le passe doit etre haché.

Par contre cette méthode est irréversible, plus grande fiablité, en cas d'oublis du passe par un membre tu devras lui en attribuer un nouveau.

par flyxter » 04 déc. 2005, 00:29

Ok j'ai regardé comment s'en servir ! Mais je n'ai pas super bien compris !

par Truc » 04 déc. 2005, 00:28

ca permet de "cacher" le mot de passe entré dans la BD et évite qu'une charmante personne ne profite des joie qu'offre le passe de l'admin du site :wink:

En clair peut éviter l'utilisation frauduleuse de comptes par une tiers personne.

par flyxter » 04 déc. 2005, 00:24

Merci ! Par contre, je ne comprends pas pour le cryptage ? et à quoi ça sert ?

par Truc » 04 déc. 2005, 00:20

as tu aussi pensé a traiter le mot de passe avec md5() ou autre fonction permettant de hacher (crypter) ?!

pour la déconnexion regarde un peu ce tuto.

Mais tu peut également initialiser une variable de session a vrai si l'identification est bonne et a la déconnexion tu la passe a faux, et tu testera si cette variable est vrai ou fausse pour afficher les partie souahitées.

par flyxter » 04 déc. 2005, 00:12

Ok merci ! ça marche ! Sinon, tu pourrais me mettre sur la piste pour la déconnexion, car je ne vois pas du tout ..

par Truc » 03 déc. 2005, 23:57

Salut, il faut boucler sur le resulat de la requete, regarde la doc sur mysql_fetch_array() tu y vera des exemples.

Mais vaut mieux eviter de sortir toute les données de la table meme celles dont tu ne te serviras pas. Pour cela il faut inclure la clause WHERE dans la requete et ne séléctionner que les champs qui correspondent au pseudo et passe.
SELECT pseudo,mot_de_passe FROM ... WHERE pseudo="" AND mot_de_passe=""
de plus ne séléctionne que les champs utiles au traitement evite le * .

par jeff » 03 déc. 2005, 23:56

a quoi ressemble ta table?
a tu un message d'erreur
car c'est difficile pour nous de deviner