очень огорчает ini_set

LeeN

Новичок
очень огорчает ini_set

Спотыкался каждый день, копался, как прилежный чайник, находил ответы, дальше спотыкался ... но наконец эта долбанная ini_set меня добила.

Пишу

PHP:
<?php

   ini_set('session.use_trans_sid', 1);

   echo ini_get('session.use_trans_sid');

?>
отвечает: 0.

И вообще ini_set ничего в php.ini не меняет. И что делать?!
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
echo ini_get('session.use_trans_sid');

echo ini_set('session.use_trans_sid', 1);

echo ini_get('session.use_trans_sid');

Вывод:

001
 

DYPA

Настоящая dypa (c)
проверить в php.ini disable_functions на наличие ini_get
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
Вероятно он все же имел в виду текущий конфиг, а не сам файл конфигурации) Я надеюсь...
 

LeeN

Новичок
Автор оригинала: c0dex
Вероятно он все же имел в виду текущий конфиг, а не сам файл конфигурации) Я надеюсь...
Я пытаюсь изменить директиву session.use_trans_sid с 0 на 1. Чтобы авторизовать юзера сесиями. Когда я смотрю phpinfo (ну, штука, которую я вызываю кодом
PHP:
<?php

phpinfo(); 

?>)
там написано "off", как вроде и должно быть по умолчанию. "off" написано и для Local Value и для Master Value (правда я не знаю что это за Local и Master Value).

Я пытаюсь использовать эту ini_set. Но значение не меняется. И ничего, что я пробовал не меняется с помощью ini_set.

Когда я пишу
PHP:
<?php

	echo ini_get('session.use_trans_sid');
    	ini_set('session.use_trans_sid', 1);
	echo ini_get('session.use_trans_sid');
?>
вывод 00

Когда добавляю echo, как сказано у c0dex
PHP:
<?php

	echo ini_get('session.use_trans_sid');
    echo ini_set('session.use_trans_sid', 1);
	echo ini_get('session.use_trans_sid');
?>
вывод почему-то тоже 00
 

tony2001

TeaM PHPClub
display_errors = On
error_reporting = E_ALL

я думаю, что ты получаешь вот это:
PHP Warning: A session is active. You cannot change the session module's ini settings at this time.

а 00 там именно потому, что ini_set() возвращает false.
чтобы проверить это, достаточно использовать var_dump() вместо echo/print/print_r.
 

LeeN

Новичок
Автор оригинала: DYPA
проверить в php.ini disable_functions на наличие ini_get
Напротив disable_functions стоят загадочные leak и symlink.
ini_get там нет.

-~{}~ 17.06.10 21:00:

tony2001, я чайник. Мне приходится догадываться, о чем ты пишешь, но надеюсь я все же там смотрю, где надо. В таблице phpinfo() стоит off для display_errors и no value для error_reporting. Изменить их я не могу.

Видимо из-за этих установок Warning-ов я не получаю никаких.

И настораживает, что раз ini_set() возвращает false, то вывод должен быть 000 а у меня 00.

var_dump() - это я еще пока не понял чё такое
 

dimagolov

Новичок
думай головй и читай мануал, пока не поймешь, что сказал тебе tony2001

п.с. пойми, что ini_set устанавливает конфигурационные параметры только для ТЕКУЩЕГО ВЫЗОВА пхп скрипта. на другой вызов другого скрипта это никак не влияет.

-~{}~ 17.06.10 14:27:

п.п.с. прочитай http://phpfaq.ru/debug, там важное для тебя, в том числе и из того, что говорил tony2001 подробно расписано.

-~{}~ 17.06.10 14:30:

LeeN, а зачем тебе вообще понадобилось менять session.use_trans_sid? он тебе с большой долей вероятности вообще не нужен.

http://phpfaq.ru/session
 

LeeN

Новичок
да, если использовать var_dump()
PHP:
<?php
var_dump(ini_set('session.use_trans_sid', 1));
?>
то получаем
bool(false)

dimagolov, session.use_trans_sid мне нужен на случай, если у юзера отключены куки. Когда я отключаю у себя куки то учебный пример подсчета обновлений страницы
PHP:
<?php
session_start(); 
if (!isset($_SESSION['counter'])) $_SESSION['counter']=0;
echo "Вы обновили эту страницу ".$_SESSION['counter']++." раз. ";
echo "<br><a href=".$_SERVER['PHP_SELF'].">обновить"; 
?>
перестает работать. На этом моё творчество пока и остановилось. Я так понимаю именно потому, что у меня session.use_trans_sid = 0
 

Вурдалак

Продвинутый новичок
При программировании под WAP, который обсуждают в соседнем треде, без sid в URL не обойтись.
 

Духовность™

Продвинутый новичок
Вурдалак
а никто не говорит про ВАП.

Я вообще сторонник того, что бы писать жестко с расчетом на включенные куки и JS, ситуации, когда вебмастера ловят гипотетических сам-себе-злобных-буратин мне кажется излишней.

Я прав, господа ученые?
 

Ralph

Дикий столяр
Автор оригинала: Вурдалак
При программировании под WAP, который обсуждают в соседнем треде, без sid в URL не обойтись.
С каких это пор ? Мой второй телефон Motorola C350 2003 года рождения уже уверенно держал куки,более старые модели возможно тоже-не знаю,поэтому точно не скажу,UCWEB и Opera Mini тоже поддерживают ...
 

Вурдалак

Продвинутый новичок
Автор оригинала: Ralph
С каких это пор ? Мой второй телефон Motorola C350 2003 года рождения уже уверенно держал куки,более старые модели возможно тоже-не знаю,поэтому точно не скажу,UCWEB и Opera Mini тоже поддерживают ...
— я узнаю это из жалоб пользователей. Я давно перестал удивляться таким вещам, т.к., например, я один раз встретил мобильник с браузером, не передающим значения hidden-полей.

-~{}~ 18.06.10 13:53:

Кстати, больше жалуются на cookies, устанавливаемые на несколько доменов, т.е.
PHP:
setcookie('name', $value, time() + 3600, '/', '.example.com');
не работает.
 

LeeN

Новичок
Эта долбанная ini_set вдруг надумала слегка поработать. А именно:
PHP:
<?php
  ini_set('display_errors',1);
  echo ini_get('display_errors');
?>
наконец-то, к моей великой радости, стало выводить единицу.

Тем не менее
PHP:
<?php

  ini_set('display_errors',1);
  error_reporting(E_ALL);

  ini_set('session.use_trans_sid', 1);
  echo ini_get('session.use_trans_sid');
	
?>
дает 0, и что очень жаль - нет никаких Warning-ов ни в браузере ни в log-е на сервере.

При том, что вообще ошибки показываются, например деление на ноль

PHP:
<?php

  ini_set('display_errors',1);
  error_reporting(E_ALL);

  $a0=0;
  $a10=10;

  $a10=$a10/$a0;
	
?>
показывает в браузере "Warning: Division by zero ...".
 

mity

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

Если же это Ваша система то возьмите файлы конфигрурацию php.ini, httpd.conf идущие по умолчанию. Или лучше полностью переустановите апач и php.
 
Сверху