Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD > PHP & SQL-Server
PHP & SQL-Server Forum d'entraide sur SQL-Server avec PHP. Avant de poster -> FAQ SQL-Server
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 08/08/2007, 11h44   #1
Invité régulier
 
Inscription : mai 2007
Messages : 63
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 63
Points : 7
Points : 7
Par défaut Page authentification

Bonjour à tous,

je viens de créer un formulaire pour la page d'identification avant l'accès a la base de données, le probleme c'est ma condition de comparaiso, entre les login et le password saisis et ceux enregistrer dans ma base ne fonctionnne pas !!

alors je ne sais pas ou ça coince ???
mon code estl e suivant :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
 
 
 
 
<?php
require ("fonctions.inc");
 
session_start();
 
$pseudo ="";
$password ="";
$message="";
 
//tester le script comment est appelé
 
if (!empty($_POST)) {
//traitement du formulaire
 
//Recuperation des valeurs saisies
$pseudo=valeur_saisie ($_POST["pseudo"]);
$password=valeur_saisie ($_POST["password"]);
//controler les valeurs saisies
	if ($pseudo=="") {
	$message .="Veuillez saisir la référence de l'article.\n";
	}
 
 
 
 
$connexion = mssql_connect("monserveur","","");
 
$sqldb=mssql_select_db("CONTROLE_RECEPTION",$connexion);
 
$sql = mssql_query("SELECT pseudo, password FROM MEMBRES WHERE 
 
pseudo='$pseudo'");
 
 
while ($membre = mssql_fetch_array($sql))
{
 
	if (!empty($_POST['pseudo']) AND !empty($_POST['password']))
	{
		if($membre['password']== $password )
		{
 
 
		$_SESSION['pseudo'] = $membre['pseudo'];
 
		$pseudo = htmlentities(addslashes($_SESSION['pseudo']));
		echo '<a href="accueil.php">Accéder a la base</a>';
		}
		else
		{
	echo '<script langage="javascript">alert("Vos Identifiants sont 
 
incorrects, veuillez réessayer"); 
 
window.location.href="authentification.php";</script>';
		}
	}
 
}
 
?>
 
<HTML>
<BODY>
 
<form method="post">
 
<B>Login :</B>
 
<INPUT TYPE="text" Name="pseudo">
 
<B>Password :</B>
<INPUT TYPE="text" Name="password">
 
<BR><BR>
<INPUT TYPE="submit" NAME="OK" VALUE="CONNEXION">
 
 
</center></table></form>
 
</BODY>
</HTML>
Merci beaucoup de votre aide
agur29 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/08/2007, 11h51   #2
Membre chevronné
 
Avatar de LeXo
 
Inscription : janvier 2004
Messages : 1 147
Détails du profil
Informations personnelles :
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations forums :
Inscription : janvier 2004
Messages : 1 147
Points : 782
Points : 782
mssql_connect<< mysql_connect ? non ?

regardes ce que tu envoies a la base de donnée
en faisant un echo apres ton query
Code :
1
2
3
echo"SELECT pseudo, password FROM MEMBRES WHERE 
 
pseudo='$pseudo'";
en outre sur ton query tu peux afficher l'erreur en faisant

Code :
mysql_query($sql) or die("Erreur SQL : ". $sql ."<br>".mysql_error());
LeXo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/08/2007, 12h04   #3
Invité régulier
 
Inscription : mai 2007
Messages : 63
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 63
Points : 7
Points : 7
merci pour la réponse,

le probelème n'est dans mssql car je travaille sur MS SQL server.

si je fais
Code :
1
2
foreach($membre as $test){
print"".$test."<br/>"
dans le while il m'affiche bien les pseudo et password de ma base mais lors de la comparaison
Code :
if($membre['password']== $password )
ça marche pas ! il m'affiche direct le message d'erreur "veuillez réesser"
agur29 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/08/2007, 12h11   #4
Membre Expert
 
Inscription : janvier 2005
Messages : 2 288
Détails du profil
Informations forums :
Inscription : janvier 2005
Messages : 2 288
Points : 2 287
Points : 2 287
Affiche le contenu des mots de passes avec var_dump() il y a surement une erreur (genre un espace, ou un accent mal codé)
Code :
1
2
var_dump($membre['password']);
var_dump($password);
koopajah est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/08/2007, 12h17   #5
Invité régulier
 
Inscription : mai 2007
Messages : 63
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 63
Points : 7
Points : 7
Merci pour la réponse,

effectivement l'erreur vient de la taille de la variable une fois il m'affiche :
string (10) et une autre string (4) ....mais je sais pas comment résoudre ça ??
agur29 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/08/2007, 12h24   #6
Membre Expert
 
Inscription : janvier 2005
Messages : 2 288
Détails du profil
Informations forums :
Inscription : janvier 2005
Messages : 2 288
Points : 2 287
Points : 2 287
Bah je ne sais pas, le contenu est quand meme exactement le meme a l'affichage? parce que 6 caractères de différences ca me semble beaucoup meme pour une histoire d'accent.
koopajah est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/08/2007, 14h08   #7
Invité régulier
 
Inscription : mai 2007
Messages : 63
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 63
Points : 7
Points : 7
apparemment comme j'ai fixé la taille de la variable dans ma table à 10 même si le nombre de caractères de pseudo est de 4 à la comparaison via PHP il charge les 4 caracètres plus je pense des espaves blanc ! c bizzare je trouve !

pour le moment la solution c'est que je suis obligé de fixer la taille di pseudo et password !

voila merci si y a qlq un qui voit comment supprimer less espaces blancs ça sera mieux !
agur29 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/08/2007, 14h09   #8
Membre Expert
 
Inscription : janvier 2005
Messages : 2 288
Détails du profil
Informations forums :
Inscription : janvier 2005
Messages : 2 288
Points : 2 287
Points : 2 287
Pour supprimer les espaces blancs il y a trim() mais je ne vois pas pourquoi ton formulaire rajouterai des espaces.
koopajah est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/08/2007, 14h10   #9
Membre habitué
 
Avatar de dream_of_australia
 
Inscription : juin 2007
Messages : 167
Détails du profil
Informations personnelles :
Âge : 27
Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

Informations forums :
Inscription : juin 2007
Messages : 167
Points : 104
Points : 104
Pourquoi ne pas essayer if (strcmp ($membre['password'], $password) == 0) au lieu de
if($membre['password']== $password )
__________________
http://www.castaliope.fr
dream_of_australia est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/08/2007, 16h15   #10
Invité régulier
 
Inscription : mai 2007
Messages : 63
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 63
Points : 7
Points : 7
j'ai essayé le if (strcmp ($membre['password'], $password) == 0) ça n'a rien changé, pour je me contente de fixer la longueur de pseudo et password (qui sont des char) ça me suffit.

merci beaucoup à tous
agur29 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 10h34.


 
 
 
 
Partenaires

Hébergement Web