@LuidgiVamp

Почему function confirm не менят 0 на 1 в БД при подтверждении регистрации?

function confirm()
{
    global $db;
    $new_hash = clear_str($_GET['hash']);

    $query = "UPDATE . PREF .`users` SET confirm = '1' WHERE `hash` = '%s'";

    $query = sprintf($query, mysqli_real_escape_string($db, $new_hash));

    $resutl = mysqli_query($db, $query);


    if (mysqli_affected_rows($resutl) == 1) {
        return TRUE;
    } else {
        return "Не верный код подтверждения регистрации";
    }


}

?>


if($_GET['hash']) {

	$confirm = confirm();

	if($confirm === TRUE) {
		$_SESSION['msg'] = "Ваша учетная запись активирована. Можете авторизироваться нга сайте.";
		header("Location:".$_SERVER['PHP_SELF']);
		exit();
	}
}
else {
	$_SESSION['msg'] = $msg;
	header("Location:".$_SERVER['PHP_SELF']);
	exit();
}


Регистрация проходит успешно, отправляет ссылку на регистрацию, но дальше, не получается перейти по ссылку, что бы успешно подтвердить регистрацию, в чем причина?
  • Вопрос задан
  • 47 просмотров
Решения вопроса 1
riot26
@riot26
<:З )~~
mysqli_affected_rows($db)
php.net/manual/ru/mysqli.affected-rows.php
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@LuidgiVamp Автор вопроса
Нашел уже ошибку, просто из ссылки которая приходит на почту удалил название localhost.

Но теперь ошибка
function confirm()
{
    global $db;
    $new_hash = clear_str($_GET['hash']);

    $query = "UPDATE " . PREF . "users
				SET confirm='1'
				WHERE hash = '%s'
				";
    $query = sprintf($query, mysqli_real_escape_string($db,$new_hash));

    $result = mysqli_query($db,$query);

    if(mysqli_affected_rows() == 1){
        return TRUE;
    }
    else {
        return "Неверный код подтверждения регистрации";
    }


}


в if(mysqli_affected_rows() == 1){

mysqli_affected_rows () ожидает, что параметр 1 будет mysqli

Какой параметр просит?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы