2016-04-14 6 views
1

Ich versuche, Login mit angularjs und PHP zu machen. Aber das Problem kann ich nicht verstehen, warum?Debug einige PHP-Code

<?php 
date_default_timezone_set("Asia/Bangkok"); 
session_start(); 

$data = json_decode(file_get_contents("php://input")); 
$email = mysql_real_escape_string($data->email); 
$password = mysql_real_escape_string($data->password); 

{ 

    $con=mysqli_connect("localhost","root","thanh03021986","erp"); 

    if (mysqli_connect_errno()){ 
     echo "Failed to connect to MySQL: " . mysqli_connect_error(); 
    } 

    $query = mysqli_query($con,"SELECT email, password FROM user WHERE email = '$email'"); 
    $numrow = mysqli_num_rows($query); 

    if($numrow > 0){  

     while($rows = mysqli_fetch_array($query)) 
     { 
       $dbemail = $rows['email']; 
       $dbpassword = $rows['password'];    
     } 
     $con->close(); 
     if($email==$dbemail && $password == $dbpassword){ 
      $_SESSION['uid'] = $email; 
      header('location:/A.php'); 
     }  
    } 
} 
?> 

Wenn die If() Rückkehr true die $_SESSION['uid'] = $email funktioniert, aber die header('location:/A.php'); nicht funktioniert. Ich versuche header('location:/A.php'); aus IF() zu setzen, Header funktioniert ??? Bitte helfen und erklären?

Antwort

1

Die session_start Funktion muss zuerst aufgerufen werden, und die header Funktion muss ich vor jedem HTML-Code aufgerufen haben.

Siehe die header Funktion manual

+0

Wenn ich versuche, Header aus IF() Block zu nehmen, funktioniert es, wenn in IF() gesetzt, funktioniert es nicht, obwohl $ _SESSION arbeiten? ??? – user2671755

1

Die Umleitung mit header, müssen Sie sicher sein, dass bereits in den HTML-Code gibt es nichts (auch nicht die <html>-Tag), und ein absoluter Pfad. Also, Sie sollten dies tun, um zu arbeiten:

header('Location: http://pathblablabla.bla/A.php'); 

Beachten Sie auch, dass ich Location, nicht Standort. Nicht sicher, ob es Groß-und Kleinschreibung ist, aber nur für den Fall ...

+0

'if ($ email = $ dbemail && $ password = $ dbpassword) { \t \t \t $ _SESSION [' uid '] = $ email; \t \t \t Kopfzeile ("Location: /index.html"); Ausfahrt; \t \t} ' – user2671755

+0

@ user2671755 Ändern Sie dies:'header ("Location: /index.html")' zu diesem:'header ("Location: http://yourdomain.com/index.html")", wo yourdomain .com es ist ... genau das. Wenn Sie google wären, wäre es google.com – Anima