アクティベーションリンクが有効か無効かをチェックしようとしていますが、アクティベーショントークンや電子メールが間違っていても常に私のコードから$ activated_messageを取得しています。私のSQL文や関数に何が問題なのですか?おかげMySQLのPHPログイン
<?php
include("mysql_functions.php");
// Check if all fields are not empty.
if (!empty($_GET['email']) && !empty($_GET['activation_token'])) {
// MySQL database select query.
$mysql_select_query = "SELECT * FROM Accounts WHERE email='" . $_GET['email'] . "' AND activation_token='" . $_GET['activation_token'] . "' AND activated='0' LIMIT 1";
// Execute the MySQL database select query and check if POST password matches MySQL database hashed password.
if(mysql_execute_query($mysql_server, $mysql_username, $mysql_password, $mysql_database_name, $mysql_select_query, false)) {
// Valid activation link.
// MySQL database update query.
$mysql_update_query = "UPDATE Accounts SET activated='1' WHERE email='" . $_GET['email'] . "' AND activation_token='" . $_GET['activation_token'] . "' AND activated='0' LIMIT 1";
// Execute the MySQL database update query to activate the account and check if it is successful.
if (mysql_execute_query($mysql_server, $mysql_username, $mysql_password, $mysql_database_name, $mysql_update_query, false)) {
// The account was successfully activated.
echo $activated_message;
} else {
echo $not_activated_message;
}
} else {
// Invalid activation link.
echo $invalid_activation_link;
}
} else {
echo $not_activated_message;
}
// ------------------------ FUNCTION: MYSQL QUERY EXECUTOR -----------------------
// Function for executing MySQL queries.
function mysql_execute_query($mysql_server, $mysql_username, $mysql_password, $mysql_database_name, $mysql_query, $return_mysql_query_result_boolean) {
// Create the MySQL database connection.
$mysql_database_connection = mysqli_connect($mysql_server, $mysql_username, $mysql_password, $mysql_database_name);
// Check if connected to MySQL database.
if ($mysql_database_connection) {
// Connected to the MySQL database.
// Execute the MySQL query.
if ($mysql_query_result = mysqli_query($mysql_database_connection, $mysql_query)) {
// MySQL query has executed successfully.
// Check if any data needs to be returned.
if ($return_mysql_query_result_boolean) {
// Get an associated array from the MySQL result.
$mysql_query_result = mysqli_fetch_assoc($mysql_query_result);
}
// Close the MySQL database connection.
mysqli_close($mysql_database_connection);
// Return the MySQL query result.
return $mysql_query_result;
} else {
// MySQL query has not executed successfully.
echo "Error: " . mysqli_error($mysql_database_connection);
return false;
}
} else {
// Could not connect to the MySQL database.
die("Error connecting to MySQL database: " . mysqli_connect_error());
return false;
}
}
?>
警告するmysql_query、は、mysql_fetch_array ..拡張子はPHP 5.5.0で非推奨された、そしてそれは、PHP 7.0.0で削除されました。代わりに、MySQLiまたはPDO_MySQL拡張を使用する必要があります。 – Melchizedek
あなたが持っているSQL注入穴はもちろんですが。 –
私はmysqliを使用していると思いましたか?私は、将来mysqli文を準備するために自分のコードをロールオーバーするつもりです。 – user1406186