|
|
|
| Помогите разобраться почему кики не работают выдают ошибку связанную с загаловками.
Что здесь не правильно и как это можно исправить
<?php
include "util/null.php";
require_once("tech/config.php");
$name = $_POST['name'];
$pswrd = $_POST['pswrd'];
$query = "SELECT * FROM name
WHERE name = '$name'";
$ath = mysql_query($query);
if($ath)
$auth = mysql_fetch_array($ath);
setallcookie($auth['name'], $auth['pswrd'], $auth['id_name']);
// Переходим обратно
echo "<HTML><HEAD>
<META HTTP-EQUIV='Refresh' CONTENT='0; URL=panel.htm'>
</HEAD></HTML>";
?>
|
файл null.php
function setallcookie($name, $pswrd, $id)
{
$tmppos = strrpos($_SERVER['PHP_SELF'],"/") + 1;
$path = substr($_SERVER['PHP_SELF'], 0, $tmppos);
setcookie("name", $name, time() + 3600*24*2, $path);
setcookie("password", $pswrd, time() + 3600*24*2, $path);
setcookie("id", $id, time() + 3600*24*2, $path);
}
|
| |
|
|
|
|
|
|
|
для: technic611
(14.01.2006 в 05:48)
| | Как именно ошибка выглядит? | |
|
|
|
|
|
|
|
для: Shorr Kan
(14.01.2006 в 06:01)
| | скрин ошибки в приложенном файле | |
|
|
|
|
|
|
|
для: technic611
(14.01.2006 в 05:48)
| | Проверьте нет ли вывода до установки куков, возможно перевод строки/пробел перед <? | |
|
|
|
|
|
|
|
для: isset
(14.01.2006 в 06:04)
| | Еще вероятнее, что он (они) есть в null.php или config.php . | |
|
|
|
|
|
|
|
для: Shorr Kan
(14.01.2006 в 06:07)
| | Вот полностью файл null.php
<?php
function links($msg)
{
echo "<div align='center'>
<table height='82' cellPadding='0' width='509' border='0' style='border: 1px solid #6699FF; padding-left: 4px; padding-right: 4px; padding-top: 1px; padding-bottom: 1px' cellspacing='0'>
<tr>
<td width='505' height='76'>
<p align='center'><b>
<font face='Tahoma' size='2' color='#FF0000'>$msg</font></b></td>
</tr>
</table>
</div>";
exit();
}
function setallcookie($name, $pswrd, $id)
{
$tmppos = strrpos($_SERVER['PHP_SELF'],"/") + 1;
$path = substr($_SERVER['PHP_SELF'], 0, $tmppos);
setcookie("name", $name, time() + 3600*24*2, $path);
setcookie("password", $pswrd, time() + 3600*24*2, $path);
setcookie("id", $id, time() + 3600*24*2, $path);
}
?>
|
| |
|
|
|
|
|
|
|
для: technic611
(14.01.2006 в 06:31)
| | У вас в файле counter/index.php на 29 и 30 строке - где-то что-то является нулём и пытается на что-то делиться.. Или наоборот - что-то хочет поделиться на ноль. По крайней мере, это наиболее вероятная причина. Это не проблема с заголовками... и совсем не проблема с выводом на экран до использования заголовков. | |
|
|
|
|
|
|
|
для: Shorr Kan
(14.01.2006 в 07:02)
| | Не тот скрин выложил, тут другой | |
|
|
|
|
|
|
|
для: technic611
(14.01.2006 в 07:42)
| | Да, тогда определенно где-то есть вывод в браузер. Где-то повыше. Попробуйте его найти... Или в php.ini включите output_buffering.
До функции header или setcookie - не должно быть ни единого пробела, ни единой точки/буквы/цифры, которые видны в браузере. То есть, ВНЕ <?...?> или что-то, выводимое при помощи print или echo ... Или какие-нибудь системные собщения об ошибках - всё это мешает последующему использованию заголовков. | |
|
|
|
|
|
|
|
для: Shorr Kan
(14.01.2006 в 08:16)
| | Спасибо все заработало, после того как я включил output_buffering. А для чего нужна эта функция? | |
|
|
|
|
|
|
|
для: technic611
(14.01.2006 в 10:20)
| | Эта функция сначала помещает весь вывод в буффер и отправляет его лишь после того, как скрипт полностью отработал, это позволяет отослать заголовки, работать с cookie и вызывать session_start(), даже если перед ними что-то выводится в окно браузера. | |
|
|
|