Also ich diese einfache Abfrage auszuführen versuchte:Einfache MySql-Abfrage funktioniert nicht in php
SELECT *
FROM users
WHERE Username = 'xyz'
AND OS = 'Windows 10/Server 2016'
AND HWID = 'FFrWkNSa1l3TURjek1FWXdNUT09'
AND MACAddress = '33D255CCFDAD'
Das ist, was ich neben vielen anderen versucht:
$q1 = "SELECT * FROM users WHERE Username = '".urldecode($_GET['userName'])."' AND OS = '".urldecode($_GET['OS'])."' AND HWID = '".$HWID."' AND MACAddress = '".$mac."'";
$systemMatches = $mysqli->query($q1);
if($systemMatches->num_rows == 1)
{
echo"Valid System";
}else{
echo"Invalid System";
}
alle Variablen ergriffen werden beeing aus der URL-Parameter und 100% CORRECT (Ich habe dreifach überprüft.)
Vielleicht ist etwas mit der Variablen OS ... falsch? Dies ist die rohe Version des Betriebssystems: Windows% 2010/Server% 202016.
Wie Sie sehen können, enthält es 2x Leerzeichen. Ich habe die Leerzeichen mit urldecode() behandelt. Ich habe sogar per Echo gecheckt und die Räume perfekt dekodiert: Windows 10/Server 2016. Aber immer noch etwas nicht funktioniert, würde jede Art von Hilfe zu schätzen wissen, da ich ziemlich neu für MySQL bin, danke!
PS: Diese Abfrage funktioniert gut, wenn in phpmyadmin mit den gleichen Variablen ausgeführt wird.
AKTUALISIERT CODE - STILL DRUCK: INVALID SYSTEM :(
$userName = $mysqli->real_escape_string($_GET['userName']);
$OS = $mysqli->real_escape_string($_GET['OS']);
$HWID = $mysqli->real_escape_string($_GET['HWID']);
$mac = $mysqli->real_escape_string($_GET['mac']);
$q1 = "SELECT * FROM users WHERE Username = '".$userName."' AND OS = '".$OS."' AND HWID = '".$HWID."' AND MACAddress = '".$mac."'";
$systemMatches = $mysqli->query($q1);
if($userExists->num_rows == 1)
{
if($systemMatches->num_rows == 1)
{
echo"Valid System";
}else{
echo"Invalid System";
}
Sie könnten damit beginnen, die Fehlerbehandlung zur MySQL-Abfrage hinzuzufügen, nur für den Fall, dass ein MySQL-Fehler vorliegt. – Shadow
Echo Ihre Abfrage, um sicherzustellen, dass es das ist, was Sie denken, und führen Sie das in der Konsole aus. Da Sie mysqli verwenden, verhindern Sie die SQL-Injektion, indem Sie vorbereitete Anweisungen mit bind_param verwenden. – aynber
Ich wiederholte sogar meine Abfrage, es ist genau die gleiche Abfrage wie oben beschrieben. Alle Parameter sind korrekt, aber ich bekomme immer noch "ungültiges System" :(Danke noch mehr Vermutungen? – Noob02017