Запрос ИСТИН, когда его нет - PullRequest
0 голосов
/ 26 октября 2019

Пожалуйста, будьте осторожны со мной, я только недавно пытался изучать PHP / SQL.

Проблема в том, что первый запрос ВСЕГДА ИСТИН, когда он не должен (основываясь на том, что я знаю).

В запросе просто указывается «username», где betakey = $ betakey, предоставленный пользователем. Тот факт, что мои столбцы базы данных по-прежнему пустые, за исключением столбца betakey, вовсе не делает это утверждение запроса верным.

Пожалуйста, помогите, возможно, мне не хватает некоторых знаний по этому вопросу.

<?php
header('Access-Control-Allow-Origin: *');

$firstName = $_GET['rfirstname'];
$lastName = $_GET['rlastname'];
$username = $_GET['rusername'];
$password = $_GET['rpass'];
$betakey = $_GET['rkey'];

$host="localhost"; // Host name 
$db_username="**"; // Mysql username 
$db_password="**"; // Mysql password 
$db_name="**"; // Database name 


$conn = mysqli_connect("$host", "$db_username", "$db_password","$db_name");

if (!$conn){
die ("Error: ".mysqli_connect_error());
}

$query1 = "SELECT username='$username' FROM users2 WHERE betakey='$betakey';";
$result_1 = mysqli_query($conn,$query1);

if(mysqli_num_rows($result_1) > 0){ 

echo 'Beta key is used';

}else{

$query2 = "UPDATE users2 SET firstName='$firstName',lastName='$lastName',username='$username',password='$password' WHERE betakey='$betakey'";

echo 'Registration Successful';
} 

mysqli_close($conn);//Close off the MySQL connection to save resources.
?>

1 Ответ

1 голос
/ 26 октября 2019

У вас много проблем в вашем коде. Позвольте мне помочь вам исправить некоторые из них

Вот мой взгляд на ваш фиксированный код:

<?php

header('Access-Control-Allow-Origin: *');

$firstName = $_GET['rfirstname'];
$lastName = $_GET['rlastname'];
$username = $_GET['rusername'];
$password = $_GET['rpass'];
$betakey = $_GET['rkey'];

$host = "localhost"; // Host name
$db_username = "**"; // Mysql username
$db_password = "**"; // Mysql password
$db_name = "**"; // Database name

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$conn = new mysqli($host, $db_username, $db_password, $db_name);
$conn->set_charset('utf8mb4');

$stmt = $conn->prepare("SELECT COUNT(username) FROM users2 WHERE betakey=?");
$stmt->bind_param('s', $_GET['rusername']);
$stmt->execute();
$result_1 = $stmt->get_result();
$used = $result_1->fetch_row()[0];

if ($used) {
    echo 'Beta key is used';
} else {
    $stmt = $conn->prepare("UPDATE users2 SET firstName=?, lastName=?, username=?, password=? WHERE betakey=?");
    $stmt->bind_param('sssss', $firstName, $lastName, $username, $password, $betakey);
    $stmt->execute();

    echo 'Registration Successful';
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...