Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> проблемы с заголовками, различия под win и уникс? 
:(
    Опции темы
dstorm81
Дата 18.4.2007, 11:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


бездельник
***


Профиль
Группа: Завсегдатай
Сообщений: 1178
Регистрация: 18.1.2006
Где: (16RU)

Репутация: 1
Всего: 39



добрый день ситуёвина такая
есть небольшой блоговый движок (работающий с xml файлами)
дома под виндой, он работает великолепно
когда же заливаю на сервак пшет что проблема с заголовками (то ест не может их модифицировать так как они уже отправлены)
и указывает на 
    header('Location:' .$_SERVER['HTTP_REFERER']);
    exit;

еще хостер халявный он вставляет скрипт с гугла, какой-то счетчик -анализатор

собственно в чем проблема?
в том что я под виндой все тестировал или из=за хостера
и если из=за оси какие бывают траблы еще, с назначением прав я уже сталкивался


--------------------
на форуме с 8.12.2002 (http://forum.vingrad.ru/index.php?act=ST&f=10&t=4874&st=0#)

PM   Вверх
mishaSL
Дата 18.4.2007, 11:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1046
Регистрация: 10.1.2007
Где: Санкт-Петербург

Репутация: 19
Всего: 54



Цитата(dstorm81 @  18.4.2007,  11:47 Найти цитируемый пост)
когда же заливаю на сервак пшет что проблема с заголовками (то ест не может их модифицировать так как они уже отправлены)

вызов функции header должен производиться до вывода чего-либо будь то пробел или html-код. Если у вас на хостинге в начало скрипта вставляется какой-то код, то советую сменить хостера.


--------------------
Лучший способ научиться программированию - это посмотреть как это делают другие...
PM MAIL   Вверх
dstorm81
Дата 18.4.2007, 11:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


бездельник
***


Профиль
Группа: Завсегдатай
Сообщений: 1178
Регистрация: 18.1.2006
Где: (16RU)

Репутация: 1
Всего: 39



скрипт вставляется после body
а не знает как можноно у себя на сервер создать такую же штуку, вставку баннера,
что бы бороться уже локально с такой бякой?



Это сообщение отредактировал(а) dstorm81 - 18.4.2007, 12:00


--------------------
на форуме с 8.12.2002 (http://forum.vingrad.ru/index.php?act=ST&f=10&t=4874&st=0#)

PM   Вверх
PARROT
Дата 18.4.2007, 12:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2339
Регистрация: 5.1.2005
Где: Спб-ЦарьГрад

Репутация: 23
Всего: 50



dstorm81, ошибки в студию.

Добавлено через 32 секунды
На вопрос как убрать банер, Вам ответит Яндекс.


--------------------
Безумный утешается прошедшим, слабоумный - будущим, умный - настоящим!
PM MAIL   Вверх
CyClon
Дата 18.4.2007, 16:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 838
Регистрация: 3.12.2005

Репутация: 3
Всего: 4



header обязательно вызывай до вывода чего-нибудь, как уже написали. Это без вариантов, после BODY отправда заголовков не пойдет.

Если хостер вставляет баннеры сам на страницу - попробуй все равно, мож прокатит.


--------------------
user posted image
PM   Вверх
dstorm81
Дата 19.4.2007, 07:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


бездельник
***


Профиль
Группа: Завсегдатай
Сообщений: 1178
Регистрация: 18.1.2006
Где: (16RU)

Репутация: 1
Всего: 39



индексный код
Код

<?php

header("Content-type:text/html;charset=utf-8");
//ob_start("ob_gzhandler");
list($msec,$sec)=explode(chr(32),microtime());
$beginTime=$sec+$msec;


$dir='themes/';
$world_1=array('[*','*]','[/*','*/]');
$world_2=array('<','>','</','/>');
$my_echo='';

if(isset($_POST['mess2del']) && count($_POST['delMes'])>0)//удаляем записи из темы блога
    {
    $doc=DOMDocument::load($dir.$_POST['where'].'.xml');
    $pollAr=array();
    $docAllMes=$doc->getElementsByTagName('say');
    $docNew=new DOMDocument('1.0','utf-8');
    $theme=$docNew->appendChild($docNew->createElement('theme'));//создаем root theme
            $theme->appendChild($docNew->importNode($doc->getElementsByTagName('post')->item(0),true));//insert POST
    $nddl2ComZone=$theme->appendChild($docNew->createElement('comments'));//add comments section
    //здесь кажись индийский код
    for($i=0;$i<$docAllMes->length;$i++){$pollAr[$i]='no';}
    for($m=0;$m<count($_POST['delMes']);$m++){$pollAr[$_POST['delMes'][$m]]='yes';}
    for($r=0;$r<$docAllMes->length;$r++)
        {
        if($pollAr[$r]=='no')
            {$nddl2ComZone->appendChild($docNew->importNode($docAllMes->item($r),true));}
        }
    $docNew->save($dir.$_POST['where'].'.xml');
    header('Location:' .$_SERVER['HTTP_REFERER']);
    exit;
}

if(isset($_POST['mess2sub']) && is_file($dir.$_POST['where'].'.xml'))//пишем сообщение в тему блога
{
//на имена содержащие Nazi не обращать внимание: это я про заказчика
    $infoNazi=$_SERVER['REMOTE_ADDR'].':'.gmdate("D, d M Y H:i:s");
    $nikNazi=htmlspecialchars($_POST['name2com']);
    if(strlen($nikNazi)>30){$nikNazi=substr($nikNazi,0,30);}
    if(isset($_COOKIE['adminControl']))
        {$nikNazi='[*span*]'.$nikNazi.'[*/span*]';}
    $mesNazi=str_replace("\n","[*br*/]",htmlspecialchars($_POST['mess2com']));
    if(strlen($mesNazi)>5000){$mesNazi=substr($mesNazi,0,5000);}
    $doc=DOMDocument::load($dir.$_POST['where'].'.xml');
    $root=$doc->documentElement;
    $hndl2Com=$root->getElementsByTagName('comments')->item(0);
    $say=$hndl2Com->appendChild($doc->createElement('say'));
    $say->appendChild($doc->createElement('info'))->appendChild($doc->createTextNode($infoNazi));
    $say->appendChild($doc->createElement('whosay'))->appendChild($doc->createTextNode($nikNazi));
    $say->appendChild($doc->createElement('whatsay'))->appendChild($doc->createTextNode($mesNazi));
    $doc->save($dir.$_POST['where'].'.xml');//посмотреть защиту
    header('Location:' .$_SERVER['HTTP_REFERER']);
    exit;
}


if(file_exists($dir.basename($_GET['id']).'.xml'))//отображаем конкретную тему блога и если админ
//переделать на сессию
    {
    $num_theme=$_GET['id'];
    $doc=DOMDocument::load($dir.$_GET['id'].'.xml');
    $page_title=$doc->getElementsByTagName('title')->item(0)->nodeValue;
    $my_echo.='<div class="blog_textUNDprewiev">'.str_replace($world_1,$world_2,$doc->getElementsByTagName('text')->item(0)->nodeValue).'</div>';
    $my_echo.='<div class="all_comment">Комментарии</div>';
    if(isset($_COOKIE['adminControl']))
        {
        $my_echo.='<form action="'.$_SERVER['SCRIPT_NAME'].'" method="post"><input type="hidden" name="where"  value="'.@$num_theme.'"/><br />';
        }
    for($i=0;$i<$doc->getElementsByTagName('say')->length;$i++)
        {
        $my_echo.='<div class="answer">';
        if(isset($_COOKIE['adminControl']))
            {
            $my_echo.='<div class="si"><input type="checkbox" name="delMes[]" value="'.$i.'" />'.$doc->getElementsByTagName('say')->item($i)->getElementsByTagName('info')->item(0)->nodeValue.'</div>';
            }
        $my_echo.='<div class="whosay">'.str_replace($world_1,$world_2,$doc->getElementsByTagName('say')->item($i)->getElementsByTagName('whosay')->item(0)->nodeValue).'</div>';
        $my_echo.='<div class="whatsay">'.str_replace("[*br*/]","<br />",$doc->getElementsByTagName('say')->item($i)->getElementsByTagName('whatsay')->item(0)->nodeValue).'</div></div>';
        }
    if(isset($_COOKIE['adminControl']))
        {
        $my_echo.='<input type="submit" name="mess2del" value="Удалить" /></form>';
        }
    $my_echo.='<div class="add_comment">Добавить комментарий</div>';
    $my_echo.='<form action="'.$_SERVER['SCRIPT_NAME'].'" method="post">';
    $my_echo.='<div class="warning">Важно: длина ника и сообщения не должна превышать 15 и 2500 символов соответственно.</div>';
    $my_echo.='Ник <input type="text" name="name2com" value="Ваше имя" maxlength="15"/><br />';
    $my_echo.='<input type="hidden" name="where"  value="'.@$num_theme.'"/><br />';
    $my_echo.='Комментарий<br /><textarea rows="10" cols="40" name="mess2com" ></textarea>';
    $my_echo.='<input type="submit" name="mess2sub" value="Отправить" /></form>';
    }
else{//выводим все темы блога
    $files=scandir($dir,1);
    for($i=0;$i<count(scandir($dir))-2;$i++)
        {
        $page_title='всё';
        $doc=DOMDocument::load($dir.$files[$i]);
        $my_echo.='<div class="blog_textUNDprewiev">';
        $my_echo.='<a href="'.$_SERVER['SCRIPT_NAME'].'?id='.str_replace(".xml","",$files[$i]).'">'.$doc->getElementsByTagName('title')->item(0)->nodeValue.'</a><br />';
        $my_echo.=str_replace($world_1,$world_2,substr($doc->getElementsByTagName('text')->item(0)->nodeValue,0,300)).'...<br />';
        $my_echo.='комментариев:'.$doc->getElementsByTagName('say')->length;
        $my_echo.='</div>';
        }
    }
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Блог <?php echo($page_title) ?></title>
</head>
<body>
<div class="header">
<div class="myInfo"></div>
</div>
<div class="boder">
<?php if(isset($_COOKIE['adminControl'])){echo '<a href="admin.php" class="whosay">в панель управления</a>';};?>
<?php echo $my_echo; ?>
</div>
<div class="footer">
<?php
list($msec,$sec)=explode(chr(32),microtime());
$endTime=$sec+$msec;
echo "Сборка:".round($endTime-$beginTime,4). "сек";
?>
</div>
</body>
</html>


структура xml базы
Код

<?xml version="1.0" encoding="utf-8"?>
<theme>
<post>
<title>проверка</title>
<text>
здесь текстк здесь текстк здесь текстк здесь текстк здесь текстк здесь текстк
</text>
</post>
<comments>
</comments>
</theme>



--------------------
на форуме с 8.12.2002 (http://forum.vingrad.ru/index.php?act=ST&f=10&t=4874&st=0#)

PM   Вверх
-=Ustas=-
Дата 19.4.2007, 09:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ustix IT Group
****


Профиль
Группа: Участник Клуба
Сообщений: 2222
Регистрация: 21.1.2005
Где: Краснодар

Репутация: 32
Всего: 69



dstorm81, меняй хостера, либо напиши им чтоб они перед своими баннерами вызывали ob_start() smile


--------------------
В искаженном мире все догмы одинаково произвольны, включая догму о произвольности догм.
-----
PM WWW ICQ Skype   Вверх
dstorm81
Дата 19.4.2007, 09:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


бездельник
***


Профиль
Группа: Завсегдатай
Сообщений: 1178
Регистрация: 18.1.2006
Где: (16RU)

Репутация: 1
Всего: 39



2 Ustas
а что мой скрипт рабочий на все 100% ?
это из=за вставки баннеров указывается ошибка на header:location ?


--------------------
на форуме с 8.12.2002 (http://forum.vingrad.ru/index.php?act=ST&f=10&t=4874&st=0#)

PM   Вверх
-=Ustas=-
Дата 19.4.2007, 10:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ustix IT Group
****


Профиль
Группа: Участник Клуба
Сообщений: 2222
Регистрация: 21.1.2005
Где: Краснодар

Репутация: 32
Всего: 69



Цитата(dstorm81 @  19.4.2007,  09:31 Найти цитируемый пост)
это из=за вставки баннеров указывается ошибка на header:location ? 

Да, именно.
Можешь еще попробовать вместо header-ов вставить
Код

echo '<script language="JavaScript">window.location.href = '.$_SERVER['HTTP_REFERER'].';</script>';



--------------------
В искаженном мире все догмы одинаково произвольны, включая догму о произвольности догм.
-----
PM WWW ICQ Skype   Вверх
dstorm81
Дата 19.4.2007, 11:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


бездельник
***


Профиль
Группа: Завсегдатай
Сообщений: 1178
Регистрация: 18.1.2006
Где: (16RU)

Репутация: 1
Всего: 39



echo '<script language="JavaScript">window.location.href = '.$_SERVER['HTTP_REFERER'].';</script>'
корошо посмотрю.

 ! 
PARROT
Следим за выражениями.


Это сообщение отредактировал(а) PARROT - 19.4.2007, 13:39


--------------------
на форуме с 8.12.2002 (http://forum.vingrad.ru/index.php?act=ST&f=10&t=4874&st=0#)

PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0507 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.