IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Parse error: unexpected '='


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2007
    Messages : 14
    Points : 11
    Points
    11
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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!

  2. #2
    Expert éminent
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 098
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

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

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 098
    Points : 8 207
    Points
    8 207
    Billets dans le blog
    17
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2007
    Messages : 14
    Points : 11
    Points
    11
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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.

  4. #4
    Membre du Club Avatar de eexit
    Profil pro
    Étudiant
    Inscrit en
    Juillet 2007
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2007
    Messages : 61
    Points : 50
    Points
    50
    Par défaut
    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.
    Etudiant L3 Informatique
    --
    Twitter | Blog | Website

Discussions similaires

  1. Réponses: 2
    Dernier message: 25/10/2007, 10h22
  2. Réponses: 10
    Dernier message: 21/07/2006, 08h44
  3. [débutant] Parse error, unexpected T_STRING
    Par BARBIER dans le forum Langage
    Réponses: 4
    Dernier message: 16/06/2006, 14h43
  4. Parse error: unexpected $ sur la dernière ligne..
    Par zamoto dans le forum Langage
    Réponses: 6
    Dernier message: 01/06/2006, 12h16
  5. Réponses: 36
    Dernier message: 07/05/2006, 15h35

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo