#php #html #mysql #validation #email
#php #HTML #mysql #проверка #Адрес электронной почты
Вопрос:
Я пытаюсь проверить учетную запись электронной почты, отправив ссылку для активации на указанный почтовый идентификатор. Для этого я генерирую случайное число и сохраняю его как check_activation в базе данных. Нет, проблема в том, что независимо от того, какой идентификатор я передаю по ссылке, база данных обновляется.
Часть моих кодов;
страница проверки:
$username = $_SESSION['username'];
include "connect.php";
$query = "select * from data_main where username = "$username"";
$result = mysql_query($query) or die(mysql_error());
$row = mysql_fetch_array($result);
$id_string = $row['check_activation'];
$query = "update data_main set check_activation = 'validated' where check_activation = "$id_string" ";
$retrn = mysql_query($query) or die(mysql_error());
if($retrn !== true)
{
echo "error in validation".mysql_error();
exit;
}
это ссылка для активации, которую я отправляю пользователю.
$mail_body.="http://$servr/dir_name/checkactivation.php?check_activation=$textstr";
есть ли какой-либо другой метод, который я могу использовать для проверки учетной записи электронной почты. учетная запись должна быть активирована только после того, как пользователь нажмет на указанную ссылку и подтвердит ее.
Комментарии:
1. итак, страница проверки вызывается при нажатии на ссылку?
2. Вам нужно получить строку активации проверки из $_GET, а не из базы данных. Клиент может выйти из системы, но он должен подтвердить свою учетную запись.
3. вы должны проверить,
$_GET['check_activation'] == your database check_activation string
совпадают ли они, вы можете обновить свою базу данных и пометить учетную запись пользователя как активированную4. спасибо .. теперь он работает.
Ответ №1:
попробуйте это
include "connect.php";
$username = $_SESSION['username'];
$id_string = $_GET['check_activation'];
$query = "select * from data_main where username = '{$username}' AND check_activation = '{$id_string}'";
$result = mysql_query($query) or die(mysql_error());
$rows = mysql_num_rows($result);
$retrn = false;
if($rows == 1)
{
$query = "update data_main set check_activation = 'validated' where check_activation = '{$id_string}' ";
$retrn = mysql_query($query) or die(mysql_error());
}
else
{
echo "error in validation".mysql_error();
exit;
}
ПРИМЕЧАНИЕ:
Вы должны использовать MySQLi или PDO для подключения к DbConnection