Переменные сеанса PHP не передаются при использовании angular 5 - PullRequest
0 голосов
/ 08 мая 2018

Я занимаюсь разработкой приложения Angular 5 с PHP-сервером, в котором пользователь должен войти в систему, чтобы получить доступ к другому компоненту. Я использую Wamp, и моя страница login.php содержит следующую информацию:

<?php
if(session_status() == PHP_SESSION_NONE){
    error_log("Not started");
    session_start();
}
header("Access-Control-Allow-Headers: Content-Type");
header("Access-Control-Allow-Origin: *");

require_once ('./DBConnect.php');
$conn = mysqli_connect($servername, $username, $password, $db ,$port);

$regUserData = json_decode(file_get_contents("php://input"),true);
$response = array();
$email = $regUserData['email'];
$pass = $regUserData['password'];
$pass = md5($pass);

if($email ===''||$pass ===''){
    $response['success'] = FALSE;
    $response['msg'] = 'Please fill all fields';
}
else{
    $query1 = "select * from user where Email = '".$email."'";
    $result1 = $conn->query($query1);
    if(mysqli_num_rows($result1)===0){
        $response['success'] = FALSE;
        $response['msg'] = 'User does not exist';
    }
    else{
        $query2 = "select * from user where Email = '".$email."' and Password = '".$pass."'";
        $result2 = $conn->query($query2);
        $row1 = mysqli_fetch_assoc($result2);
        if(mysqli_num_rows($result2)===0){
            $response['success'] = FALSE;
            $response['msg'] = 'Email or password incorrect';
        }
        else{
            $_SESSION['Id'] = $row1['Id'];
            $response['success'] = true;
        }
    }
}
echo json_encode($response);

Используются 2 оператора заголовка, поскольку wamp находится на другом порту, чем мое приложение Angular. Эта страница login.php работает нормально, но когда я пытаюсь передать переменную сеанса на другую страницу php, в файле error_log появляются ошибки, что переменная 'Id' не определена. Это моя вторая страница php:

<?php
session_start();
header("Access-Control-Allow-Headers: *");
header("Access-Control-Allow-Origin: *");

require_once ('./DBConnect.php');
$conn = mysqli_connect($servername, $username, $password, $db ,$port);
error_log($_SESSION['Id']); //The error is on this line

$query = "select * from Service";
$result = $conn -> query($query);
$arraySingle = array();
$arrayAll = array();
while($row = mysqli_fetch_assoc($result)){
    $arraySingle = array(
        'Name' => $row['Name'],
        'Desc' => $row['Description']
    );
    $arrayAll[] = $arraySingle;
}
echo json_encode($arrayAll);

Я получаю ошибку:

Примечание PHP: Неопределенный индекс: Идентификатор в C: \ wamp64 \ www \ ProjetErgonomie \ GetServices.php в строке 8

Может кто-нибудь помочь мне с моей проблемой? Спасибо !!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...