Problème avec un code php

Karim9z -  
 cm2000 -
Bonjour, j'ai travaillé pour réussir a sortir ce code php qui ne fonctionne pas!! En gros j'ai un formulaire sur une page antérieur ou l'utilisateur entre son identifiant et son code et cette page doi permettre de vérifier que le code et l'identifiant sont présent sur la base de donnée qui a été préablement remplite. La connection a la base de donnée est correcte je pense.Je précise que je ne cherche pas a avoir un code compliqué je voudrais juste comprendre mon érreur et par la suite je ferais évolué mon code a souhait:! Merci d'avance voici le code:
<html>
<head> <title> Vérification </title>
</head>
<body>
<?
include"connect_bato.php";

$login_cli=$_POST['passwordcli'];
$password_cli=$_POST['nom'];

$sql = "select password_cli from CLIENT where login_cli=". $_POST['logincli'] ;
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
$data = mysql_fetch_assoc($req);

if ($data['password_cli'] != $passwordcli)
{
echo '<p>Mauvais login / password. Merci de recommencer</p>';
include"login.php";
}
else {
session_start();
$_SESSION['login_cli'] = $logincli;

echo 'Vous etes bien logué';
include"page client.php";
}
?>
</body>
</html>
Configuration: Windows XP
Firefox 3.0.10

9 réponses

  1. le père
     
    Bonjour

    Dans la requête, le login doit être entre apostrophes :
    $sql = "select password_cli from CLIENT where login_cli='". $_POST['logincli']."'" ;
    0
  2. Karim9z
     
    Merci beaucoup esperons que je n'ai pas fait d'autre erreur j'essayerai demain car je n'ai pas la base de donnée pour testé !! Merci
    0
  3. william7007 Messages postés 344 Statut Membre 46
     
    slt
    mais dit t'es sure que les données issues du formulaire sont bien affectées aux variables correspondantes? je parle de ces lignes de codes

    $login_cli=$_POST['passwordcli'];
    $password_cli=$_POST['nom'];

    si oui je pense que la requete serais un truc du genre:
    $sql = "select password_cli from CLIENT where login_cli='". $_POST['logincli']."'" ;

    mais là encore un gros probleme. d'où tu sort la variable logincli? tu la recupère où? et là c'est un peu embrouiller qui est effectivement le login passwordcli ou logincli
    moi je ne comprend vraiment plus rien essaie d'etre un peu plus claire.

    cdlt.
    0
  4. le père
     
    Autres problèmes
    session_start(); devait être AVANT tout envoi au client , donc avant le <html>
    la balise d'ouverture de php est <?php et non pas <?. Certains serveurs acceptent le <? mais tu n'es pas sûr d'avance. <?php est toujours accepté
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. rimka9z
     
    Merci encore je testerais tout ça demain et je vous dirais si tout cela a marché! Pour repondre a william en ce qui concerne le formulaire je me débrouille j'ai déjà tout vérifié cela marche merci si quelqu'un remarque une autre erreur qu'il le disent! Merci
    0
  7. rimka9z
     
    <html>
    <head><title> formulaire </title> </head>
    <body>
    <FORM METHOD="POST" ou "GET" ACTION="verif.php">
    veuillez saisir votre identifiant <INPUT type="TEXT" value="Respectez les majuscules" name="passwordcli">
    <br><br<
    veuillez saisir votre code <INPUT type="TEXT" value="Respectez les majuscules" name="logincli">
    </form>
    </body>
    </html>

    voila a quoi ressemble mon formulaire
    0
  8. rimka9z
     
    <html>
    <head><title> formulaire </title> </head>
    <body>
    <FORM METHOD="POST" ou "GET" ACTION="verif.php">
    veuillez saisir votre identifiant <INPUT type="TEXT" value="Respectez les majuscules" name="passwordcli">
    <br><br<
    veuillez saisir votre code <INPUT type="TEXT" value="Respectez les majuscules" name="logincli">
    </form>
    </body>
    </html>

    voila a quoi ressemble mon formulaire bien sur il y a le bouton envoyer
    __________________________________
    0
  9. william7007 Messages postés 344 Statut Membre 46
     
    ok ok
    voilà à quoi va ressembler notre page verif.php

    <?php
    session_star();
    ?>
    
    <html>
    <head><title> formulaire </title> </head>
    <body> 
    <?php
    include"connect_bato.php"; 
    $login = $_POST['logincli'];
    $pwd = $_POST['passwordcli'];
    
    $req = mysql_query("SELECT password_cli FROM CLIENT WHERE login_cli = '".$login."'");
    if(mysql_num_rows($req) > 0)
    {
       $data = mysql_fetch_array($req);
       if($pwd == $data['password_cli'])
       {
          $_SESSION['login_cli'] = $login;
       }
       else
       {
           echo '<p>Mauvais password. Merci de recommencer</p>';
           include("login.php");
       }
    }
    else
    {
       echo '<p>Mauvais Login. Merci de recommencer</p>';
        include("login.php");
    }
    
    ?>
    
    

    toutefois je suppose ici que les password_cli et login_cli de la requete sont bien contenus dans la table CLIENT

    et pour plus de securité essaie un truc du genre htmlentities, addslash, htmlspecialchar.... autour des variables $_POST

    $login = $_POST['logincli'];
    $pwd = $_POST['passwordcli'];

    cdlt.
    0
  10. cm2000
     
    Bonjour.
    A la base, cad a la saisie, il y aune erreur : vous inversez les variables login et mdp !
    donc a la page de saisie, il faut mettre:
    <form action = "verif.php" method="post">
    veuillez saisir votre identifiant <INPUT type="TEXT" value="" name="login_cli">
    <br><br<
    veuillez saisir votre code <INPUT type="TEXT" value="" type="password" name="passwordcli">
    </form>

    et a la page qui recupere la saisie, il faut mettre:
    $login_cli=$_POST['login_cli'];
    $password_cli=$_POST['passwordcli'];
    ou
    $login_cli=htmlspecialchars($_POST['login_cli']);
    $password_cli=htmlspecialchars($_POST['passwordcli']);
    0