Problème de lien entre bdd et page php

bougral
Invité n'ayant pas de compte PHPfrance

18 juil. 2012, 01:38

Bonjour à tous, je bloque depuis quelques heures sur un problème de liaison entre une base de données et des pages en php, la fatigue arrivant je décide donc de poster sur ce forum ^^ :

J'ai donc deux pages, un formulaire sur 'login.php', la réception des données ce fait sur 'login1.php'. Il s'agit d'une page de connexion, je dois donc vérifier si le pseudo et le mot de passe correspondent à ce qu'il y a dans la base de données. C'est là où surgit le problème, même en mettant le bon pseudo et le bon mot de passe, la page me renvoi une erreur...

Contenu de la base :

id 1
pseudo bob
mail [email protected]
pass b6edd10559b20cb0a3ddaeb15e5267cc (md5 de motdepasse)

Contenu de login.php :
<?php
include ('./inc/accesbdd.php'); //accès à la bdd
?>

<form id="subscribe-form" method="post" action="login1.php">

	
	<div class="center">
		<?php
			if ($_GET['error'] == 1) { //reception de l'erreur
				echo 'Adresse mail ou mot de passe invalide';
			}
			
		?>
		<br><br>
		<input type="text" id="pseudo" name="pseudo" size="25" maxlength="250" placeholder="Pseudo"/>
		<input type="password" id="pass" name="pass" size="25" maxlength="250" placeholder="Mot de passe"/><br><br>
		<input type="submit" name="connexion" value="Se connecter" />

	</div>
</form>
</div>

Contenu de login1.php :

<?php
include ('../inc/acces.php');
$pseudo = mysql_real_escape_string($_POST['pseudo']);
$password = $_POST['pass'];
$query = 'SELECT id FROM users WHERE pseudo="'.$pseudo.'" AND password="'.md5($password).'"';
$result = mysql_query($query);


if ($data = mysql_fetch_assoc($result))
{
	
	header('Location: http://mlesite.com'); 
}
else
{
	header('Location: login.php?error=1');
}

?>
____________________________

Merci de prendre le temps de vous pencher sur mon problème, en espérant une réponse aussi rapide que constructive.

bougral
Invité n'ayant pas de compte PHPfrance

18 juil. 2012, 01:41

Je viens de remarque qu'il y avait une erreur dans la réception du formulaire, mais même avec la correction il n'y a rien de neuf... :(

ViPHP
xTG
ViPHP | 7331 Messages

18 juil. 2012, 09:00

Sous MySQL les chaînes de caractères sont entourées de simple quotes et non de doubles quotes. :)
Tu peux utiliser mysql_error() pour récupérer l'erreur s'il y en a une de générée.
Ainsi qu'afficher la valeur du md5() utilisée dans la requête pour la comparer manuellement à celle de la BDD.

Bougral
Invité n'ayant pas de compte PHPfrance

18 juil. 2012, 14:11

J'ai effectué les modifications, j'ai vérifié le md5, mais ce ne marche toujours pas... :(
Je commence à désespérer... J'ai regardé sur d'autres pages de mon site où des bdd sont utilisées, c'est exactement la même syntaxe et ca marche ><

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

18 juil. 2012, 14:19

salut,

commente les header (//) et regarde ce qui se passe.

tu peux ajouter un var_dump($query) histoire de voir a quo ressemble la requete SQL et la tester dans une client SQL (comme phpmyadmin par exemple).


@+
Il en faut peu pour être heureux ......