Précédent   Forum des professionnels en informatique > PHP > Langage > Syntaxe
Syntaxe Forum d'entraide sur la syntaxe de PHP et la POO. Avant de poster -> FAQ syntaxe, Cours d'initiation et cours de POO
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 01/01/2008, 09h52   #1
Invité de passage
 
Inscription : octobre 2007
Messages : 14
Détails du profil
Informations personnelles :
Localisation : Canada

Informations forums :
Inscription : octobre 2007
Messages : 14
Points : 2
Points : 2
Envoyer un message via MSN à Jimmy Monkey
Par défaut Parse error: unexpected '='

Bonjour,

Mon serveur me renvoie l'erreur suivante et je ne sais pas pourquoi: Parse error: syntax error, unexpected '=' in /home/.../signin.php on line 48

Le code est le suivant:
Code :
1
2
3
4
5
6
7
8
9
10
11
if(md5($_POST["password"]) = $row["password"])
{
$expiration = empty($_POST["auto_signin"]) ? 0 : time() + 90 * 24 * 60 * 60;
 
setcookie("id_utilisateur", $row["id"], $expiration, "/");
setcookie("nom_utilisateur", $row["user_name"], $expiration, "/");
 
mysql_close();
 
header("Location: index.php");
}
Quelqu'un peut m'aider? Merci!
Jimmy Monkey est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/01/2008, 13h34   #2
Expert Confirmé
 
Avatar de Séb.
 
Inscription : mars 2005
Messages : 2 835
Détails du profil
Informations personnelles :
Âge : 34
Localisation : France

Informations professionnelles :
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : mars 2005
Messages : 2 835
Points : 3 468
Points : 3 468
Code :
if(md5($_POST["password"]) = $row["password"])
L'opérateur de comparaison est == et non pas =
__________________
Un problème exposé clairement est déjà à moitié résolu
Keep It Smart and Simple
Séb. est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/01/2008, 21h16   #3
Invité de passage
 
Inscription : octobre 2007
Messages : 14
Détails du profil
Informations personnelles :
Localisation : Canada

Informations forums :
Inscription : octobre 2007
Messages : 14
Points : 2
Points : 2
Envoyer un message via MSN à Jimmy Monkey
Oups, merci!

Et j'ai un autre problème concernant le même bout de script. Le serveur m'envoie toujours le message suivant: Votre mot de passe est incorrect

Voici le code en question: (signin.php)
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
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
<?php
if(isset($_COOKIE["id_utilisateur"]))
{
     header("Location: index.php");
}
else
{
$hide_form = false;    
 
if(isset($_POST["sent"]))
{
if(!ereg("^[A-Za-z0-9_]{2,20}$", $_POST["user_name"]))
{
$message = "Votre nom d'utilisateur doit comporter entre 2 et 20 caractères";
}
elseif(!ereg("^[A-Za-z0-9]{6,}$", $_POST["password"]))
{
$message = "Votre mot de passe doit comporter au moins 6 caractères";
}
else
{
mysql_connect("localhost", "...", "...");
mysql_select_db("...");
 
$result = mysql_query("SELECT id, user_name, password, validation FROM members WHERE user_name = '" . $_POST["user_name"] . "'");
 
if(!$result)
{
$message = "Une erreur est survenue lors de la tentative de connexion";
}
else
{
if(mysql_num_rows($result) == 0)
{
$message = "Le nom d'utilisateur " . $_POST["user_name"] . " n'existe pas";
}
else
{
$row = mysql_fetch_array($result);
 
if($row["validation"] == 0)
{
$message = "Votre compte utilisateur n'a pas été activé";
}
else
{
 
if(md5($_POST["password"]) != $row["password"])
{
$message = "Votre mot de passe est incorrect";
}
else
{
$message = "Vous êtes connecté";
 
$expiration = empty($_POST["auto_signin"]) ? 0 : time() + 90 * 24 * 60 * 60;
 
setcookie("id_utilisateur", $row["id"], $expiration, "/");
setcookie("nom_utilisateur", $row["user_name"], $expiration, "/");
 
mysql_close();
 
header("Location: index.php");
}
}
}
}
mysql_close();
}
}    
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Sign in</title>
</head>
 
<body>
<?php if(isset($message))
{
echo $message;
}
if($hide_form != true)
{
?>
<form action="signin.php" method="post">
<p>
Nom d'utilisateur : <input type="text" name="user_name" />
</p>
<p>
Mot de passe : <input type="password" name="password" />
</p>
<p>
<input type="checkbox" name="auto_signin" /> 
Se connecter automatiquement à chaque visite
</p>
<p>
<input type="submit" name="sent" value="Go" />
</p>
</form>
<?php } ?>
</body>
</html>
D'après moi, le hic se trouve dans le bout de code ci-bas:
Code :
1
2
3
4
if(md5($_POST["password"]) != $row["password"])
{
$message = "Votre mot de passe est incorrect";
}
Qu'est-ce qui ne va pas? C'est la première fois que j'élabore un script d'espace membre... Merci encore.
Jimmy Monkey est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/01/2008, 00h42   #4
Nouveau Membre du Club
 
Avatar de eexit
 
Étudiant
Inscription : juillet 2007
Messages : 61
Détails du profil
Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : juillet 2007
Messages : 61
Points : 35
Points : 35
Bonsoir,

Affiches les deux et compares-les. Peut-être un stripslashes() ou un truc du genre.
De mon point de vu, pour une meilleur sécurité, j'utiliserais "!==" pour que la comparaison soit stricte

Bonne continuation.
eexit est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 03h07.


 
 
 
 
Partenaires

Hébergement Web