PHP&AHK | Fehler beim Auslesen

  • Guten Tag,
    ich habe in meinem Keybinder eine Whitelist abfrage. Obwohl ich eingetragen bin, verweigert er mir den Zugriff.


    AHK Code:

    PHP
    if(WinExist("GTA:SA:MP")){	RegRead, sampname, HKCU, Software\SAMP, PlayerName	sapd = http://zensiert/keybinder/whitelist/checkUser.php?username=%sampname%&fraktion=0	fbi = http://zensiert/keybinder/whitelist/checkUser.php?username=%sampname%&fraktion=1	checkadmin = http://zensiert/keybinder/checkAdmin.php?Name=%sampname%	Sleep, 200	checkSAPD := UrlDownloadToVar(sapd)	Sleep, 750	checkFBI := UrlDownloadToVar(fbi)	Sleep, 750	if(checkSAPD == "1")	{		login = http://zensiert/keybinder/writelogin.php?name=%sampname%&fraktion=SAPD&status=Erfolgreich		Sleep, 200		admin := UrlDownloadToVar(checkadmin)		Sleep, 750		Yo := UrlDownloadToVar(login)	}	else if(checkFBI == "1")	{		login = http://zensiert/keybinder/writelogin.php?name=%sampname%&fraktion=FBI&status=Erfolgreich		Sleep, 200		admin := UrlDownloadToVar(checkadmin)		Sleep, 750		Yo := UrlDownloadToVar(login)	}	else	{		url = http://zensiert/keybinder/whitelist/checkwhitelist.php?Name=%sampname%		Sleep, 300		success := UrlDownloadToVar(url)		if(success == "1")		{			login = http://ni31914_3.vweb16.nitrado.net/keybinder/writelogin.php?name=%sampname%&fraktion=Fraktionslos&status=Erfolgreich			Sleep, 200			admin := UrlDownloadToVar(checkadmin)			Sleep, 750			Yo := UrlDownloadToVar(login)		}		else		{			MsgBox, 16, Fehler, Du bist nicht auf der Whitelist des Keybinder verzeichnet`, aus diesem Grund beendet sich nun der Keybinder.`nBitte wende dich an Dean Dilauro.			login = http://zensiert/keybinder/writelogin.php?name=%sampname%&fraktion=Unbekannt&status=Fehlgeschlagen			Yo := UrlDownloadToVar(login)			ExitApp		}	}}else{	MsgBox, 48, Fehler, Bitte starte zuerst SAMP.	ExitApp}


    Und hier die checkUser.php:


    PHP
    <?php  header("Content-Type: text/html; charset=utf-8");     if(!isset($_REQUEST["username"])) { return; }                if(!isset($_REQUEST["fraktion"])) { return; }            	//if(!preg_match("/^\w+[.|_]?\w+$/", $_REQUEST["username"])) {		if(!preg_match("/^\w+[.|_]?\w+[.|_]?$/", $_REQUEST["username"])){        return;             } else if(!preg_match("|^\d+$|", $_REQUEST["fraktion"])) {                        return;             }    $transferProtokoll = "http";                            $sqlHost = "zensiert";    $sqlUser = "zensiert";    $sqlPassword = "zensiert";         $sqlDatabase = "zensiert";    $sqlTable = "whitelist";        //if (!$link = mysql_connect($sqlHost, $sqlUser, $sqlPassword)) 	if (!$link = mysql_connect($sqlHost, $sqlDatabase, $sqlPassword))	{        echo 'Keine Verbindung zu dem mysql Server möglich';        exit;    } else if (!mysql_select_db($sqlDatabase, $link)) {        echo 'Konnte die Datenbank nicht selektieren';        exit;    }        $check = mysql_db_query($sqlDatabase,'SELECT username,fraktion FROM '.$sqlTable.'                                        WHERE fraktion="'.$_REQUEST["fraktion"].'" AND username="'.$_REQUEST["username"].'"');        $result = mysql_fetch_row($check);            if($result[0] == $_REQUEST["username"] && $result[1] == $_REQUEST["fraktion"]) {         echo("1");    } else { echo("0"); }    mysql_close($link);                                              exit; ?>


    MySQL:

    6b8bf7dd12b5e47dc8d0ebbd3b5f940276ef6e33?url=https%3A%2F%2Fi.giphy.com%2Fmedia%2Ff4J90sgnAqwAjtAxRm%2Fsource.gif

    Einmal editiert, zuletzt von Dean_Conery ()

  • Ich habe zwar nicht viel Ahnung von AHK aber Strings müssen doch zwischen zwei Anführungszeichen, oder?

    Für das Moderationsteam:
    Ich nutze offene WLAN's und bin im Intercafe oder im Hotel. (Vor Ban wegen Multiaccount deswegen bitte eine private Nachricht, um dies zu klären).

  • Fraktion 0 = SAPD und 1 = FBI


    Der Fehler besteht, seit dem ich den Webspace sowie die Datenbank gewechselt habe. Die Daten die ich zensiert habe, sind aber zu 100% richtig, da ich über die selben Daten auf einer externen Seite Spieler zu Whitelist hinzufügen kann. Der Fehler muss mMn im AHK Script sein, wenn ausgelesen wird, ob der Spieler auf der Whitelist ist bzw in der checkUser

  • Ich weiß nicht mehr wie normales MySQL funktioniert, sollte man sowieso nicht mehr benutzen. Ich schreibs dir mal in MySQLi. Vlt funktioniert das ja.


  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • Das mit dem was ich bereits gepostet habe:

    PHP
    //if (!$link = mysql_connect($sqlHost, $sqlUser, $sqlPassword))     if (!$link = mysql_connect($sqlHost, $sqlDatabase, $sqlPassword))    {        echo 'Keine Verbindung zu dem mysql Server möglich';        exit;    } else if (!mysql_select_db($sqlDatabase, $link)) {        echo 'Konnte die Datenbank nicht selektieren';        exit;    }        $check = mysql_db_query($sqlDatabase,'SELECT username,fraktion FROM '.$sqlTable.'                                        WHERE fraktion="'.$_REQUEST["fraktion"].'" AND username="'.$_REQUEST["username"].'"');        $result = mysql_fetch_row($check);            if($result[0] == $_REQUEST["username"] && $result[1] == $_REQUEST["fraktion"]) {         echo("1");    } else { echo("0"); }    mysql_close($link);

  • /e: Der Fehler liegt wahrscheinlich doch an der .php da ich über folgenden Link immer eine 0 wiedergegeben bekomme, obwohl ich in der Datenbank eingetragen bin:
    Genau das meinte ich, beim nächstenmal das auch machen und nicht was du dir bei dem Wert wünscht.

    Mit Freundlichen Grüßen
    Whitetiiger aka. Kaito-sensei
    P.s. Alle mit #IRONIE bestätigten Sätze von mir, sind als Ironie anzusehen.

  • lass dir mal nach dem query den mysql fehler ausgeben, tada da ist dein Fehler ;) ' ' != `` Vorallem ist es so einfach deine Datenbank mit dem Script zu kapern ;) Versuch dich auf $_GET oder $_POST zu beschränken.

    Mit freundlichen Grüßen
    Developer
    Go/Python Developer | ehm. Webdeveloper | Fachinformatiker Anwendungsentwicklung
    Arbeitet in einem cloudigen Umfeld bei einem der größten deutschen Rechenzentrumsbetreibern