Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.58/19: Рейтинг темы: голосов - 19, средняя оценка - 4.58
0 / 0 / 0
Регистрация: 05.04.2012
Сообщений: 56

Почему Cookie в куки заносится значение, а в другом файле Cookie пуста?

06.05.2012, 12:10. Показов 3916. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте подскажите что я не так делаю все вроде по примерам да ошибок как токавых нет.. но не получается задуманное

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

1 файл

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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
<?php 
setcookie("user_id");
include("block/db.php");
 
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title>страница соединения</title>
<link href="style.css" rel="stylesheet" type="text/css">
</head>
 
<body>
 
<table width="90%" border="0" align="center" cellpadding="0" cellspacing="0" class="main_border">
<?php include("block/verx.php"); ?>
  <tr>
    <td><table width="100%" border="0">
      <tr>
        <?php include("block/left.php");?>
        <td width="75%" class="headwindows">
        <h2  align="center">Вошли</h2>
       <?php if (isset($_POST['login']) && isset($_POST['password']))
{
    $login =$_POST['login'];
    $password =$_POST['password'];
 
    // делаем запрос к БД
    // и ищем юзера с таким логином и паролем
 
    $query = "SELECT id
            FROM user
            WHERE login='{$login}' AND password='{$password}'
            LIMIT 1";
    $sql = mysql_query($query) or die(mysql_error());
 
    // если такой пользователь нашелся
    if (mysql_num_rows($sql) == 1) {
        // то мы ставим об этом метку в сессии (допустим мы будем ставить ID пользователя)
 
        $row = mysql_fetch_assoc($sql);
        $_SESSION['user_id'] = $row['id'];
        $id = $_SESSION['user_id'];
        
        $_COOKIE['user_id'] = $id;
        echo $_COOKIE['user_id'];
     ?><form action="save_lich.php" method="post" name="forms">
        <p>ИФО                                   <input name="name" type="text"></p>
        <p>Вашу прописку                         <input name="adres" type="text"></p>
        <p>Электронную почту                     <input name="mail" type="text"></p>
        <p>Телефон для связи в близжащее время   <input name="n_telefona" type="text"></p>
        <p>Информацию о себе или контакте с вами <input name="info" type="text"></p>
        <p><input name="submit" type="submit" value="Отправить информацию"></p>
        
        <?php
        // не забываем, что для работы с сессионными данными, у нас в каждом скрипте должно присутствовать session_start();
    }
    else {
        die('Такой логин с паролем не найдены в базе данных. <a href="https://www.cyberforum.ru/index.php">Зайти заново</a>.');
    }
}?>
 
    </td>
      </tr>
    </table>      </td>
  </tr>
</table>
</body>
</html>

2й в котором все пусто

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
<?php 
session_start();
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title>главная страница</title>
<link href="style.css" rel="stylesheet" type="text/css">
</head>
 
<body>
<table width="90%" border="0" align="center" cellpadding="0" cellspacing="0" class="main_border">
<?php include("block/verx.php"); ?>
  <tr>
    <td><table width="100%" border="0">
      <tr>
        <?php include("block/left.php");?>
        <td width="75%" class="headwindows">
        <?php  if (isset($_COOKIE['user_id'])) {
        $id = $_COOKIE['user_id'];
        echo "печенье по номеру $id";
    
        }
    else {
        die('Такой логин с паролем не найдены в базе данных. И даём ссылку на повторную авторизацию.');
    }   
        ?>
  </td>
      </tr>
    </table>      <cite><dfn>
    </dfn></cite></td>
  </tr>
</table>
</body>
</html>
еслиб кук небыло он бы дал ответ else {
die('Такой логин с паролем не найдены в базе данных. И даём ссылку на повторную авторизацию.'); но они есть он проходит а самих значений в них нету((....

не ругайте сильно я новичок)
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
06.05.2012, 12:10
Ответы с готовыми решениями:

Проблемы с передачей Cookie (очистка Cookie)
Всем привет! Кто нибудь пытался реализовать обмен с сайтом с авторизацией и сохранением Cookie? Для понимая, вот алгоритм: 1)...

jQuery Cookie не читает куки если запустить *.html с диска локально!
Привет. Есть html файл, назовем его &quot;Index.html&quot;. В этом файле jQuery код, который выполняет JSONP запрос к серверу: function...

Django csrf cookie --нужно определить в чем ошибка CSRF cookie not set
НУжна помощь в определений ошибки как исправить в папке Templates находится файл index.py &lt;!DOCTYPE html&gt; &lt;html&gt; ...

7
75 / 75 / 13
Регистрация: 02.02.2012
Сообщений: 462
06.05.2012, 12:24
а зачем тебе и куки и сессия?
вижу говнокод попова)))завязывай с этим

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

Добавлено через 1 минуту
и напиши в поле где вводиться логин ' OR 1=1--
а в пароль все что хочешь, и посмотри что будет
1
0 / 0 / 0
Регистрация: 05.04.2012
Сообщений: 56
06.05.2012, 12:31  [ТС]
а зачем тебе и куки и сессия?
вижу говнокод попова)))завязывай с этим
а как не через куки и сессии оформить авторизацию пользователя?

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

и напиши в поле где вводиться логин ' OR 1=1--
а в пароль все что хочешь, и посмотри что будет
можешь на примере показать для наглядности а то я не понимаю(
0
75 / 75 / 13
Регистрация: 02.02.2012
Сообщений: 462
06.05.2012, 12:47
а как не через куки и сессии оформить авторизацию пользователя?
ну не сразу же и то и другое. используй что то одно
если там не ставить сеткуки он выдает ошибку 17 строке про заголовки что не может передать...
я же написал проверку ставишь вверху
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
 <?php if (isset($_POST['login']) && isset($_POST['password']))
{
    $login =$_POST['login'];
    $password =$_POST['password'];
 
    // делаем запрос к БД
    // и ищем юзера с таким логином и паролем
 
    $query = "SELECT id
            FROM user
            WHERE login='{$login}' AND password='{$password}'
            LIMIT 1";
    $sql = mysql_query($query) or die(mysql_error());
 
    // если такой пользователь нашелся
    if (mysql_num_rows($sql) == 1) {
        // то мы ставим об этом метку в сессии (допустим мы будем ставить ID пользователя)
 
        $row = mysql_fetch_assoc($sql);
setcookie('users_id', $row['id'], time()+3600);
     ?>
можешь на примере показать для наглядности а то я не понимаю(
у тебя есть форма где нужно ввести логин и пароль
в поле логин вводишь ' OR 1=1--
в поле пароль вводишь все что хочешь
смотрим результат
1
0 / 0 / 0
Регистрация: 05.04.2012
Сообщений: 56
06.05.2012, 13:22  [ТС]
у меня на эту страницу данные не передаются...теперь я понял почему вы предложили этот вариант извините не корректно представил информацию... исправляюсь

пользователь заходя на страницу vxod.php может перейти на другую страницу по ссылку хранимой в файле left.php

код файла vxod.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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
<?php 
setcookie("user_id");
include("block/db.php");
 
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title>страница соединения</title>
<link href="style.css" rel="stylesheet" type="text/css">
</head>
 
<body>
 
<table width="90%" border="0" align="center" cellpadding="0" cellspacing="0" class="main_border">
<?php include("block/verx.php"); ?>
  <tr>
    <td><table width="100%" border="0">
      <tr>
        <?php include("block/left.php");?>
        <td width="75%" class="headwindows">
        <h2  align="center">Вошли</h2>
       <?php if (isset($_POST['login']) && isset($_POST['password']))
{
    $login =$_POST['login'];
    $password =$_POST['password'];
 
    // делаем запрос к БД
    // и ищем юзера с таким логином и паролем
 
    $query = "SELECT id
            FROM user
            WHERE login='{$login}' AND password='{$password}'
            LIMIT 1";
    $sql = mysql_query($query) or die(mysql_error());
 
    // если такой пользователь нашелся
    if (mysql_num_rows($sql) == 1) {
        // то мы ставим об этом метку в сессии (допустим мы будем ставить ID пользователя)
 
        $row = mysql_fetch_assoc($sql);
        $_SESSION['user_id'] = $row['id'];
        $id = $_SESSION['user_id'];
        
        $_COOKIE['user_id'] = $id;
        echo $_COOKIE['user_id'];
     ?><form action="save_lich.php" method="post" name="forms">
        <p>ИФО                                   <input name="name" type="text"></p>
        
        <p>Электронную почту                     <input name="mail" type="text"></p>
        <p>Телефон для связи в близжащее время   <input name="n_telefona" type="text"></p>
        <p>Информацию о себе или контакте с вами <input name="info" type="text"></p>
        <p><input name="submit" type="submit" value="Отправить информацию"></p>
        
        <?php
        // не забываем, что для работы с сессионными данными, у нас в каждом скрипте должно присутствовать session_start();
    }
    else {
        die('Такой логин с паролем не найдены в базе данных. <a href="https://www.cyberforum.ru/index.php">Зайти заново</a>.');
    }
}?>
 
    </td>
      </tr>
    </table>      </td>
  </tr>
</table>
</body>
</html>
он переходит на страницу zag_polzov.php по ссылке, странница zag_polzovatel.php должна отображать некую форму по которой данные перейдут на другую страницу. Для не зарегистрированных пользователь информация должна быть скрыта,я дополнил файл остальным кодом чтоб было понятнее... там ошибки можно не искать я сам разберусь потом, мне главное чтоб в куке передавалось значение переменной id а то они вроде и есть а значения в них нет(((...


код файла zag_polzov.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
39
40
41
42
43
44
45
46
47
48
49
<?php 
include("block/db.php");
session_start();
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title>главная страница</title>
<link href="style.css" rel="stylesheet" type="text/css">
</head>
 
<body>
<table width="90%" border="0" align="center" cellpadding="0" cellspacing="0" class="main_border">
<?php include("block/verx.php"); ?>
  <tr>
    <td><table width="100%" border="0">
      <tr>
        <?php include("block/left.php");?>
        <td width="75%" class="headwindows">
        <?php  if (isset($_COOKIE['user_id'])) {
        $id = $_COOKIE['user_id'];
        $result = mysql_query("SELECT id,login,password FROM user WHERE id='$id'");
        $row = mysql_fetch_array($result);
        
        echo "Здраствейте $row[login] добавте данные в о себе"}?>
        
        <form name="from" action="save_adres.php">
        <p>улица<input type="text" name="name"></p>
        <p>дом<input type="text" name="name"></p>
        <p>корпус<input type="text" name="name"></p>
        <p>парадная<input type="text" name="name"></p>
        <p>квартира<input type="text" name="name"></p>
        <p>дом телефон<input type="text" name="name"></p>
        <p><input name="submit" type="submit" value="Отправить информацию"></p>
    
        
   <? else {
        die('Такой логин с паролем не найдены в базе данных. И даём ссылку на повторную авторизацию.');
    }   
        ?>
  </td>
      </tr>
    </table>      <cite><dfn>
    </dfn></cite></td>
  </tr>
</table>
</body>
</html>


а что это за ошибка?))))
Parse error: parse error, unexpected T_ELSE
0
75 / 75 / 13
Регистрация: 02.02.2012
Сообщений: 462
06.05.2012, 14:14
полностью скопируй ошибку, там номер строчки должен быть

Добавлено через 3 минуты
я тебе выше написал что сделать.
как минимум в первом скрипте у тебя не стоит сессион_старт
во вторых нах тебе и сессия и куки???!!!!!!!

Добавлено через 5 минут
напишу в третий раз
PHP
1
2
3
4
        $_SESSION['user_id'] = $row['id'];
        $id = $_SESSION['user_id'];
        
        $_COOKIE['user_id'] = $id;
это что за гавно?????
так вот не катит?
PHP
1
$_COOKIE['users_id'] = $row['id'];
Добавлено через 3 минуты
и я бы куки не использовал бы, ибо можно я могу через куки и иньекцию засунуть, и просто написать что то и твой скрипт будет считать что я авторизирован
ставишь сессию если проверка на логин и пароль гуд
$_SESSION['user_id'] = $row['id'];
и дальше работаешь только с сессией.
только не забудь в каждом скрипте где используешь сессию в начеле писать session_start

Добавлено через 1 минуту
забудь все что говорил попов и иди читай хорошие книжки.
а иначе будешь постоянно такую ахинею писать
1
0 / 0 / 0
Регистрация: 05.04.2012
Сообщений: 56
06.05.2012, 15:10  [ТС]
Я убрал все куки...и толку на странице zag_polzovatel.php пользователь не авторизоваться, данные представляются любому...
session работает пока работает скрипт.. при переходе на страницы по ссылкам вся авторизация проваливается....

Добавлено через 12 минут
Цитата Сообщение от BANKIR Посмотреть сообщение
Я убрал все куки...и толку на странице zag_polzovatel.php пользователь не авторизоваться, данные представляются любому...
session работает пока работает скрипт.. при переходе на страницы по ссылкам вся авторизация проваливается....
ОЙ ёой все таки работает))поспал все сделал)))спасибо за ценные советы и правильное руководство fireridlle 2й раз за сегодня выручаете и ставите на правильный путь
извините за несогласие и попытки что либо доказать((
убрал все куки проставил session_start и все закрутилось и обозначилось)))))ЕЕЕЕЕЕЕЕЕ
0
code code
 Аватар для Шутка
128 / 123 / 77
Регистрация: 11.10.2009
Сообщений: 375
07.05.2012, 01:15
Почитайте про область видимости кук
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
07.05.2012, 01:15
Помогаю со студенческими работами здесь

Почему запаздывает cookie?
Пользователь вводит свои данные в форме, обработка производится в index.php. В index.php: setcookie(&quot;em&quot;, $_POST); echo...

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

Почему не происходит запись cookie? (код внутри)
вот код php файла... &lt;? ...&lt;тут стоит только подключение к базе и запрос к ней, выводов никаких нет&gt;... if ($o == 1) { ...

Получить значение cookie
такая страничка для теста &lt;html&gt; &lt;head&gt; &lt;script type=&quot;text/javascript&quot; src=&quot;cookie.js&quot;&gt; &lt;/script&gt; &lt;/head&gt; &lt;body&gt; ...

Как получить значение Cookie
Добрый день! Как можно получить значение Cookie. Например: const cookieParser = require('cookie-parser'); ...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru