Ankündigung

Einklappen
Keine Ankündigung bisher.

ein login-system, basierend auf MySQL und sessions

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • coraplanet
    antwortet
    sorry hat sich schon erledigt habe einen freund durchlesen lassen und der hat folgenden fehler gefunden:

    in der check_login.php schrieb ich:

    Code:
    $sql = "SELECT u_id,
    		   u_name,
    		   u_pass
    	    FORM   u_users
    	    WHERE  u_name = '".mysql_real_escape_string($_POST['u_name'])."'
                AND    u_pass = '".md5($_POST['u_pass'])."'
                ";
    anstatt
    Code:
    $sql = "SELECT u_id,
    		   u_name,
    		   u_pass
    	    FROM   u_users
    	    WHERE  u_name = '".mysql_real_escape_string($_POST['u_name'])."'
                AND    u_pass = '".md5($_POST['u_pass'])."'
                ";
    und in der intern.php hatte ich auch nen fehler drin, weiß aber nicht welcher hab aus diesem tut die datei komplett kopiert wie sie hier stand und dann gings ... müsste aber was mit der ausgabe gewesen sein da er mir nen fehler dort in zeile 5 ausgegeben hat...

    funktioniert aber jetzt einwandfrei und ohne fehler....

    an den ersteller ... ich find das tut sehr gut (mein eigens geschriebener login hab ich nun komplett verworfen und werde diesen in meine homepage einbauen)

    daumen hoch

    thx trotzdem an alle die antworten wollten

    mfg coraplanet

    Einen Kommentar schreiben:


  • coraplanet
    antwortet
    ich weiß der letzte post liegt schon 2 wochen zurück aber habe auch ein problem ... ich habe in meine datenbank einen usernamen --> admin und das passwort --> hh eingefügt

    jedoch zeigt er mir folgendes an wenn ich die daten eingegeben und auf login geklickt habe:

    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 'u_users WHERE u_name = 'admin' AND u_pass = '5e36941b3d8' at line 4

    ich vermute mal nach der fehlermeldung nach zu urteilen vergleicht er immer nur 11 stellen des md5 kodierten passwortes in der datenbank

    aber ich weiß einfach nicht wie ich diesen fehler beheben kann ... da steht zwar die sql-syntax stimmt nicht ganau obwohl da auch steht das irgendwo in zeile 4 was nicht stimmt aber wo?? ich weiß es einfach nicht bin hier auch schon seit 2 stunden auf fehlersuche

    bitte helft mir

    thx coraplanet

    Einen Kommentar schreiben:


  • xyz
    antwortet
    danke, werd ich machen

    mfg xyz

    Einen Kommentar schreiben:


  • David
    antwortet
    Dann wende Dich an den Admin der Kiste bzw den Kundenservice

    Einen Kommentar schreiben:


  • xyz
    antwortet
    ich hab nur die logindaten bekommen und musste es machen, ist kein lokaler server
    mfg xyz

    Einen Kommentar schreiben:


  • drieling
    antwortet
    Ich vermute mal, dass etwas mit dem MySql nicht stimmt... ist das vernünftig in den Apache eingebunden?

    Einen Kommentar schreiben:


  • xyz
    antwortet
    Problem

    bei mir erscheint folgende fehlermeldung, aber ich kann den fehler nirgens finden:
    Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)

    ich hoffe, dass Sie mir helfen könnten

    mfg xyz

    Einen Kommentar schreiben:


  • Traum
    antwortet
    Zitat von mike-loewe Beitrag anzeigen
    leider ohne die "header-funktion"
    Hmm, komisch...also bei mir läuft das Script einwandfrei durch. Nur mit dem Problem, dass ich keine intern.php habe und er deshalb nen Fehler macht. Aber die URL nimmt er erstmal.

    Einen Kommentar schreiben:


  • mike-loewe
    antwortet
    Zitat von KingCrunch Beitrag anzeigen
    Wenn man die Felder anständig validiert, kann man auf addslashes und co verzichten. Reguläre Ausdrücke sind ein mächtige Werkzeug

    DANKE AN ALLE ........ Es funktioniert, leider ohne die "header-funktion"

    Einen Kommentar schreiben:


  • Traum
    antwortet
    PHP-Code:
    //prüfen, ob die eingabefelder ausgefüllt wurden
    if(empty($_POST['nic_name']) || empty($_POST['pw_user']))
        {
          
    //wenn sie nicht ausgefüllt wurden
         
    echo 'es wurden nicht alle relevanten felder ausgefüllt';
         exit();
              
    //wenn sie ausgefüllt wurden
         
    }else
          {
                 
    //eine SQL-abfrage vorbereiten und sie abschicken
                 
    $sql "SELECT user_id,
                         nic_name,
                         pw_user
                         FROM user_mse
                         WHERE  nic_name = '"
    .mysql_real_escape_string($_POST['nic_name'])."'
                         AND pw_user = '"
    .mysql_real_escape_string($_POST['pw_user'])."'";
                 
    $result mysql_query($sql) or die(mysql_error());
              
    //prüfung, ob genau eine der spalten mit der eingabe überein stimmt
    if(mysql_num_rows($result) != 1)
     {
              
    //wenn nicht übereinstimmt
           
    header ("Location:http://www.ulr.com");
           exit();
               
    //wenn übereinstimmt
     
    }else
                {
               
    //eine session "logged" auf TRUE setzen
                   //eine session mit dem usernamen erstellen
                   
    $_SESSION['logged'] = TRUE;
                   
    $_SESSION['nic_name'] = $_POST['nic_name'];
                   
    //auf die geschützte datei weiterleiten
                   
    header ("Location:http://www.ulr.com");
                   exit();
                 }
    }
    ?> 
    [/quote]

    So, passt.

    Einen Kommentar schreiben:


  • Traum
    antwortet
    Das Problem ist eher, dass bei jedem Fehler den man ausmerzt ein neuer auftaucht. Und das darin geschuldet ist, dass es immer Codeschnipsel sind.

    In dem Kommentar von mir gab es nur if(mysql..blaa) und nicht das davor. Demnach war die } zuviel

    Mal gucken was es diesmal ist.

    Einen Kommentar schreiben:


  • Montellese
    antwortet
    Zähl bitte mal durch, wieviele { in deinem Scriptteil aufgehen und wieviele zu.... Ist das in deinem Editor auch so grässlich eingerückt oder nur hier im Forum irgendwie? Sieht ziemlich unübersichtlich aus....

    Tipp: Wenn ein Fehler in der Zeile mit dem ?> angegeben wird, liegt das immer daran, dass zu wenige } eingesetzt wurden.

    EDIT: Ich glaube der Hinweis von Traum war nicht ganz richtig! Da waren nicht zu viele Klammern sondern zu wenige bzw am falschen Ort.

    Einen Kommentar schreiben:


  • mike-loewe
    antwortet
    Zitat von Traum Beitrag anzeigen
    Na, was fällt auf? Genau, ne } zuviel...dann klappt es auch mit dem Nachbarn
    Hi und Danke erstmal, bekomme immer noch einen Fehler in Zeile 46? Zeile 45 ist ?>

    Fehler:
    Parse error: parse error, unexpected $ in /homepages/10/d171645326/htdocs/msw_event/test/check_login.php on line 46

    Hier mal das ganze

    PHP-Code:
    //prüfen, ob die eingabefelder ausgefüllt wurden
    if(empty($_POST['nic_name']) || empty($_POST['pw_user']))
        {
          
    //wenn sie nicht ausgefüllt wurden
         
    echo 'es wurden nicht alle relevanten felder ausgefüllt';
         exit();
              
    //wenn sie ausgefüllt wurden
         
    }else
          {
                 
    //eine SQL-abfrage vorbereiten und sie abschicken
                 
    $sql "SELECT user_id,
                         nic_name,
                         pw_user
                         FROM user_mse
                         WHERE  nic_name = '"
    .mysql_real_escape_string($_POST['nic_name'])."'
                         AND pw_user = '"
    .mysql_real_escape_string($_POST['pw_user'])."'";
                 
    $result mysql_query($sql) or die(mysql_error());
                {
    //prüfung, ob genau eine der spalten mit der eingabe überein stimmt
    if(mysql_num_rows($result) != 1)
     {
              
    //wenn nicht übereinstimmt
           
    header ("Location:http://www.ulr.com");
           exit();
               
    //wenn übereinstimmt
     
    }else
                {
               
    //eine session "logged" auf TRUE setzen
                   //eine session mit dem usernamen erstellen
                   
    $_SESSION['logged'] = TRUE;
                   
    $_SESSION['nic_name'] = $_POST['nic_name'];
                   
    //auf die geschützte datei weiterleiten
                   
    header ("Location:http://www.ulr.com");
                   exit();
                 }
    ?> 

    Einen Kommentar schreiben:


  • Traum
    antwortet
    Zitat von mike-loewe Beitrag anzeigen
    PHP-Code:
     if
                    {
                    
                    }
                        else
                            {
                            }
                } 
    Na, was fällt auf? Genau, ne } zuviel...dann klappt es auch mit dem Nachbarn

    Einen Kommentar schreiben:


  • mike-loewe
    antwortet
    Zitat von Klabautermann Beitrag anzeigen
    Die Fehlermeldung müsste
    Warning: Cannot modify header information - headers already sent by (output started at *Deine Datei.php*:10) in *Deine Datei.php on line 34

    Es darf also kein echo vor dem header Befehl stehen.
    ne, es kommt garnichts........nur ein weißer Bildschirm

    So ist es geschrieben!?

    PHP-Code:
     if(mysql_num_rows($result) != 1)
                    {
                    
    //wenn nicht übereinstimmt
                    //echo 'sie konnten nicht als benutzer identifiziert werden';
                    
    header('Location: intern.php');
                    exit();
                    }
                        
    //wenn übereinstimmt
                        
    else
                            {
                            
    //eine session "logged" auf TRUE setzen
                            //eine session mit dem usernamen erstellen
                            
    $_SESSION['logged'] = TRUE;
                            
    $_SESSION['nic_name'] = $_POST['nic_name'];
                            
    //auf die geschützte datei weiterleiten
                            //echo 'sie konnten als benutzer identifiziert werden';
                            
    header('Location: intern.php');
                            exit();
                            }
                }
    ?> 
    Das steht in "intern.php".....eigentlich sollte das echo angezeigt werden

    PHP-Code:
     if(mysql_num_rows($result) != 1)
                    {
                    
    //wenn nicht übereinstimmt
                    //echo 'sie konnten nicht als benutzer identifiziert werden';
                    
    header('Location: intern.php');
                    exit();
                    }
                        
    //wenn übereinstimmt
                        
    else
                            {
                            
    //eine session "logged" auf TRUE setzen
                            //eine session mit dem usernamen erstellen
                            
    $_SESSION['logged'] = TRUE;
                            
    $_SESSION['nic_name'] = $_POST['nic_name'];
                            
    //auf die geschützte datei weiterleiten
                            //echo 'sie konnten als benutzer identifiziert werden';
                            
    header('Location: intern.php');
                            exit();
                            }
                }
    ?> 

    Einen Kommentar schreiben:

Lädt...
X