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 -
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.
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.
A voir également:
- Page connexion php
- Gmail connexion - Guide
- Supprimer page word - Guide
- Imprimer tableau excel sur une page - Guide
- Site inaccessible n'autorise pas la connexion - Guide
- Page d'accueil - Guide
6 réponses
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) ;
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) ;
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.
Et pour ma requête j'ai testé en sql et elle fonctionne.
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()
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()
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.
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.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
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';
}
}
}
?>
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';
}
}
}
?>
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 !
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 !