Mysql Abfrage über PHP Skript

09/04/2010 03:42 Fiiine#1
Hallo Community,
Ich hab folgendes Problem:

Mein Skript sollte eine kleine Datenbank Abfrage starten und daher habe ich mir das Tutorial auf dieser Seite reingezogen:
[Only registered and activated users can see links. Click Here To Register...]

Natürlich habe ich auch alle Werte in meinem Autoit Code an meine Datenbank etc angeglichen.


Das PHP Login-Skript sieht wie folgt aus:

PHP Code:
<?php

$host 
"localhost";
$user "elitehax";
$pass "123456a";
$dbase "elitehax";

mysql_connect($host$user$pass);
mysql_select_db($dbase);

$Benutzername $HTTP_GET_VARS['benutzername'];
$Passwort $HTTP_GET_VARS['passwort'];

$result mysql_query("SELECT * FROM User_Daten WHERE Benutzername='" $Benutzername "'");
$row mysql_fetch_row($result);
if (
$row)
{
    
// Benutzername Vorhanden
    
    
$Dbmd5Passwort $row[1];
    
        if (
$Passwort == $Dbmd5Passwort)
        {
            
// Passwort Stimmt
            
            
echo 1;
        }
        else
        {    
            
// Passwort Stimmt Nicht
            
            
echo 2;
        }
}
else
{
    
// Benutzername Nicht Vorhanden

    
echo 0;
}

?>

Wenn ich z.b. manuell über die URL nach Usern abfrage, dann erhalte ich auch eine 1 als Echo.


Das dazugehörige Autoit-Skript sieht wie folgt aus:

PHP Code:
#include <INet.au3>

Global $_MD5Opcode "0xC85800005356576A006A006A008D45A850E8280000006A00FF750CFF75088D45A850E8440000006A006A008D45A850FF7510E8710700005F5E5BC9C210005589E58B4D0831C0894114894110C70101234567C7410489ABCDEFC74108FEDCBA98C7410C765432105DC21000C80C0000538B5D088B4310C1E80383E03F8945F88B4510C1E0030143103943107303FF43148B4510C1E81D0143146A40582B45F88945F4394510724550FF750C8B45F88D44031850E8A00700008D43185053E84E0000008B45F48945FC8B45FC83C03F39451076138B450C0345FC5053E8300000008345FC40EBE28365F800EB048365FC008B45102B45FC508B450C0345FC508B45F88D44031850E84D0700005BC9C21000C84000005356576A40FF750C8D45C050E8330700008B45088B088B50048B70088B780C89D021F089D3F7D321FB09D801C1034DC081C178A46AD7C1C10701D189C821D089CBF7D321F309D801C7037DC481C756B7C7E8C1C70C01CF89F821C889FBF7D321D309D801C60375C881C6DB702024C1C61101FE89F021F889F3F7D321CB09D801C20355CC81C2EECEBDC1C1C21601F289D021F089D3F7D321FB09D801C1034DD081C1AF0F7CF5C1C10701D189C821D089CBF7D321F309D801C7037DD481C72AC68747C1C70C01CF89F821C889FBF7D321D309D801C60375D881C6134630A8C1C61101FE89F021F889F3F7D321CB09D801C20355DC81C2019546FDC1C21601F289D021F089D3F7D321FB09D801C1034DE081C1D8988069C1C10701D189C821D089CBF7D321F309D801C7037DE481C7AFF7448BC1C70C01CF89F821C889FBF7D321D309D801C60375E881C6B15BFFFFC1C61101FE89F021F889F3F7D321CB09D801C20355EC81C2BED75C89C1C21601F289D021F089D3F7D321FB09D801C1034DF081C12211906BC1C10701D189C821D089CBF7D321F309D801C7037DF481C7937198FDC1C70C01CF89F821C889FBF7D321D309D801C60375F881C68E4379A6C1C61101FE89F021F889F3F7D321CB09D801C20355FC81C22108B449C1C21601F289D021F889FBF7D321F309D801C1034DC481C162251EF6C1C10501D189C821F089F3F7D321D309D801C7037DD881C740B340C0C1C70901CF89F821D089D3F7D321CB09D801C60375EC81C6515A5E26C1C60E01FE89F021C889CBF7D321FB09D801C20355C081C2AAC7B6E9C1C21401F289D021F889FBF7D321F309D801C1034DD481C15D102FD6C1C10501D189C821F089F3F7D321D309D801C7037DE881C753144402C1C70901CF89F821D089D3F7D321CB09D801C60375FC81C681E6A1D8C1C60E01FE89F021C889CBF7D321FB09D801C20355D081C2C8FBD3E7C1C21401F289D021F889FBF7D321F309D801C1034DE481C1E6CDE121C1C10501D189C821F089F3F7D321D309D801C7037D"
       
$_MD5Opcode &= "F881C7D60737C3C1C70901CF89F821D089D3F7D321CB09D801C60375CC81C6870DD5F4C1C60E01FE89F021C889CBF7D321FB09D801C20355E081C2ED145A45C1C21401F289D021F889FBF7D321F309D801C1034DF481C105E9E3A9C1C10501D189C821F089F3F7D321D309D801C7037DC881C7F8A3EFFCC1C70901CF89F821D089D3F7D321CB09D801C60375DC81C6D9026F67C1C60E01FE89F021C889CBF7D321FB09D801C20355F081C28A4C2A8DC1C21401F289D031F031F801C1034DD481C14239FAFFC1C10401D189C831D031F001C7037DE081C781F67187C1C70B01CF89F831C831D001C60375EC81C622619D6DC1C61001FE89F031F831C801C20355F881C20C38E5FDC1C21701F289D031F031F801C1034DC481C144EABEA4C1C10401D189C831D031F001C7037DD081C7A9CFDE4BC1C70B01CF89F831C831D001C60375DC81C6604BBBF6C1C61001FE89F031F831C801C20355E881C270BCBFBEC1C21701F289D031F031F801C1034DF481C1C67E9B28C1C10401D189C831D031F001C7037DC081C7FA27A1EAC1C70B01CF89F831C831D001C60375CC81C68530EFD4C1C61001FE89F031F831C801C20355D881C2051D8804C1C21701F289D031F031F801C1034DE481C139D0D4D9C1C10401D189C831D031F001C7037DF081C7E599DBE6C1C70B01CF89F831C831D001C60375FC81C6F87CA21FC1C61001FE89F031F831C801C20355C881C26556ACC4C1C21701F289F8F7D009D031F001C1034DC081C1442229F4C1C10601D189F0F7D009C831D001C7037DDC81C797FF2A43C1C70A01CF89D0F7D009F831C801C60375F881C6A72394ABC1C60F01FE89C8F7D009F031F801C20355D481C239A093FCC1C21501F289F8F7D009D031F001C1034DF081C1C3595B65C1C10601D189F0F7D009C831D001C7037DCC81C792CC0C8FC1C70A01CF89D0F7D009F831C801C60375E881C67DF4EFFFC1C60F01FE89C8F7D009F031F801C20355C481C2D15D8485C1C21501F289F8F7D009D031F001C1034DE081C14F7EA86FC1C10601D189F0F7D009C831D001C7037DFC81C7E0E62CFEC1C70A01CF89D0F7D009F831C801C60375D881C6144301A3C1C60F01FE89C8F7D009F031F801C20355F481C2A111084EC1C21501F289F8F7D009D031F001C1034DD081C1827E53F7C1C10601D189F0F7D009C831D001C7037DEC81C735F23ABDC1C70A01CF89D0F7D009F831C801C60375C881C6BBD2D72AC1C60F01FE89C8F7D009F031F801C20355E481C291D386EBC1C21501F28B4508010801500401700801780C5F5E5BC9C20800C814000053E840000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008F45EC8B5D0C6A088D4310508D"
       
$_MD5Opcode &= "45F850E8510000008B4310C1E80383E03F8945F483F838730B6A38582B45F48945F0EB096A78582B45F48945F0FF75F0FF75ECFF750CE831F8FFFF6A088D45F850FF750CE823F8FFFF6A1053FF7508E8050000005BC9C210005589E55156578B7D088B750C8B4D10FCF3A45F5E595DC20C00"
$_MD5Opcode wird für die Funktion _MD5() benötigt

_Login
("Test",_MD5("Test"))
Ein Loginbeispiel zum Testen:
BenuternameTest
PasswortTest -> wird in 0cbc6611f5540bd0809a388dc95a615b verschlüsselt durch die Funktion _MD5()
;
Beispiel ein String in MD5:

Func _Login($sBenutzername ""$sPasswort "")
    
$iRValue _INetGetSource("http://elitehax.(square)7.ch/login.php?benutzername=" $sBenutzername "&passwort=" $sPasswort)
    ; 
Statt <URLtragt ihr hier bitte die URL zur login.php-Datei auf dem Webspace ein
    
Öffnet die Seite und führt dabei die login.php-Datei aus. Die php-Datei arbeitet nun ihren Code ab und gibt entweder ...
    ; 
