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

Requêtes MySQL Discussion :

problème php mysql


Sujet :

Requêtes MySQL

  1. #1
    Membre habitué
    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
    Points : 132
    Points
    132
    Par défaut problème php mysql
    et oui encore une fois moi

    bon voilà j'ai un petit code de login, qui amène sur un forum, lequel sera disponible pour l'utilisateur grace à une cotisation.

    donc j'ai ce code là pour le login et le 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
    33
    34
    35
    36
    37
    38
    39
     
    <? 
    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']; 
    	echo "<script>window.location= 'forum.php';</script>";	
        // 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 {
     
      		echo "<script>alert ('erreur de login');</script>";
    		echo "<script>window.location= 'forum.php';</script>";
     
     
    		} 
     
    } 
    // else redirige vers ta page de login 
    else { echo "<script>alert ('erreur de login');</script>";
    		echo "<script>window.location= 'forum.php';</script>";
     } 
    ?>
    ce code marche très bien, ce que je voudrais rajouter c'est que dans ma base de données j'ai un champ accès qui a la valeur oui ou non

    donc après avoir verrifié le login et le pass on verrifie si il a l'accès au forum

    donc j'avais rajouté ceci comme code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    $sql2= "select acces_forum from clients where login='".$_POST['edit_login']."'";
    	$req2 = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error()); 
    	$result2 = mysql_num_rows($req); 
    	if ($result=="NON") { 
         echo "<script>alert ('acces non permis');</script>";
    		echo "<script>window.location= 'forum.php';</script>";
    		}
    ce qui donne le code entier de la page de verif

    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
     
    <? 
    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']; 
     
    	$sql2= "select acces_forum from clients where login='".$_POST['edit_login']."'";
    	$req2 = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error()); 
    	$result2 = mysql_num_rows($req); 
    	if ($result=="NON") { 
         echo "<script>alert ('acces non permis');</script>";
    		echo "<script>window.location= 'forum.php';</script>";
    		}
    		else
    		{
     
     
     
     
     
     
        // 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 {
     
      		echo "<script>alert ('erreur de login');</script>";
    		echo "<script>window.location= 'forum.php';</script>";
     
     
    		} 
     
    } 
    // else redirige vers ta page de login 
    else { echo "<script>alert ('erreur de login');</script>";
    		echo "<script>window.location= 'forum.php';</script>";
     } 
    ?>
    ce qui ne marche pas car j'entre le login et le pass d'un membre qui n'as pas accès mais ca arrive quand meme sur la page du forum au lieu de lui refuser l'accès

    mon code pour la verification de l'accès ne doit pas être très bon, veuillez m'en excuser, dur d'être néophyte.

    merci

  2. #2
    Membre habitué
    Inscrit en
    Août 2005
    Messages
    142
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 142
    Points : 156
    Points
    156
    Par défaut
    Normal, tu enregistre la session si le couple login/pass est valide, enregistre le apres avoir verifié si l'utilisateur a l'acces au forum

  3. #3
    Membre éprouvé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    774
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Canada

    Informations forums :
    Inscription : Juillet 2005
    Messages : 774
    Points : 936
    Points
    936
    Par défaut
    tu as des erreurs dans cette partie du code certainement du a un copier/coller
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
     
     $sql2= "select acces_forum from clients where login='".$_POST['edit_login']."'";
       $req2 = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
       $result2 = mysql_num_rows($req);
       if ($result=="NON") {
         echo "<script>alert ('acces non permis');</script>";
          echo "<script>window.location= 'forum.php';</script>";
    essai ça +tio
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
     $sql2= "select acces_forum from clients where login='".$_POST['edit_login']."'";
       $req2 = mysql_query($sql2) or die('Erreur SQL !<br>'.$sql2.'<br>'.mysql_error());
       $result2 = mysql_num_rows($req2);
       if ($result2==0) {
         echo "<script>alert ('acces non permis');</script>";
          echo "<script>window.location= 'forum.php';</script>";
    au passage, je te recommande de lire un tuto entre autre je crois q tu as des erreurs de conception dans ta bd, on peut faire plus simple
    Les hommes naissent et demeurent libres et egaux en dignité et en droit. Les distinctions sociales ne peuvent etre fondées que sur l'utilité commune. Article 1 droits et de l'homme et du citoyen. 1789

  4. #4
    Membre habitué
    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
    Points : 132
    Points
    132
    Par défaut
    oui mais le champ acces_forum a pour valeur oui ou non c'est pour cela que j'ai mis

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    	if ($result=="NON") {
    merci

  5. #5
    Membre éclairé 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
    Points : 846
    Points
    846
    Par défaut
    c normal car la ligne
    testait si le couple login/passs ke tu avais envoyé était ds ta base et ke celle ci te renvoyait o moins un résultat.

    En modifiant en mettant $result=="NON" si la valeur vaut non tu seras alors redirigé sans aucune verification login/pass .

    Explike exactement ce que tu veux faire pour qu'on puisse t'aider.
    Chaque problème a une solution, mais il est plus facile de répondre si le problème est correctement renseignés

  6. #6
    Membre éclairé 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
    Points : 846
    Points
    846
    Par défaut
    Désolé je n'avais pas lu ton code complet montré plus haut, donc oublie mon post précédent. voilà comment procéder dans le code initial:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    if ($result > 0) { 
         session_start(); 
        $_SESSION['login'] = $_POST['edit_login']; 
       echo "<script>window.location= 'forum.php';</script>";    
        // tapage.php signifie la page où tu veux que l'utilisateur aille 
        header("Location:forum_index.php"); 
       } else {
          echo "<script>alert ('acces non permis');</script>"; 
          echo "<script>window.location= 'forum.php';</script>"; 
    }
    Chaque problème a une solution, mais il est plus facile de répondre si le problème est correctement renseignés

  7. #7
    Membre habitué
    Inscrit en
    Août 2005
    Messages
    142
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 142
    Points : 156
    Points
    156
    Par défaut
    Citation Envoyé par ph_anrys
    oui mais le champ acces_forum a pour valeur oui ou non c'est pour cela que j'ai mis

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    	if ($result=="NON") {
    merci
    donc fait comme sa, enregister ta session apres le test
    et non pas apres
    ce qui donne

    <?
    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) {

    $sql2= "select acces_forum from clients where login='".$_POST['edit_login']."'";
    $req2 = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
    $result2 = mysql_num_rows($req);
    if ($result=="NON") {
    echo "<script>alert ('acces non permis');</script>";
    echo "<script>window.location= 'forum.php';</script>";
    }
    else
    {
    session_start();
    $_SESSION['login'] = $_POST['edit_login']; <-- ICI

  8. #8
    Membre habitué
    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
    Points : 132
    Points
    132
    Par défaut
    merci à vos réponses

    zulkifli

    ton dernier code, le problème est qu'il y a plus d'accès à la page sécurisée comme in y avait dans mon code de départ,

    merci et désolé de vous ennuyer

  9. #9
    Membre éclairé 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
    Points : 846
    Points
    846
    Par défaut
    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
     
    <? 
    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 *  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);
      $row = mysql_fetch_assoc($req);
     
      if ($result > 0 && $row['acces'] == "OUI") { 
         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 if ($row['acces'] == "NON") {
        echo "<script>alert ('acces non permis');</script>"; 
        header("location: forum.php"); 
      } 
      // else redirige vers ta page de login 
      else { 
     
            echo "<script>alert ('erreur de login');</script>"; 
          echo "<script>window.location= 'forum.php';</script>"; 
     
     
          } 
     
    } 
    // else redirige vers ta page de login 
    else { header("location: login.php"); } 
    ?>
    Là sa devrait être bon. Essaie de t'expliquer clairement la prochaine fois.
    Chaque problème a une solution, mais il est plus facile de répondre si le problème est correctement renseignés

  10. #10
    Membre habitué
    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
    Points : 132
    Points
    132
    Par défaut
    bon encore un prob, yobs merci de ton aide

    bon, lorsque je rentre un login et un pass valide mais que dans la base l'accès est indiqué à non, il me met erreur de login alors qu'il devrait marqué acces non permis

    je m'explique

    pour pouvoir utiliser le forum l'utilisateur doit avoir un login et un mot de passe mais en plus il y a un champ acces qui peut être oui ou non pourquoi parce que l'utilisateur paie une cotisation pour 1 an au forum
    donc après 1 an il garde son pseudo et son pass mais si il n'a pas repayé on met le champ acces à non, comme ca il n'as plus acces au forum

    voilà pq il doit noté acces non permis et pas erreur login

    bon j'espère que je suis clair

    merci

  11. #11
    Membre éclairé 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
    Points : 846
    Points
    846
    Par défaut
    comment se nomme le champ acces dans ta base? si ce n'est pas acces tu modifie le script en remplaçant tous les mots acces par la valeur du champ de ta base
    Chaque problème a une solution, mais il est plus facile de répondre si le problème est correctement renseignés

  12. #12
    Membre habitué
    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
    Points : 132
    Points
    132
    Par défaut
    acces_forum

    de plus lorque je rentre un bon login et pass et qu'il a acces au forum ca marque erreur login alors qu'il devrair pouvoir entrer dans la page securisee

  13. #13
    Membre habitué
    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
    Points : 132
    Points
    132
    Par défaut
    cette ligne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    if ($result > 0 && $row['acces'] == "OUI") {
    ca ne devrait pas être ca à la place

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    if ($result > 0 && $row['acces_forum'] == "OUI") {

  14. #14
    Membre éclairé 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
    Points : 846
    Points
    846
    Par défaut
    c'est exactement sa.
    Chaque problème a une solution, mais il est plus facile de répondre si le problème est correctement renseignés

  15. #15
    Membre habitué
    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
    Points : 132
    Points
    132
    Par défaut
    yes ca marche

    yops merci à toi et aux autres bien sur

    bon je vais m'y mettre un peu plus en php, car là je suis nul part.

    @+

  16. #16
    Membre éclairé 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
    Points : 846
    Points
    846
    Par défaut
    Ok no souci. Mets le en [Résolu]
    Chaque problème a une solution, mais il est plus facile de répondre si le problème est correctement renseignés

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

Discussions similaires

  1. [MySQL] Problème PHP / MySQL
    Par GTAddict dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 26/04/2010, 13h59
  2. Problème PHP/Mysql script horaire d'un planning
    Par jessica76 dans le forum Langage
    Réponses: 3
    Dernier message: 01/04/2010, 19h30
  3. [MySQL] problème php mysql
    Par thiba dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 30/12/2009, 11h09
  4. [MySQL] problème php, mysql
    Par mémélia dans le forum PHP & Base de données
    Réponses: 9
    Dernier message: 20/06/2007, 15h53
  5. [MySQL] Problème PHP/Mysql mon php n'exécute pas la requête
    Par matew dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 26/04/2007, 13h01

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