사용자 계정을 확인하는 데 문제가 있습니다. 데이터를 삽입 한 다음 확인 링크를 보내면 전자 메일에서 클릭 할 때 '활성'행이 0에서 1로 업데이트되지 않습니다.이 모든 것이 밤새 엉망이되어서 간단 할 수도 있지만 어느 누구라도 도움을 줄 수 있다면 크게 감사하겠습니다.이메일 확인 확인
또한 누구든지이 주사 증거를 만들기위한 조언을 제공 할 수 있다면 매우 행복 할 것입니다. 감사! 1
<?php
require ('classes/class.db.php');
require ('classes/class.pass.php');
try {
if(isset($_GET['email']) && !empty($_GET['email']) AND isset($_GET['email_hash']) && !empty($_GET['email_hash'])){
// Verify data
$search = "SELECT email, email_hash, active FROM users WHERE email='".$email."' AND hash='".$email_hash."' AND active='0'";
$match = $db->num_rows($query);
if($match > 0){
$stmt = $db->prepare('UPDATE users (active) VALUES (:active) WHERE active = 0');
$status = $stmt->execute(array(
':active' => 1));
if($status)
{
echo '<p>Your account has been activated, you can now login</p>';
}
}
}else{
echo '<p>Your account is already activated</p>';
}
} catch (PDOException $e) {
die($e->getMessage());
}
?>
UPDATE 번호는 AKAM 제안하지만 여전히 몇 가지 오류를 얻고 무엇을 시도했다. 여기 내 진술에 대한 것입니다. 문제는 에코 또는 변수에 저장 될 수없는 $_GET['email_hash']
처럼
$stmt = $db->prepare("UPDATE users SET active ='1' where active = '0' and email=:email AND email_hash=:email_hash");
$status = $stmt->execute(array(
':email' => $_GET['email'],
':email_hash' => $_GET['email_hash']
));
UPDATE # 2
보인다. 그것은 signup.php 페이지에서 무작위 해시 문자열을 취하지 않고 verify.php 페이지로 가져 오지 만 이메일 주소는 완벽하게 전달됩니다. 나는 약간 혼란스럽고 누군가를 위해 나를 위해 이것을 분명히하기를 좋아할 것입니다. 감사.
UPDATE # 3
문제 $_GET['hash']
에 $_GET['email_hash']
돌리기 만했다. 다시 한 번 감사드립니다!
모든 사용자 계정을 업데이트 하시겠습니까? –
아니요, 이메일의 사용자 만 일치합니다. – Devereaux
if ($ status) ..'else {echo $ db-> errorInfo()}' –