Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Сессии
 
 автор: forma   (08.09.2007 в 16:29)   письмо автору
 
 

Первый скрипт:

<?php
session_start
();
$_SESSION['id'] = "2";
?>

Второй:

<?php
session_start
();
$author $_SESSION['id'];
echo 
$_SESSION['id'];
?>

Второй скрипт я показал не полностью, так как длинный. Но это все что я делаю с Сессиями во втором скрипте.

Я вхожу в первый скрипт, потом во второй(отображает 2), после обновления отоброжает 3... Почему?

   
 
 автор: Trianon   (08.09.2007 в 16:40)   письмо автору
 
   для: forma   (08.09.2007 в 16:29)
 

Чудес на свете не бвает.

Наверое где-то стоит $_SESSION['id'] = ...
Где ... - это некое выражение , в некий момент времени принимающее значение, равное тройке.
Ну либо еще где-то стоит $_SESSION['id']++;
и т.д.

   
 
 автор: forma   (08.09.2007 в 16:59)   письмо автору
 
   для: Trianon   (08.09.2007 в 16:40)
 

Неа, нет там $_SESSION['id'] = ... или чего то подобного.
Я пробовал в КОНЦЕ скрипта выводить сессию, и тоже самое. Сначала 2, потом после обновления три. Мало того, я пробовал после каждой строчки кода выводить сессию. Сначало выводило:
222222222222...
Потом:
333333333333...

   
 
 автор: sim5   (08.09.2007 в 17:08)   письмо автору
 
   для: forma   (08.09.2007 в 16:59)
 

У вас проблемы в чем-то другом, проверте так:

main.php

<?
session_start
(); 
$_SESSION['id'] = "2";
header ("location: main2.php");
?>


main2.php

<?
session_start
(); 
$author $_SESSION['id']; 
echo 
$_SESSION['id'];
?>


Запускаем main.php - результат всегда будет 2.

   
 
 автор: forma   (08.09.2007 в 17:42)   письмо автору
 
   для: sim5   (08.09.2007 в 17:08)
 

ухты, так все нормально...
Спасибо =)

   
 
 автор: bronenos   (08.09.2007 в 17:10)   письмо автору
 
   для: forma   (08.09.2007 в 16:59)
 

register_globals включены? если да - то осторожнее с переменной $id

   
 
 автор: Trianon   (08.09.2007 в 17:17)   письмо автору
 
   для: bronenos   (08.09.2007 в 17:10)
 

>register_globals включены? если да - то осторожнее с переменной $id

А я бы написал прямее.

register_globals включены? если да - выключите.
Если нет - тоже выключите. На случай всякий.

   
 
 автор: forma   (08.09.2007 в 17:27)   письмо автору
 
   для: Trianon   (08.09.2007 в 17:17)
 

Они вроде по умолчанию выключены, с какой то версии...

   
 
 автор: Trianon   (08.09.2007 в 17:34)   письмо автору
 
   для: forma   (08.09.2007 в 17:27)
 

Дело не в том, что они выключены по-умолчанию.
Они начиная с какой-то версии вообще из движка удалены, так что и не включить.

Дело в том что начиная с php 4 и выше они НЕ НУЖНЫ.
Движков php3 не осталось в принципе.
А куча дерьмового кода, куча устаревшей учебной литературы, бешеный поток вопросов, куча ошибок, наконец, провоцируемые этой дрянью, до сих пор ползут изо всех щелей. И ползти будут еще долго.

   
 
 автор: sim5   (08.09.2007 в 17:21)   письмо автору
 
   для: bronenos   (08.09.2007 в 17:10)
 

register_globals на это никак не повлияет.

   
 
 автор: bronenos   (08.09.2007 в 17:45)   письмо автору
 
   для: sim5   (08.09.2007 в 17:21)
 

это почему? у меня когда-то были траблы именно по такой теме
в начале скрипта ID посетителя сайта 2, а конце - уже 17

   
 
 автор: sim5   (08.09.2007 в 17:48)   письмо автору
 
   для: bronenos   (08.09.2007 в 17:45)
 

Мой сервер покажет в обеих случаях 2, и почему он должен показать иное?

   
 
 автор: Trianon   (08.09.2007 в 17:48)   письмо автору
 
   для: bronenos   (08.09.2007 в 17:45)
 

Вообще на самом деле странно.
Механизм регистр глобалс полностью отрабатывает на старте, когда сессии еще скриптом не включены.
Может у Вас из-за чего другого траблы были?

   
 
 автор: forma   (08.09.2007 в 20:28)   письмо автору
 
   для: forma   (08.09.2007 в 16:29)
 

Мдяяя, все работало нормально. Я добавил строку кода:

header ("location: topic.php?id=".$id);

Что бы избежать дублирование сообщений(пишу форум).

И теперь после первого обновления стает 4 а не 3(как до этого)...

   
 
 автор: Trianon   (08.09.2007 в 22:05)   письмо автору
 
   для: forma   (08.09.2007 в 20:28)
 

чему равно $id - здесь не видно.

   
 
 автор: bronenos   (08.09.2007 в 23:21)   письмо автору
 
   для: Trianon   (08.09.2007 в 22:05)
 

но оно пересекается с одноименной переменной сессии, если мой уставший моск еще работает

   
 
 автор: Trianon   (08.09.2007 в 23:39)   письмо автору
 
   для: bronenos   (08.09.2007 в 23:21)
 

Если эта переменная явно задана - пусть пересекается с чем угодно.
Если нет - это в любом случае ошибка.

   
 
 автор: bronenos   (08.09.2007 в 23:51)   письмо автору
 
   для: Trianon   (08.09.2007 в 23:39)
 

не, изменение этой переменной может повлечь за собой изменение переменной сессии

   
 
 автор: Trianon   (09.09.2007 в 00:06)   письмо автору
 
   для: bronenos   (08.09.2007 в 23:51)
 

После session_register чтоли?
Так оно ничем не лучше r.g.

   
 
 автор: sim5   (09.09.2007 в 03:31)   письмо автору
 
   для: bronenos   (08.09.2007 в 23:21)
 

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

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования