我正在使用PHP后端开发AngularJs应用程序,我实现了身份验证步骤,现在我正在尝试在身份验证后在另一个视图中显示经过身份验证的用户的数据。我无法显示用户数据。我在display.php文件中得到了这个错误:未定义的索引:令牌,请你帮助我,我的申请无法进展?
的login.php
<?php
session_start();
$data = json_decode(file_get_contents("php://input"));
$connect = mysqli_connect("localhost", "root", "", "test");
if(count($data) > 0)
{
$Email=mysqli_real_escape_string($connect, $data->Email);
$password=mysqli_real_escape_string($connect, $data->password);
$query = 'SELECT * FROM `client` WHERE (EmailClient = "'.$Email.'" AND password= "'.$password.'")';
$q = mysqli_query($connect , $query);
if(mysqli_num_rows($q) > 0 )
{
$token = md5($Email.time()."51395+81519851");
$query = "UPDATE client SET token = '".$token."' WHERE EmailClient = '".$Email."'";
mysqli_query($connect , $query);
$_SESSION["logged_in"] = true;
$_SESSION["token"] = $token;
$result['message'] ='Logged In';
$result['email'] =$Email;
$result['token'] = $token;
$resultstring=json_encode($result);
$resultstring=str_replace("null", '""', $resultstring);
echo $resultstring;
exit;
}
$result['message'] ='The username or password are incorrect!';
$resultstring = json_encode($result);
$resultstring = str_replace("null",'""',$resultstring);
echo $resultstring;
exit;
}
?>
Display.php的
<?php
session_start();
$connect = mysqli_connect("localhost", "root", "", "test");
$output = array();
$query = "SELECT Name,Adresse FROM client WHERE token = '".$_SESSION['token']."'";
$result = mysqli_query($connect, $query);
if(mysqli_num_rows($result) > 0)
{
while($row = mysqli_fetch_array($result))
{
$output[] = $row;
}
echo json_encode($output);
}
?>
答案 0 :(得分:0)
问题不在于您的PHP脚本,而是使用角度本身,您需要使用angular $ http模块发送令牌并设置标题类似
授权:持票人[令牌]
和disply.php中的获取头信息以获取您的令牌值。
如果你想通过会话来做,你可以在角度使用$ httpProvider模块。
希望这会对你有所帮助。