Ergebnis 1 bis 9 von 9

Thema: Login mit Mysql

  1. #1
    Großmeister(in)
    Registriert seit
    20.05.2006
    Beiträge
    570
    Danke
    1
    Bekam 0 mal "Danke" in 0 Postings

    Standard Login mit Mysql

    Hi
    Ich lerne grad MySQL.
    Nun möchte ich mein Login Script, das ich früher immer mit txt Dateien benutzt habe für Mysql umschreiben.
    Da treten ein paar Fehler auf:

    Registrieren.html:
    Code:
    <form action="registrieren.php" method="post">
    Dein Username&#58;
    
    <input type="text" size="24" maxlength="50"
    name="username">
    
    
    
    Dein Passwort&#58;
    
    <input type="password" size="24" maxlength="50"
    name="passwort">
    
    
    Passwort wiederholen&#58;
    
    <input type="password" size="24" maxlength="50"
    name="passwort2">
    
    
    <input type="submit" value="Abschicken">
    </form>
    registrieren.php:
    Code:
    <?php
    $username = $_POST&#91;"username"&#93;;
    $password = $_POST&#91;"passwort"&#93;;
    $password2 = $_POST&#91;"passwort2"&#93;;
    
    $verbindung = mysql_connect&#40;"localhost","nickname","password"&#41;
    or die &#40;"verdindung nicht möglich"&#41;;
    
    mysql_select_db&#40;"homepage"&#41;
    or die &#40;"nicht da"&#41;;
    
    if &#40;$password == $password2&#41;
       &#123;
       $passwort = md5&#40;$password&#41;;
    
    $eintragen = "INSERT INTO `login` &#40; `id` , `nick` , `pass` &#41;
    VALUES &#40;
    NULL , '$username', '$passwort'
    &#41;";
     echo "$username, deine Anmeldung war erfolgreich
          
    <a href=\"login.html\">zum Login</a>";
       &#125;
    ?>
    Login.html:
    Code:
    <form action="login.php" method="post">
    Dein Username&#58;
    
    <input type="text" size="24" maxlength="50"
    name="username">
    
    
    
    Dein Passwort&#58;
    
    <input type="password" size="24" maxlength="50"
    name="password">
    
    
    <input type="submit" value="Login">
    </form>
    Login.php:
    Code:
    <?php
    $username = $_POST&#91;"username"&#93;;
    $passwort = $_POST&#91;"password"&#93;;
    $passwort = md5&#40;$passwort&#41;;
    
    
    $verbindung = mysql_connect&#40;"localhost","nick","passwort"&#41;
    or die &#40;"verdindung nicht möglich"&#41;;
    
    mysql_select_db&#40;"homepage"&#41;
    or die &#40;"nicht da"&#41;;
    
    $abfrage1 = "SELECT nick, pass FROM login";
    $ergebnis = mysql_query&#40;$abfrage1&#41;;
    while&#40;$row = mysql_fetch_object&#40;$ergebnis&#41;&#41;
     &#123;
     $ich = "$row->nick 
    ";
      $du = "$row->pass 
    ";
     &#125;
    
    if&#40;$username == $ich and $passwort == $du&#41;
     &#123;
     echo "Hallo $username";
     &#125;
     else
     &#123;
     echo "etwas ist falsch";
     &#125;
    
    ?>
    Also ich vermute es liegt an login.php naja schaut einfach mal selbst.
    Also höchstwarscheinleich an der if anweisung oder?

    MFG
    WWKiller?
    Achtung: Dies ist ein alter Thread im HTML und Webmaster Forum
    Diese Diskussion ist älter als 90 Tage. Die darin enthaltenen Informationen sind möglicherweise nicht mehr aktuell. Erstelle bitte zu deiner Frage ein neues Thema im Forum !!!!!

  2. #2
    Kaiser(in)
    Registriert seit
    09.12.2005
    Alter
    29
    Beiträge
    2.496
    Danke
    1
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    1. poste was für fehler auftreten !
    2. schau dir noch mal genau an, wie das mit mysql funzt, anscheinend hast du ein paar grundlegende dinge übersehen, denn damit machst du GAR NICHTS ausser die variable zu definieren
    $eintragen = "INSERT INTO `login` ( `id` , `nick` , `pass` )
    VALUES (
    NULL , '$username', '$passwort'
    )";
    du solltest den befehl schon aufrufen :P
    und zwar so:
    Code:
    mydql_query&#40;"INSERT INTO `login` &#40;`nick` , `pass` &#41; 
    VALUES &#40; '".$username."', '".$passwort."' &#41;"&#41;;
    3. bau die verbindung zur datenbank mal so auf (ich weiss nich ob man bei mysql_selebt_db die connection sozusagen einfach weglassen kann ?!)

    $dbh=mysql_connect($db_host,$db_user,$db_pw);
    mysql_select_db($db_db,$dbh);

    (5.) was ist schneller btw mysql_fetch_object oder mysql_fecth_assoc ? naja ka, geht auf jeden fall beides

    mfg
    Sei immer du selbst. Außer du kannst Batman sein. Sei immer Batman!

  3. #3
    HTML Newbie
    Registriert seit
    17.06.2007
    Ort
    Berlin
    Beiträge
    3
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    also, ich hab den code der login.php an meiner datenbank ausprobiert und etwas umgeschrieben, so würde das Grundgerüst funktionieren.
    ABER: leider wird nur der Benutzername angezeigt und nicht überprüft.... Vom Passwort gar nicht erst zu sprechen.....

    Hier der Code.... leider gibts wie gesagt noch probleme:

    <?php
    $user = $_POST["user"];
    $pw = md5($pw);

    error_reporting(E_ALL); //Damit sagen wir PHP das es uns die Fehler
    //Berichten soll, die auftreten, falls etwas nicht
    // Klapt

    define('MYSQL_HOST', 'localhost'); // Der host, standartmaessig
    // immer Localhost
    define('MYSQL_USER', 'DB-Benutzer'); //Der Benutzername, bei z.b. ohost
    // waere es der Angegebene
    //Benutzername
    define('MYSQL_PASS', 'DB-Passwort'); //Das normale mysql PAsswort
    define('MYSQL_DATABASE', 'DB-NAME'); //Der Name der Datenbank


    $abfrage1 = "select user, pw FROM db"; //HIER: "db" ist mir NICHT der Name der Datenbank, sondern die Tabelle in der Datenbank, "user" und "pw" sind Tabellen in der Tabelle "db"....

    $abfrage2 = "SELECT pw, pw FROM db"; //Sollte hier nicht eigentlich "check" statt "SELECT" stehen, oder wäre das php?

    if($user == $user)
    if($pw == $pw)
    {
    echo "Hallo $user";
    }
    else
    {
    echo "etwas ist falsch";
    }

    ?>


    ///////////////// jetzt stellt sich natürlich die Frage, wo der/die Fehler ist/sind....
    und warum

  4. #4
    König(in)
    Registriert seit
    06.06.2007
    Ort
    Bi
    Beiträge
    1.015
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    Hi, hier diese Versionen müssten gehen:

    Code:
    Registrierung&#58;
    
    
    
    <?php
    $username = $_POST&#91;"username"&#93;;
    $password = $_POST&#91;"passwort"&#93;;
    $password2 = $_POST&#91;"passwort2"&#93;;
    
    $verbindung = mysql_connect&#40;"localhost","nickname","password"&#41;
    or die &#40;"verdindung nicht möglich"&#41;;
    
    mysql_select_db&#40;"homepage"&#41;
    or die &#40;"nicht da"&#41;;
    
    if &#40;$password == $password2&#41;
       &#123;
       $passwort = md5&#40;$password&#41;;
    
    $eintragen = "INSERT INTO login &#40;nick , pass &#41; VALUES &#40; '$username', '$passwort'&#41;";
    mysql_query&#40;$eintragen&#41;; 
    
    echo "$username, deine Anmeldung war erfolgreich
          
    <a href=\"login.html\">zum Login</a>";
       &#125;
    ?>

    und nochmal

    Code:
     Login.php
    
    
    <?php
    $username = $_POST&#91;"username"&#93;;
    $passwort = $_POST&#91;"password"&#93;;
    $passwort = md5&#40;$passwort&#41;;
    
    
    $verbindung = mysql_connect&#40;"localhost","nick","passwort"&#41;
    or die &#40;"verdindung nicht möglich"&#41;;
    
    mysql_select_db&#40;"homepage"&#41;
    or die &#40;"nicht da"&#41;;
    
    $abfrage1 = "SELECT nick FROM login WHERE nick = '$username' AND pass ='$passwort' ";
    $ergebnis = mysql_query&#40;$abfrage1&#41;;
    
    $row = mysql_fetch_row&#40;$ergebnis&#41;;
    
    if&#40;$row!=NULL&#41; // Es wurde ein passender Nick mit zutreffendem Passwort in der DB gefunden 
     &#123;
     echo "Hallo $row&#91;0&#93; ";
     &#125;
     else
     &#123;
     echo "etwas ist falsch";
     &#125;
    
    ?>
    Ich habe einfach mal deine Arbeitsweise leicht verändert, wenn du ein Passwort , sei es md5 gesichert sei oder nicht zu irgend einer Zeit aus der DB rausliest kann jeder an die Daten ran und mit entsprechendem Probieren auch kurze Passwörter erknobeln... Davon mal abgesehen, warum 30 Bücher erst raussuchen, wenn du vorher angibst, was für ein Buch du haben willst - also spart das aufwand ^^.
    Sämtlicher Code erhebt keinen Anspruch auf syntaktische Korrektheit geschweige denn Ausführbarkeit und ist für die Implementation außerhalb der Beispiele nicht geeignet.

    Kein Support für kommerzielle Scripts | Kein kostenloser Support via ICQ

  5. #5
    HTML Newbie
    Registriert seit
    17.06.2007
    Ort
    Berlin
    Beiträge
    3
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    Danke schön!
    Aber hab grad festgelstellt, dass der code auch nicht aus der richtigen tabelle lädt. hab mir aber etwas ähnliches zusammengebastelt, was noch einfacher ist, aber einwandfrei funktioniert...
    Ist viel einfacher:

    <html>

    <head>
    <title> Login check </title>
    </head>

    <body>

    <?php
    include('config.php');

    @mysql_connect(MYSQL_HOST, MYSQL_USER, MYSQL_PASS) OR die(mysql_error());
    mysql_select_db(MYSQL_DATABASE) OR die(mysql_error());
    define('MYSQL_TABLE', 'db');


    $list = fopen("list.txt", "r");
    $listing = fgets($list, 50);
    $ulist = explode("|", $listing);

    if($_POST["user"]=$user && $_POST["pw"]=$pw)
    {
    print("Login succeded!");

    }else{
    print("Login denied!");
    }

    fclose($list);

    ?>

    </body>

    </html>


    ////////////Das einzige Problem an diesem Code ist, dass die Seite bei "Login suceed" stehenbleibt und ich eigentlich überhaupt nicht weiß, wie ich den user auf die entsprechende seite weiterleite.......

    Bitte um Hilfe.
    Danke

  6. #6
    HTML Newbie
    Registriert seit
    17.06.2007
    Ort
    Berlin
    Beiträge
    3
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    Die Adresse ist übrigens

    www.area-one.net

    REINSCHAUEN LOHNT SICH!

  7. #7
    König(in)
    Registriert seit
    06.06.2007
    Ort
    Bi
    Beiträge
    1.015
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    du hast noch ein Problem, aber dazu gleich,

    also , du kannst entweder eine unschöne Variante nehmen, indem du einfach einen Link zu der entsprechenden Seite unter "Login successful" setzt zur seite,

    oder du schreibst statt "Login..." einfach Location("die Ziel URL"); und auf der Seite dann "login successfull"

    aber nun zu deinem Problem , wo prüfst du dann denn, ob ein User eingeloggt ist, wenn du nur am Anfang auf einer einzelnen Php testet, ob der User eingeloggt ist oder nicht, dann kann jeder, der die Zielurl kennt einfach die eingeben und ist drin :-/ wie ärgerlich...
    Sämtlicher Code erhebt keinen Anspruch auf syntaktische Korrektheit geschweige denn Ausführbarkeit und ist für die Implementation außerhalb der Beispiele nicht geeignet.

    Kein Support für kommerzielle Scripts | Kein kostenloser Support via ICQ

  8. #8
    area-one.net
    Gast

    Standard

    Habe leider noch ein Problem mit dem Code! Wenn ich einfach irgendwas eingebe und dann auf Login klicke, steht da plötzlich trotzdem "Login Succeed" woran kanns liegen?? ich meine, heißt:
    if($_POST["user"]=$user && $_POST["pw"]=$pw)
    nich einfach nur, dass die beiden werte übereinstimmen und nicht, dass sie aus der DB geprüft werden??? also irgendwie komm ich gar nicht mehr klar mit dem code....

    ich fax jetz einfach mal nochmal den komplette code rüber, dann sieht ja vielleicht jemand den fehler.
    Das Problem ist, wie schon gesagt, dass für einen erfolgreichen Login einfach nur beide Felder (USER,PW) ausgefüllt sein müssen. egal was drinsteht, man wird eingeloggt.
    die tabellen für die Felder heißen übrigens "user" und "pw" wobei pw natürlich das Passwort ist und user der Username. Wer kann mir da weiterhelfen?
    --------------------------------------------------------------

    <html>

    <head>
    <title> Login check </title>
    </head>

    <body>

    <?php
    include('config.php');

    @mysql_connect(MYSQL_HOST, MYSQL_USER, MYSQL_PASS) OR die(mysql_error());
    mysql_select_db(MYSQL_DATABASE) OR die(mysql_error());
    define('MYSQL_TABLE', 'db');


    $list = fopen("list.txt", "r");
    $listing = fgets($list, 50);
    $ulist = explode("|", $listing);

    if($_POST["user"]=$user && $_POST["pw"]=$pw)
    {
    print("Login succeded!");

    }else{
    print("Login denied!");
    }

    fclose($list);

    ?>

    </body>

    </html>

    -----------------------------------------
    Das ist die komplette db_login.php

    ja, zum vorigen eintrag noch was dazu. bei erfolgreichem Login, wird lediglich der Username (user) an die nächste php-seite geschickt, die dann selbstständig alle informationen aus der zeile dieses Users lädt. es wird noch ein Datenank-basiertes Messagingsystem geben, dass eigentlich bereits fertig ist und vieles mehr.
    kleine werbung nebenbei:
    Ab Fertigstellung kann man den Service sofort nutzen, da die Server und alles andere eigentlich bereits eingerichtet sind. es fehlen halt nur noch die Verbindungen zwischem dem User und der Datenbank, bzw. Datenbank(en!). Wer es noch nicht gesehen hat, es ist ne weltweite community, die aber noch im aufbau ist.
    Wenn Ihr Vorschläge habt, was ich noch in die seite reinnehmen sollte, einfach unter KONTAKT mitteilen oder e-mail an info@area-one.net .
    Freu mich über jedes Statement.

    www.area-one.net

    Ansonsten hoffe ich, dass mir hier wirklich jemand weiterhelfen könnte, da ich schon seit nem Monat an der scheiß db sitze und immernoch nicht allzuweit gekommen bin. HAB EINFACH KEINE AHNUNG VON DER MATERIE!
    Dafür kann ich euch technische Hilfe im Bereich KfZ anbieten. war mal bei AUDI Service /Overboost.

    Gruß,
    Da Artem G

  9. #9
    König(in)
    Registriert seit
    06.06.2007
    Ort
    Bi
    Beiträge
    1.015
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    Fehldenken

    $i = 5; <- weist der Variabel $i nen wert zu

    $i == 5; <--- $i soll 5 sein (vergleich)

    du musst die zweite variante nehmen

    EDIT: und du musst bei php auch nicht && schreiben, sondern AND genauso für || wird OR verwendet.
    Sämtlicher Code erhebt keinen Anspruch auf syntaktische Korrektheit geschweige denn Ausführbarkeit und ist für die Implementation außerhalb der Beispiele nicht geeignet.

    Kein Support für kommerzielle Scripts | Kein kostenloser Support via ICQ

Ähnliche Themen

  1. Login mit Php und MySQL
    Von im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 11
    Letzter Beitrag: 04.09.2007, 18:05
  2. per PHP neue MySQL-Datenbank und MySQL-Benutzer anlegen
    Von sudeki05 im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 3
    Letzter Beitrag: 15.04.2007, 19:40
  3. LOGIN
    Von Gigazone im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 2
    Letzter Beitrag: 06.11.2005, 12:18
  4. mysql login mit phpbb forum verbinden
    Von im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 14
    Letzter Beitrag: 30.10.2005, 14:29
  5. Login
    Von jakobus im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 6
    Letzter Beitrag: 24.10.2004, 21:10

Stichworte

Berechtigungen

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