2017-02-03 6 views
1

Ich schreibe PHP-Code, um die Existenz von Benutzername und Passwort in einer MySQL-Datenbank zu validieren. Dieser php wird aufgerufen, wenn ich auf die Anmeldeseite auf der Anmeldeseite (index.html) klicke. Mein PHP-Code ist unten:Navigieren zu einer anderen HTML-Seite mit PHP

<?php 
require_once 'dbconfig.php'; 

// Unescape the string values in the JSON array 
$logindata = stripcslashes($_POST['pLogData']); 

// Decode the JSON array 
$logindata = json_decode($logindata,TRUE); 

// now $tableData can be accessed like a PHP array 
$user_email = $logindata['user']; 
$user_password = $logindata['pass']; 

//First lets get the username and password from the user 
$query = $db_conn->prepare("SELECT * FROM tblUsers WHERE email=:user_email LIMIT 1"); 

$query->execute(array(':user_email'=>$user_email)); 

$userRow=$query->fetch(PDO::FETCH_ASSOC); 

if($query->rowCount() > 0) { 
    if(password_verify($upass, $userRow['pass'])) { 
     $_SESSION['user_session'] = $userRow['userid']; 
     if($userRow['userid'] == 1) { 
      header("Location: adminPanel.html"); 
     } else { 
      header("Location: main_dashboard.html"); 
     } 
     // return true; 
    } else { 
     header("Location: index.html"); 
     // return false; 
    } 
} 
?> 

Die Ajax-Aufruf-Code ist:

function login(username, passwd) { 
    var loginData = { 
     'user': username, 
     'pass': passwd 
    }; 

    loginData = $.toJSON(loginData); 

    $.ajax({ 
     type: "POST", 
     url: "loginValidate.php", 
     data: "pLogData=" + loginData, 
     success: function(msg) { 
      console.log(msg); 
      // return value stored in msg variable 
     } 
    }); 
} 

Es arbeitet mit Ausnahme fein, dass die Navigation in PHP nicht gesetzt ist passiert. Ich kann nicht herausfinden, wo der Fehler liegt. Das gesamte HTML, zu dem es navigieren muss, wird in die Konsole gedruckt.

Jede Hilfe wäre willkommen.

+0

durch Ajax wird es nicht funktionieren. gib den 'Dateinamen' zurück und benutze' window.location = Dateiname' in Javascript. oder senden Sie das Formular und wenn uncossessfull umleiten zu aktuellen else auf 'main_dashboard.html'. –

+0

@Suchit, was Sie vorgeschlagen haben funktioniert, aber ich muss einen Server für die Validierung des Benutzernamens und des Kennworts treffen. Das ist einfach mit PHP. Wenn ich den HTML-Code durch die PHP-Datei ersetze, kann er wechseln. Ich möchte wissen, warum es nicht für HTML-Datei wechselt. –

+1

.html erkennt den PHP-Code nicht.Wenn Sie ajax verwenden möchten, geben Sie nach der Validierung den Dateinamen zurück und verwenden Sie ihn zum Weiterleiten. –

Antwort

2

Durch Ajax wird es nicht funktionieren. gib den Dateinamen zurück und benutze window.location=filename in Javascript. oder senden Sie das Formular und wenn uncussessfull umleiten, um sonst auf main_dashboard.html(the desired page).

Wenn Sie den Dateinamen zurückgeben Sie dies tun können:

success: function(filename) { 
     window.location=filename; 
    } 

für diesen Header Standort entfernen und verwenden echo filename wie main_dashboard.html oder andere.

0

Vielen Dank für Ihre wertvollen Vorschläge. Ich habe es geschafft, das Problem zu lösen. Der Arbeitscode ist wie folgt:

if($query->rowCount() > 0) { 
    $upass = $userRow['pass']; 
    // if(password_verify($user_password, $userRow['pass'])) { 
    if($user_password == $upass) { 
     //echo "Check verified"; 
     $_SESSION['user_session'] = $userRow['userid']; 

     if($userRow['userid'] == 1) { 
      //header("Location: http://localhost:90/codebase-test/adminPanel.html"); 
      //return $userRow['userid']; 
      $filename = "adminPanel.html"; 
      //return $filename; 
     } 
     else{ 
      $filename = "main_dashboard.html"; 
      //return $filename; 
     } 
     echo $filename; 
     // return true; 
    } 
    else { 
     echo "index.html"; 
     //echo $filename; 
     //return false; 
    } 
} 

Ich habe nur das Bit gepostet, das ich geändert habe. Es funktioniert jetzt.

BEARBEITEN Ich machte auch eine kleine Änderung an der Ajax-Aufruf. Code unten:

$.ajax({ 
    type: "POST", 
    url: "loginValidate.php", 
    data: "pLogData=" + loginData, 
    success: function(filename){ 
     window.location = filename; 
    } 
}); 
Verwandte Themen