Форум программистов, компьютерный форум, киберфорум
Наши страницы
PHP для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
Kse
1 / 1 / 0
Регистрация: 29.12.2009
Сообщений: 23
1

Не работает сессия

04.01.2013, 17:26. Просмотров 831. Ответов 12
Метки нет (Все метки)

Запускаю index.php, вываливает ошибку....не понимаю,почему...может дело в подключаемом скрипте?...Подскажите пожалуйста...

index.php
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<HTML>
<head>
    <title>Компания TORIS</title>
    <link href="css/main.css" rel="stylesheet" type="text/css">
    <style type="text/css">
 
    </style>
    <script type="text/javascript" src="authscript.js"></script>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"></head>
 
<body>
<?php
    session_start();
    
    // Условие входа на сайт
    if ( isset($_SESSION["user"]) == true ) {                   
        require('user.php');    
    }
    else { 
        require('notuser.php');
    }   
?>
</body>
</HTML>
authscript.js
Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
var xmlhttp;
// Создаем объект для передачи данных
if ( window.XMLHttpRequest ) {xmlhttp = new XMLHttpRequest();}
else {xmlhttp = new ActiveXObject ( "Microsoft.XMLHTTP" );}
// Функция для входа
function ajaxcl()
{
    // Проверяем на заполненность полей, если что не так, то меняем стиль для текстового поля
    if ( document.getElementById('login').value == '' ) {document.getElementById('login').className = 'err';}
    if ( document.getElementById('pass').value == '' ) {document.getElementById('pass').className = 'err';}
    // Если все поля заполнены
    if ( ( document.getElementById('login').value !== '' ) && ( document.getElementById('pass').value !== '' ) )
    {
        // обрабатываем ответ
        xmlhttp.onreadystatechange = function () {
                // если запрос к скрипту удачный
                if ( xmlhttp.readyState == 4 ) {
                        document.getElementById("main").innerHTML=xmlhttp.responseText;
                }
        }
        // отправляем запрос
        var login = document.getElementById("login").value;
        var pass = document.getElementById("pass").value;
        // Отправляем логин с паролем в get запросе
        xmlhttp.open ( "GET", "authscript.php?l="+login+"&p="+pass+"&rn="+Math.random(), true );
        xmlhttp.send ();
    }
}
// Функция выхода из профиля
function ajaxex()
{
    // обрабатываем ответ
    xmlhttp.onreadystatechange = function () {
            // если запрос к скрипту удачный
            if ( xmlhttp.readyState == 4 ) {
                    // Выводим форму входа
                        document.getElementById("main").innerHTML=xmlhttp.responseText;
            }
    }
    // Отправляем get запрос с ключевым словом exit
    xmlhttp.open ( "GET", "authscript.php?exit&rn="+Math.random(), true );
    xmlhttp.send ();
}
authscript.php
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
<?php
    // Стартуем сессию
    session_start();
    // Если мы получили данные для входа
    if ( isset ( $_GET["l"] ) and ( $_GET["l"] <> "" ) and isset ( $_GET["p"] ) and ( $_GET["p"] <> "" ) )
    {
        // Обрабатываем логин и пароль - от взлома
        $login = trim ( stripslashes ( htmlspecialchars ( $_GET["l"] ) ) );
        $pass = trim ( stripslashes ( htmlspecialchars ( $_GET["p"] ) ) );
        // Подключаемся к базе
        @ $db = new mysqli('localhost', 'root', '', 'promocomplex');
        // Вытаскиваем всех пользователей с этим Логином и паролем
        
        $query = "SELECT * FROM users WHERE login='$login' AND pass='$pass'";
        $result = $db->query($query);
        $num_results = $result->num_rows;
        // Если такой пользователь есть
        if ( $num_results != 0 )
        {
            $row = $result->fetch_assoc();
            $_SESSION["user_id"] = stripslashes($row['id']);
            // Создаем сессию и выводим информацию о успешном входе + кнопка выхода
            $_SESSION["user"] = true;
            $_SESSION["user_name"] = $login;
            require('user.php');
        }
        else require('notuser.php');
    }
    // Если пользователь нажал на кнопку выход
    if ( isset ( $_GET["exit"] ) )
    {
        // Удаляем сессию
        unset ( $_SESSION["user"] );
        unset ( $_SESSION["user_name"] );
        // Выводим форму входа
        require('notuser.php');
    }
?>
0
Миниатюры
Не работает сессия  
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.01.2013, 17:26
Ответы с готовыми решениями:

Активация почты: не работает проверка ссылки и не работает сессия
Здравствуйте. Пишу сайт по разным урокам из интернета. При активации почты,...

Не работает сессия
Добрый день. Есть два одинаковых файла index.php код внутри &lt;?php ...

Сессия не работает
Собственно читаю PHPFAQ по сессиям, есть там такой пример: &lt;?php...

