Deep_h
Messages postés22Date d'inscriptionlundi 22 août 2005StatutMembreDernière intervention14 décembre 2013
-
30 août 2013 à 08:02
Deep_h
Messages postés22Date d'inscriptionlundi 22 août 2005StatutMembreDernière intervention14 décembre 2013
-
30 août 2013 à 18:53
Bonjour,
hello je fait appel au calé en PHP... j'ai fait une session membre, avec enregistrement, login... et voici la partie récupération du mot de passe.
cela marche.... certainement avec beaucoup de chance... mais les opération ne sont pas dans un ordre cohérent... si je pousse à la faute... les message d'erreur s'affiche.. mais je reçoit quand même le mail avec le nouveau mot de passe.. alors .... il y a certe un méli-mélo... et je suis complètement novice en la matière.. donc je ne sais pas ou vraiment regarder et comment faire un code propre... si vous une personne peut m'aider.. c'est avec plaisir que je prendrai note afin de m'améliorer en php.
merci d'avance
<?php
session_start();
/*ici le session_start(); toujours en haut du fichier*/
$err = null; /*au depart*/
require_once('config.php');
/*petit filtre pas du luxe */
foreach($_POST as $k => $v){
$v = htmlentities(strip_tags(trim($v)));
$_POST[$k]=$v;
}
foreach($_GET as $k => $v){
$v = htmlentities(strip_tags(trim($v)));
$_GET[$k]=$v;
}
foreach($_REQUEST as $k => $v){
$v = htmlentities(strip_tags(trim($v)));
$_REQUEST[$k]=$v;
}
/*fin filtre*/
// connexion db
function conn(){
mysql_connect('localhost', 'root', '');
mysql_select_db('bdd');
}
// Données du formulaires
$email=formulaires($_POST['email']);
$username=formulaires($_POST['username']);
//On récupère les valeurs du formulaire
if (get_magic_quotes_gpc())
{
$username = stripslashes($_POST['username']);
$email = stripslashes($_POST['email']);
}
else
{
$username = $_POST['username'];
$email = $_POST['email'];
}
// on teste si le visiteur a soumis le formulaire de connexion
if (isset($_POST['inscription']) && $_POST['inscription'] == 'Validate') {
if ((isset($_POST['username']) && !empty($_POST['username'])) && (isset($_POST['email']) && !empty($_POST['email']))) {
conn();
for ($ligne=0;$ligne<10;$ligne++) //Création d'un mot de passe aléatoire
{
@$pass.=substr('0123456789AZERTYUIOPMLKJHGFDSQWXCVBN',(rand()%(strlen('0123456789AZERTYUIOPMLKJHGFDSQWXCVBN'))),1);
}
// on teste si une entrée de la base contient ce couple login / email
$sql = 'SELECT count(*) FROM member WHERE username="'.mysql_escape_string($_POST['username']).'" AND email="'.mysql_escape_string($_POST['email']).'"';
$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
$data = mysql_fetch_array($req);
mail("$email", "".$nom_du_site." - Forgot Password" , "Hello ".$username.", Here your new password : ".$pass."", "From: ".$votre_email."");
$pass=md5($pass); //Codage du mot de passe
mysql_query("UPDATE member SET pass='$pass' WHERE email='$email'") or die ('Erreur : '.mysql_error());
mysql_free_result($req);
mysql_close();
// si on obtient une réponse, alors l'utilisateur est un membre
if ($data[0] == 1) {
session_start();
$_SESSION['username'] = $_POST['username'];
header('Location: confirm_pwd_recovery.php');
exit();
}
// si on ne trouve aucune réponse, le visiteur s'est trompé soit dans son login, soit dans son mot de passe
elseif ($data[0] == 0) {
$err = 'The login and/or password is invalid.';
}
// sinon, alors la, il y a un gros problème :)
else {
$err = 'There is a problem in the database: more members have the same login.';
}
}
else {
$err = 'At least one field is empty.';
}
}
function checkmail($mail){
if(preg_match('#^(([a-z0-9!\#$%&\\\'*+/=?^_'{|}~-]+\.?)*[a-z0-9!\#$%&\\\'*+/=?^_'{|}~-]+)@(([a-z0-9-_]+\.?)*[a-z0-9-_]+)\.[a-z]{2,}$#i',$_POST['email'])){
return true;
}else{
return false;
}
}
function ismembre($username){
conn();
$log=mysql_real_escape_string($username);
// on recherche si ce login est déjà utilisé par un autre membre
$sql = "SELECT username FROM member WHERE username='".$log."' limit 1";
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
if(mysql_fetch_row($req)===1){
return true;
}else{
return false;
}
mysql_close();
}
/*les tests*/
// on teste l'existence de nos variables. On teste également si elles ne sont pas vides
if(isset($_POST['username']) && !empty($_POST['username'])) { } else {$err.='<br>The Login is empty';}
if(isset($_POST['email']) && !empty($_POST['email'])) {
if(checkmail($_POST['email'])===true) {
}else{
$err.='<br>Your email address is not valid';
}
}else {$err.='<br>Your email address is not valid';}
if(isset($_POST['username']) && strlen($_POST['username'])>2 && ismembre($_POST['username'])===false) {
}else{
$err.='<br>This login is not in our database !';
}
if(isset($_POST['security_code']) && !empty($_POST['security_code'])) { } else {$err.='<br>The captcha is empty !';}
if(($_SESSION['security_code'] === $_POST['security_code']) && (!empty($_SESSION['security_code'])) ) {
// Insert you code for processing the form here, e.g emailing the submission, entering it into a database.
unset($_SESSION['security_code']);
} else {
$err.='<br>The captcha was wrong or empty !';
}
{
//On créée le message email
// Headers
$headers = 'From: Skymoove Team <info@site.com>'."\r\n";
$headers .= 'Mime-Version: 1.0'."\r\n";
$headers .= 'Content-Type: multipart/mixed;'."\r\n";
$headers .= "\r\n";
// Message 1
$msg1 = 'Hello '.$username.','."\r\n\r\n";
$msg1 .= 'blablabla.'."\r\n";
$msg1 .= 'Y O U R N E W P A S S W O R D '."\r\n";
$msg1 .= '--------------------------------------------------'."\r\n\r\n";
$msg1 .= 'Compte user: '.$username."\r\n";
$msg1 .= 'Email: '.$email."\r\n\r\n";
$msg1 .= '--------------------------------------------------'."\r\n\r\n";
$msg1 .= 'blablabla'."\r\n\r\n";
// Message 2
$msg2 = 'Hello '.$username.','."\r\n\r\n";
$msg2 .= 'blablabla.'."\r\n";
$msg2 .= 'blablabla.'."\r\n";
$msg2 .= 'Y O U R L O G I N - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - '."\r\n\r\n";
$msg2 .= 'Login: '.$username."\r\n";
$msg2 .= 'Password: '.$pass."\r\n\r\n";
$msg2 .= 'Email: '.$email."\r\n\r\n";
$msg2 .= '- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - '."\r\n\r\n";
$msg2 .= 'blablabla.'."\r\n\r\n";
$msg2 .= 'blablabla'."\r\n\r\n";
// Information au Sponsor
$recipient = "$email"; //envois mail (TEXT)
$subject = "sujet"; //Sujet du mail(information au sponsor)
mail($recipient, $subject, $msg1, $mailheaders); //Confirmation mail envoyé(information au sponsor)
// Support Skymoove (pour traitement)
$recipient3 = "info@site.com"; //envois mail (HTML 2)
$subject3 = "sujet"; //Sujet du mail Support Skymoove (pour traitement)
mail($recipient3, $subject3, $msg3, $headers); //Confirmation mail envoyé (Support Skymoove (pour traitement))
$mailheaders = "From: site.com<> \n"; //Depuis où le mail à été posté
exit;
}
$titre_page='Registration';
include_once('topoff2.php');
?>
Deep_h
Messages postés22Date d'inscriptionlundi 22 août 2005StatutMembreDernière intervention14 décembre 2013 30 août 2013 à 18:53
hello.. les message d'erreur sont ceux qui sont généré su je commet une erreur d'identification ( comme un email qui n'est pas dans la base de donnée, ou une mauvaise adresse email ( sans le @ ).. ou un mauvais captcha.. sinon je n'ai pas d'erreur autre.. la page fonctionne.. juste que l'ordre des événements ( détection des erreur, envois du formulaire et redirecton ).. pose problème.. j'ai l'envois du formulaire qui s'effectue..meme si il y a erreur ( comme le captcha n'est pas correct , ou que l'email n'est pas en liaison avec le compte utilisateur ).. voilà le probleme...
merci de m'aider