Benutzername stimmt nicht (nicht vorhandenoder ...
    ; 
Passwort und Benutzername stimmt oder ...
    ; 
Passwort stimmt nicht
    
; ... aus

    
Switch $iRValue je nach Rückgabewert der login.php-Datei wird nun weiter verfahren:
        Case 
; - Benutzername stimmt nicht (nicht vorhanden)
            
MsgBox(16,"Error","Benutzername ist nicht registriert!")
        Case 
; - Passwort und Benutzername stimmt
            MsgBox
(32,"Info","Erfolgreich eingeloggt!")
        Case 
; - Passwort stimmt nicht
            MsgBox
(16,"Error","Passwort ist falsch!")
    EndSwitch
EndFunc   ;==>_Login

MD5-Funktion um einen String mit MD5 zu verschlüsseln
Func _MD5
($Data)
    
Local $CodeBuffer DllStructCreate("byte[" BinaryLen($_MD5Opcode) & "]")
    
DllStructSetData($CodeBuffer1$_MD5Opcode)

    
Local $Input DllStructCreate("byte[" BinaryLen($Data) & "]")
    
DllStructSetData($Input1$Data)

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

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

    
Local $Ret DllStructGetData($Digest1)
    
$Input 0
    $Digest 
0
    $CodeBuffer 
0
    
Return StringLower(StringTrimLeft($Ret2))
EndFunc   ;==>_MD5 

Wenn ich nun das ganze dann ausführe, erhalte ich die Message, dass der User nicht registriert ist :confused:


Kann es an der _INetGetSource liegen?

Ich bin für jede Unterstützung äußert dankbar :)
09/04/2010 17:45 Mozo_#2
Eine frage, warum hast du bei :

PHP Code:
Func _Login($sBenutzername ""$sPasswort "")
    
$iRValue _INetGetSource("http://elitehax.(square)7.ch/login.php?benutzername=" $sBenutzername "&passwort=" $sPasswort
das square in klammern gepackt?
09/04/2010 23:07 bassbanane#3
Mach doch mal ne Abfrage in deinem PHP skript nach dem 1. benutzer in der User_daten Tabelle. Also z.B. "SELECT * FROM User_Daten WHERE id=1" und gib dir das mal per echo aus. Dann weißt du ja, dass du access zu deiner DB hast und daraus lesen kannst.
Somit wäre schonmal ein Gebiet ausgeschlossen.

Also ich würde mich erstmal an dein PHP skript machen und gucken ob damit alles funktioniert. Also erstmal z.B. $Benutzername als den 1. Benutzer in der User_Daten DB deklarieren und dann erstmal ohne Get Parameter laufen lassen, sondern indem du die Namen direkt im Skript angibst. So kannst du ja sicher gehen, dass diese richtig sind.
09/05/2010 01:40 Fiiine#4
Quote:
Originally Posted by Mozo_ View Post
Eine frage, warum hast du bei :

PHP Code:
Func _Login($sBenutzername ""$sPasswort "")
    
$iRValue _INetGetSource("http://elitehax.(square)7.ch/login.php?benutzername=" $sBenutzername "&passwort=" $sPasswort
das square in klammern gepackt?
Weil der Linkname auf der Blacklist von epvp steht und zensiert wird.
Praktisch kann man sich die () wegdenken.

Quote:
Originally Posted by bassbanane View Post
Mach doch mal ne Abfrage in deinem PHP skript nach dem 1. benutzer in der User_daten Tabelle. Also z.B. "SELECT * FROM User_Daten WHERE id=1" und gib dir das mal per echo aus. Dann weißt du ja, dass du access zu deiner DB hast und daraus lesen kannst.
Somit wäre schonmal ein Gebiet ausgeschlossen.

Also ich würde mich erstmal an dein PHP skript machen und gucken ob damit alles funktioniert. Also erstmal z.B. $Benutzername als den 1. Benutzer in der User_Daten DB deklarieren und dann erstmal ohne Get Parameter laufen lassen, sondern indem du die Namen direkt im Skript angibst. So kannst du ja sicher gehen, dass diese richtig sind.

Danke für die Unterstützung,
am PHP Skript lag es jedenfalls mal nicht, da es mir auch manuell die richtigen Angaben lieferte.
Ich habe mein Problem nun gefunden.
Es lag am Freehoster, anscheinend haben die da irgendeine Sperre drin :/

Jedenfalls hat ein Freund von mir Access zu seiner DB und zu seinem FTP gegeben und es hat tatsächlich sogar mittels Autoit funktioniert.

Ich danke euch dennoch :)


Falls irgendeiner genauere Informationen zu diesem Thema braucht, dann kann er gerne seine Fragen stellen, die ich dann natürlich beantworten werde.