Page connexion php

MISS97200 Messages postés 186 Date d'inscription   Statut Membre Dernière intervention   -  
Posotaz Messages postés 489 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour, j'ai un problème avec ma page de connexion. En fait l'utilisateur doit s'authentifier pour pouvoir accéder au programme.
Avec le code que j'ai écris, il ne prend en compte que le fait que les champs ne doivent pas être vide mais il ne vérifie pas si l'utilisateur et le mot de passe sont corrects.
Voici mon code
mysql_connect ('localhost', 'root');
mysql_select_db ('marche_public');
$erreur='';
$err='';
$sql='';

if ( !empty($_POST['valider']) )
{
if (empty($_POST['user']))
{
$erreur.=' votre identifiant';
}
elseif(empty($_POST['mdp']))
{
$erreur.=' votre mot de passe';
}

if (empty($erreur))
{
$sql="SELECT * FROM user WHERE user='{$_POST['user']}' AND mdp='{$_POST['mdp']}'";
if ($sql = 0)
{
?>
<script type="text/javascript">
alert('Mauvais identifiant ou mauvais mot de passe');
</script>
<?php
}
else
{
//c ok
//afficher page menup
header("Location:menup.php");
exit();
}
}
}

?>

Pouvez vous m'indiquer mes erreurs svp.

6 réponses

Utilisateur anonyme
 
Bonjour

mysql_connect ('localhost', 'root'); => ca serai bien de mettre aussi le mot de passe ^^
mysql_connect ('localhost', 'root','motdepasse');


pour faire une requete en php

mysql_query("SELECT....") ;
ou mysql_query($sql) ;
0
MISS97200 Messages postés 186 Date d'inscription   Statut Membre Dernière intervention   11
 
si ta BDD n'a pas de mot de passe, tu ne mets rien.
Et pour ma requête j'ai testé en sql et elle fonctionne.
0
Utilisateur anonyme
 
une BDD sans mot de passe ? o_O j'espere que c'es en test sur ton ordi lol et pas sur internet...

sinon tu n'envoi pas la requete au serveur BDD dans ton code... donc tu ne peu pas avoir de reponse en retour

d'ou l'utilisation de mysql_query()
0
Posotaz Messages postés 489 Date d'inscription   Statut Membre Dernière intervention   225
 
Autre chose en plus des précédents conseils :

if ($sql = 0) affecte la valeur 0 à la variable $sql... tu as certainement confondu avec l'opérateur d'égalité ==

Pour éviter ce genre de situation, mets toujours les right-value à gauche et les left-value à droite autant que possible : if( 0 == $sql) ainsi si par inadvertance tu fais if(0 = $sql) tu obtiendras une erreur plutôt qu'un fonctionnement suspect.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
MISS97200 Messages postés 186 Date d'inscription   Statut Membre Dernière intervention   11
 
mon projet est sur mon pc uniquement.
merci Posotaz pour l'astuce, c'est fait, j'ai rectifié. J'ai changé un peu mon code, et là, plus rien ne passe, j'ai l'impression qu'il ne prend que le sinon.
Pouvez vous m'aider, voici mon code

<?php
mysql_connect ('localhost', 'root');
mysql_select_db ('marche_public');
$erreur='';
$err='';
$sql='';
$uti='';
$motpass='';


if ( !empty($_POST['valider']) )
{
if (empty($_POST['user']))
{
$erreur.=' votre identifiant';
}
else
{
$uti =$_POST['user'];
}
if(empty($_POST['mdp']))
{
$erreur.=' votre mot de passe';
}
else
{
$motpass = $_POST['mdp'] ;
}

if (empty($erreur))
{
$sql="SELECT COUNT(*) FROM user WHERE $uti= 'Nom_user' ";
$sql2 = "SELECT COUNT (*) FROM user WHERE $motpass= 'mdp_user' ";
if (($sql != 0) AND ($sql2 != 0))
{
/*?>
<script type="text/javascript">
alert('Mauvais identifiant ou mauvais mot de passe');
</script>
<?php
}
else
{
c ok
afficher page menup
*/header("Location:menup.php");
}
else
{
echo 'mauvais identifiant ou mauvais mot de passe';
}
}
}

?>
0
Posotaz Messages postés 489 Date d'inscription   Statut Membre Dernière intervention   225
 
Arfeuh... tu t'enfonces là.

Relis bien les conseils des précédents intervenants... C'est à dire qu'il faut exécuter la requête à l'aide mysql_query(); Je te conseille de lire un tutoriel sur le PHP et l'accès aux bases de données, ça te sera très utile.

En fait ce que tu fais c'est :
- Mettre une chaine de caractère (select...) dans la variable $sql et pareil pour $sql2... et puis tu compares une chaine de caractères avec la valeur entière 0 O_o Il y a un problème, tu dois exécuter la requête, récupérer le résultat (résultat qui ne sera pas d'un type primitif, tu reçevras une collection bien particulière et c'est pour cette raison qu'il te faudra apprendre un peu mieux le PHP et les fonctions mysql_... fetch_array... row_count (si ça existe ou un truc qui y ressemble)...

Et puis ta deuxième version de la requête de sélection est très fausse, la précédente était correcte. ;-)

Bon courage !
0