[AutoIt] Frage: Login über MySQL

01/15/2011 11:59 sᴛᴇcʀz#1
hey. das ganze sieht so aus:
ich habe bereits geschafft, mich mit meinem autoit script mit
mysql zu verbinden, dort die datenbank "user" und dann die
tabelle "user" auszuwählen und dort eine neue zeile hinzu-
zufügen.
ALSO: Registrieren über AutoIt mit den Angaben Benutzername
und Passwort geht!
Jetzt will ich noch, dass ich mich auch verbinden kann, also
einloggen, sodass, NUR WENN der angegebene benutzername
und das angegebene passwort übereinstimmen, man weitergeleitet
wird.
ALSO: Login über AutoIt mit den Angaben Benutzername und
Passwort (welche ausgelesen aus der MySQL-Tabelle werden)

Hat jemand eine Idee?
01/15/2011 12:01 TrickGamer#2
Ich habe ein gutes tut gefunden[Only registered and activated users can see links. Click Here To Register...]
also da ist glaube ich das wichtigste das du brauchst
01/15/2011 12:29 sᴛᴇcʀz#3
hab ich auch shcon gesehen aber ich mache das über hamachi :S

wenn du dich auskennst kann ich dir ja mal den code geben, wobei der vlt bisschen
unverständlich ist^^ So sieht die Login Funktion momentan aus, ich schreibe rein
was noch fehlt:
Code:
#include <EditConstants.au3>
#include <Array.au3>
#include "MySql.au3"
#include "EzMySql.au3"
			If GUICtrlRead($getusername)="" Then
				MsgBox(0,"Login","Es wurde kein Benutzername eingegeben.")
			ElseIf GUICtrlRead($getpassword)="" Then
				MsgBox(0,"Login","Es wurde kein Passwort eingegeben.")
			ElseIf GUICtrlRead($getusername)<>"" And GUICtrlRead($getpassword)<>"" Then
				If Not _EzMySql_Startup() Then
					MsgBox(0,"Login", "Error: "&@error&@CR&"Error string: " &_EzMySql_ErrMsg())
					Exit
				EndIf
				$getSQLpass = "[MEIN MYSQL PW]"
				If Not _EzMySql_Open("[MEINE HAMACHI IP]","[MEIN MYSQL USER",$getSQLpass,"","[PORT]") Then
					MsgBox(0,"Login","Error: "&@error&@CR&"Error string: "&_EzMySql_ErrMsg())
					Exit
				EndIf
				If Not _EzMySql_SelectDB("user") Then
					MsgBox(0,"Login","Error: "&@error&@CR&"Error string: " &_EzMySql_ErrMsg())
					Exit
				EndIf

; SO: AB JETZT KOMMT DER TEIL, WO ICH KONTROLLIEREN WILL, OB DER BENUTZERNAME EXISTIERT UND DAS PASSWORT ÜBEREINSTIMMT

				$getusernamesend=GUICtrlRead($getusername)
				$getpasswordsend=GUICtrlRead($getpassword)
				$SQLConnection = _MySQLConnect("[MEIN MYSQL BENUTZER]","[MEIN MYSQL PW]","user","[MEINE HAMACHI IP]")
				If $SQLConnection = 1 Then
					MsgBox(0,"Verbindung", "Fehler beim Verbinden mit dem Server.")
				Else
					_EzMySql_SelectDB("user")
				If $SQLConnection = 1 Then
					MsgBox(0,"Verbindung", "Fehler beim Verbinden mit der Datenbank.")
				Else
					$SQLCode_Login = "IF EXISTS (SELECT * FROM user WHERE username = '" &  Guictrlread($getusername) &"') THEN (SELECT * FROM user WHERE password = '" &  Guictrlread($getpassword) &"') ELSE END IF;"
					If GUICtrlRead($getusername)<>1 Then
					MsgBox(0,"Regist","Dieser Account ist nicht registriert.")
					Exit
					Else
					$SQLCode_Login = "SELECT * FROM `user` WHERE password = '" &  Guictrlread($getpassword) &"'"
					MsgBox(0,"","SCHONMAL ERFOLGREICH")
					EndIf
				EndIf

;ENDE DIESES TEILS

			EndIf
				_EzMySql_Close()
				_EzMySql_ShutDown()
				GUISetState(@SW_HIDE)
				loginend()
			Else
                MsgBox(0,"Login","Benutzername oder Passwort falsch.")
            Endif
01/15/2011 18:49 .Spyne#4
hat keiner eine ahnung wie man autoit Eingaben (GUICreateInput) mit den Werten aus einer MySQL Tabelle zu vergleichen (siehe post darüber)
weiß niemand wie man den teil hier schreiben muss: (2 versionen von mir)

Code:
$getusernamesend=GUICtrlRead($getusername)
$getpasswordsend=GUICtrlRead($getpassword)
$SQLConnection = _MySQLConnect("[MEIN MYSQL BENUTZER]","[MEIN MYSQL PW]","user","[MEINE HAMACHI IP]")
If $SQLConnection = 1 Then
	MsgBox(0,"Verbindung", "Fehler beim Verbinden mit dem Server.")
Else
	_EzMySql_SelectDB("user")
	If $SQLConnection = 1 Then
		MsgBox(0,"Verbindung", "Fehler beim Verbinden mit der Datenbank.")
	Else
		$SQLCode_Login = "IF EXISTS (SELECT * FROM user WHERE username = '" &  Guictrlread($getusername) &"') THEN (SELECT * FROM user WHERE password = '" &  Guictrlread($getpassword) &"') ELSE END IF;"
		If GUICtrlRead($getusername)<>1 Then
			MsgBox(0,"Regist","Dieser Account ist nicht registriert.")
			Exit
		Else
			$SQLCode_Login = "SELECT * FROM `user` WHERE password = '" &  Guictrlread($getpassword) &"'"
			MsgBox(0,"","SCHONMAL ERFOLGREICH")
		EndIf
	EndIf
EndIf
Code:
$getusernamesend=GUICtrlRead($getusername)
$getpasswordsend=GUICtrlRead($getpassword)
$SQLConnection = _MySQLConnect("user","[MEIN MYSQL PW]","[MEIN MYSQL BENUTZER]","[MEINE HAMACHI IP]")
If $SQLConnection = 1 Then
	MsgBox(0,"Verbindung", "Fehler beim Verbinden mit dem Server.")
Else
	_EzMySql_SelectDB("user")
	If $SQLConnection = 1 Then
		MsgBox(0,"Verbindung", "Fehler beim Verbinden mit der Datenbank.")
	Else
		$sql = "SELECT username FROM user WHERE username='asd';"
		$result = _EzMySql_Query($sql)
		$count = _EzMySql_Rows($result)
		If $count==1 Then
			MsgBox(0,"","Dieser Benutzer existiert bereits. Bitte wählen sie einen anderen Benutzernamen.")
		Else
			MsgBox(0,"","Dieser Benutzer existiert noch nicht.")
		EndIf
	EndIf
EndIf