8791 sujets

Développement web côté serveur, CMS

Bonjour à tous,


<?php

session_start(); 
$loginOK = false; // initialisation de login 

if (isset($_POST['envoyer']) && $_POST['envoyer']=='Connexion')
  {
    //--- ouverture de la base ---
	$base = mysql_connect('*****','*****','*****');
	mysql_select_db('*****',$base);

    //--- mettre les données dans une variable. ---
	$secret = $_POST['password'];
	$nom = $_POST['login'];
	
	   

		// On va chercher le mot de passe dans la table qui contient les informations 
		$sql = "SELECT * FROM User WHERE login = '".addslashes($nom)."'";  
		$req = mysql_query($sql) or die('Erreur SQL : <br />'.$sql);  

		// On vérifie que l'utilisateur existe bien  
		if (mysql_num_rows($req) > 0)
		  {  
                    // On fait une boucle pour lister les résultats
                    while ($data = mysql_fetch_array($req))  
                      {  
                        // On vérifie que son mot de passe est correct  
                        if ($secret == $data['passwrd'])  
                          {  
                            $loginOK = true; 
                          }  
                      }  

		  }

    //--- fermeture de la base ---
	mysql_close();
	
  }


     // compteur de nbre de tentative 
     if (!isset($_SESSION['limitation']))  
	{  
	  $_SESSION['limitation'] = 1;  
	} 
 
     else 
	{  
	  $_SESSION['limitation'] = $_SESSION['limitation'] +1;  
	}  
   
     // Si le login a été validé on met les données en sessions  
     if ($loginOK)
	{ 
	  $_SESSION['limitation'] = 0;
	  $_SESSION = array();
	  session_destroy();
	  header("Status: 301 Moved Permanently", false, 301);
	  header("location: panel-administration.php");
	  exit();
	} 


	  // teste du nombre d'essai 
	  if ($_SESSION['limitation'] <= 3)  
	    {  
		$essai = $_SESSION['limitation'];
		if ($essai == 1)
  		  { $message = 'Premier';}
		elseif ($essai == 2)
		  { $message = 'Deuxiéme';}
		elseif ($essai == 3)
		  { $message = 'Attention! dernier';}
    		echo "<form method='post' action='connexion.php'>";
    		echo "<div class='login'>";
    		echo "<div class='titreconnect'></div>";
    		echo "<div class='connect'>";
    		echo "Veuillez vous identifier pour acceder au panel";
    		echo "<br><br>";
		echo "$message essai";
		echo "<br><br>";
    		echo "Identifiant : <input type='text' name='login' size='25'>";
    		echo "<br><br>";
    		echo "Mot de passe : <input type='password' name='password' size='25'>";
    		echo "<br><br>";
    		echo "<input type='submit' name='envoyer' value='Connexion'>";
    		echo "</div></div>";
    		echo "</form>";
	    }
		  
	  if ($_SESSION['limitation'] > 3)  
            {   
		$_SESSION['limitation'] = 0;
		$_SESSION = array();
                session_destroy();
		echo "<div class='login'>";
		echo "<div class='titreconnect'></div>";
		echo "<div class='connect'>";
		echo "<table width='410px' height='210px'>";
		echo "<tr><td align='center'>";
		echo "<h2>Cet utilisateur est inexistant</h2>";
		echo "<br>";
		echo "<h3>Aller en Page d'accueil du CDI</h3>";
		echo "<h3>cliquez <a href='../index-cdi.php'>ICI</a></h3>";
		echo "</td></tr>";
		echo "</table>";
		echo "</div></div>";
            }

?>

ce code fonctionne trés bien sous ie, mais sous firefox pas moyen d'avoir mes nombres de tentative ?

mais j'arrive à me connecter avec le bon code...
Modifié par flattazor (23 Feb 2009 - 18:59)
Hello,

flattazor a écrit :
ce code fonctionne trés bien sous ie, mais sous firefox pas moyen d'avoir mes nombres de tentative ?
A priori un problème de paramétrage de ton navigateur (Accepter les cookies).

En passant : jeter un oeil à mysql_real_escape_string.
salut,

oui, c'était ça Smiley confus , moi qui cherchai une erreur sur mon code... Smiley biggol

je connaissais mysql_real_escape_string, je le mettrais mais en plus avec trim

ce qui donnera pour mes variables

$nom=mysql_real_escape_string(trim($_POST['login']));
$secret=mysql_real_escape_string(trim($_POST['password']));


Merci à toi pour le coup de pouce, il est vrai qu'on ne regarde jamais les paramètres du navigateur Smiley ohwell , du moins moi Smiley confused
flattazor a écrit :
Pour info

il est préferable de faire deux fichiers distincts...
Euh... à quel propos ?... Et pourquoi ?
parce que chez moi sur mon serveur local sous easyphp 2.0b1 (php5) fonctionne trés bien, une fois que je l'ai hebergé sur un serveur php4 des erreurs sont survenues sur la session....je ne sais pas pourquoi, j'ai du le faire en deux partie, du coup j'ai tout changer le code.... même carrément...

c'était des messages du type session_start cookie failed et encore un autre que je ne sais plus.
flattazor a écrit :
c'était des messages du type session_start cookie failed et encore un autre que je ne sais plus.
Ah OK ! Ça ne me parle pas du tout. Smiley murf

Par contre je suis surpris qu'un hébergeur actuel ne propose pas php5 (soit via le .htaccess soit avec une extension de page particulière).