Последние 5 часов я работал над тем, почему это происходит, если меня вызывают ...
Позвольте мне показать вам код и объяснить вам:
<?php
require_once "ConnectDB.php";
$link2 = $link;
$key = $posthwid = "";
$err = "";
if($_SERVER["REQUEST_METHOD"] == "POST"){
if(empty($_POST["key"])){
$err = "Thanks for the ip (" .$_SERVER['REMOTE_ADDR']. "), have a good day! (1)";
}
else{
$key = trim($_POST["key"]);
}
$hwid = $_POST["hwid"];
if(empty($err)){
$sql = "SELECT hwid, idkey, length, created_at FROM money WHERE idkey = '" .$key. "'";
$row = mysqli_query($link, $sql);
if(mysqli_num_rows($row) < 2){
while($result = mysqli_fetch_assoc($row)) {
if($result["idkey"] == $key)
{
$err = "key";
if($result["hwid"] == "")
{
$err = "nohwid";
$sql2 = "UPDATE IceCold SET hwid = '" .$hwid. "' WHERE idkey = '" .$key. "'";
if(mysqli_query($link2, $sql2)){
$hwid = $result["hwid"];
mysqli_close($link2);
echo "debug";
}
else {
$err = "Oops! Something went wrong. Conntact the support.";
}
}
if ($hwid !== $result["hwid"]) {
$err = "Contact the support";
}
elseif($_SESSION["admin"] == true) {
//Do special stuff
}
else {
///do other checks
if($created_at > $date){
$err = $hwid;
} else {
$err = "The key date is too old, buy a new one.";
}
}
}
else{
$err = "The key you entered was not valid.";
}
} mysqli_close($link);
} else {
$err = "multiple entry, contact support";
}
}
} else {
$err = "Thanks for the ip (" .$_SERVER['REMOTE_ADDR']. "), have a good day! (3)";
}
echo $err;
?>
Так что в основном, У меня есть этот файл Connect DB с mysqli_connect с именем $link
, и я разрабатываю API-интерфейс для своей программы. Моя программа отправит запрос с "idkey" и "hwid" и ждет возвращения hwid. У меня есть запись в моей базе данных sql с зарегистрированным только ключом, и я пытаюсь заставить мою программу работать, генерируя запрос POST с идентификатором и случайным hwid, но я не нашел успеха. Если переменные странно перемещаются, то это из-за отладки.
Прямо сейчас, с моими текущими настройками, я получаю в Контакте ответ службы поддержки, который я не понимаю, почему?!? Запрос и ключ верны, если я смогу получить этот awnser. Возможно, это глупая ошибка, но я просто не могу ее понять ...
Заранее благодарен за вашу помощь
Редактировать: Если утверждение, на которое я ссылаюсь, это
if($hwid !== $result["hwid"])
В коде, который я исправил, была опечатка, но не проблема, как в случае с elseif, которая разрушила бы порядок выполнения кода и разрушила логику, стоящую за ним (если это имело смысл).
Ужасно, после некоторых тестов, я обнаружил, что второй отправляемый мной запрос sql не хочет выполняться ($ sql2), и в логах httpd нет ошибок ... Можете ли вы выполнить два запроса? Я пытался создать $ link2, но ничего не изменилось
РЕДАКТИРОВАТЬ : найденное решение
if($result["hwid"] == "")
{
$sql2 = "UPDATE money SET hwid = '" .$_POST["hwid"]. "' WHERE idkey = '" .$key. "'";
if(mysqli_query($link2, $sql2)){
$newhwid = $_POST["hwid"];
mysqli_close($link2);
}
else {
$err = "Oops! Something went wrong. Conntact the support.";
}
}
elseif ($_POST["hwid"] != $result["hwid"]) {
$err = "Contact the support";
}
if($_POST["hwid"] == $newhwid || $_POST["hwid"] == $result["hwid"] ) {
/// do other checks
}