2015-04-28 2 views
0

Я действительно не понимаю, что здесь происходит, я довольно разочаровываю эту отладку. Я проверил детали, которые я ввел, существует в таблице, но логин просто возвращается к index.php без сообщения об ошибке, где вместо этого он должен перейти к order.php.Не может эхо значение клиентского сеанса?

session_start(); 

if(isset($_SESSION['customer_loggedin'])) 
{ 
    header('Location:order.php'); 
} 

if ($_SERVER['REQUEST_METHOD'] == 'POST') 
{ 
    include 'php/db_config.php'; 

    $login = trim($_POST['login']); 
    $password = trim($_POST['password']); 

    if($login && $password) 
    { 
     $sql = "SELECT * FROM customer WHERE (code=:code OR phone=:phone OR businessName=:businessName OR email=:email) AND password=:password"; 
     $stmt = $conn->prepare($sql); 
     $stmt->bindValue(':code', $login, PDO::PARAM_STR); 
     $stmt->bindValue(':phone', $login, PDO::PARAM_STR); 
     $stmt->bindValue(':businessName', $login, PDO::PARAM_STR); 
     $stmt->bindValue(':email', $login, PDO::PARAM_STR); 
     $stmt->bindValue(':password', $password, PDO::PARAM_STR); 
     $stmt->execute(); 

     if($stmt->rowCount() == 1) 
     { 
       $id = $row['id']; 
       $_SESSION['customer_loggedin'] = 1; 
       $_SESSION['customer_id'] = $id; 
      header('location:order.php'); 
     } 
     else 
      { 
      header('Location:index.php'); 
      $_SESSION['errmsg'] = 'Incorrect Login Details'; 
      die; 
     } 
    } 
} 

Я не могу повторить идентификатор значения сеанса из идентификатора клиента.

Причина в том, что я хочу, чтобы иметь возможность выбрать что-то из таблицы позже, используя зарегистрированный идентификатор пользователя.

+0

Если я установить сеанс = 1, то я могу Логгина но я не могу показать session userid – Elevant

+0

В этом скрипте '$ conn' не определен – talkhabi

+0

$ conn из включенного файла. – Elevant

ответ

1

В соответствии с вашим кодом проблема заключается в том, что вы пытаетесь сохранить неопределенную переменную в сеансе.

$_SESSION['customer_id'] = $id; //$id = $row['id'] 

Я считаю, что $ row означает результаты вашего запроса, но вы его просто не получили. $row не определено и $row['id'] также не определено.

Вы должны добавить следующий код для того, чтобы принести результаты запроса:

$row = $stmt->fetch(PDO::FETCH_ASSOC); 

Сразу после условия:

if($stmt->rowCount() == 1) 
+0

OMG ваш гений! Я пробовал несколько часов, пытаясь отладить это, помните, что я новый для PHP. Вы избавили меня от такой головной боли: O – Elevant

+0

Добро пожаловать, пожалуйста, подтвердите свой ответ, если это вам поможет. Удачи :) –

Смежные вопросы