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 :

[Tableaux] problème avec espace membre


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2003
    Messages
    293
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2003
    Messages : 293
    Par défaut [Tableaux] problème avec espace membre
    bonjour,

    je vous l'avoue toute de suite, je suis néophyte en php et j'ai pris comme base un script espace membre, que je voudrais mettre sur mon site. le problème c'est que cela marche pas comme je le voudrais.

    lorsque je rentre un login et un pass il y a 3 possibilités

    - je rentre le bon login et pass et ca m'affiche bien la page sécurisé ok ca c'est bon

    - si je entre le bon login et que je ne met rien dans pass ca ne passe pas ok c'est bon

    - et inversement je met rien dans login et le bon pass ca passe pas ok c'est bon

    -par contre je mets n'importe quoi dans login et pass alors là ca passe on arrive sur ma page sécurisée alors que cela ne devrait pas être le cas

    donc voici mon code

    1) page ou on entre login et pass

    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
     
    <?php
    if($action=="deconnexion")
    {
    session_start();
    $_SESSION=array();
    session_destroy();
    }
    ?>
    <form action="verrif_login_forum.php" method="post" id="formulaire_login" name="formulaire_login">
    <span style="position:absolute; margin-top:15px; margin-left:25px; font-family:Arial, Helvetica, sans-serif; font-size:12px; font-weight:bold;">
    Login : </span>
    <span style="position:absolute; margin-top:12px; margin-left:120px; font-family:Arial, Helvetica, sans-serif; font-size:12px; font-weight:bold;">
    <input type="text" name="edit_login"></span>
    <span style="position:absolute; margin-top:50px; margin-left:25px; font-family:Arial, Helvetica, sans-serif; font-size:12px; font-weight:bold;">
    Mot de passe : </span>
    <span style="position:absolute; margin-top:47px; margin-left:120px; font-family:Arial, Helvetica, sans-serif; font-size:12px; font-weight:bold;">
    <input type="password" name="edit_pass"></span>
    <span style="position:absolute; margin-top:100px; margin-left:68px; font-family:Arial, Helvetica, sans-serif; font-size:12px; font-weight:bold;">
    <input type="submit" name="connexion" value="Connexion" style="width:80px;"></span>
    <span style="position:absolute; margin-top:100px; margin-left:152px; font-family:Arial, Helvetica, sans-serif; font-size:12px; font-weight:bold;">
    <input type="reset" name="initialiser" value="Initialiser" style="width:80px;"></span>
    </form>
    </div><!-- fin class "cadre_login" -->
    </div><!-- fin class "texte_contenu" -->
    </div><!-- fin class "conteneur" -->
    </body>
    <script language="javascript" type="text/javascript">
    <!--
    document.formulaire_login.edit_login.focus();
    // -->
    </script>
    2) page de verrification

    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
     
    <?
    require("config_server.php");
     
    if(isset($_POST) && !empty($_POST['edit_login']) && !empty($_POST['edit_pass'])) {
      extract($_POST);
      // on recupère le password de la table qui correspond au login du visiteur
      $sql = "select pass_md5 from clients where login='".$login."'";
      $req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
     
      $data = mysql_fetch_assoc($req);
     
      if($data['edit_pass'] != $password) {
            echo '<SCRIPT LANGUAGE="JavaScript">
    document.location.href="forum.php" </SCRIPT>';
        exit;
      }
      else {
        session_start();
        $_SESSION['login'] = $login;
     
        echo '<SCRIPT LANGUAGE="JavaScript">
    document.location.href="membres.php" </SCRIPT>'; 
      }    
    }
    else {
       echo '<SCRIPT LANGUAGE="JavaScript">
    document.location.href="forum.php" </SCRIPT>';
       exit;
    }
    ?>
    3) la page avec les données serveur

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    <?
    $host="serveur"; // localhost pour le local
    $user="";//nom d'utilisateur
    $pass="";//mot de pass
    $base="";//nom de la bases de données
    $connect=mysql_connect($host,$user,$pass);
    mysql_select_db($base, $connect);
    ?>
    bon voilà le problème à mon avis vient du code suivant

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    if(isset($_POST) && !empty($_POST['edit_login']) && !empty($_POST['edit_pass'])) {
      extract($_POST);
    voilà dans le code ci dessus edit_login et edit_ doivent bien être le nom des champs du formulaire

    et là

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $sql = "select pass_md5 from clients where login='".$login."'";
    login est bien le champ de la base mais par contre $login correspond à quoi




    et là la meme chose

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
      session_start();
        $_SESSION['login'] = $login;
    à quoi correspond login et $ login

    et là
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    if($data['edit_pass'] != $password)
    à quoi corepondent edit_pass et $ password

    car c'est là que je pense qu'il y a qqch de pas normal

    voilà après avoir lu ce roman, pouvez vous m'aider

    merci

  2. #2
    Membre émérite Avatar de Yobs
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    675
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2004
    Messages : 675
    Par défaut
    Premièrement, ne mets JAMAIS tes identifiants de connexion sur un forum pour des raisons de sécurités évidentes.

    Deuxièmement, j'ai eu du mal à me retrouver dans ton code, du coup je l'ai épuré voici une autre version de ta page de vérification:
    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
     
    <? 
    require("config_server.php"); 
     
    if(isset($_POST['edit_login']) && isset($_POST['edit_pass'])) { 
      extract($_POST); 
     
      // on recupère le password de la table qui correspond au login du visiteur 
     
      $sql = "select pass_md5 from clients where login='".$_POST['edit_login'].
      " AND paswword='".$_POST['edit_pass']."'"; 
     
      $req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error()); 
     
      $result = mysql_num_rows($req); 
     
      if ($result > 0) {
      	session_start(); 
        $_SESSION['login'] = $_POST['edit_login'];
     
        // tapage.php signifie la page où tu veux que l'utilisateur aille
        header("Location: tapage.php");
      }
      // else redirige vers ta page de login
      else { header("Location: login.php"); } 
     
    } 
    // else redirige vers ta page de login
    else { header("Location: login.php"); } 
    ?>
    maintenant il te reste à modifier selon tes paramètres.

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2003
    Messages
    293
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2003
    Messages : 293
    Par défaut
    Deuxièmement, j'ai eu du mal à me retrouver dans ton code, du coup je l'ai épuré voici une autre version de ta page de vérification:
    Code:

    <?
    require("config_server.php");

    if(isset($_POST['edit_login']) && isset($_POST['edit_pass'])) {
    extract($_POST);

    // on recupère le password de la table qui correspond au login du visiteur

    $sql = "select pass_md5 from clients where login='".$_POST['edit_login'].
    " AND paswword='".$_POST['edit_pass']."'";

    $req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());

    $result = mysql_num_rows($req);

    if ($result > 0) {
    session_start();
    $_SESSION['login'] = $_POST['edit_login'];

    // tapage.php signifie la page où tu veux que l'utilisateur aille
    header("Location: tapage.php");
    }
    // else redirige vers ta page de login
    else { header("Location: login.php"); }

    }
    // else redirige vers ta page de login
    else { header("Location: login.php"); }
    ?>


    maintenant il te reste à modifier selon tes paramètres.
    j'ai changé par le code que tu m'as mis yobs et j'obtiens cela comme erreur

    Erreur SQL !
    select pass_md5 from clients where login='jfsfsfjsqj AND paswword='fqsfsfsqf'
    You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'fqsfsfsqf'' at line 1

  4. #4
    Membre émérite Avatar de Yobs
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    675
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2004
    Messages : 675
    Par défaut
    désolé il manque un ' voilà :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $sql = "select pass_md5 from clients where login='".$_POST['edit_login']. 
    "' AND pasword='".$_POST['edit_pass']."'";

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2003
    Messages
    293
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2003
    Messages : 293
    Par défaut
    toujours cette erreur

    Erreur SQL !
    select pass_md5 from clients where login='filou1972' AND paswword='27011972'
    Unknown column 'paswword' in 'where clause'

    le probleme ne viendrait pas de paswword=''

    à quoi doit correspondre password

  6. #6
    Membre émérite Avatar de Yobs
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    675
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2004
    Messages : 675
    Par défaut
    là c'est un autre type d'erreur, j'ai donné ce script mais tu dois l'adapter à ta config. Il te faut faire correspondre password au champ représentant tes mots de passes ds ta table pass_md5 de ta bdd.


    PS: au passage j'ai fait une faute de frappe à password j'ai mis 2 ww

  7. #7
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2003
    Messages
    293
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2003
    Messages : 293
    Par défaut
    maintenant ce quand j'entre le bon login et pass ca m'envoie sur la page ou il y a le code que tu m'as donné mais c'est marqué page introuvable

    tandis que lorsqu'on entre des mauvais code, pour ca ca marche niquel ca revient à la page de connexion

  8. #8
    Membre émérite Avatar de Yobs
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    675
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2004
    Messages : 675
    Par défaut
    parce que tu dois remplacer tapage.php par la page où tu veux rediriger ton membre.

    ps: je l'ai noté dans le commentaire du script.

  9. #9
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2003
    Messages
    293
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2003
    Messages : 293
    Par défaut
    ben c'est ce que j'ai fais

    voici le code que tu m'as donné et que j'ai changé

    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
     
    <? 
    require("config_server.php"); 
     
    if(isset($_POST['edit_login']) && isset($_POST['edit_pass'])) { 
      extract($_POST); 
     
      // on recupère le password de la table qui correspond au login du visiteur 
     
     $sql = "select pass_md5 from clients where login='".$_POST['edit_login']. 
    "' AND pass_md5='".$_POST['edit_pass']."'"; 
     
      $req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error()); 
     
      $result = mysql_num_rows($req); 
     
      if ($result > 0) { 
         session_start(); 
        $_SESSION['login'] = $_POST['edit_login']; 
     
        // tapage.php signifie la page où tu veux que l'utilisateur aille 
        header("Location: forum_index.php"); 
      } 
      // else redirige vers ta page de login 
      else { header("Location: forum.php"); } 
     
    } 
    // else redirige vers ta page de login 
    else { header("Location: forum.php"); } 
    ?>

  10. #10
    Membre émérite Avatar de Yobs
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    675
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2004
    Messages : 675
    Par défaut
    La page forum_index.php existe?

  11. #11
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2003
    Messages
    293
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2003
    Messages : 293
    Par défaut
    ok ca marche merci yobs et excuse moi mais je suis pas très doué en php mais je vais m'y mettre

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Tableaux] Problème avec array_multisort
    Par ecocentric dans le forum Langage
    Réponses: 5
    Dernier message: 27/09/2005, 15h56
  2. [Tableaux] Problème avec les boucles
    Par speed_man002 dans le forum Langage
    Réponses: 4
    Dernier message: 21/09/2005, 16h42
  3. [Tableaux] problème avec while
    Par zimotep dans le forum Langage
    Réponses: 3
    Dernier message: 11/09/2005, 11h30
  4. [Tableaux] Problème avec Switch case
    Par philippef dans le forum Langage
    Réponses: 4
    Dernier message: 07/09/2005, 17h37
  5. [Debutant] Problème avec des membres static
    Par Mathieu.J dans le forum Débuter
    Réponses: 4
    Dernier message: 24/08/2005, 18h09

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