Un espace membre avec systeme de validation

Soyez le premier à donner votre avis sur cette source.

Snippet vu 16 265 fois - Téléchargée 27 fois

Contenu du snippet

Gràce à ce code, les membres pourront valider leur compte depuis leur email, et en plus on sait jamais, peut etre que quelqu'un qui n'a rien à faire s'inscrit sur votre site et met n'importe quoi?

Source / Exemple :


La table mysql
CREATE TABLE membre (
id int(11) NOT NULL auto_increment,
pseudo varchar(255) NOT NULL default '',
pass varchar(255) NOT NULL default '',
email varchar(255) NOT NULL default '',
confirm varchar(25) NOT NULL default '',
KEY id (id)
) TYPE=MyISAM;

test.php
<form action="test2.php" method="post"><div align="center">  <p><a href="inscr.php">Inscription.</a></p>  <table width="244" border="1" bordercolor="#FF0000">    <tr>      <td width="64">Pseudo : </td>      <td width="164"><input name="pseudo" type="text" id="pseudo"></td>    </tr>    <tr>      <td>Pass : </td>      <td><input name="pass" type="password" id="pass"></td>    </tr>  </table>  <p>    <input type="submit" name="Submit" value="Envoyer">  </p></div></form>

test2.php
<?
session_start();
$_POST['pseudo'] == $_SESSION['pseudo'];
$_POST['pass'] == $_SESSION['pass'];

if (empty($_POST['pseudo']) AND ($_POST['pass']))
{
echo 'Vous avez oublié de mettre des données';
}
else
{
mysql_connect("localhost","xxxx","xxxxx");
mysql_select_db("xxxxx");

$sql = mysql_query("SELECT * FROM membre WHERE pseudo='$_POST[pseudo]'") or die('erreur:' .mysql_error());
while ($donnees = mysql_fetch_array($sql))
  {
    if ($_POST['pass'] == $donnees['pass']) 
    {
    // si le mot de passe est bon, mettez ici ce que vous voulez
    header("location:espace.php");
    }
    else
    {
    echo 'Votre mot de passe ou votre pseudo n\'est pas correcte, si vous n\'etes pas inscrit, veuillez vous inscrire!!<br>';
    echo '<a href="test.php">Retournez au menu</a>';
    }
  }    
  mysql_close();

} 
?>   

espace.php
<?
session_start();
if (!isset($_SESSION['pseudo']) AND ($_SESSION['pass']))
{
echo 'Vous n\'avez pas le droit d\'afficher cette page';
include ('test.php');

}
else
{
?>

<center><h2>Voici les membres déjà inscrits</h2></center><br>
Bienvenu <? echo $_SESSION['pseudo']; ?>

<?
mysql_connect("localhost","xxxx","xxxxx");
mysql_select_db("xxxx");

$sql = mysql_query("SELECT pseudo FROM membre") or die ('erreur :' .mysql_error());
if (mysql_num_rows($sql)==0){echo'Aucun membre inscrits';} 
else
{
while($lol = mysql_fetch_array($sql))
{
?>

<center><? echo $lol['pseudo']; ?></center><br>
<?

// Et continuez avec ce que vous voulez ici en html ou en php
}
}
}
?>

inscr.php
<html><head><title>Document sans titre</title><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"></head><body><form action="inser.php" method="post"><div align="center">  <p>Inscription des membres : </p>  <table width="215" height="103" border="0">    <tr>      <td width="61">Pseudo : </td>      <td width="144"><input name="pseudo" type="text" id="pseudo"></td>    </tr>    <tr>      <td>Pass : </td>      <td><input name="pass" type="password" id="pass"></td>    </tr>    <tr>      <td>Email : </td>      <td><input name="email" type="text" id="email"></td>    </tr>  </table>  <p>    <input type="submit" name="Submit" value="Envoyer">  </p></div></form></body></html>

inser.php
<?
$chaine = "abcdefghijklmnopqrstuvwxyz0123456789";
$tele = str_shuffle($chaine);
$pseudo = htmlentities($_POST['pseudo']);
$pass = htmlentities($_POST['pass']);
$email = addslashes($_POST['email']);
$message = 'Cher '.$pseudo.',';
$message .= 'Ceci est un mail automatique de confirmation d\'inscription au site de Dyto : http://membres.lycos.fr/dyto1/cedric .';
$message .= 'Pour confirmer et ainsi terminer l\'inscription à votre compte, veuillez cliquer sur le lien de confirmation: ';
$message .= 'http://membres.lycos.fr/dyto1/confirm.php?pseudo='.str_replace(' ','%20',$pseudo);

if (!empty($pseudo) && !empty($pass) && !empty($email))
{
mysql_connect("localhost","xxxx","xxxx");
mysql_select_db("xxxxx");

$lol = mysql_query("INSERT INTO membre VALUES('','$pseudo','$pass','$email','0')") or die('erreur: '.mysql_error());  

echo 'Vous avez bien été rajoutée, un email va etre envoye dans votre email';
mail($email,'Confirmation d\'inscription à Dytomania',$message);
}
else
{
echo 'Vous avez oublié de mettre un champ';
}
mysql_close();
?>

confirm.php
<?
mysql_connect("localhost","dyto1","frfrfr");
mysql_select_db("dyto1");

$mimi = mysql_query("UPDATE membre SET confirm='1' WHERE pseudo='$_GET[pseudo]'") or die ('erreur : '.mysql_error());
echo 'Vous avez bien été validée, cliqez <a href="index.php">ici</a> pour retourner a l\index<br>';
echo 'Merci Ced';
?>

Conclusion :


Voilà, je remercie les personnes du sdz qui m'ont aidés et aussi que ce code est disponible sur http://www.siteduzero.com/vostutos/index.php?s=viewtuto&tutoid=224, si ce n'est pas clair, venez sur ce lien, mon code est un peu plus détaillé :D

A voir également

Ajouter un commentaire

Commentaires

dyto
Messages postés
11
Date d'inscription
mercredi 5 mai 2004
Statut
Membre
Dernière intervention
31 mai 2004
-
Mon code est impeccable !!
cs_Astalavista
Messages postés
194
Date d'inscription
lundi 24 décembre 2001
Statut
Membre
Dernière intervention
3 février 2010
-
Je suis pas un Grand programmeur avec un grand G mais je pensse que a ta ligne ou il y a :
$lol = mysql_query("INSERT INTO membre VALUES('','$pseudo','$pass','$email','0')") or die('erreur: '.mysql_error());

A quoi il sert ton $lol = ??? tu en a pas besoin a mon avis, sinon j'ai pas tester ta source mais elle ma l'air pas mal ...
cs_Anthomicro
Messages postés
9440
Date d'inscription
mardi 9 octobre 2001
Statut
Membre
Dernière intervention
13 avril 2007
8 -
Code impeccable c'est très vite dit....

Prenons un exemple :

<?
Heberge ton site sur un hébergeur qui désactive les shorts tags et t'es bonbon. Toujours comme ceci le tag d'ouverture :

<?php

if (empty($_POST['pseudo']) and ($_POST['pass']))
{
echo 'Vous avez oublié de mettre des données';
}
else
{
}

Tu peux raccourcir légèrement :

if (empty($_POST['pseudo'] OR $_POST['pass']))
echo 'Vous avez oublié de mettre des données';
else
{
}

a +
cs_Anthomicro
Messages postés
9440
Date d'inscription
mardi 9 octobre 2001
Statut
Membre
Dernière intervention
13 avril 2007
8 -
Et aussi les requêtes :

mysql_query("UPDATE membre SET confirm='1' WHERE pseudo='$_GET[pseudo]'")

Que c'est laid lol !

Plutôt comme ceci :

mysql_query("UPDATE membre SET confirm='1' WHERE pseudo='".$_GET['pseudo']."'")

a +
newhack25
Messages postés
19
Date d'inscription
mercredi 8 septembre 2004
Statut
Membre
Dernière intervention
12 janvier 2005
-
nul

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.

Du même auteur (dyto)