Необходимо проверить, существуют ли как EMAIL_ADDRESS
и ACTIVATION_CODE
в таблице MySql, если это так возвращает "Code is valid"
, иначе "Code is NOT valid"
.
В настоящее время он всегда возвращает код недействительным, однако я проверил запись в таблице, и запрошенный код существует.
$email = $_POST['email']; $acticode = $_POST['code']; $result = mysql_query("SELECT * FROM xActivate WHERE EMAIL_ADDRESS='$email' AND ACTIVATION_CODE='$acticode' LIMIT 1"); if (mysql_fetch_row($result)) { echo 'Code is valid'; } else { echo 'Code is NOT valid'; }
Но этот код небезопасен:
$email = $_POST['email']; $acticode = $_POST['code']; $result = mysql_query("SELECT * FROM xActivate WHERE EMAIL_ADDRESS='$email' AND ACTIVATION_CODE='$acticode' LIMIT 1"); $data = mysql_fetch_row($result); if (mysql_num_rows($result) > 0) { echo 'Code is valid'; } else { echo 'Code is NOT valid'; }
Чтобы защитить и предотвратить SQL Injection:
$email = mysql_real_escape_string($_POST['email']); $acticode = mysql_real_escape_string($_POST['code']);
Пожалуйста, обратите внимание:
http://ca1.php.net/mysql_real_escape_string
Предупреждение
Это расширение устарело с PHP 5.5.0 и будет удалено в будущем. Вместо этого следует использовать расширение MySQLi или PDO_MySQL. См. Также MySQL: выбирая руководство по API и связанные с ним FAQ для получения дополнительной информации. Альтернативы этой функции включают:
mysqli_real_escape_string() PDO::quote()