Javascript-форум (https://javascript.ru/forum/)
-   Серверные языки и технологии (https://javascript.ru/forum/server/)
-   -   Работа с сессиями (https://javascript.ru/forum/server/29914-rabota-s-sessiyami.html)

kilogram 16.07.2012 21:54

Работа с сессиями
 
<?php ## Пример работы с сессиями, 
session_start();
// Если на сайт только-только зашли, обнуляем счетчик. 
if (!isset($_SESSION['count'])) $_SESSION['count'] = 0; 
// Увеличиваем счетчик в сессии. 
$_SESSION['count'] = $_SESSION['count'] + 1; 
?> 
<h2>Счетчик</h2> 
В текущей сессии работы с браузером Вы открыли эту страницу 
<?=$_SESSION['count']?> раз(a).<br> 
Закройте браузер, чтобы обнулить счетчик.<br> 
<a href="<?=$_SERVER['SCRIPT_NAME']?>" target='_blank' ">Oткрыть дочернее окно 
браузера </а>.

Читаю Котова, вот пример, не производится подсчет почему то, а при нажатии на ссылку: "Открыть дочернее окно браузера", получаю такое:

Код:

Forbidden

You don't have permission to access /< on this server.

Apache/2.2.19 (Win32) PHP/5.3.6 Server at test.ru Port 80


devote 16.07.2012 22:38

вместо:
$_SERVER['SCRIPT_NAME']

напишите:
$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']

kilogram 17.07.2012 01:39

Написал так, тоже самое.
Код:

<?php ## Пример работы с сессиями,
session_start();
// Если на сайт только-только зашли, обнуляем счетчик.
if (!isset($_SESSION['count'])) $_SESSION['count'] = 0;
// Увеличиваем счетчик в сессии.
$_SESSION['count'] = $_SESSION['count'] + 1;
?>
<h2>Счетчик</h2>
В текущей сессии работы с браузером Вы открыли эту страницу
<?=$_SESSION['count']?> раз(a).<br>
Закройте браузер, чтобы обнулить счетчик.<br>
<a href="<?=$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']?>" target='_blank' ">Oткрыть дочернее окно
браузера </а>.


kilogram 17.07.2012 02:10

Я так понял не работает short_open_tag. В апаче такие настройки:
Код:

<Directory />
    Options FollowSymLinks
    AllowOverride all
    Order deny,allow
    Deny from all
    Satisfy all
</Directory>

DirectoryIndex index.php index.html index.htm

В пхп.ини раскоментированный и все равно не пашет.
Код:

short_open_tag On
Эта конструкция не срабатывает:
Код:

<?= ....?>

devote 17.07.2012 02:29

Цитата:

Сообщение от kilogram
Я так понял не работает short_open_tag. В апаче такие настройки:

это не должно вызывать ошибку:
Цитата:

Сообщение от kilogram
You don't have permission to access /< on this server.

Смотрите что-то другое. У меня ваш код идеально работает.. возможно вы просто делаете что-то не так.

micscr 17.07.2012 19:08

kilogram, апач перезагружал после изменений php.ini ?

kilogram 19.07.2012 20:45

Да, перезагружал, все равно не пашет.

kilogram 19.07.2012 23:12



var_dump($_SERVER['SCRIPT_NAME'] );


выдает такое:
string(10) "/index.php"

short_open_tag = On


в конфиге апача такие настройки

<Directory />
    Options FollowSymLinks
    AllowOverride all
    Order deny,allow
    Allow from all
    Satisfy all
</Directory>


Ничего не работает, выдает:
Forbidden

You don't have permission to access /< on this server.

Apache/2.2.19 (Win32) PHP/5.3.6 Server at test.ru Port 80


HELP! HELP! ПОМОГИТЕ! НЕ ПАШЕТ НИЧЕГО!

devote 20.07.2012 00:28

Цитата:

Сообщение от kilogram
HELP! HELP! ПОМОГИТЕ! НЕ ПАШЕТ НИЧЕГО!

четко и ясно написано же:
Цитата:

Сообщение от kilogram
You don't have permission to access /< on this server.

тоесть вы пытаетесь перейти по ссылки вида: "http://domen/<" то-есть знак "<" вам и выдает такое, удалите этот знак там где он подставляется и проблема решится.

kilogram 20.07.2012 23:10

Вот код:
Код:

<?php ## Пример работы с сессиями,
var_dump($_SERVER['SCRIPT_NAME'] );
session_start();
// Если на сайт только-только зашли, обнуляем счетчик.
if (!isset($_SESSION['count'])) $_SESSION['count'] = 0;
// Увеличиваем счетчик в сессии.
$_SESSION['count'] = $_SESSION['count'] + 1;
?>
<h2>Счетчик</h2>
В текущей сессии работы с браузером Вы открыли эту страницу
<?=$_SESSION['count']?> раз(a).<br>
Закройте браузер, чтобы обнулить счетчик.<br>
<a href="<?='http://google.ru'?>" target='_blank' ">Oткрыть дочернее окно
браузера </а>.

Там вроде все верно, где его убирать-то?


Часовой пояс GMT +3, время: 21:39.