Ergebnis 1 bis 9 von 9

Thema: [PHP & MYSQL] LoginScript?

  1. #1

    [PHP & MYSQL] LoginScript?

    Hallo leute,
    ich sitze gerade an einem LoginScript wo die User aus einer MYSQL Datenbank geholt werden sollen und mit den Formulardaten verglichen werden sollen.
    Schön und gut mit einem User bekomme ich das hin nur wie mache ich das mit mehreren user in der db?

    Hoffe mir kann jemand helfen, bei fragen einfach fragen. o.O

    greetz mj

  2. #2
    Wie machst du das mit einem User Ô_ô?

  3. #3
    Hm, ich sehe das Problem nicht ganz (vielleicht weil's nicht ausreichend beschrieben worden ist?). Aber hier mal ein paar Denkanstöße oder so:
    Code:
    $res = mysql_query("SELECT `password` FROM `users` WHERE `name` = '".$_POST["name"]."';");
    echo mysql_error();
    if(mysql_affected_rows() < 1)
    {
     echo "Benutzer existiert nicht.<br />\n";
    }
    else
    {
     if($_POST["password"] == mysql_result($res,0,0))
     {
      echo "Login war erfolgreich.<br />\n";
     }
     else
     {
      echo "Falsches Passwort.<br />\n";
     }
    }
    Wenn du die Passwörter verschlüsselt speicherst (sollte man machen), musst du die Verschlüsselung natürlich auch noch beim Vergleich auf das eingegebene Passwort anwenden.

    freundliche Grüße, Rolus

    Geändert von Rolus (12.02.2006 um 20:17 Uhr)

  4. #4
    Ok dann muss ich es mal anders erklären.


    Ich will die daten aus der DB in einen array speichern und nach und nach vergleichen mit einer schleife, bis einer gleich ist und man eingelogt würd.

    Zurzeit mache ich das so:

    PHP-Code:
        if($_REQUEST['send']){
            
    $sql=mysql_query("SELECT ID, user, passwort, email FROM ".$db."_userlog;") or die(mysql_error());
            while(
    $row=mysql_fetch_array($sql)){
                if(
    $_REQUEST['name']==$row['user']){
                    if(
    md5($_REQUEST['passwort'])==$row['passwort']){
                        
    session_register('session_name');
                        
    session_register('session_pass');
                        
    session_register('session_email');
                        
    session_register('session_logonoff');
                        
    $session_name=$row['user'];
                        
    $session_pass=$row['passwort'];
                        
    $session_email=$row['email'];
                        
    $session_logonoff=1;
                        if(
    $session_name==$row['user']){
                            if(
    $session_pass==$row['passwort']){
                                
    header("location: acp/admin_index.php?acp=status");
                            }
                        }
                    }
                }
            } 
    aber da nimmt er imo irgend einen aber leuft das scheinbar nicht durch bis er den richtigen gefunden hat.
    Wie mach ich das, das er es so macht wie ich meine?

    ps: ob der code nun zu lang oder komisch aussieht ist egal ich will damit keinen BlumenTopf gewinnen ist nur für mich selber.

  5. #5
    Ahhhhhhhhhhhh was machst du den da xD
    Du gehst das falsch an. Ich zeig dir mal etwas was viel schneller und besser geordnet ist xD

    Hier mal nen Vorschlag:

    PHP-Code:
    $sql "SELECT ID, user,  passwort, email FROM ".$db."_userlog;"".
      "
    WHERE ".
        "
    (user like '".$_REQUEST["name"]."') AND ".
        "
    (passwort '".md5 ($_REQUEST["pwd"])."')";
    $result = mysql_query ($sql);

    if (mysql_num_rows (
    $result) > 0) {
    $data = mysql_fetch_array ($result);

    mysql_query ("
    UPDATE user SET Login RAND( ) WHERE (user ='".$data['user']."')");

    $passsql = "SELECT Login FROM ".$db."_userlog;" WHERE (user like '".$data['user']."')";
    $passresult mysql_query ($passsql);
    $enter mysql_fetch_array ($passresult);

    setcookie("Enter",$enter["Login"]);
    setcookie("Name",$data["Name"]);

      
    header("Location: acp/admin_index.php?acp=status");
    }
    else
    {
      
    header ("Location: index.php?fehler=1");

    So jetzt hab ich dir noch nen Spezial Timestamp der kein Timestamp ist eingebaut. xD
    In dem Cookie Enter steht eine Art Zufallszahl die für Browserspiel geeignet ist.(Hackschutz)

    In der Seite die du schützen willst muss folgendes:

    PHP-Code:
    <?php
    if (!isset($_COOKIE["Enter"]) && !isset($_COOKIE["Name"])) {
      
    header ("Location: index.php");
    }
    else {
    ?>

    //Hier der Content

    <?php
    ?>
    Fertig! Fragen? xD

  6. #6
    Zitat Zitat von MJcoox
    PHP-Code:
        if($_REQUEST['send']){
            
    $sql=mysql_query("SELECT ID, user, passwort, email FROM ".$db."_userlog;") or die(mysql_error());
            while(
    $row=mysql_fetch_array($sql)){
                if(
    $_REQUEST['name']==$row['user']){
                    if(
    md5($_REQUEST['passwort'])==$row['passwort']){
                        
    session_register('session_name');
                        
    session_register('session_pass');
                        
    session_register('session_email');
                        
    session_register('session_logonoff');
                        
    $session_name=$row['user'];
                        
    $session_pass=$row['passwort'];
                        
    $session_email=$row['email'];
                        
    $session_logonoff=1;
                        if(
    $session_name==$row['user']){
                            if(
    $session_pass==$row['passwort']){
                                
    header("location: acp/admin_index.php?acp=status");
                            }
                        }
                    }
                }
            } 
    Mal ein paar Tipps
    • session_register("bla") und $bla = "foo" ist veraltet. Benutz stattdessen session_start() und $_SESSION['bla'] = "foo".
    • Die Schleife ist unnötig. Wähl doch einfach direkt in der MySQL-Query mit "... WHERE `name` = ".$_POST['name']." ..." gleich den richtigen Benutzer aus.
    • Schreib am besten die Namen der Felder in der MySQL-Query in ` und `. Damit vermeidest du Doppeldeutigkeiten und es sieht besser aus (imho)

  7. #7
    Danke an euch alle habe es jetzt geschafft mit dem LoginScript. ^___^

  8. #8
    Und wie? Zeig mal Code ._.

  9. #9
    PHP-Code:
    if($main=="login"){
        if(
    $_REQUEST['send']){
            
    $sql=mysql_query("SELECT ID, user, passwort, email FROM ".$db."_userlog WHERE user='".$_REQUEST['name']."';");
            if(
    $sql){
                
    $row=mysql_fetch_array($sql);
                if(
    $_REQUEST['passwort']=$row['passwort']){
                    
    session_register('session_name');
                    
    session_register('session_pass');
                    
    session_register('session_email');
                    
    session_register('session_logonoff');
                    
    $session_name=$row['user'];
                    
    $session_pass=$row['passwort'];
                    
    $session_email=$row['email'];
                    
    $session_logonoff=1;
                    if(
    $session_name==$row['user']){
                        if(
    $session_pass==$row['passwort']){
                            echo
    "<a href='' target='_blank'>Weiter zum ACP</a>";
                        }
                    }
                }else{echo(
    "Passwort Falsch!");}
            }else{echo(
    "Keinen User gefunden!");}
        }
    }elseif(
    $main=="adminlog"){
        echo
    "<form action='index.php?main=login' method='post'>
            <table id='login'>
                <tr><td>Name:</td><td><input id='login' name='name' type='name'></td></tr>
                <tr><td>Passwort:</td><td><input id='login' name='passwort' type='password'></td></tr>
                <tr><td></td><td><input id='login' name='send' type='submit' value='&nbsp; Login &nbsp;'></td></tr>
            </table>
        </form>"
    ;

    so sieht meine Login.php aus.

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •