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

Форум PHP

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

 

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

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

тема: Division by zero
 
 автор: technic611   (14.01.2006 в 05:48)   письмо автору
 
 

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

  
<?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);
}

   
 
 автор: Shorr Kan   (14.01.2006 в 06:01)   письмо автору
 
   для: technic611   (14.01.2006 в 05:48)
 

Как именно ошибка выглядит?

   
 
 автор: technic611   (14.01.2006 в 06:29)   письмо автору
 
   для: Shorr Kan   (14.01.2006 в 06:01)
 

скрин ошибки в приложенном файле

   
 
 автор: isset   (14.01.2006 в 06:04)   письмо автору
 
   для: technic611   (14.01.2006 в 05:48)
 

Проверьте нет ли вывода до установки куков, возможно перевод строки/пробел перед <?

   
 
 автор: Shorr Kan   (14.01.2006 в 06:07)   письмо автору
 
   для: isset   (14.01.2006 в 06:04)
 

Еще вероятнее, что он (они) есть в null.php или config.php .

   
 
 автор: technic611   (14.01.2006 в 06:31)   письмо автору
 
   для: 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);
}

?> 

   
 
 автор: Shorr Kan   (14.01.2006 в 07:02)   письмо автору
 
   для: technic611   (14.01.2006 в 06:31)
 

У вас в файле counter/index.php на 29 и 30 строке - где-то что-то является нулём и пытается на что-то делиться.. Или наоборот - что-то хочет поделиться на ноль. По крайней мере, это наиболее вероятная причина. Это не проблема с заголовками... и совсем не проблема с выводом на экран до использования заголовков.

   
 
 автор: technic611   (14.01.2006 в 07:42)   письмо автору
 
   для: Shorr Kan   (14.01.2006 в 07:02)
 

Не тот скрин выложил, тут другой

   
 
 автор: Shorr Kan   (14.01.2006 в 08:16)   письмо автору
 
   для: technic611   (14.01.2006 в 07:42)
 

Да, тогда определенно где-то есть вывод в браузер. Где-то повыше. Попробуйте его найти... Или в php.ini включите output_buffering.

До функции header или setcookie - не должно быть ни единого пробела, ни единой точки/буквы/цифры, которые видны в браузере. То есть, ВНЕ <?...?> или что-то, выводимое при помощи print или echo ... Или какие-нибудь системные собщения об ошибках - всё это мешает последующему использованию заголовков.

   
 
 автор: technic611   (14.01.2006 в 10:20)   письмо автору
 
   для: Shorr Kan   (14.01.2006 в 08:16)
 

Спасибо все заработало, после того как я включил output_buffering. А для чего нужна эта функция?

   
 
 автор: cheops   (14.01.2006 в 13:55)   письмо автору
 
   для: technic611   (14.01.2006 в 10:20)
 

Эта функция сначала помещает весь вывод в буффер и отправляет его лишь после того, как скрипт полностью отработал, это позволяет отослать заголовки, работать с cookie и вызывать session_start(), даже если перед ними что-то выводится в окно браузера.

   
Rambler's Top100
вверх

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