page login.

Discussion dans 'Web, design' créé par MbK_, 5 Juillet 2004.

Statut de la discussion:
Fermée.
  1. Offline
    MbK_ Etudjant
    alors me revoila avec ma apge admin.

    j'ai fait un tuto sur les pages admin (URL)

    et j'ai un probleme. j'utilise le code comme il le dit et j'ai tjs la reponse " Vous avez oublié de remplir un champs. "

    :arrow: code table (jai la meme)
    Code:
    CREATE TABLE tbl_user (
    id int(11) NOT NULL auto_increment,
    pseudo varchar(63) NOT NULL,
    login varchar(8) NOT NULL,
    pwd varchar(8) NOT NULL,
    PRIMARY KEY (id),
    KEY ID_2 (id)
    );

    :arrow: code auth.php (jai le meme)

    Code:
    <form action="login.php" method='post'> 
    <table align="center" border="0"> 
       <tr> 
         <td>Login :</td> 
         <td><input type="text" name="login" maxlength="250"></td> 
       </tr> 
       <tr> 
         <td>Password</td> 
         <td><input type="password"name="pass" maxlength="10"></td> 
       </tr> 
       <tr> 
         <td colspan="2" align="center"><input type="submit" value="log in"></td> 
       </tr> 
    </table> 
    </form> 
    :arrow: code login.php

    Code:
    <? 
          mysql_connect("sql2.easy-hebergement.net","morback","xxxxxx");
          mysql_select_db("morback"); 
    
    if($login1=='' || $pass1=='') 
        { 
        echo '<center><p><font color=#000000 face=Verdana, Arial, Helvetica, sans-serif><font size=2>Vous avez oublié de remplir un champs.</center></font></font></p>'; 
        include('auth.php'); // On inclus le formulaire d'identification 
        exit; 
        } 
    
    
    $sql = "select pwd from user where login='$login1'"; 
    $req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error()); 
    
    $data = mysql_fetch_array($req); 
    
    if($data['pwd'] != $pass1) 
        { 
        echo '<center><p><font color=#000000 face=Verdana, Arial, Helvetica, sans-serif><font size=2>Mauvais login / password. Merci de recommencer</center></font></font></p>'; 
        include('auth.php'); // On inclus le formulaire d'identification 
        exit; 
        } 
    else 
        { 
        session_start(); 
        $_SESSION['login1'] = $_POST['login1']; 
        $_SESSION['level'] = $_POST['level'];    
    
        echo "<center><font color=#000000 face=Verdana, Arial, Helvetica, sans-serif><font size=2>Vous êtes bien logué en temps que <b>" . $_SESSION['login1'] . "</b></center></font></font> "; 
        echo "<center><a href=index.php>retour</a><center>"; 
        } 
    
    ?> 
    et ca me revoit, apres avoir rempli les champs et biensur j'ai mi les valeurs dans ma BDD, "Vous avez oublié de remplir un champs."

    un probleme ds le code?
    MbK_, 5 Juillet 2004
    #1
  2. Offline
    kokotchY Elite
    1. $login1 et $pass1 ne sont jamais défini
    2. Normalement, les noms devraient être login et pass en voyant ton formulaire !
    tout en haut de ta page tu mets :

    $login1 = (isset($_POST['login']))?$_POST['login']:'';
    $pass1 = (isset($_POST['pass']))?$_POST['pass']:'';
    Comme cela les variables seront définie !

    Ensuite pour l'optimisation :

    Code:
    $sql = "select pwd from user where login='$login1'"; 
    $req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error()); 
    
    $data = mysql_fetch_array($req); 
    
    if($data['pwd'] != $pass1) 
    un mysql_fetch_array est peut etre un peu trop lourd pour ca !
    Code:
    $data = mysql_result($req,0,'pwd');
    if ($data != $pass1) 
    est mieux ;)

    $_SESSION['level'] = $_POST['level'];

    Je ne comprend pas ceci !
    Car il n'y a pas de champ level dans le formulaire...
    enfin corrige déjà le début ;)
    kokotchY, 5 Juillet 2004
    #2
  3. Offline
    tonton-benny Touriste
    utilise un connect.inc et place ton user et pass dans des variables.


    ici si tu change ton pass ou login avec la maniere ke tu prog tu devra changer ca ds toute tes pages :wink:

    enfin c juste un conseil :wink:
    tonton-benny, 5 Juillet 2004
    #3
  4. Offline
    kokotchY Elite
    .inc.php alors..
    car les .inc peuvent être downloadé et ca peut être genant :p
    kokotchY, 5 Juillet 2004
    #4
  5. Offline
    MbK_ Etudjant
    j'ai jms utilisé ca, je sais pas comment ca marche. je debutte :p
    MbK_, 5 Juillet 2004
    #5
  6. Offline
    gogoprog Oprahiste vaudou
    Oui et non, suffit de changer les propriétés des fichiers sur le serveur.

    Avec un serveur mal configuré, on peut aussi téléchager les .php
    gogoprog, 5 Juillet 2004
    #6
  7. Offline
    kokotchY Elite
    pourquoi faire du php alors :p

    serieusement, je vois beaucoup plus souvent la possibilité de downloader les .inc que les .php

    on peut aussi interdire l'acces au .inc :roll:
    kokotchY, 5 Juillet 2004
    #7
  8. Offline
    tonton-benny Touriste
    voila comment ca marche :arrow:

    ds le connect.inc
    Code:
    <?
    $serveur="adresse du server"; 			
    $utilisateur="login";			
    $motdepasse="password";				
    $database1="test1";
    $database2="test2"; 			
    ?>
    puis ds tes fichier tu fé apel a des variables
    Code:
    require("connect.inc");
    mysql_connect("$serveur","$utilisateur","$motdepasse");
    
    c tout simple :wink:
    tonton-benny, 5 Juillet 2004
    #8
  9. Offline
    tonton-benny Touriste
    comme ca meme kan tu change le nom d une db c facile tu le change une fois (ds le .inc) et pas ds tout les fichier ke tu a cree :wink:
    tonton-benny, 5 Juillet 2004
    #9
  10. Offline
    kokotchY Elite
    quoi ? je suis chiant ???
    mysql_connect($serveur,$utilisateur,$motdepasse);

    ca prend du temps a interpreté les "... alors pourquoi en mettre juste pour mettre une variable ?
    kokotchY, 5 Juillet 2004
    #10
  11. Offline
    MbK_ Etudjant
    ha moi jconnaissai ca mais avec le config.php et jrefait une include.
    MbK_, 5 Juillet 2004
    #11
  12. Offline
    Styleman Touriste
    Styleman, 6 Juillet 2004
    #12
  13. Offline
    Styleman Touriste
    Styleman, 6 Juillet 2004
    #13
  14. Offline
    MbK_ Etudjant
    mdr klr keski fou :d

    bon j'ai trouvé un truc qui me met a la bonne page mais j'ai des erreurs.

    et jcapte pas tres bien :s:s

    code de la page :

    Code:
    <? 
          mysql_connect("sql2.easy-hebergement.net","morback","xxxx");
          mysql_select_db("morback"); 
    
    if($_POST['login']=='' || $_POST['pass']=='') 
        { 
        echo '<center><p><font color=#000000 face=Verdana, Arial, Helvetica, sans-serif><font size=2>Vous avez oublié de remplir un champs.</center></font></font></p>'; 
        include('auth.php'); // On inclus le formulaire d'identification 
        exit; 
        } 
    
    
    $sql = "select pwd from user where login='$login1'"; 
    $req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error()); 
    
    $data = mysql_result($req,0,'pwd'); 
    if ($data != $pass1)  
        { 
        echo '<center><p><font color=#000000 face=Verdana, Arial, Helvetica, sans-serif><font size=2>Mauvais login / password. Merci de recommencer</center></font></font></p>'; 
        include('auth.php'); // On inclus le formulaire d'identification 
        exit; 
        } 
    else 
        { 
        session_start(); 
        $_SESSION['login1'] = $_POST['login1'];  
    
        echo "<center><font color=#000000 face=Verdana, Arial, Helvetica, sans-serif><font size=2>Vous êtes bien logué en temps que <b>" . $_SESSION['login1'] . "</b></center></font></font> "; 
        echo "<center><a href=index.php>retour</a><center>"; 
        } 
    
    ?> 
    MbK_, 6 Juillet 2004
    #14
  15. Offline
    kokotchY Elite
    change

    mysql_connect("sql2.easy-hebergement.net","morback","tonpass");
    mysql_select_db("morback");

    par
    mysql_connect("sql2.easy-hebergement.net","morback","****") or die(mysql_error());
    mysql_select_db("morback") or die(mysql_error());

    s'il y a une erreur de connexion, ca va l'afficher !

    et retire ton pass dans ton post :roll:
    kokotchY, 6 Juillet 2004
    #15
  16. Offline
    MbK_ Etudjant
    g changer mon pass de tt facon mais bon :p
    MbK_, 6 Juillet 2004
    #16
  17. Offline
    MbK_ Etudjant
    jlai fai mais ca marque la meme erreur :s:s

    tu a remi le pass :oops:

    jss con qd mm :s:s
    MbK_, 6 Juillet 2004
    #17
  18. Offline
    kokotchY Elite
    echo $sql;
    affiche quoi ?
    kokotchY, 6 Juillet 2004
    #18
  19. Offline
    le problème des coockies est très simple : tu dois envoyer/recevoir ou lire des cookies avant que quoi que ce soit comem texte soit envoyé au browser.

    C'est la même chose pour la redirection de page.

    La solution ? déplacer ton écriture/lecture de cookie avant d'envoyer quelque chose au browser (en gros et plus simple: pas de print avant ces commandes là)
    TheFornicator, 6 Juillet 2004
    #19
  20. Offline
    kokotchY Elite
    il n'y a aucun envoit d'header avant le setcookie... sauf l'erreur mysql !
    c'est cette erreur qui pose problème pour le setcookie et/ou le session_start
    kokotchY, 6 Juillet 2004
    #20
Statut de la discussion:
Fermée.