Проблема с аутентификацией

364
25 декабря 2016, 19:15

Зарегистрировался, потом этими данными захожу, зашел не проблем, а потом когда перехожу для просмотра заказа, автоматически выходить. Да мой русский дает о себя знать.

Вот картинки

1 Картинка Зарегистрировался но не вошел в систему. 2 Картинка вошел систему по своим логином и паролем. 3 Картинка перехожу в заказы, тут и фокус, как то выходить из системы 4 Картинка показываю что не могу сделать заказ. Я уже не в системе.

Ссылка на файлы тут введите сюда описание ссылки

Answer 1

Ну во первых у вас сессия не стартует так как вы ее стартуете после того как уже заголовки были отправлены,прописывайте ее в самом начале файла!

Answer 2

ВНАЧАЛЕ КАЖДОГО СКРИПТА ДОЛЖНА БЫТЬ СТРОКА.

session_start();

А у вас сессия по условию стартует. я так понял из вашего скриншота.

И еще возможно в браузере отключены куки?

Answer 3
  1. session_start(); //запускайте сессию
  2. если заполнены поля логина и пароля то сохраните их в сессии $_SESSION['login'] = $_POST['login'];... и т.д. для пароля.
  3. потом проверяете базу, есть такой логин, если есть то проверяете введенный пароль с паролем который лежит на базе.
  4. если все условии вернут true, тогда создайте сессию типа $_SESSION['auth'] = 1;
  5. и в начале каждой страницы стартуйте сессию и проверяйте существует ли $_SESSION['auth'] и равен ли он на 1.
  6. если пункт 5 вернет true то покажите то что должен видеть зареганный пользователь а не то покажите инфу для гостья. это легкий способ для работы с сессией, если будет интересно с куки, то радостью поможем задавайте вопросы.
Answer 4

`

$pass=$_POST["pass"]; 
$login=$_POST["login"]; 
include("connect.phtml");    
$strSQL1="SELECT * FROM customers WHERE login='".$login."' AND pass='".$pass."'"; 
$result1=mysql_query($strSQL1) or die("Не могу выполнить запрос!"); 
// пользователь с таким логином и паролем найдем ? 
if($row=mysql_fetch_array($result1))  
{   
    $start=session_start();    // начинаем сессию 
    // Создадим сеансовую переменную для ФИО покупателя  
    session_register("log");  
    $_SESSION["log"]=$row["fam"]." ".$row["im"]; 
    // Создадим сеансовую переменную для ID покупателя 
    session_register("id");  
    $_SESSION["id"]=$row["id_cust"]; 
    $message="<tr><td bgcolor='#66cc66' align='center'> 
              <b>Вы успешно авторизованы</b></td></tr>"; 
    $success=true; 
} 
else 
{ 
    $message="<tr><td bgcolor='#ff9999' align='center'> 
              <b>Таких логина/ пароля не существует!!!</b></td></tr>"; 
} 
mysql_close(); 
if($success) 
{ 
   include ("cabinet.phtml"); 
} 
else 
{
   include("header.phtml"); 
   print $message; 
   include("footer.phtml"); 
} 

?> ` Вот здесь, когда запуская она ругается

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at D:\home\site.ru\www\auto.phtml:1) in D:\home\site.ru\www\auto.phtml on line 1

Deprecated: Function session_register() is deprecated in D:\home\site.ru\www\auto.phtml on line 18

Deprecated: Function session_register() is deprecated in D:\home\site.ru\www\auto.phtml on line 21

Answer 5

Если Вы не хотите использовать фреймворки, имеется в виду один из популярных, - то есть решение для нативного программирования на РНР. Библиотека PHPAuth наделена разного рода возможностями от авторизации до восстановления пароля по Email и локализации сообщений.

В фреймворках есть уже встроенные компоненты авторизации.

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

READ ALSO
Как сделать так, чтобы правая колонка всплывала вверх?

Как сделать так, чтобы правая колонка всплывала вверх?

Верстаю сайт на бутстрапеНужно сделать так, чтобы та информация, которая отображается на больших экранах в правой колонке, на мобильных устройствах...

319
Как вставить javascript в printf()

Как вставить javascript в printf()

Нужно вставить JavaScript в функцию printf()

364
IE11 реализация 2-ух колонок одинаковых по высоте

IE11 реализация 2-ух колонок одинаковых по высоте

Мне нужно несколько колонок в ряд, одинаковых по высоте и высота подстраивается под максимальный по высоте элементРеализовал известным...

322