Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailemVyřešeno Warning: Cannot modify header information

Ahoj,
přestěhoval jsem hosting a na foru (miniBB) mi to po odeslání příspěvku vyhodí hlášku

Warning: Cannot modify header information - headers already sent by (output started at /domains1/lt622300/public/www/forum/post.php:8) in /domains1/lt622300/public/www/forum/index.php on line 213

Na starém hostingu to fungovalo nezměněné.
Došel jsem k názoru, že to dělá odesílání na ono post.php. Dá se to nějak spravit?
Když jsem tam nahrál úplně orig verzi posledního miniBB, neodeslalo se to vůbec.

Nešlo by něco udělat s cokies? KLdyž jsem je dnes ráno vymazal, jednou se to odeslalo dobře (podruhé už ne).

Předmět Autor Datum
Máš správně nastavena práva pro soubory? Nezapisuje to fórum něco do nějakého souboru?
Jan Fiala 18.05.2007 09:42
Jan Fiala
Já je myslím nastavoval na cmod 777, ale jeste radeji zkontroluji, jestli je to vsude.
Kráťa 18.05.2007 10:09
Kráťa
v jednom adresáři to u všech nebylo, ale stejně to nepomohlo...
Kráťa 18.05.2007 10:12
Kráťa
To chmod 777 po odladeni radsej zrus lebo si koledujes o hack (ak tam nechas 777 tak to dokazem aj j…
fleg 18.05.2007 10:16
fleg
tohle dělá vždycky,když kod nenarveš hned za "<?php" případně máš dvě stránky pracující z cookies a…
AZOR 18.05.2007 10:24
AZOR
možná tohle :první řádek : <?php ob_start(); sem dát prostředek send.php. posledni řádek: ob_end_f…
AZOR 18.05.2007 10:28
AZOR
nepomohlo...
Kráťa 18.05.2007 10:35
Kráťa
nebo na to existuje příkaz, kterej už si bohužel nepamatuju to by bylo řešeníčko. Ten kód začíná v…
Kráťa 18.05.2007 10:30
Kráťa
tim kodem jsem myslel to : "ob_end_flush();" sice napamatuju, ale vygooglil jsem to. No já tam vidim…
AZOR 18.05.2007 10:46
AZOR
ted to zacina <?php $unset=array... a nepomohlo ani <?php ob_start(); $unset=array... prostě ten…
Kráťa 18.05.2007 10:59
Kráťa
V post.php na 8. riadku posielaš prehliadaču nejaký výstup a potom v index.php na 213. riadku chceš…
los 18.05.2007 11:03
los
Furt to samé. Soubor post.php <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "www.w…
Kráťa 18.05.2007 11:39
Kráťa
Na výstup posielaš HTML hneď od prvého riadku. To nastavovanie hlavičiek v index.php nemohlo fungova…
los 18.05.2007 11:55
los
Jupííí celý soubor post.php vypadá takto <?php if (!empty($_POST['home'])) { echo "<center><br><br>…
Kráťa 18.05.2007 14:47
Kráťa
los nepsal abys odstranil ukončení php ?>, ale případné mezery za touto značkou... A ty by byly prav…
host 18.05.2007 16:06
host
Já z toho (prípadne aj s tým ?>) pochopil, že kdyžtak i to ?>... Hlavně, že to funguje. Až to někd…
Kráťa 18.05.2007 16:25
Kráťa
Pochopil si dobre: ?> nie je na konci skriptu povinné a jeho neuvedením predídeš tomu, že za to niek…
los 18.05.2007 18:37
los
No dobře, co řekne los, je svaté... ;-)
host 18.05.2007 18:49
host
Neberu slovo losí nadarmo :-) poslední
Kráťa 18.05.2007 21:53
Kráťa

tohle dělá vždycky,když kod nenarveš hned za "<?php" případně máš dvě stránky pracující z cookies a někde uprostřed dáš <? include "s dalsi hlavickou.php" ?>

