Ma page de connexion fonctionne 1 fois sur 10 .
Pourriez-vous m'aider à trouver l'erreur ?
Voici le code :
<?php
require_once ('cnx.php');
require ('cfg.php');
require('setting.php');
require ('function.php');
require('auth.php');
if(Auth::islog()){
echo'<SCRIPT LANGUAGE="JavaScript">document.location.href="index.html"</SCRIPT>';
}else{
}
// CONNEXION //
//print_r( $_POST);
if(isset($_POST['submit_log'])){
$email = $_POST['email'];
$password = sha1($_POST['password']);
$q = array('email'=>$email, 'password'=>$password);
$sql = 'SELECT email,password FROM users WHERE email = :email AND password = :password';
$req = $cnx->prepare($sql);
$req->execute($q);
$count = $req->rowCount($sql);
if($count == 1){
//Verifier si l'utilisateur est actif
$sql = 'SELECT email,password FROM users WHERE email = :email AND password = :password AND activer = 1';
$req = $cnx->prepare($sql);
$req->execute($q);
$actif = $req->rowCount($sql);
if($actif == 1){
$_SESSION['Auth'] = array(
'email' => $email,
'password' => $password
);
// On met à jour la date de la dernière visite:
$der_co = date('Y-m-d h:i:s');
$ip = $_SERVER['REMOTE_ADDR'];
$connexion = $cnx->exec("UPDATE users SET last_conex ='$der_co', ip ='$ip' WHERE email='".$_SESSION['Auth']['email']."' && password='".$_SESSION['Auth']['password']."'");
echo'<SCRIPT LANGUAGE="JavaScript">document.location.href="index.html"</SCRIPT>';
}else{
$error = '<div class="alert alert-error">
<button type="button" class="close" data-dismiss="alert">×</button>
<strong>Erreur:</strong> Votre compte n\'est pas activé, veuillez vérifier vos mails (spams) pour activer votre compte !
</div>';
}
}else{
//Si utilisateur inconnu
$error = '<div class="alert alert-error">
<button type="button" class="close" data-dismiss="alert">×</button>
<strong>Erreur:</strong> Utilisateur inexistant ou erreur d\'identification !
</div>';
}
}
?><!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="utf-8">
<title><?= $title_page_signin; ?></title>
<meta content="IE=edge,chrome=1" http-equiv="X-UA-Compatible">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content="">
<meta name="author" content="">
<link rel="stylesheet" type="text/css" href="lib/bootstrap/css/bootstrap.css">
<link rel="stylesheet" type="text/css" href="stylesheets/theme.css">
<link rel="stylesheet" href="lib/font-awesome/css/font-awesome.css">
<script src="lib/jquery-1.7.2.min.js" type="text/javascript"></script>
<!-- Demo page code -->
<style type="text/css">
#line-chart {
height:300px;
width:800px;
margin: 0px auto;
margin-top: 1em;
}
.brand { font-family: georgia, serif; }
.brand .first {
color: #ccc;
font-style: italic;
}
.brand .second {
color: #fff;
font-weight: bold;
}
</style>
<!-- Le HTML5 shim, for IE6-8 support of HTML5 elements -->
<!--[if lt IE 9]>
<script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
<!-- Le fav and touch icons -->
<link rel="shortcut icon" href="../assets/ico/favicon.ico">
<link rel="apple-touch-icon-precomposed" sizes="144x144" href="../assets/ico/apple-touch-icon-144-precomposed.png">
<link rel="apple-touch-icon-precomposed" sizes="114x114" href="../assets/ico/apple-touch-icon-114-precomposed.png">
<link rel="apple-touch-icon-precomposed" sizes="72x72" href="../assets/ico/apple-touch-icon-72-precomposed.png">
<link rel="apple-touch-icon-precomposed" href="../assets/ico/apple-touch-icon-57-precomposed.png">
</head>
<!--[if lt IE 7 ]> <body class="ie ie6"> <![endif]-->
<!--[if IE 7 ]> <body class="ie ie7 "> <![endif]-->
<!--[if IE 8 ]> <body class="ie ie8 "> <![endif]-->
<!--[if IE 9 ]> <body class="ie ie9 "> <![endif]-->
<!--[if (gt IE 9)|!(IE)]><!-->
<body class="">
<!--<![endif]-->
<?php include 'navbar.php'; ?>
<?php if(isset($error)){ echo $error; } ?><?php if(isset($succes )){ echo $succes ; } ?>
<div class="row-fluid">
<div class="dialog">
<div class="block">
<p class="block-heading"><i class="icon-lock"></i> Se Connecter</p>
<div class="block-body">
<form action="<?php $_SERVER['PHP_SELF'] ?>" name="submit_log" id="submit_log" method="post">
<label><i class="icon-envelope-alt"></i> Email</label>
<input type="text" name="email" id="email" placeholder="Email" required class="span12" />
<label><i class="icon-key"></i> Password</label>
<input type="password" name="password" id="password" placeholder="Mot de passe" required class="span12" />
<input type="submit" name="submit_log" value="Se connecter" class="btn btn-success pull-right" /><a class="btn pull-left" href="sign-up.html">Inscription</a><a class="btn btn-danger pull-left" style="width:80px;" href="mdp.html">Oubli ?</a>
<div class="clearfix"></div>
</form>
</div>
</div>
</div>
</div>
<script>
$(document).ready(function() {
$("#refresh_cap").click(function() {
$("#captcha").attr("src", "captcha.php?"+(new Date()).getTime());
});
});
</script>
<script src="lib/bootstrap/js/bootstrap.js"></script>
<script type="text/javascript">
$("[rel=tooltip]").tooltip();
$(function() {
$('.demo-cancel-click').click(function(){return false;});
});
</script>
</body>
</html>
Lorsque je vais sur la page d'inscription, je clic sur valider, sans remplir les champs; il m'affiche l'erreur des champs vide, normal ...Je retourne sur la page de connexion, et la miracle sa fonctionne.
Bizarre ...
La page d'inscription :
<?php
require_once ('cnx.php');
require ('cfg.php');
require('setting.php');
require ('function.php');
require('auth.php');
if(Auth::islog()){
echo'<SCRIPT LANGUAGE="JavaScript">document.location.href="index.html"</SCRIPT>';
}else{
}
// INSCRIPTION //
if(isset($_POST['inscription'])){
$count = $cnx->prepare('SELECT COUNT(*) FROM users WHERE pseudo = :pseudo');
$count->bindValue('pseudo', $_POST['pseudo'], PDO::PARAM_STR);
$count->execute();
if ($count->fetchColumn()) {
$error_prenom ='<div class="alert alert-error">
<button type="button" class="close" data-dismiss="alert">×</button>
<strong>Erreur:</strong> Cet pseudo est déjà utilisé, veuillez en choisir un autre s\'il vous plaît.
</div>';
}else{
$count2 = $cnx->prepare('SELECT COUNT(*) FROM users WHERE email = :email');
$count2->bindValue('email', $_POST['email'], PDO::PARAM_STR);
$count2->execute();
if ($count2->fetchColumn()) {
$error_email ='<div class="alert alert-error">
<button type="button" class="close" data-dismiss="alert">×</button>
<strong>Erreur: </strong>Cet email est déjà utilisé, mais si c\'est le votre, veuillez redemander vos identifiants.
</div>
';
}else{
if(isset($_POST["captcha"]) && $_POST["captcha"]!="" && $_SESSION["code"] == $_POST["captcha"])
{
if(empty($_POST['terme']) && !isset($_POST['terme'])){
$error_unknown = '<div class="alert alert-error">
<button type="button" class="close" data-dismiss="alert">×</button>
<strong>Erreur: </strong>Veuillez accepter les C.G.U. !
</div>
';
}else{
if(sha1($_POST['password'])!= sha1($_POST['password2'])){
$error_unknown = '<div class="alert alert-error">
<button type="button" class="close" data-dismiss="alert">×</button>
<strong>Erreur: </strong>Mot de passe différent !</div>';
}else{
if (!empty($_POST) && strlen($_POST['password'])>4 && strlen($_POST['pseudo'])>4 && filter_var($_POST['email'], FILTER_VALIDATE_EMAIL)) {
$pseudo = $_POST['pseudo'];
$email = $_POST['email'];
$password = sha1($_POST['password']);
$joined = $_POST['joined'];
$gender = $_POST['gender'];
$notify = $_POST['notify'];
$terme = $_POST['terme'];
$token = sha1(uniqid(rand()));
$ip = $_POST['ip'];
$rang = '2';
$q = array('pseudo'=>$pseudo, 'email'=>$email, 'password'=>$password, 'joined'=>$joined, 'gender'=>$gender, 'notify'=>$notify, 'terme'=>$terme, 'rang'=>$rang, 'token'=>$token, 'ip'=>$ip);
$sql = 'INSERT INTO users ( pseudo, email, password, joined, gender, notify, terme, rang, token,ip) VALUES ( :pseudo, :email, :password, :joined, :gender, :notify, :terme, :rang, :token, :ip) ';
$req = $cnx->prepare($sql);
$req->execute($q);
//print_r($q);
if($_POST['terme'] == '1'){$_POST['terme'] = 'Oui';}
if($_POST['notify'] == '1'){$_POST['notify'] = 'Oui';}
//Envoyer un mail pour la validation du compte
$to = $email;
$sujet = 'Activation de votre compte '.$site.'';
$body = '
Bonjour '.$_POST['pseudo'].',<br>Nous vous souhaitons la bienvenue, cet email va vous permettre de valider votre inscription sur '.$urlsite.'.<br>
En vous inscrivant, vous devenez membre à part entière et vous pourrez ajouter des liens.<br>
Pour cela, vous devez activer votre compte en cliquant sur le lien ci-dessous<br>
<a href="'.$urlsite.'/index.html?token='.$token.'&email='.$to.'">Activation de mon compte</a><br>
Ou de copier/coller le lien ci-dessous, si le lien ci-dessus ne s\'affiche pas :<br>
'.$urlsite.'/index.html?token='.$token.'&email='.$to.'<br><br>
Vos identifiants de connexion :<br>
Email : <strong>'.$_POST['email'].'</strong><br>
Mdp : <strong>'.$_POST['password'].'</strong> <em>(Crypté dans la base de donnée)</em> <br>
Avez-vous accepté les conditions générales: <strong>'.$_POST['terme'].'</strong><br>
Etes-vous abonné à notre newsletter: <strong>'.$_POST['notify'].'</strong><br><br>
<em><span style="color:#E63C25;">Retenez bien ces informations, puis veuillez supprimer cet email afin d\'éviter tout abus sur votre compte</span></em><br><br>
Nous vous remercions pour votre confiance et nous espérons que vous prendrez du plaisir :)<br>
Nous restons disponible pour toutes demandes complémentaires.<br>
A bientôt,<br>---------<br>
L\'équipe de <a href="'.$urlsite.'">'.$domain .'</a><br>
Email: '.$compte_email.' <br>
Skype: '.$skype.' <br>-----------<br>
<em><a href="http://megafilmparadize.fr">MegaFilm Paradize</a></em>';
$entete = "MIME-Version: 1.0 \n";
$entete .= "Content-type: text/html; charset=utf-8 \n";
$entete .= "From: ".$domain ." <".$compte_email."> \n";
$entete .="Content-Transfer-Encoding: 8bit \n";
$entete .="Return-Path: ".$compte_email.""."\n";
@mail($to,$sujet,$body,$entete);
$ok = '<div class="alert alert-success">
<button type="button" class="close" data-dismiss="alert">×</button>
<strong>Enregistrement partiellement effectuée:</strong> N\'oubliez pas de valider votre compte en cliquant sur le lien envoyé par email !<br> (Vérifiez vos spams et autorisez le site à vous envoyer les prochains mails)
</div>';
}else{
if(!empty($_POST) && strlen($_POST['pseudo'])<4){
$error_prenom = '<div class="alert alert-error">
<button type="button" class="close" data-dismiss="alert">×</button>
<strong>Erreur:</strong> Votre "Pseudo" doit contenir au minimun 4 caractères !
</div>';
}
if(!empty($_POST) && !filter_var($_POST['email'], FILTER_VALIDATE_EMAIL)){
$error_email = '<div class="alert alert-error">
<button type="button" class="close" data-dismiss="alert">×</button>
<strong>Erreur:</strong> Votre email est invalide !
</div>';
}
if(!empty($_POST) && strlen($_POST['password'])<4){
$error_pass = '<div class="alert alert-error">
<button type="button" class="close" data-dismiss="alert">×</button>
<strong>Erreur:</strong> Le champ "Mot de passe" doit contenir au minimum 4 caractères !
</div>';
}
}
}
}
}else{$error_captcha = '<div class="alert alert-error">
<button type="button" class="close" data-dismiss="alert">×</button>
<strong>Erreur:</strong>Captcha incorrect !
</div>';}
}
}
}
?><!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="utf-8">
<title><?= $title_page_register; ?></title>
<meta content="IE=edge,chrome=1" http-equiv="X-UA-Compatible">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content="">
<meta name="author" content="">
<link rel="stylesheet" type="text/css" href="lib/bootstrap/css/bootstrap.css">
<link rel="stylesheet" type="text/css" href="stylesheets/theme.css">
<link rel="stylesheet" href="lib/font-awesome/css/font-awesome.css">
<script src="lib/jquery-1.7.2.min.js" type="text/javascript"></script>
<!-- Demo page code -->
<style type="text/css">
#line-chart {
height:300px;
width:800px;
margin: 0px auto;
margin-top: 1em;
}
.brand { font-family: georgia, serif; }
.brand .first {
color: #ccc;
font-style: italic;
}
.brand .second {
color: #fff;
font-weight: bold;
}
</style>
<!-- Le HTML5 shim, for IE6-8 support of HTML5 elements -->
<!--[if lt IE 9]>
<script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
<!-- Le fav and touch icons -->
<link rel="shortcut icon" href="../assets/ico/favicon.ico">
<link rel="apple-touch-icon-precomposed" sizes="144x144" href="../assets/ico/apple-touch-icon-144-precomposed.png">
<link rel="apple-touch-icon-precomposed" sizes="114x114" href="../assets/ico/apple-touch-icon-114-precomposed.png">
<link rel="apple-touch-icon-precomposed" sizes="72x72" href="../assets/ico/apple-touch-icon-72-precomposed.png">
<link rel="apple-touch-icon-precomposed" href="../assets/ico/apple-touch-icon-57-precomposed.png">
</head>
<!--[if lt IE 7 ]> <body class="ie ie6"> <![endif]-->
<!--[if IE 7 ]> <body class="ie ie7 "> <![endif]-->
<!--[if IE 8 ]> <body class="ie ie8 "> <![endif]-->
<!--[if IE 9 ]> <body class="ie ie9 "> <![endif]-->
<!--[if (gt IE 9)|!(IE)]><!-->
<body class="">
<!--<![endif]-->
<?php include 'navbar.php'; ?>
<?php if(isset($ok)){ echo $ok; } ?>
<?php if(isset($error_actif)){ echo $error_actif; } ?>
<?php if(isset($error_unknown)){ echo $error_unknown; } ?>
<?php if(isset($error_prenom)){ echo $error_prenom; } ?>
<?php if(isset($error_email)){ echo $error_email; } ?>
<?php if(isset($error_pass)){ echo $error_pass; } ?>
<?php if(isset($error_captcha)){ echo $error_captcha; } ?>
<div class="row-fluid">
<div class="dialog">
<div class="block">
<p class="block-heading"><i class="icon-pencil"></i> S'inscrire sur le site</p>
<div class="block-body">
<form action="sign-up.html" method="post">
<label><i class="icon-user"></i> Pseudo</label>
<input type="text" name="pseudo" placeholder="Pseudo" value="<?php echo $_POST['pseudo']; ?>" class="span12" required />
<label><i class="icon-envelope-alt"></i> Email</label>
<input type="text" name="email" placeholder="Email" value="<?php echo $_POST['email']; ?>" class="span12" required />
<label><i class="icon-key"></i> Password</label>
<input type="password" name="password" placeholder="Mot de passe" class="span12" required />
<label><i class="icon-key"></i> Confirmer le Password</label>
<input type="password" name="password2" placeholder="Mot de passe" class="span12" required />
<label>Recopiez ce code
<img src="captcha.php" id="captcha" /><i class="icon-refresh" id="refresh_cap" title="Actualiser le captcha" style="margin-left:10px; cursor:pointer;"></i></label><input name="captcha" type="text" placeholder="Code" required class="span12" style="width: 60px;">
<input type="hidden" name="joined" value="<?php echo date('Y-m-d H:i:s') ; ?>" />
<input type="hidden" name="ip" value="<?php echo $_SERVER['REMOTE_ADDR']; ?>" />
<label><i class="icon-question-sign"></i> Sexe <em style="color: #06F; margin-right:10px">Homme</em><input name="gender" <?php
if(isset($_POST['gender']) && $_POST['gender'] == "male") echo 'checked="checked"'; ?> type="radio" value="male"checked="checked" > <em style="color: #F6F; margin-right:10px;">Femme</em><input name="gender" <?php
if(isset($_POST['gender']) && $_POST['gender'] == "female") echo 'checked="checked"'; ?> type="radio" value="female" ></label>
<label><input name="notify" type="checkbox" value="1" checked <?php if ($_POST['notify'] == '1') { echo " checked=\"checked\""; } ?> />
Lettre d'indormation</label>
<label>
<input type="checkbox" value="1" checked <?php if ($_POST['terme'] == '1') { echo " checked=\"checked\""; } ?> name="terme" required> J'accepte <a href="#">les conditions générales</a></label>
<input type="submit" name="inscription" class="btn btn-success pull-right" value="Valider mon inscription" /><a class="btn pull-left" href="sign-in.html">Se connecter</a>
<div class="clearfix"></div>
</form>
</div>
</div>
<p style=""></p>
</div>
</div>
<script>
$(document).ready(function() {
$("#refresh_cap").click(function() {
$("#captcha").attr("src", "captcha.php?"+(new Date()).getTime());
});
});
</script>
<script src="lib/bootstrap/js/bootstrap.js"></script>
<script type="text/javascript">
$("[rel=tooltip]").tooltip();
$(function() {
$('.demo-cancel-click').click(function(){return false;});
});
</script>
</body>
</html>