Results 1 to 20 of 20

php login

  1. #1 Reply With Quote
    Provinzheld
    Join Date
    Jul 2011
    Posts
    248
    Hallo,

    Ich möchte ein Login für meine website machen also angefangen damit das man sich einloggen kann das man sich richtig anmeldet kommt später... jetzt habe ich ein Problem. Ich lade den Code mahl hoch, das man sich in dem fall nicht mit der mysql datenbank verbinden kann ich klar aber irgend ein fehler ist noch in der abfrage... irgend ein fehler...
    vil. könnt ihr mir dabei ja helfen undzwar gibt es einen fehler in der $fehler variable. hier mahl mein code :

    und wie kann ich eine abfrage machen ob es in der tabelle vorhanden ist also:
    ID|password|Benutzername|
    1 |lol|JoKaBo
    2 |hh|Minecraft

    wenn ich jetzt einngebe als pw = lol und als benutzername = JoKaBo dann und nur dann wen es is eine spalte ist soll man sich einloggen können daran bin ich bis jetzt gescheitert... das login aus der tabelle abzufragen... bei fragen fragt...

    Code:
    PHP Code:
    <html>
    <head>
        <title>Adlercraft Login</title>
    </head>
    <body>
        <?php
        
        
    //anfang Datenbank Verbindung
    //------------------------------------------------------------------------------------------------------//        
            
    $server 'localhost';
             
    $benutzer 'root';
             
    $passwort '';
             
    $datenbank 'Login';
         
             
    $verbindung = @mysqli_connect($server$benutzer$passwort);
         
             if (
    $verbindung){
                 
    mysqli_select_db($verbindung$datenbank);
             
                 if(
    mysqli_error($verbindung)){
                     echo 
    'Fehler: ' mysqli_error($verbindung);
                 }else{
                        
    //---End Anweisung---\\
                     
    while($daten mysqli_fetch_assoc($abfrage)){                 
                         echo 
    "<li>{$daten['Benutzername']} {$daten['Password']}</li>";
                     }
                 }                  
                }else{
                 echo 
    'Verbindungsfehler: ' mysqli_connect_error($verbindung);
                 }
                 
            
    //Anfang Abfrage
    //--------------------------------------------------------------------------------------------------------//    
                
    $fehler '';
                 if (isset(
    $_POST['B'])){
                    if (
    trim($_POST['B']) != ''){
                        
    $Benutzername $_POST['B'];
                    }else{
                        
    $fehler $fehler 'Benutzername angeben!<br/>';
                    }
                
                    if (isset(
    $_POST['P']) && trim($_POST['P']) != ''){
                        
    $Password $_POST['P'];
                    }else{
                        
    $fehler $fehler 'Password Angeben angeben!<br/>';
                    }
                
                    if (
    $fehler != ''){
                        echo 
    $fehler;
                    }else{
                    
                    if(
    $_POST['B'] == "JoKaBo" && $_POST['P'] == "michael")
                    {
                        
    //End Anweisung Daten Abfrage                        
                    
    }
                    
                }            
            }
        
    ?>
        <hr/>
        <form method="post" action="<?php echo $_SERVER['SCRIPT_NAME'?>">
            Benutzername:<br/>
            <input type="text" name="B" value="" /><br/>
            Password:<br/>
            <input type="password" name="P" value="" /><br/>
            <input type="submit" value="Login" />
        </form>
    </body>
    </html>

    mfg
    JoKaBo
    JoKaBo is offline

  2. #2 Reply With Quote
    Lehrling Reckless's Avatar
    Join Date
    Oct 2011
    Posts
    32
    Leider kann ich dir nicht ganz folgen, was genau nicht funktioniert.

    vil. könnt ihr mir dabei ja helfen undzwar gibt es einen fehler in der $fehler variable.
    Was für ein Fehler? Was wird ausgegeben?


    und wie kann ich eine abfrage machen ob es in der tabelle vorhanden ist also:
    ID|password|Benutzername|
    1 |lol|JoKaBo
    2 |hh|Minecraft

    wenn ich jetzt einngebe als pw = lol und als benutzername = JoKaBo dann und nur dann wen es is eine spalte ist soll man sich einloggen können daran bin ich bis jetzt gescheitert... das login aus der tabelle abzufragen... bei fragen fragt...
    Dazu musst du eine Abfrage an die Datenbank stellen und die Werte auslesen, welche du benötigst. Die Abfrage dazu wäre z.B.
    PHP Code:
    $s "SELECT * FROM `tabellen_name` WHERE `Benutzername`='$Benutzername' AND `password`='$Password';" 
    Den Tabellennamen hast du nirgendwo erwähnt, den müsstest du ersetzen. Danach kannst du (falls die Abfrage etwas zurückgibt), die Rückgabeergebnisse mit den POST-Variablen vergleichen.
    Den Rest solltest du alleine hinbekommen, falls es Probleme gibt, kannst du gerne noch einmal nachfragen




    PHP Code:
    while($daten mysqli_fetch_assoc($abfrage)){                 
                             echo 
    "<li>{$daten['Benutzername']} {$daten['Password']}</li>";
                     } 
    Vor diesem Teil in deinem Code hast du überhaupt keine Abfrage gemacht. $abfrage ist demnach also leer. Du müsstest, falls du die Werte auslesen möchtest, vorher so etwas machen:
    PHP Code:
    $s "SELECT * FROM `tabellen_name` ;" ;
    $abfrage $verbindung->query($s) ; 
    Nebenbei: Das Passwort solltest du nicht im Klartext in die Datenbank speichern, sondern zumindest mit MD5 verschlüsseln.

    Gruss
    Reckless
    Reckless is offline Last edited by Reckless; 29.01.2012 at 14:19.

  3. #3 Reply With Quote
    Drachentöter devZero's Avatar
    Join Date
    Sep 2011
    Posts
    4,328
    Quote Originally Posted by Reckless View Post
    Nebenbei: Das Passwort solltest du nicht im Klartext in die Datenbank speichern, sondern zumindest mit MD5 verschlüsseln.
    Und Salzen!
    devZero is offline

  4. #4 Reply With Quote
    Provinzheld
    Join Date
    Jul 2011
    Posts
    248
    Hallo,

    Erstamhal Danke für die schnelle Hilfe, ich habe es nur nicht verstanden. kann mir vil. jemand die MYSQL Verbindung Fertig einmahl geben damit mir das vil einleuchet was ich falsch gemacht habe habe mich nämlich bi jetzt nur damit beschaftigt, wie ich einen verbindung realisire...

    mfg
    JoKaBo
    JoKaBo is offline

  5. #5 Reply With Quote
    Lehrling Reckless's Avatar
    Join Date
    Oct 2011
    Posts
    32
    Eine Verbindung zu einer MySQL-Datenbank hast du in deinem Code bereits aufgebaut:

    PHP Code:
    $server 'localhost';
    $benutzer 'root';
    $passwort '';
    $datenbank 'Login';
         
    $verbindung = @mysqli_connect($server$benutzer$passwort$datenbank); 
    Edit: Evt. hat bei deinem Beispiel die $datenbank am Schluss gefehlt, ohne dieses weiss die Verbindung nicht, auf welche Datenbank du zugreifen möchtest.

    Dieser Code verbindet sich zu einer Datenbank "Login", welche sich auf dem MySQL-Server auf Localhost verbindet. Der Benutzername ist hierbei "root" und es gibt kein Passwort (da $passwort='').

    Nun hast du also eine Verbindung zu deiner Datenbank aufgebaut. Ob diese Verbindung einwandfrei geklappt hat, hast du ja in deinem Code auch bereits überprüft. Nämlich mit:
    PHP Code:
    if ($verbindung){
    // Code

    Wenn du nun eine Abfrage an die Datenbank machen möchtest, musst du diese zuerst einmal als SQL-Code ausformulieren. So z.B.:
    PHP Code:
    $s "SELECT * FROM `usertabelle`;" 
    Dies ist also nur der Text einer Abfrage, welcher in die Variable $s gespeichert wird. Die Abfrage selbst, macht dabei nichts anderes, als sämtliche Felder und Daten (*) von der Tabelle `usertabelle` auszulesen.

    Nun, da du die SQL-Abfrage als Text hast, musst du diese noch an den MySQL-Server senden. Dies kannst du z.B. mit diesem Code erreichen:
    PHP Code:
    $r mysqli_query($verbindung$s) ; 
    Die MySQL-Abfrage $s wird nun an die bereits eröffnete Datenbankverbindung $verbindung gesendet. Das Resultat der Abfrage wird in $r gespeichert.

    Damit du jetzt jede Zeile von $r auslesen kannst, muss du sie in einer Schleife durchgehen:
    PHP Code:
    while($k mysqli_fetch_assoc($r)) {
     
    // Hier kannst du nun die Werte aus $k auslesen
     
    $benutzername $k["benutzername"] ;
     
    $passwort $k["password"] ;
     echo 
    "Benutzername: $benutzername Passwort: $passwort <br />" ;

    mysqli_fetch_assoc geht in der while-Schleife jeden Eintrag vom MySQL-Ergebnis durch. Bei jedem Schleifendurchgang wird die nächste Zeile als assoziatives Array in $k gespeichert. Über dieses kannst du dann auf die Werte zugreifen.


    Soweit der prozedurale Weg, mit PHP 5 kannst du das Ganze auch objektorientiert machen. Du kannst für dich selbst entscheiden, welche Methode dir lieber ist. Objektorientiert sähe das dann so aus:
    PHP Code:
    $server 'localhost';
    $benutzer 'root';
    $passwort '';
    $datenbank 'Login';
         
    $verbindung = @new mysqli($server$benutzer$passwort$datenbank);

    if(
    $verbindung->connect_errno == 0) {
     
    $s "SELECT * FROM `usertabelle`;" ;
     
    $r $verbindung->query($s) ;

     while(
    $k $r->fetch_object()) {
      
    $benutzername $k->benutzername ;
      
    $passwort $k->password ;
      echo 
    "Benutzername: $benutzername Passwort: $passwort <br />" ;
     }

    Ich hoffe, dass sich keine Fehler eingeschlichen haben. Im Erklären war ich noch nie besonders gut, falls es also noch Fragen gibt, kannst du diese gerne noch stellen.

    Gruss
    Reckless
    Reckless is offline Last edited by Reckless; 29.01.2012 at 21:24.

  6. #6 Reply With Quote
    Provinzheld
    Join Date
    Jul 2011
    Posts
    248
    Hallo,

    Vielen Dank für die ausfürliche antwort werde mahl schauen ... thx

    mfg
    JokaBo
    JoKaBo is offline

  7. #7 Reply With Quote
    Provinzheld
    Join Date
    Jul 2011
    Posts
    248
    hier ist ein fehler

    PHP Code:
        while($k $r->fetch_object()) {
              
    $benutzername $k->benutzername ;
              
    $passwort $k->password ;
              echo 
    "Benutzername: $benutzername Passwort: $passwort <br />" 
    der fehler lautet:

    Code:
    Fatal error: Call to a member function fetch_object() on a non-object in H:\xampp\htdocs\Kapitel02\Verbindnung.php on line 21
    JoKaBo is offline

  8. #8 Reply With Quote
    Provinzheld
    Join Date
    Jul 2011
    Posts
    248
    Hallo, Der fehler wahr eine von mir, habe eine syntax fehler eingebaut...
    ich brauche jetzt aber bei was anderem hilfe also die verbindung zu MYSQL datenbank sthet die ganzen fheler mache ich noch...
    also:
    ich mache jetzt ein Formular zu anmelden aber das geht noch nicht ich glaube, dass der SQL befehl Falsch ist
    hier mahl der code:

    PHP Code:
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <link rel="stylesheet" type="text/css" href="style.css" />
    <title>AdlerCraft</title>
    <style type="text/css">
    </style>
    </head>

    <body>
        <center><script type="text/javascript"><!--
        google_ad_client = "ca-pub-5925024774282265";
        /* AdlerCraft MainBanner */
        google_ad_slot = "8486117513";
        google_ad_width = 468;
        google_ad_height = 60;
        //-->
        </script>
        <script type="text/javascript"
        src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
    </script></center>


    <div id="container">
            <div id="mainpic">

            </div>   
            
            <div id="menu">
                <ul>
                    <li class="menuitem"><a href="index.html">Home</a></li>
                    <li class="menuitem"><a href="Regeln.html">Regeln</a></li>
                    <li class="menuitem"><a href="News.html">News</a></li>      
                    <li class="menuitem"><a href="Forum.html">Forum</a></li>
                    <li class="menuitem"><a href="Online.html">Online</a></li>
                    <li class="menuitem"><a href="impressum.html">Impressum</a></li>
                    
                    
                </ul>
            </div> 
            <div id="content">
    <?php
        
        
    //anfang Datenbank Verbindung
    //------------------------------------------------------------------------------------------------------//        
         
    $server 'localhost';
             
    $benutzer 'JoKaBo';
             
    $passwort 'lolistlol';
             
    $datenbank 'Login';
         
        
    $verbindung = @new mysqli($server$benutzer$passwort$datenbank);    
              

          
            
    //Anfang Abfrage
    //--------------------------------------------------------------------------------------------------------//    
                
    $fehler '';
                 if (isset(
    $_POST['B'])){
                    if (
    trim($_POST['B']) != ''){
                        
    $Benutzername $_POST['B'];
                    }else{
                        
    $fehler $fehler 'Benutzername angeben!<br/>';
                    }
                
                    if (isset(
    $_POST['P']) && trim($_POST['P']) != ''){
                        
    $Password $_POST['P'];
                    }else{
                        
    $fehler $fehler 'Password Angeben angeben!<br/>';
                    }
                
                    if (
    $fehler != ''){
                        echo 
    $fehler;
                    }else{
                    
                   
    $sql "    INSERT INTO `ni32182_1_DB`.`Login` (`ID`, `Benutzername`, `Password`, `E-Mail`) VALUES (NULL, '{$_POST['B']}', '{$_POST['P']}', '{$_POST['EM']}')";
                    
                }            
            }             

        
    ?>
        <hr/>
        <form method="post" action="<?php echo $_SERVER['SCRIPT_NAME'?>">
            Benutzername:<br/>
            <input type="text" name="B" value="" /><br/>
            E-Mail:<br/>
            <input type="text" name="EM" value="" /><br/>
            Password:<br/>
            <input type="password" name="P" value="" /><br/>
            Password Widerholen:<br />
            <input type="password" name="PW" value="" /><br/>
            <input type="submit" value="Login" />
        </form>
                
                
                
            
            </div>
            <p>&copy;Copyright AdlerCraft Alle Rechte vorbehalten</p>
         </div>
          
          </body>   
    </html>
    JoKaBo is offline Last edited by JoKaBo; 03.09.2015 at 14:50.

  9. #9 Reply With Quote
    Krieger Lain's Avatar
    Join Date
    Oct 2008
    Posts
    409
    Habe ich da was übersehen, oder hast du einfach nur vergessen, deine in der Variable $sql liegende Abfrage auch tatsächlich mit mysql_query auszuführen?
    Lain is offline

  10. #10 Reply With Quote
    Provinzheld
    Join Date
    Jul 2011
    Posts
    248
    also dem code kommt kein fehler aber es wird auch lein element in die datenbank eingetragen...
    JoKaBo is offline

  11. #11 Reply With Quote
    Ritter Delta 38's Avatar
    Join Date
    Nov 2008
    Location
    Bremen
    Posts
    1,251
    In deinem Code ist auch soweit kein Syntaxfehler. Aber ebenjener, den Xrystal genannt hat.
    Du musst die Sql-Abfrage auch ausführen und sie nicht nur in einem String speichern ;-)
    Delta 38 is offline

  12. #12 Reply With Quote
    Provinzheld
    Join Date
    Jul 2011
    Posts
    248
    Hallo,
    Jetzt habe ich eig. alles richtig obwohl ich es nicht habe

    hier noch mahl mein neuer Code:

    PHP Code:
    $verbindung = @new mysqli($server$benutzer$passwort$datenbank);    
                      if(
    $verbindung->connect_errno == 0) {
                                    
                 }
                 if(
    mysqli_error($verbindung)){                 
                 
                 echo 
    'Fehler: ' mysqli_error($verbindung);
                 
                 }else{
                   if (isset(
    $_POST['vorname'])){
                     
    $sql "INSERT INTO `ni32182_1_DB`.`Login` (`ID`, `Benutzername`, `Password`, `E-Mail`) VALUES (NULL, '{$_POST['B']}', '{$_POST['P']}', '{$_POST['EM']}')
                     "
    ;
                     
    $abfrage mysqli_query($verbindung$sql);                 
                     echo 
    'SQL: ' $sql;
                     echo 
    mysqli_error($verbindung);
                   }
                 } 
    JoKaBo is offline

  13. #13 Reply With Quote
    Lehrling Reckless's Avatar
    Join Date
    Oct 2011
    Posts
    32
    Die if-Schleife in dem folgenden Zitat ist sinnlos, da sie keinen Code enthält.
    Quote Originally Posted by JoKaBo View Post
    PHP Code:
    $verbindung = @new mysqli($server$benutzer$passwort$datenbank);    
                      if(
    $verbindung->connect_errno == 0) {
                                    
                  } 
    Versuche statt dem obenstehenden Code mal folgendes:
    PHP Code:
    $verbindung mysqli_conncet($server$benutzer$passwort$datenbank) ; 
    Laut Dokumentation gibt es zwar keinen Unterschied zwischen dem prozeduralen oder dem objektorientierten Objekt, einen Versuch ist es aber trotzdem wert. Auf die Schnelle kann ich keinen anderen Fehler erkennen.

    Gibt das Skript denn sonst irgendeine Antwort/Ausgabe?

    Mach auch sicherheitshalber mal ein echo von $sql nach seiner Zuweisung. Damit du siehst, ob die Zuweisung richtig vonstatten geht.

    Gruss
    Reckless
    Reckless is offline

  14. #14 Reply With Quote
    Provinzheld
    Join Date
    Jul 2011
    Posts
    248
    Nein macht keine Ausgabe auch. Nicht wenn ich. Mit Echo den SQL Befehl ausgebe. ...

    Naja wird schon ich schaue noch. Macho genauer bei google.

    MfG
    joKaBo
    JoKaBo is offline

  15. #15 Reply With Quote
    Provinzheld
    Join Date
    Jul 2011
    Posts
    248
    Ich habe jetz noch einmal eine neue sicherheits Frage. ich habe mein login und homepage erstmal fertig(habe eine neue)

    jetzt habe ich die domain ......de wen man eingiebt .....de/admin kommt man zu login
    und wir wen die daten richtig sind weitergeleitet zu homelogin.php aber man kann auch eingeben ......de/homelogin.php und damit das login umgehen wie kann ich sowas verhindern ???

    were echt toll wen mit das jemand sagen könnt

    mfg
    JoKaBo
    JoKaBo is offline Last edited by JoKaBo; 19.02.2013 at 14:03.

  16. #16 Reply With Quote

    Batmanistrator
    Thoronador's Avatar
    Join Date
    Jul 2005
    Location
    Morrowind, Vvardenfell-Distrikt
    Posts
    20,223
    Du kannst nicht verhindern, dass jemand direkt die URL eingibt und damit die Loginseite überspringt. Aber du kannst beim Aufruf der Loginseite überprüfen, ob die Person, welche die Seite gerade ansieht, eingeloggt ist. Das macht man in der Regel mit Hilfe von Sessions, da diese es erlauben, Variablen auch über den Ausruf einer Seite hinaus zu erhalten. Das Grundprinzip dabei ist eigentlich fast immer, dass man beim Login bestimmte Sessionvariablen setzt und dann auf allen schützenswerten Seiten mit beschränktem Zugriff überprüft, ob diese Variablen gesetzt sind und den erforderlichen Wert haben. Ist das nicht der Fall, wird eine entsprechende Meldung angezeigt ("Sie sind nicht eingeloggt, blabla, usw. ...") oder die Scriptausführung abgebrochen.
    Thoronador is offline

  17. #17 Reply With Quote
    Provinzheld
    Join Date
    Jul 2011
    Posts
    248
    mir fällt grade etwas ein .
    kann man net eine abfrage zur datenbank machen also: dor ist ein boolean wen der auf true ist wir die seie geladen wen der auf false ist wird man wieder zum index.php weitergeleitet ist doch auch möglich oder ?
    JoKaBo is offline

  18. #18 Reply With Quote

    Batmanistrator
    Thoronador's Avatar
    Join Date
    Jul 2005
    Location
    Morrowind, Vvardenfell-Distrikt
    Posts
    20,223
    Ja, das ist möglich. Da du aber ohnehin denjenigen, der die Seite gerade aufruft, irgendwie identifizieren musst, wären Sessions hier vermutlich der einfachste Ansatz. Falls du die Sache mit der Datenbank nämlich falsch machst, könnte es passieren, dass jeder die geschützte Seite aufrufen kann, sobald irgendeiner mit Zugang zu der Seite eingeloggt ist.
    Thoronador is offline

  19. #19 Reply With Quote
    Provinzheld
    Join Date
    Jul 2011
    Posts
    248
    ok.

    ich habe jetzt mal die seite angeschut, ich verstehe aber garnicht wie ich an benutzen muss kannst du mir das vil. erkären ?? were aufjeden fall sehr nett

    mfg
    JoKaBo
    JoKaBo is offline

  20. #20 Reply With Quote
    Provinzheld
    Join Date
    Jul 2011
    Posts
    248
    Problem Gelöst alless geht thx
    JoKaBo is offline

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •