Connexion_php

antous -  
antous Messages postés 32 Statut Membre -
Bonjour,
j'ai un petit pb pr mon script de connexion utilisateur!!! kelkun pourra t'il maider???
voici le code:

<?php
// On démarre la session
session_start();
$loginOK = false; //

mysql_connect("localhost","root","");
mysql_select_db("");

$login=$_POST['login'];
$mdp=$_POST['mdp'];

// On n'effectue les traitement qu'à la condition que
// les informations aient été effectivement postées

if (isset($_POST['login']) && isset($_POST['mdp'])) {


// On va chercher le mot de passe afférent à ce login
$sql = "SELECT * FROM clients WHERE login = '".addslashes($login)."' and mdp = '".addslashes($mdp)."'";
$req = mysql_query($sql) or die('Erreur SQL : <br />'.$sql);

// On vérifie que l'utilisateur existe bien
if (mysql_num_rows($req) > 0) {
$data = mysql_fetch_assoc($req);

// On vérifie que son mot de passe est correct
if (($login == $data['login'])and ($mdp == $data['mdp']) ) {
$loginOK = true;
}
}
}

// Si le login a été validé on met les données en sessions

if ($loginOK)
{
$_SESSION['login'] = $data['login'];
$_SESSION['mdp'] = $data['mdp'];

echo "Bienvenue $login";

}
else {
echo "<center><font color='#ED5866'><b><h4>Acces non autorise ou veuillez vous s'inscrire.</h4></b></font></center>";
require('login.html');


exit;
}

mysql_close();
?>

22 réponses

la crap Messages postés 49 Date d'inscription   Statut Membre Dernière intervention   4
 
quel est ton probleme ?
As tu des messages d'erreur...
0
antous
 
wè j'ai petit pb, on m'affiche seulement le message "accès non autorisé ou veuillez vous inscrire", et on me redirige sur la page "login.html";
0
la crap Messages postés 49 Date d'inscription   Statut Membre Dernière intervention   4
 
Tu es sur de ton accès à ta base de donnée ?
0
antous Messages postés 32 Statut Membre 2
 
