Web sitenizde kayıt formunuz olduğunu kabul ediyorum. Verileri performRegistration.php adlı bir dosyaya gönderiyorsunuz. performRegistration.php içeride
:
// TBD sanitizing input data
$newUser = new User(); // I am assuming you build a class for your users
$newUser->setVerified(false);
// TBD save form data to user object
// generate a custom key for new user
$newUser->setRegisterKey = MD5('someSaltString'.date('u')); // very basic!
$newUser->save(); // validate data (like user already registered, and stuff like that) and save to db
$newUser->sendRegistrationMail(); // I like libs like swiftmailer
@JimL belirttiği gibi, bir simgeyle temel bağlantıyı kullanmalıdır. yoursite.com/verify.php?verify[username]=aUsername&verify[token]=theMd5TokenGenerated
Böyle bir şey yapardım, bu şekilde db içindeki kullanıcı adını arayabilir ve oluşturulan ilgili anahtarı kontrol edebilirsiniz. Bağlantıya (benzersiz) kullanıcı adını eklemezseniz, doğrulama işlemi sırasında veri kümesine bakmak istiyorsanız, iki kullanıcının aynı kayıt anahtarını almadığından emin olmanız gerekir. verify.php İçinde
:
// TBD catch $_GET and sanitize data
$getVars = $_GET['verify'];
if(array_key_exists('token', $getVars)){
if(!empty($_GET['token']) && !empty($_GET['username'])) {
// TBD get user from db where username and key match the submitted values from the link
// if you can find a matching dataset:
$newUser->setVerified(true);
// start a session, add a cookie, login user
// do some great stuff
}
}
Kontrol sen ipuçları için kendini ele verdik aktivasyon bazılarıdır. Sadece bu bağlantıyı doğruladığınız bir param 'yoursite.com/verify.php? Token = sometokenhere' ile bir bağlantı gönderin (eğer bu süre dolmuyorsa). – JimL
Burada hangi konuyla ilgili bir probleminiz var? Şimdiye kadar ne denediniz? – NineBerry
Gizli form etiketlerini belirteçle denedim ancak maalesef e-posta istemcileri bunu engelliyor ... Böyle bir şeyle nereden başlayacağımı bile bilmiyorum. – joeldesante