Pb identification formulaire

Résolu/Fermé
elise0912 - 7 févr. 2011 à 11:56
 elise0912 - 7 févr. 2011 à 14:07
Bonjour a tous,

je suis débutante en php et je bloque...

j'ai créé un site en html et php, et dans une des pages de mon site il y a un formulaire d'inscription qui permet par la suite de se log dans une autre page pour voir des tarifs.

donc si vous n'êtes pas inscrit vous ne pouvez pas voir les tarifs...

se qui me pose problème c'est que j'arrive a bloquer l'accès a la page tarif si l'utilisateur entre les mauvais password ou login. j'arrive a faire la connexion avec la base de donnée c'est a dire que quand on met le bon mot de passe et le bon login la page tarif s'ouvre...

mon soucis, qui ne le sera pas pour vous je suis sure, c'est que quand je clique sur mon bouton valider sans avoir rentré ni password ni login ma page tarif s'ouvre... j'ai tous essayer et je ne vois pas se que je dois faire...

peut être c'est un problème avec ma requête ? avec mon bouton ?

je suis un peut perdu... :-(

si vous avez des idées, je vous en remercie.

Merci d'avance


voici mes codes:

ils sont simples pour que je comprenne mieux, je débute !!! :-)


feuilleconnection.php

<?php

//connection a la base de donnée
$connect=mysql_connect('localhost','root','')
 or die("Impossible de se connecter : " . mysql_error());
mysql_select_db("inscription",$connect) 
or die("Impossible de se connecter à la base : " . mysql_error());
																						
	extract($_POST);						
	$login = $_POST['login'];
	$password = $_POST['password'];

	$sql = "select login,password from nouvelleins where login='".$login."' and password='".$password."'"; 	

	$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());

	$data = mysql_fetch_assoc($req);

	if (($data['password'] == $password) && 
($data['login'] == $login))					
		{
			die(header("Location:feuilletarif2.php"));
		}

	if (($data['password'] != $password) && 
($data['login'] != $login))  							
		{	
			die(header("Location:feuilletarif.php"));				
		}

	if (($data['password'] != $password) || 
($data['login'] != $login))					
		{	
			die(header("Location:feuilletarif.php"));			
		}
		else
		{			
			die(header("Location:feuilletarif.php"));
		}

	if (($data['password'] == " ") && 
($data['login'] == ""))							
		{
		header("Location:feuilletarif.php");				
		}		
	
?>




connection.html

<form name="connection" method="post" action="feuilleconnection.php">
	<div id="saisie">
		<font color="#FF7F50" align=center><strong>Identifiant : </strong></font>
		<input type="text" name="login" size="20" maxlength="32"/><br/><br/>
		<font color="#FF7F50"><strong>Mot de passe :</strong></font>
		<input type="password" name="password" size="20" maxlength="20"/>
		<input type='reset' value='Annuler' name='annuler' onclick="effacer()"/>
		<input type='submit' value='Valider' name='Valider'/>
	</div>
</form>




Merci beaucoup

1 réponse

le_joker_fou Messages postés 764 Date d'inscription mercredi 5 août 2009 Statut Membre Dernière intervention 7 août 2014 239
7 févr. 2011 à 12:40
Salut,

Il y a 3 choses critique sur ton script d'identification.

La première tu ne vérifie jamais l'état de tes POST

extract($_POST);						
	$login = $_POST['login'];
	$password = $_POST['password'];

	$sql = "select login,password from nouvelleins where login='".$login."' and password='".$password."'"; 


Je te conseil d'ajouter ceci

extract($_POST);						
	$login = $_POST['login'];
	$password = $_POST['password'];

    if((isset($login) && !empty($login)) && (isset($password) && !empty($password)))
    {
        ....
     }
     else
     {
        echo "merci de saisir login ET mot de passe";
      }


Ensuite ton code est vulnérable à l'injection SQL, je t'invite à lire ceci : https://www.commentcamarche.net/faq/30686-php-erreurs-courantes-injection-sql-xss-upload

Enfin tes mots de passes sont en claire dans ta base ce qui est très moyen car si une personne s'introduit dans ta base c'est le jackpot pour lui.

Regarder les fonctions de hash en PHP : md5() ou sha1().

Avec tout ça tu devrais avoir une page de logue un peu mieux ;)
0
merci beaucoup pour ton aide !!! c'est génial ;-)
0