0

Hier mache ich E-Mail-Verifizierung über Google Mail. Wenn ich auf Verify-Link klicke, dann wird auf die gewünschte Seite umgeleitet, aber die Flash-Daten werden nicht verwaltet. Ich möchte, dass wenn jemand auf den Klick klickt, die Seiten angezeigt werden und nach der Überprüfung dem Nutzer angezeigt wird wurde bestätigt ". Ich muss wissen, wie die Flash-Daten nach der Seitenumleitung von Google Mail beibehalten werden.So verwalten Sie die Flash-Daten nach der Weiterleitung von Google Mail zur E-Mail-Bestätigung

public function sendMail() 
{ 
    $this->session->keep_flashdata('message'); 

$data=$this->uri->segment(2); 
if($this->home_model->email_verify($data)){ 
    $this->session->set_flashdata('message','Your Email address has been confirmed'); 
    redirect('home/login','refresh'); 
} 
else 
{ 
    $this->session->set_flashdata('message','Something Went wrong'); 
    redirect('home/login','refresh'); 
} 

}

Antwort

0

Flashdata arbeitet zwischen zwei Seiten auf dem Server. Sie sollten also einen anderen Weg gehen, um Ihre Benutzer zu verifizieren. 1. Zuerst sollten Sie eine Spalte in der Benutzertabelle erstellen. (kann "verifiziert" werden). 2. Bevor Sie eine E-Mail an die E-Mail des Benutzers senden, können Sie eine temporäre Variable deklarieren. ex. $ status = rand (0,9999); 3. Aktualisieren Sie den Variablenwert auf die verifizierte Spalte. 4. Hängen Sie die Variable am Ende der Klick-URL an. ex. http://domain.com/verifyemail/email-here-as-encrypted/ $ status 5. Überprüfen Sie, ob die E-Mail- und $ status-Werte in derselben Zeile vorhanden sind. 6. Wenn es übereinstimmt, zeigen Sie Ihre Nachricht "Email verifiziert" an. 7. Andernfalls wird "Can not verified" angezeigt.

Versuchen Sie es zu informieren. Pass auf.

//Data to match 
$dbverified = //Get the database verified column value 
$urlstatus = //url value you sent with email same as database data you update. 

//Email to match 
$urlemail = //decode url email 
$dbemail = //Get user email from db 

if($$dbverified == $urlstatus && $urlemail == $dbemail){ 
    echo 'E-mail verified'; 
}else{ 
    echo 'E-mail cannot be verified'; 
} 
+0

Danke für den Kommentar. Alles funktioniert gut, aber das Problem ist, dass, wenn ich auf den Link wie Sie in Schritt 4 erwähnt klicken. Es zeigt die Nachricht nicht. Ich benutze Sitzung Flash, um die Nachricht anzuzeigen. –

+0

Keine Sitzung sollte zu diesem Zweck verwendet werden. Sie senden nur URL mit entschlüsselter E-Mail und einen Wert, den Sie in die Datenbank aktualisieren und dann in verifyemail.php Seite folgen Sie diesen Schritt wie in Code. –

0

Session funktioniert nicht, wenn url Änderung

wie wenn Ihre URL Änderung http://example.com-https://example.com. Flash-Daten funktionieren nicht in diesem. URL muss beim Umleiten gleich sein.