Ale neumim si představit, jak by se to mohlo stát kopírováním - chce to umazat bud ty mezery před <php na prvním řádku a nebo na to existuje příkaz, kterej už si bohužel nepamatuju :-(...

nebo na to existuje příkaz, kterej už si bohužel nepamatuju

to by bylo řešeníčko.
Ten kód začíná v indexu, kde je ono header

<?php
/*
This file is part of miniBB. miniBB is free discussion forums/message board software, without any warranty. See COPYING file for more details. Copyright (C) 2004 Paul Puzyrev, Sergei Larionov. www.minibb.net
*/


$unset=array...

Žádnou mezeru tam nevidím.

tim kodem jsem myslel to : "ob_end_flush();" sice napamatuju, ale vygooglil jsem to.
No já tam vidim minimálně dva nové řádky.... klidně bych sundal i ten komentář na:
<?php $unset=array...

V post.php na 8. riadku posielaš prehliadaču nejaký výstup a potom v index.php na 213. riadku chceš poslať nejaké hlavičky - to samozrejme nejde.

Môžeš to vyriešiť buď cez bafrovanie výstupu ako píše Azor, alebo to upraviť tak, aby sa hlavičky posielali vždy na začiatku.

Táto chyba je často spôsobená tým, že inkluduješ PHP skript, ktorý má na konci za ?> ešte nejaký biely znak (medzeru alebo nový riadok). V takom prípade treba znaky za ?> vymazať (prípadne aj s tým ?>).

Ďalší zdroj tejto chyby môže byť BOM hlavička na začiatku textového dokumentu kódovanom v UTF. V takom prípade ju musíš odstrániť napr. otvorením v textovom editore a pri ukladaní zvoliť možnosť uloženia bez BOM hlavičky.

Textové súbory mohol zmeniť nejaký editor alebo možno aj FTP klient pri kopírovaní.

Furt to samé. Soubor post.php

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title> Zpráva ze stránek</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2">
<LINK rel="shortcut icon" href="../favicon.ico">

<style type="text/css">
h3 {text-align: center;}

body {
background: #FAEEE1;
font-family: Verdana,Arial;
font-size: 0.8em;
color: #800000;
margin: 10px;
padding-left: 0; padding-top: 0;
margin-left: 0;  margin-top: 0;
}

.tlacitko {
width: 100px;
height: 30px; 
background-image: URL('tlacitko.jpg'); /* obrázek na pozadí */
font-family: arial;
font-weight: bold;
font-size: 1.2em;
color: #ffffff;
background-color: #800000;
border-width: 2;
border-color: #000000;
line-height: 2em;
border-style: outset;
margin: 30px auto 50px auto;
margin-left: 155px;
}

a {display: block; text-decoration: none;}

</style>
</head>

<body>
<a name="nahoru"></a>
<iframe src="../menu.html" width=155 height=3890 frameborder="0" 
align="left" scrolling=no name=menu style="margin-left: 0px; margin-right: 10px;margin-top 0px"> 
</iframe>

<TABLE cellpadding="0" cellspacing="0" align="center" >
<TR>
<TD valign="bottom">
<P><FONT size="1"><A name="nahoru"></A>&nbsp;&nbsp;&nbsp;&nbsp; <BR>
&nbsp;&nbsp;&nbsp;</FONT></P>
</TD>

<TD rowspan="2" align="center" valign="baseline">
<IMG src="../images/logo.gif" width="286" height="46" border="0">
</TD>

<TD valign="bottom">
<P align="right"><FONT size="2"><BR>
 &nbsp;</FONT>

</TD>
</TR>
<TR>
<TD width="276" valign="top">
<HR size="3" style="color: #800000; margin-left: 10px"></TD>
<TD width="276" valign="top">
<HR size="3" style="color: #800000;"></TD>
</TR>
</TABLE>
<TABLE cellpadding="0" cellspacing="0" align="center">
<TR>
<TD align="center">
<center><IMG src="../images/podtit_adresy.gif" width="419" height="43" 
border="0"></center></TD>
</TR>

</TABLE>
<P>&nbsp;</P>




<?php

if (!empty($_POST['home']))
{
echo "<center><br><br><h3>Do toho místa na SPAM píąí pouze hloupí roboti a nejde jim to odeslat</h3><br><br>";
echo "<a class='tlacitko' href='index.php'> Zpět </a></center>";
}
else {
include "index.php";
}

?>

Nepomohlo odstranění všeho za ?>
Já včera zkoušel i nechat pouze ten kousek kódu a nic víc. Napadá mne, jestli nedat ten kousek php do indexu a odesílat to jen na index.

edit://jdu si pro občanku, abych mohl do států EU. :-)

Jupííí celý soubor post.php vypadá takto

<?php

if (!empty($_POST['home']))
{
echo "<center><br><br><h3>Do toho místa na SPAM píąí pouze hloupí roboti a nejde jim to odeslat</h3><br><br>";
echo "<a class='tlacitko' href='index.php'> Zpět </a></center>";
}
else {
include "index.php";
}

Pomoohlo až to odstranění ?> na konci (jak psal los). Děkuji 342x za pomoc, jdu na to zlobivé prewiew, co také neposlouchá a místo náhledu dělá nějaké waringy...

Zpět do poradny Odpovědět na původní otázku Nahoru