g ajouté la ( ki mank et on m'affiche ça:
Parse error: syntax error, unexpected '{' in C:\Users\Deline\wamp\www\test1\test'\login.php on line 23
0

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

Posez votre question
Utilisateur anonyme
 
Bonjour

si après
$login=$_POST['login'];
$mdp=$_POST['mdp'];

vous rajoutez :
echo "<pre>";print_r($_POST);echo "</pre>";
vous saurez si login et mdp sont renseignés, alors vous pourrez faire quelque chose,
mais actuellement le script que vous nous donnez ne peut nous permettre de vous en dire plus !

d'où viennent ces variables ?
--
0
la crap Messages postés 49 Date d'inscription   Statut Membre Dernière intervention   4
 
Normal il manquait pas de (, c'est moi qui ne sais pas compter ;)

je trouve ton code un poil compliqué car tu verifies en deux temps le login et mdp
ta requete suffit
$sql = "SELECT * FROM clients WHERE login = '".addslashes($login)."' and mdp = '".addslashes($mdp)."'";
tu valides mdp et login

voila ce que j'utilise, te reste plus qu'a l'adapter
include 'connexion.inc.php';

@$pseudo=$_GET['pseudo'];
@$password=$_GET['pass'];
 $_SESSION['pseudo'] = $pseudo ;
 $_SESSION['password'] = $password ;
 
$sql="SELECT * FROM table  WHERE pseudo = '".$_SESSION['pseudo']."' AND password = '".$_SESSION['password']."' ";
$result=mysql_query($sql);
$val = mysql_fetch_array($result);
if(!$val)
{ 
     $_SESSION['etat'] = null ;
}else
{
    $_SESSION['etat'] = "valide" ;
} 
    


Tu noteras que j'utilise un fichier pour la connexion à la base de donnée
0
antous Messages postés 32 Statut Membre 2
 
les variables viennent d'un formulaire login.html,
voici le formulaire en kestion:

<form Action ="login.php" Method ="POST" name = "Espace Client">

<table border="0" cellpadding="0" cellspacing="0">
<h4>Commande</h4>
<p><h4>Espace Client: Veuillez vous identifier</h4></p>
<br>
</table>
<table width = "350" border ="0" bgcolor="#8080FF" cellpadding="2" cellspacing="2">
<tr></tr><tr></tr><tr></tr><tr></tr><tr></tr><tr></tr><tr></tr><tr></tr><tr></tr><tr></tr><tr></tr>

<tr height="15">
<td width = ""> <div align = "right"> Login </div></td>
<td><input name = "Login" type = "text" Id = "Login" /></td>
</tr>

<tr>
<td> <div align = "right"> Mot de Passe </div></td>
<td><input name = "Password" type = "Password" Id = "Password" /></td>
</tr>

<tr>
<td colspan = "2">
<div align = "center">
<input type = "Submit" name = "Submit" Value = "Connection" /></td>
</div>
</td>
</tr>
<tr></tr><tr></tr><tr></tr><tr></tr><tr></tr><tr></tr><tr></tr>
</table>

<tr><td>  </td></tr>
<tr><td>  </td></tr>

<table width = "350" border ="0" bgcolor="#8080FF">
<tr>
<td><div align = "center">
Si vous êtes nouveau <a href="ficheClient.html">Inscrivez-vous</a>
</div>
</td>

</tr>
</table>

j'ai ajouté la ligne mais voilà ce ke ça donne:

Array
(
[Login] => charlene
[Password] => toto
[Submit] => Connection
)

Acces non autorise ou veuillez vous s'inscrire.

et on me redirige sur login.html
0
Utilisateur anonyme
 
alors première remarque, si le name de login est bien login, le name du mot de passe ets Password et pas mdp ce qui fait que $mdp = $_POST[[mdp']; ne contient rien
--
0
la crap Messages postés 49 Date d'inscription   Statut Membre Dernière intervention   4
 
Le probleme vient de :
<td><input name = "Password" type = "Password" Id = "Password" /></td>

Essaye avec:
<td><input name = "mdp" type = "Password" Id = "Password" /></td>
0
toto
 
Bonjour

Même si ça n'est pas là le problème...
C'est tellement absurde de vouloir vérifier le login et le mot de passe alors qu'il y a un WHERE dans ta requête.
0
antous Messages postés 32 Statut Membre 2
 
j'ai rectifié le mot de passe par "mdp", mais on ne m'affiche tjrs le message d'erreur "accès non autorisé";
0
la crap Messages postés 49 Date d'inscription   Statut Membre Dernière intervention   4
 
Laisse le name='mdp' et remplace ton name='Login' par un name='login' je ne sais plus si php est sensible à la case, mais si cela ne viens pas de la alors je seche (surtout si tu es sur que ton login et mdp sont juste)

Apres il faut faire tu pas a pas pour voir ce qui ce passe et ou est ce que ca merde
0
Utilisateur anonyme
 
ajoutez des echo du contenu des varaibles tout au long de votre code pour trouver là où le bât blesse.

par exmeple au retour de votre requête
if (($login == $data['login'])and ($mdp == $data['mdp']) )

0
antous Messages postés 32 Statut Membre 2
 
merci ça marche, tu as raison, la crap, php est sensible à la casse; pck j'utilise php5;
0
antous Messages postés 32 Statut Membre 2
 
j'ai encore un petit souci pour un autre script d'insertion des utilisateurs, presk le meme pb ke l'autre, je suis debutante en php, c pkoi je demande des aides;

cette fois ci c pour l'inscription des clients dans la base,
si les champs sont renseignés, on m'affiche juste le message d'erreur "Les champs n'ont pas étés correctements renseignés. Veuillez les remplir."; alors k'es k'il fo faire????

je vous donne le code:

<?php
//connexion a la base
$connexion=mysql_connect ("localhost", "root", "")or die("Erreur de connexion:".mysql_error($connexion));
mysql_select_db("", $connexion)or die("Erreur de connexion:".mysql_error($connexion));

//on recupère les variables issues du formulaire
$nom=trim($_POST["nom"]);
$prenom=trim($_POST["prenom"]);
$adresse=trim($_POST["adresse"]);
$ville=trim($_POST["ville"]);
$cp=trim($_POST["cp"]);
$pays=trim($_POST["pays"]);
$mail=trim($_POST["mail"]);
$phone=trim($_POST["phone"]);
$login=trim($_POST["login"]);
$mdp=trim($_POST["mdp"]);
$confirme_mdp=trim($_POST["confirme_mdp"]);
$num_cb=trim($_POST["num_cb"]);

//si les champs importants n'ont pas été renseignés
if($nom=="" || $prenom=="" || $mail=="" || $login=="" || $mdp=="" || $confirme_mdp=="")
{ ?> <div align="center"> <?php echo "Les champs n'ont pas étés correctements renseignés. Veuillez les remplir.";
?> </div> <?php
//on redirige le visiteur
include('ficheClient.html');
}
else
{ //requete pour s'assurer que le client n'est pas deja inscrit
$query =" SELECT login FROM clients";
$query.=" WHERE login = ".'"'. $login ."'.";

$result=mysql_num_rows(mysql_query($query));
if($result>=1)
{ ?> <div align="center"> <?php echo "Le login <b>$login</b> existe déjà!<br/>";
?> </div> <?php
//on redirige le visiteur
include('ficheClient.html');
}
else
{ //écriture de la requete d'insertion dans la table clients
$requete = " INSERT INTO clients ( nom, prenom, adresse, ville, cp, tel, email, login, email, confirm_mdp, num_cb)";
$requete.= " VALUES ('$nom','$prenom','$adresse','$ville','$cp','$pays','$mail','$phone','$login','$mdp','$confirme_mdp', 'num_cb')";
$result=mysql_query($requete, $connexion)or die(mysql_close());

?> <div align="center"> <?php echo "Le client <b>$prenom $nom</b> a été enregistré.";
?> </div> <?php
}
}

?>
0
la crap Messages postés 49 Date d'inscription   Statut Membre Dernière intervention   4
 
Je comprend pas vraiment pourquoi tu fait ta requete ($requete) en 2 etapes, de plus tu selectionnes 11 champs et tu en renseigne 12
Donc soit tu as oublié pays soit il est de trop..

{ //écriture de la requete d'insertion dans la table clients
$requete = " INSERT INTO clients ( nom, prenom, adresse, ville, cp, tel, email, login, email, confirm_mdp, num_cb)";
$requete.= " VALUES ('$nom','$prenom','$adresse','$ville','$cp','$pays','$mail','$phone','$login','$mdp','$confirme_mdp', 'num_cb')";
$result=mysql_query($requete, $connexion)or die(mysql_close());
0
antous Messages postés 32 Statut Membre 2
 
j'ai enlever le champs "pays", mais c tjrs le meme msg d'erreur;
0
Utilisateur anonyme
 
affichez ce qu'ils contiennet
ici
//si les champs importants n'ont pas été renseignés
if($nom=="" || $prenom=="" || $mail=="" || $login=="" || $mdp=="" || $confirme_mdp=="")
{ ?> <div align="center"> <?php echo "Les champs n'ont pas étés correctements renseignés. Veuillez les remplir.";

peut être que les champs ne contiennent pas ce que vous attendez. les gens qui vous assistent ne le voient pas non plus

--
0
la crap Messages postés 49 Date d'inscription   Statut Membre Dernière intervention   4
 
Humm normal... tu es bloqué avant (ca m'apprendra à lire le code à l'envers).
Toujours est il que le probleme de pays et réel et que ta requete est pas bonne sans la derniere modif

Je pense que ton probleme doit etre du meme ordre que celui de 'mdp'
Verifie dans ton formulaire que tout tes <input ... name='variable' > corresponde à ce que tu recupere avec ton POST

Formulaire question:
name='mdp'

Code traitement:
$mdp=$_POST['mdp']

Bon apres si cela ne marche toujours pas le plus simple c'est que tu m'envoye ton code...
0
antous Messages postés 32 Statut Membre 2
 
j'ai verifié

voici le code html

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Formulaire Client</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

</head>

<body>


<form Action ="inscription.php" Method ="POST" name = "FormulaireClient">

<center>
<font size="4"color="#000066"><strong>Fiche d'inscription</strong></font>
<p>
<font size="4" color="#660000"><strong>Identité</strong></font></p>

<br> 
<table width = "350" border ="0" bgcolor="#8080FF" cellpadding="2" cellspacing="2">

<tr>
<td> <div align = "right"> Nom </div></td>
<td><input name = "nom" type = "text" Id = "nom" /></td>
</tr>

<tr>
<td> <div align = "right"> Prénom </div></td>
<td><input name = "prenom" type = "text" Id = "pré" /></td>
</tr>
<tr>
<td> <div align= "right"> Adresse </div></td>
<td><input name="adresse" type="text" Id="adresse" /></td>
</tr>
<tr>
<td> <div align="right"> Ville </div></td>
<td><input name="ville" type="text" Id= "ville" /></td>
</tr>
<tr>
<td> <div align="right"> Code postal </div></td>
<td><input name="cp" type="text" Id= "cp" /></td>
</tr>
<tr>
<td> <div align="right"> Téléphone </div></td>
<td><input name="phone" type="text" Id= "phone" /></td>
</tr>
<tr>
<td> <div align="right"> Email </div></td>
<td><input name="mail" type="text" Id="mail" /></td>
</tr>
<tr>
<td> <div align="right"> N° carte bancaire </div></td>
<td><input name="num_cb" type="text" Id="num_cb" /></td>
</tr>
</table>

<br> 
<font size="4" color="#660000"><strong>Informations relatives aux comptes</strong></font>

<br> 
<table width = "350" border ="0" bgcolor="#8080FF" cellpadding="2" cellspacing="2">
<tr>
<td> <div align="right">Login </div></td>
<td><input name="login" type="text" Id= "login" /></td>
</tr>
<tr>
<td> <div align="right">Mot de passe </div></td>
<td><input name="mdp" type="password" Id= "mdp" /></td>
</tr>
<tr>
<td> <div align="right">Confirmer le mot de passe </div></td>
<td><input name="confirme_mdp" type="password" Id= "confirme_mdp" /></td>
</tr>
<tr>
<td colspan = "2">
<div align = "center">
<input type = "Reset" name = "Reset" Value = "Annuler" />
<input type = "Submit" name = "Submit" Value = "Inscription" /></div></td>
</tr>

</table>
</center>
</form>
</body>
</html>
0
la crap Messages postés 49 Date d'inscription   Statut Membre Dernière intervention   4
 
Je viens de tester, et pour moi tout est Ok

Si tu debute je te conseil de faire l'aquisition d'un soft pour d'aider à debugger.
Perso j'utilise phped (version standard) qui fait du pas à pas avec l'affichage des variables, des erreurs etc etc...

C'est un bon investissement, tu gagneras pas mal de temps !

PHPEd n'est pas le seul à proposer du pas à pas... Maintenant te dire lequelle est le meilleur, c'est une autre histoire ;)
0
antous Messages postés 32 Statut Membre 2
 
ben kes ke je dois faire??? y'a pa une autre solution pr créer un autre script??
0
la crap Messages postés 49 Date d'inscription   Statut Membre Dernière intervention   4
 
Le script que tu nous as soumis, apres les petites correction fonctionne.
Je ne vois pas ce que nous pourrions faire de plus.
0