Параметры пхп в файле пхп.ини, и авторизация
у меня есть авторизация.
основанная на сессиях.
Id сессии передаються в куках,
но если параметр session.use_cookies (вроде так пишется) в пхп.ини отключен то куки не работают
тогда нужно передать id сессиии в урл,
так вот вопрос
как проверить в коде пхп включен ли этот параметр в пхп.ини
и взависимости от этого передавать данные либо в куке либо в урл.
и вообще как лучше их передавать, подскажите плз.
Помогите
как проверить в коде пхп включен ли этот параметр в пхп.ини
ini_get();
ini_get_all();
А вообще посмотри в мане раздел PHP Options из Function Reference.
то что надо!
у меня в авторизации, когда я вставлюю
в защищенный скрипт header("Location: index.php")
если не передан id сессиии.
выдает известный глюк, Headers already sent...
читал про этот глюк в факах но так и не получилось от него избавиться.
поэтому я стал использовать
яву скрипт
echo '<script>Window.location="index.php"</script>'
можно ли так делать?
да делать-то так можно, а вот этот "известный глюк" - не глюк, а особенности механизма протокола - причем, любого:) вначале - заголовки, потом содержимое документа. т.е. если ты что-то вывел в браузер, то не имеешь права посылать заголовок.
Да я знаю это. но что делать если никак не можеш
передвинуть header()выше первого отсылания.
например когда есть форма при нажатии submit закидываються данные в базу, а потом с помощью header() перекидывает на другую страницу.
так вот здесь полюбому есть вывод формы, до header
а если написать вместо header()
echo '<script>Window.location="index.php"</script>'
то при нажатии кнопки назад опять заполниться база
что делать?
что делать?
ob_start(), выводишь всё что надо и если хочешь ob_end_flush(), если не хочешь, не надо, php сам отправит.
при нажатии submit закидываються данные в базу, а потом с помощью header() перекидывает на другую страницу.
так вот здесь полюбому есть вывод формы, до header
Не очень понял, где здесь вывод?
ob_start(), выводишь всё что надо и если хочешь QUOTE]
C ob_start все здорово получилось.
но мне говорили что эта функция не безопасная.
(насколько я знаю есть еще параметр в пхп.ини который за это же отвечает, и он отключен по умолчанию)
как считаеш?
как считаеш?
output_buffering = 4096
это в 4.3.8 . В 4.3.7 было тоже, остальные не помню. Но я так понял, на буферизацию это не влияет:
ob_start();
$file=$_SERVER['DOCUMENT_ROOT'].'/'.$_GET['file'];
($h = fopen($file,'r')) || exit('can`t open file');
$str=fread($h, filesize($file));
fclose ($h);
echo $str;
header ('X-powered-by: this cool guy che');
?>
Выводил по паре сотен килобайт и нормально выводит header. Все настройки по умолчанию. Если тебя это смущает, устрой буферизацию сам- замени все echo $str и print ($str) на $res.=$str; В конце скрипта в $res имеешь буферизованный вывод.