Не работает сессия
Делаю систему авторизации на сайте - вот код: login.php &lt;?php ...

Не работает сессия
Вот мой код &lt;?php session_start(); echo '&lt;form method=&quot;POST&quot; action=&quot;&quot;&gt;...

12
KOPOJI
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
16753 / 6644 / 864
Регистрация: 12.06.2012
Сообщений: 19,897
Завершенные тесты: 1
04.01.2013, 18:12 2
Что означает предупреждение "headers already sent"

Добавлено через 44 секунды
конкретно здесь надо изменить вот так первый код
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<?php session_start(); ?>
<HTML>
<head>
    <title>Компания TORIS</title>
    <link href="css/main.css" rel="stylesheet" type="text/css">
    <style type="text/css">
 
    </style>
    <script type="text/javascript" src="authscript.js"></script>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"></head>
 
<body>
<?php
    
    // Условие входа на сайт
    if ( isset($_SESSION["user"]) == true ) {                   
        require('user.php');    
    }
    else { 
        require('notuser.php');
    }   
?>
</body>
</HTML>
1
pobedinsky
70 / 70 / 13
Регистрация: 21.12.2011
Сообщений: 188
04.01.2013, 18:12 3
Точно не уверен, но по идее
PHP
1
session_start();
должно идти самой первой строкой, до передачи вообще какой-либо инфы, в том числе и html кода.
1
Kse
1 / 1 / 0
Регистрация: 29.12.2009
Сообщений: 23
04.01.2013, 18:52  [ТС] 4
изменяла...и все равно та же ошибка..только теперь в первой строке...
может ли быть такое, что что-то не так с настройками денвера?
0
KOPOJI
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
16753 / 6644 / 864
Регистрация: 12.06.2012
Сообщений: 19,897
Завершенные тесты: 1
04.01.2013, 18:56 5
Kse, нет. у вас session_start() стоит первой строчкой, до нее нет никаких не пробелов, ничего более? Если нет - значит у файла кодировка с BOM-метками, измените на UTF-8 without(без) BOM
1
Kse
1 / 1 / 0
Регистрация: 29.12.2009
Сообщений: 23
04.01.2013, 19:06  [ТС] 6
хм...делала так уже...и только сейчас заработало...
только теперь проблема с кодировкой появилась...и, не подскажете, почему таблицу стилей игнорирует?
0
KOPOJI
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
16753 / 6644 / 864
Регистрация: 12.06.2012
Сообщений: 19,897
Завершенные тесты: 1
04.01.2013, 19:08 7
скорее всего путь неверный к стилям, посмотрите в консоли (в хроме - ctrl+shift+J и обновить страницу) находит он файл стилей или нет
1
Kse
1 / 1 / 0
Регистрация: 29.12.2009
Сообщений: 23
04.01.2013, 19:13  [ТС] 8
не находит. а почему?
0
KOPOJI
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
16753 / 6644 / 864
Регистрация: 12.06.2012
Сообщений: 19,897
Завершенные тесты: 1
04.01.2013, 19:14 9
ну это я не знаю, почему
Значит по этому пути его нет - может быть, он не в папке, может имя другое, может где то в имени/пути закралась русская буква, может доступа к директории нет (смотря какой статус).. Это уже Вам надо смотреть
1
Kse
1 / 1 / 0
Регистрация: 29.12.2009
Сообщений: 23
04.01.2013, 19:23  [ТС] 10
хм..вроде все на месте...ладно,поковыряемся еще, спасибо большое
0
stupidstudent
17 / 14 / 0
Регистрация: 25.10.2011
Сообщений: 241
04.01.2013, 22:22 11
PHP
1
2
3
4
<HTML>
<head>
    <title>Компания TORIS</title>
    <link href="<?$_SERVER['HTTP_HOST']?>/css/main.css" rel="stylesheet" type="text/css">
и не будет ошибок с css, пример: site.ru/css/main.css
0
fa2m
355 / 279 / 22
Регистрация: 27.08.2012
Сообщений: 855
04.01.2013, 22:29 12
Цитата Сообщение от stupidstudent Посмотреть сообщение
PHP
1
<?$_SERVER['HTTP_HOST']?>
Только вывод в браузер не забудьте поставить (echo, print, <?=)
1
stupidstudent
17 / 14 / 0
Регистрация: 25.10.2011
Сообщений: 241
04.01.2013, 22:33 13
fa2m, <?= дада
0
04.01.2013, 22:33
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.01.2013, 22:33

не работает сессия
даже не знал как назвать тему....хех потомучто сесси то работают - не работает...

Не работает сессия
&lt;? include (&quot;include/db.php&quot;); $out='&lt;form method=&quot;POST&quot;&gt; &lt;input...

Сессия не везде работает
Есть два файла index.php session_start(); $_SESSION=10; и users.php...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru