Login + Registrierung über eine MySql-DB von Jautois Hile nötig

  • Mir wurde in seinem Therad nicht geantwortet deswege wollte ich ein neues aufmachen .
    So undzwar bekomme ich d auert fehler obwohl ich nicht falsch gemacht habe .
    Funktionier den das überhaupt oder geht das jetzt nichtmehr?

    In der login.php steht das hier
    $user = "<****>";
    Müssen diese Klammern also diese <> Drin bleiben oder nicht? weil ich habe es mit und ohne versucht aber es ist immer ein fehler gekommen . kann mir einer dabei helfen?

  • Also die <> gehören da nicht hin.
    Aber ohne Code, kann man dir nicht helfen. Welches verwendest du denn?
    Außerdem wäre eine bessere Fehlerbeschreibung gut.
    Was geht genau nicht?

    MfG
    Conan (Nur Mitlesend)
    Schon lange dabei

  • ok die <> habe ich weggemacht , klappt aber auch nicht .
    hier der Code.

    Spoiler anzeigen
    [autoit]

    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    #include <INet.au3>

    [/autoit] [autoit][/autoit] [autoit]

    Global $_MD5Opcode = "0xC85800005356576A006A006A008D45A850E8280000006A00FF750CFF75088D45A850E8440000006A006A008D45A850FF7510E8710700005F5E5BC9C210005589E58B4D0831C0894114894110C70101234567C7410489ABCDEFC74108FEDCBA98C7410C765432105DC21000C80C0000538B5D088B4310C1E80383E03F8945F88B4510C1E0030143103943107303FF43148B4510C1E81D0143146A40582B45F88945F4394510724550FF750C8B45F88D44031850E8A00700008D43185053E84E0000008B45F48945FC8B45FC83C03F39451076138B450C0345FC5053E8300000008345FC40EBE28365F800EB048365FC008B45102B45FC508B450C0345FC508B45F88D44031850E84D0700005BC9C21000C84000005356576A40FF750C8D45C050E8330700008B45088B088B50048B70088B780C89D021F089D3F7D321FB09D801C1034DC081C178A46AD7C1C10701D189C821D089CBF7D321F309D801C7037DC481C756B7C7E8C1C70C01CF89F821C889FBF7D321D309D801C60375C881C6DB702024C1C61101FE89F021F889F3F7D321CB09D801C20355CC81C2EECEBDC1C1C21601F289D021F089D3F7D321FB09D801C1034DD081C1AF0F7CF5C1C10701D189C821D089CBF7D321F309D801C7037DD481C72AC68747C1C70C01CF89F821C889FBF7D321D309D801C60375D881C6134630A8C1C61101FE89F021F889F3F7D321CB09D801C20355DC81C2019546FDC1C21601F289D021F089D3F7D321FB09D801C1034DE081C1D8988069C1C10701D189C821D089CBF7D321F309D801C7037DE481C7AFF7448BC1C70C01CF89F821C889FBF7D321D309D801C60375E881C6B15BFFFFC1C61101FE89F021F889F3F7D321CB09D801C20355EC81C2BED75C89C1C21601F289D021F089D3F7D321FB09D801C1034DF081C12211906BC1C10701D189C821D089CBF7D321F309D801C7037DF481C7937198FDC1C70C01CF89F821C889FBF7D321D309D801C60375F881C68E4379A6C1C61101FE89F021F889F3F7D321CB09D801C20355FC81C22108B449C1C21601F289D021F889FBF7D321F309D801C1034DC481C162251EF6C1C10501D189C821F089F3F7D321D309D801C7037DD881C740B340C0C1C70901CF89F821D089D3F7D321CB09D801C60375EC81C6515A5E26C1C60E01FE89F021C889CBF7D321FB09D801C20355C081C2AAC7B6E9C1C21401F289D021F889FBF7D321F309D801C1034DD481C15D102FD6C1C10501D189C821F089F3F7D321D309D801C7037DE881C753144402C1C70901CF89F821D089D3F7D321CB09D801C60375FC81C681E6A1D8C1C60E01FE89F021C889CBF7D321FB09D801C20355D081C2C8FBD3E7C1C21401F289D021F889FBF7D321F309D801C1034DE481C1E6CDE121C1C10501D189C821F089F3F7D321D309D801C7037D"
    $_MD5Opcode &= "F881C7D60737C3C1C70901CF89F821D089D3F7D321CB09D801C60375CC81C6870DD5F4C1C60E01FE89F021C889CBF7D321FB09D801C20355E081C2ED145A45C1C21401F289D021F889FBF7D321F309D801C1034DF481C105E9E3A9C1C10501D189C821F089F3F7D321D309D801C7037DC881C7F8A3EFFCC1C70901CF89F821D089D3F7D321CB09D801C60375DC81C6D9026F67C1C60E01FE89F021C889CBF7D321FB09D801C20355F081C28A4C2A8DC1C21401F289D031F031F801C1034DD481C14239FAFFC1C10401D189C831D031F001C7037DE081C781F67187C1C70B01CF89F831C831D001C60375EC81C622619D6DC1C61001FE89F031F831C801C20355F881C20C38E5FDC1C21701F289D031F031F801C1034DC481C144EABEA4C1C10401D189C831D031F001C7037DD081C7A9CFDE4BC1C70B01CF89F831C831D001C60375DC81C6604BBBF6C1C61001FE89F031F831C801C20355E881C270BCBFBEC1C21701F289D031F031F801C1034DF481C1C67E9B28C1C10401D189C831D031F001C7037DC081C7FA27A1EAC1C70B01CF89F831C831D001C60375CC81C68530EFD4C1C61001FE89F031F831C801C20355D881C2051D8804C1C21701F289D031F031F801C1034DE481C139D0D4D9C1C10401D189C831D031F001C7037DF081C7E599DBE6C1C70B01CF89F831C831D001C60375FC81C6F87CA21FC1C61001FE89F031F831C801C20355C881C26556ACC4C1C21701F289F8F7D009D031F001C1034DC081C1442229F4C1C10601D189F0F7D009C831D001C7037DDC81C797FF2A43C1C70A01CF89D0F7D009F831C801C60375F881C6A72394ABC1C60F01FE89C8F7D009F031F801C20355D481C239A093FCC1C21501F289F8F7D009D031F001C1034DF081C1C3595B65C1C10601D189F0F7D009C831D001C7037DCC81C792CC0C8FC1C70A01CF89D0F7D009F831C801C60375E881C67DF4EFFFC1C60F01FE89C8F7D009F031F801C20355C481C2D15D8485C1C21501F289F8F7D009D031F001C1034DE081C14F7EA86FC1C10601D189F0F7D009C831D001C7037DFC81C7E0E62CFEC1C70A01CF89D0F7D009F831C801C60375D881C6144301A3C1C60F01FE89C8F7D009F031F801C20355F481C2A111084EC1C21501F289F8F7D009D031F001C1034DD081C1827E53F7C1C10601D189F0F7D009C831D001C7037DEC81C735F23ABDC1C70A01CF89D0F7D009F831C801C60375C881C6BBD2D72AC1C60F01FE89C8F7D009F031F801C20355E481C291D386EBC1C21501F28B4508010801500401700801780C5F5E5BC9C20800C814000053E840000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008F45EC8B5D0C6A088D4310508D"
    $_MD5Opcode &= "45F850E8510000008B4310C1E80383E03F8945F483F838730B6A38582B45F48945F0EB096A78582B45F48945F0FF75F0FF75ECFF750CE831F8FFFF6A088D45F850FF750CE823F8FFFF6A1053FF7508E8050000005BC9C210005589E55156578B7D088B750C8B4D10FCF3A45F5E595DC20C00"

    [/autoit] [autoit][/autoit] [autoit]

    $hWindow_Login = GUICreate("Login", 274, 118)
    GUISetIcon("shell32.dll", -45)
    GUISetFont(8, 800, 0, "MS Sans Serif")
    GUICtrlCreateLabel("Benutzername", 25, 14, 84, 17)
    GUICtrlCreateLabel("Passwort", 53, 38, 55, 17)
    $hInput_Benutzername = GUICtrlCreateInput("", 112, 12, 137, 21)
    $hInput_Passwort = GUICtrlCreateInput("", 112, 36, 137, 21)
    $hButton_Login = GUICtrlCreateButton("Login", 112, 72, 137, 33, $BS_DEFPUSHBUTTON)
    $hButton_Registrieren = GUICtrlCreateButton("Registrieren", 24, 72, 89, 33, 0)
    GUISetState(@SW_SHOW)

    [/autoit] [autoit][/autoit] [autoit]

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $hButton_Login
    $sBenutzername = GUICtrlRead($hInput_Benutzername)
    $sPasswort = GUICtrlRead($hInput_Passwort)

    [/autoit] [autoit][/autoit] [autoit]

    If $sBenutzername <> "" And $sPasswort <> "" Then
    Switch _Login($sBenutzername, _MD5($sPasswort))
    Case 0
    MsgBox(16, "Error", "Benutzername ist nicht registriert!")
    Case 1
    MsgBox(32, "Info", "Erfolgreich eingeloggt!")
    Case 2
    MsgBox(16, "Error", "Passwort ist falsch!")
    EndSwitch
    Else
    MsgBox(48, "Info", "Bitte einen Bentzernamen/Passwort angeben!")
    EndIf
    Case $hButton_Registrieren
    $sBenutzername = GUICtrlRead($hInput_Benutzername)
    $sPasswort = GUICtrlRead($hInput_Passwort)

    [/autoit] [autoit][/autoit] [autoit]

    If $sBenutzername <> "" And $sPasswort <> "" Then _Registration($sBenutzername,$sPasswort)

    [/autoit] [autoit][/autoit] [autoit]

    EndSwitch
    WEnd

    [/autoit] [autoit][/autoit] [autoit]

    Func _Login($sBenutzername = "", $sPasswort = "")
    $iRValue = _INetGetSource("http://www.colutia.square7.ch/login.php?benutzername=" & $sBenutzername & "&passwort=" & $sPasswort)

    [/autoit] [autoit][/autoit] [autoit]

    Switch $iRValue
    Case 0
    Return 0
    Case 1
    Return 1
    Case 2
    Return 2
    EndSwitch
    EndFunc ;==>_Login

    [/autoit] [autoit][/autoit] [autoit]

    Func _Registration($sBenutzername = "", $sPasswort = "")
    $iRValue = _INetGetSource("http://www.colutia.square7.ch/registrierung.php?benutzername=" & $sBenutzername & "&passwort=" & $sPasswort)

    [/autoit] [autoit][/autoit] [autoit]

    Switch $iRValue
    Case 0
    MsgBox(16, "Error", "Registration fehlgeschlagen!")
    Case 1
    MsgBox(32, "Info", "Erfolgreich registriert!")
    Case 2
    MsgBox(16, "Error", "Der Benutzername ist bereits registriert!")
    Case 3
    MsgBox(16, "Error", "Benutzername/Passwort ist falsch!")
    EndSwitch
    EndFunc ;==>_Registration

    [/autoit] [autoit][/autoit] [autoit]

    Func _MD5($Data)
    Local $CodeBuffer = DllStructCreate("byte[" & BinaryLen($_MD5Opcode) & "]")
    DllStructSetData($CodeBuffer, 1, $_MD5Opcode)

    [/autoit] [autoit][/autoit] [autoit]

    Local $Input = DllStructCreate("byte[" & BinaryLen($Data) & "]")
    DllStructSetData($Input, 1, $Data)

    [/autoit] [autoit][/autoit] [autoit]

    Local $Digest = DllStructCreate("byte[16]")

    [/autoit] [autoit][/autoit] [autoit]

    DllCall("user32.dll", "none", "CallWindowProc", "ptr", DllStructGetPtr($CodeBuffer), _
    "ptr", DllStructGetPtr($Input), _
    "int", BinaryLen($Data), _
    "ptr", DllStructGetPtr($Digest), _
    "int", 0)

    [/autoit] [autoit][/autoit] [autoit]

    Local $Ret = DllStructGetData($Digest, 1)
    $Input = 0
    $Digest = 0
    $CodeBuffer = 0
    Return StringLower(StringTrimLeft($Ret, 2))
    EndFunc ;==>_MD5

    [/autoit]

    so und hier der php.code
    Registrierung:

    Spoiler anzeigen

    <?php
    // PHP-Code Beginn

    $host = "localhost";
    // Nicht verändern - bleibt bei Funpic und den meisten anderen Hostern gleich

    $user = "colutia";
    // Verändern! - Hier müsst ihr den Username eingeben der bei Funpic unter "MySql-Daten" steht

    $pass = "****";
    // Verändern! - Hier müsst ihr das Passwort eingeben das bei Funpic unter "MySql-Daten" steht

    $dbase = "colutia";
    // Verändern! - Hier müsst ihr den Namen der Datenbank eingeben der bei Funpic unter "MySql-Daten" steht


    mysql_connect($host, $user, $pass);
    // Öffnet eine Verbindung zu dem MySql-Server

    mysql_select_db($dbase);
    // Wählt die Datenbank $dbase aus

    $Benutzername = mysql_real_escape_string($HTTP_GET_VARS['benutzername']);
    // In der Variable steht der String der in der Url nach "benutzername=" übermittelt wurde

    $Passwort = md5(mysql_real_escape_string($HTTP_GET_VARS['passwort']));
    // In der Variable steht der String der in der Url nach "passwort=" übermittelt wurde
    // md5() verschüsselt den String nun


    if ($Benutzername != "" || $Passwort != "")
    // ... wenn $Benutzername oder (||) $Passwort ungleich (!=) leer ("") ist
    {
    $result_select = mysql_query("SELECT * FROM User_Daten WHERE Benutzername='" . $Benutzername . "'");
    // Sendet die Anfrage an die MySql-DB: "Wähle alle Daten aus der Tabelle User_Daten wo der Benutzername gleich $Benutzername ist"
    // !!! Achtung !!! - Habt ihr vorher den Namen der Tabelle verändert müsst ihr logischerweise auch den neuen Namen verwenden

    $row = mysql_fetch_row($result_select);
    // mysql_fetch_row($result) gibt ein Array zurück mit alles Daten aus der Spalte in der der Benutzername gleich $Benutzername ist

    if (!$row)
    // ... wenn der Benutzername nicht gefunden wurde - "!$row" bedeutet mysql_fetch_row($result_select) lieferte kein Ergebnis
    {
    $result_insert = mysql_query("INSERT INTO User_Daten (`Benutzername`, `Passwort`) VALUES ('$Benutzername', '$Passwort')");
    // Sendet die Anfrage an die MySql-DB: "Füge in die Tabelle User_Daten, in die Spaltem Benutzername und Passwort, die Variablen $Benutzername und $Passwort ein"
    // !!! Achtung !!! - Habt ihr vorher den Namen der Tabelle verändert müsst ihr logischerweise auch den neuen Namen verwenden

    if ($result_insert)
    // ... wenn Einfügen erfolgreich, dann ...
    {
    echo 1;
    // ... eine 1 ausgeben
    exit;
    }
    else
    // ... sonst Einfügen war nicht erfolgreich, dann ...
    {
    echo 0;
    // ... eine 0 ausgeben
    exit;
    }
    }
    else
    // ... sonst Benutzername wurde gefunden -> existiert also bereits in der Datenbank
    {
    echo 2;
    // ... eine 2 ausgeben
    exit;
    }
    }
    else
    // ... sonst $Benutzername oder $Passwort waren leer (""), dann ...
    {
    echo 3;
    // ... eine 3 ausgeben
    exit;
    }
    ?>


    Login.php

    Spoiler anzeigen

    <?php
    // PHP-Code Beginn

    $host = "localhost";
    // Nicht verändern - bleibt bei Funpic und den meisten anderen Hostern gleich

    $user = "colutia";
    // Verändern! - Hier müsst ihr den Username eingeben der bei Funpic unter "MySql-Daten" steht

    $pass = "****";
    // Verändern! - Hier müsst ihr das Passwort eingeben das bei Funpic unter "MySql-Daten" steht

    $dbase = "colutia";
    // Verändern! - Hier müsst ihr den Namen der Datenbank eingeben der bei Funpic unter "MySql-Daten" steht


    mysql_connect($host, $user, $pass);
    // Öffnet eine Verbindung zu dem MySql-Server

    mysql_select_db($dbase);
    // Wählt die Datenbank $dbase aus

    $Benutzername = mysql_real_escape_string($HTTP_GET_VARS['benutzername']);
    // In der Variable steht der String der in der Url nach "benutzername=" übermittelt wurde

    $Passwort = mysql_real_escape_string($HTTP_GET_VARS['passwort']);
    // In der Variable steht der String der in der Url nach "passwort=" übermittelt wurde


    $result = mysql_query("SELECT * FROM User_Daten WHERE Benutzername='" . $Benutzername . "'");
    // Sendet die Anfrage an die MySql-DB: "Wähle alle Daten aus der Tabelle User_Daten wo der Benutzername gleich $Benutzername ist"
    // !!! Achtung !!! - Habt ihr vorher den Namen der Tabelle verändert müsst ihr logischerweise auch den neuen Namen verwenden

    $row = mysql_fetch_row($result);
    // mysql_fetch_row($result) gibt ein Array zurück mit allen Daten aus der Spalte in der der Benutzername gleich $Benutzername ist

    if ($row)
    // Wenn ein Datensatz gefunden wurde
    {
    // ... Benutzername ist also schonmal vorhanden in der DB

    $Dbmd5Passwort = $row[1];
    // Die Variable $Dbmd5Passwort enthält nun das Passwort als MD5-String
    // mysql_fetch_row in Zeile 34 hatte ein Array zurück gegeben, deshalb $row[1]
    // In der DB ist die Passwortspalte die zweite Spalte von oben - somit $row[1] ( die Spalten sind von 0 ab nummeriert)

    if ($Passwort == $Dbmd5Passwort)
    // Wenn das übermittelte Passwort mit dem Passwort aus der DB übereinstimmt
    {
    // Passwort stimmt

    echo 1;
    // Gib eine 1 aus
    }
    else
    // Ansonsten
    {
    // Passwort stimmt nicht

    echo 2;
    // Gib eine 2 aus
    }
    }
    else
    // Ansonsten
    {
    // Benutzername nicht vorhanden

    echo 0;
    // Gib eine 0 aus
    }

    // PHP-Code Ende
    ?>

  • Evt. müsste man aus dem altmodischen $HTTP_GET_VARS ein neues $_GET machen.
    Auch glaube ich, dass da doppelte Anführungszeichen hinmüssen.
    Kannst es ja damit mal versuchen.
    So auf einem Blick scheint alles ok zu sein.

    MfG
    Conan (Nur Mitlesend)
    Schon lange dabei

  • ne also das hat leider auch nicht geklappt.
    wen ich ein benutzer erstelle in der datenbank und dan versuche mit dem sich dan einzuloggen, steht da Benutzer ist nicht registriert!
    Und wen ich registrieren will über das script dan steht das " registrierung nicht erfolgreich oder so "

    Einmal editiert, zuletzt von Secret1994 (22. September 2010 um 17:17)

  • Versuch mal diese angepasste Login.php
    Ansonsten kann es sein, dass etwas an der DB nicht stimmt:

    Spoiler anzeigen

    MfG
    Conan (Nur Mitlesend)
    Schon lange dabei

  • Nein Mist an was kann es sonst liegen hier nochmal info passwort von mysql weis ich .

    Spoiler anzeigen


    MySQL-Datenbanken : Eine von 12 Datenbanken in Gebrauch
    MySQL-Server :localhost

    Datenbank: colutia
    Benutzername: colutia
    passwort: *****

  • Daran sollte es normal nicht liegen.
    Ich schätze, dass die Tabelle falsch ist. Eventuell hast du statt Benutzername Username geschrieben oder so.
    Ansonsten weiß ich auch nicht weiter.
    Vll lässt du mal das Ergebnis ausgeben, was die Php-Datei anzeigt.

    MfG
    Conan (Nur Mitlesend)
    Schon lange dabei

  • habe das eingefügt und d an war die tabelle schon fertig und bereit.

    CREATE TABLE `User_Daten` (
    `Benutzername` varchar(50) NOT NULL default '',
    `Passwort` varchar(200) NOT NULL default '')
    TYPE=MyISAM;