2016-10-03 6 views
1

für Kontoverifizierungsprozess hinzu, wenn Benutzer auf Verifikationslink klicken. Er/Sie leitet sofort zum Dashboard um. Aber ich möchte eine Bestätigung geben, dass sein Konto für einige Sekunden überprüft wurde. hier ist mein CodeSo fügen Sie eine Verzögerung in php

    <?PHP 
require_once 'include/Functions.php'; 
$db = new DB_Functions(); 




if(isset($_GET['username'])&&isset($_GET['q'])) 
{ 
$username= $_GET['username']; 

$hash= $_GET['q']; 




$salt = "498#2D83B631%3800EBD!801600D*7E3CC13"; 

     $resetkey = hash('sha512', $salt.$username); 


     if($hash==$resetkey){ 

      $user = $db->activateAccount($username); 

      if ($user != false) { 
     // user is found 
     echo '<script>'; 
    echo 'document.getElementById("result_status").innerHTML = "<strong>Congratulations! Your Account has been verified .</strong>"'; 

    echo '</script>'; 


     $passwords=$db->getPasswordFromUsername($username); 

    $users = $db->loginUserWithMdfPassword($username, $passwords); 
    if ($users != false) { 
     // password is found 

     $properlyLogged=true; 


if($properlyLogged) { 
    // season for storing data start here 

session_start(); 

$_SESSION['username']=$username; 


header('Location: http://localhost/mywebsite/dashboard.php'); 

exit(); 
// season for storing data end here 

    }} 


} 

     }else { 
      echo '<script>'; 
     echo 'document.getElementById("result_status").innerHTML = "<strong>Session has been expired.</strong>"'; 

    echo '</script>'; 




}} 



?> 
+1

Verwenden Sie die Sleep-Funktion Vorform müssen: http://php.net/manual/en/function.sleep.php –

+0

, wie ich es benutzen kann in meinem Code? kannst du mir erzählen? –

Antwort

0

Dies würde wahrscheinlich mit einem JavaScript-Ansatz einfacher sein.

statt header('Location: http://localhost/mywebsite/dashboard.php');

setzen

echo '<script>setTimeout(function(){window.location.href = "http://localhost/mywebsite/dashboard.php"}, 5 * 1000);</script>'

Diese für X * 1000 Millisekunden warten (in meinem Beispiel 5 Sekunden) und dann an das Ziel weitergeleitet werden.

+0

sehr hilfreich danke –

1

sleep arbeiten nicht für das, was Sie wollen. Sie umleiten Ihren Benutzer mit header('location:...'); und Sie können Header-Informationen nicht ändern, nachdem Sie Daten ausgegeben haben (dh - Nachricht an Benutzer angezeigt). Sie die Umleitung mit Hilfe von Javascript mit einem setTimeout

<?PHP 
require_once 'include/Functions.php'; 
$db = new DB_Functions(); 
if(isset($_GET['username'])&&isset($_GET['q'])) 
{ 
    $username= $_GET['username']; 
    $hash= $_GET['q']; 
    $salt = "498#2D83B631%3800EBD!801600D*7E3CC13"; 
    $resetkey = hash('sha512', $salt.$username); 
    if($hash==$resetkey){ 
     $user = $db->activateAccount($username); 
     if ($user != false) { 
    // user is found 
    echo '<script>'; 
    echo 'document.getElementById("result_status").innerHTML = "<strong>Congratulations! Your Account has been verified .</strong>";'; 
// set timeout for 3 seconds - then redirect 
    echo "setTimout(function(){window.location.href = 'http://localhost/mywebsite/dashboard.php';},3000)" 
echo '</script>'; 

    $passwords=$db->getPasswordFromUsername($username); 

$users = $db->loginUserWithMdfPassword($username, $passwords); 
if ($users != false) { 
    // password is found 

    $properlyLogged=true; 


    if($properlyLogged) { 
     // season for storing data start here 
     session_start(); 
     $_SESSION['username']=$username; 
     //comment out header redirect 
     //header('Location: http://localhost/mywebsite/dashboard.php'); 
     exit(); 
     // season for storing data end here 
}} 
+0

vielen Dank, es funktioniert. –

Verwandte Themen