Problème à la connexion

Eléphanteau du PHP | 10 Messages

21 juil. 2014, 23:52

Bonjour,
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&nbsp;&nbsp;&nbsp; <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>