Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: cos dziwnego z ob_end_flush();
Forum PHP.pl > Forum > PHP
menic
Witam.
Ale mam dziwny problem. Chodzi o ob_end_flush();.
hmmmm....Nawet nie wiem jak to opisać :|
Na kilku stronach mam ob_start(); i zawsze kończę ob_end_flush. Wszedzie jest ok ale na jednej jest cos nie tak :| I własnie trudno jest okreslić co jest nie tak. Poprostu jest :/
Tylko nie wiem jak to wyjasnić. Np. coś jest nie tak z header('Location:'). Mam napisaną funkcję sesji do której jest potrzebna ta funkcja i jak wszedzie działa należycie to na tej stronie się wysypuje. Natomiast jak nie zakończe strony ob_end_flush to znowu działa poprawnie. Ma ktoś pojęcie czym to może byc spowodowane??
scanner
Bez fragmentów kodu możemy tylko zgadywać...
menic
No to prosze kod:
[php:1:25cadf97f9]<?php
require('config.php');

$squery = array();

$squery[0] = mysql_query("SELECT title, replies, closed, stick
FROM $td[topics]
WHERE forum_id = $_GET[f] AND topic_id = $_GET[t]");


$q1 = mysql_fetch_row($squery[0]);

$t_title = stripslashes($q1[0]);
$t_replies = $q1[1];
$t_closed = $q1[2];
$t_stick = $q1[3];

//Pobiera z for
$squery[5] = mysql_query("SELECT forum_name, forum_closed
FROM $td[forums]
WHERE forum_id = '$_GET[f]'");
$q = mysql_fetch_row($squery[5]);

$f_name = stripslashes($q[0]);
$f_close = $q[1];



$squery[1] = mysql_query("SELECT time
FROM $td[posts]
WHERE forum_id = $_GET[f] AND topic_id = $_GET[t]
ORDER BY time DESC");
$nr_posts = mysql_num_rows($squery[1]);

$q0 = mysql_fetch_row($squery[1]);
$last = $q0[0];



head($t_title);



$squery[2] = mysql_query("SELECT post_id, topic_id, forum_id, author_id, author_name, title, text, time, ip
FROM $td[posts]
WHERE topic_id = $_GET[t] AND forum_id = $_GET[f]");

echo '<a href="form'.$php.'?mode=post&f='.$_GET['f'].'&t='.$_GET['t'].'&s='.$sid.'">Odpowiedz</a> |
<a href="form'.$php.'?mode=topic&f='.$_GET['f'].'&s='.$sid.'">Dodaj temat</a>';
nav('');
table();
echo '<tr align="center" class="ng_td1">
<td width="15%"><b>AUTOR</b></td>
<td width="65%"><b>WIADOMO¦Ć</b></td>
</tr>';

for( $i = 0; $q2 = mysql_fetch_row($squery[2]); $i++ )
{
$p_id = $q2[0];
$p_tid = $q2[1];
$p_fid = $q2[2];
$p_author_id = $q2[3];
$p_author_name = stripslashes($q2[4]);
$p_title = stripslashes($q2[5]);
$p_text = stripslashes($q2[6]);
$p_time = $q2[7];
$p_ip = $q2[8];


// ------------------ Do oznaczania postów START
if($session['user_id'] != -1)
{
if( $p_time > $session['time'] )
{
if( !isset($t_[$_GET['f']][$_GET['t']]) )
{
$new = '<img src="images/topics/minipost_new.gif" alt="Nowy post">';

}

elseif( $nr_posts > $t_[$_GET['f']][$_GET['t']] )
{
if( $i >= $t_[$_GET['f']][$_GET['t']] )
{
$new = '<img src="images/topics/minipost_new.gif" alt="Nowy post">';

}
else
{
$new = '<img src="images/topics/minipost.gif" alt="Stary post">';
}
}

else
{
$new = '<img src="images/topics/minipost.gif" alt="Stary post">';
}
}
else
{
$new = '<img src="images/topics/minipost.gif" alt="Stary post">';
}
}
else
{
$new = '<img src="images/topics/minipost.gif" alt="Stary post">';
}
// KONIEC --------------------- //

$squery[3] = mysql_query("SELECT user_id, active, joined, posts, title, avatar
FROM $td[users]
WHERE user_id = $p_author_id");
$q3 = mysql_fetch_row($squery[3]);

$u_id = $q3[0];
$u_active = $q3[1];
$u_joined = $q3[2];
$u_posts = $q3[3];
$u_title = $q3[4];
$u_avatar = $q3[5];

echo '<tr class="td_1" valign="TOP"><a name="'.$p_id.'"></a>
<td class="td_2" align="center">';
if( $u_id == $p_author_id )
{
echo '<a href="user'.$php.'?mode=vprofile&who='.$p_author_id.'&s='.$sid.'">'.$p_author_name.'</a>';
if( !$u_active )
{
echo '<br>Zablokowany';
}

if( !empty($u_title) )
{
echo '<br>'.$u_title;
}

if( $conf['en_avatar'] )
{
if( empty($u_avatar) )
{
$u_avatar = $conf['def_avatar'];
}

echo '<br><img src="'.$u_avatar.'" border="0">';
}
echo '<br>posty: <B>'.$u_posts.'</B>';
}

else
{
echo $p_author_name.'<BR>Go¶ć';
}
echo '</td><td style=" padding-top: 5px; padding-bottom: 5px; padding-left: 5px; padding-right: 5px" height="1" width="19%">
<table class="td_1" width="100%" border="0" cellpadding="0" cellspacing="0">
<td width="5%" nowrap>'.$new.' Dodany: <b>'.date("Y-m-d H:i", $p_time).'</b>&nbsp;&nbsp;&nbsp;&nbsp;</td>
<td>Temat postu: <b>'.$p_title.'</b></td><td align="right">';
echo '</td>
</table><hr style=" margin-top: 0px;" color="#000000" size="0">';
echo $p_text;
echo '</td></tr><tr>
<td class="ng_td2" height="1" colspan="4"><a href="#top">
<img src="'.$root.'images/top.gif" align="left" border="0" alt="Wróć na górę">
<img align="right" src="'.$root.'images/top.gif" border="0" alt="Wróć na górę"></td>
</tr>';

}
echo '</table>';


/*-----------------------------------------------
POZOSTAŁY ZESTAW FUNKCJI
------------------------------------------------*/

//Zwiększa licznik wy¶wietleń tematu
$query = mysql_query("UPDATE $td[topics]
SET views = (views + 1)
WHERE forum_id = '$_GET[f]' AND topic_id = '$_GET[t]'");


// ------------------ Do aktualizacji postów START
if( $session['user_id'] != -1 && $last > $session['time'] )
{

//Jeżeli jeszcze nie ma tego tematu w bazie
if( !isset( $t_[$_GET['f']][$_GET['t']] ) )
{
$sposts = $session['posts'].'$t_['.$_GET['f'].']['.$_GET['t'].']='.$nr_posts.';n';
}

//Jeżeli już jest ten temat zapisany w bazie
else
{
$sposts = str_replace('t_['.$_GET['f'].']['.$_GET['t'].']='.$t_[$_GET['f']][$_GET['t']],
't_['.$_GET['f'].']['.$_GET['t'].']='.$nr_posts, $session['posts']);
}

//Jeżeli nie ma tego forum w bazie


$update = mysql_query("UPDATE $td[sessions]
SET session_posts = '$sposts'
WHERE sid = '$sid'");

}
// KONIEC --------------------- //
ob_end_flush();.


?>[/php:1:25cadf97f9]
menic
I ma ktos jakies logiczne wytłumaczenie?? Próbowałem już chyba wszystiego. Wstawiłem nawet gzip'a z phpBB ale tez nie działa :|
menic
Mam chyba nawiedzony plik. wszędzie wszystko działa tylko nie w nim.
Utwórzcie 2 pliki.
t.php
[php:1:0fd8afecfb]<?php
require('main.php');

echo '<tr align="center" class="ng_td1">
<td width="15%"><b>AUTOR</b></td>
<td width="65%"><b>WIADOMOŚĆ</b></td>
</tr>';

foot();
?>[/php:1:0fd8afecfb]
oraz
main.php
[php:1:0fd8afecfb]<?php
function foot()
{
global $conf, $start;


$run = $end - $start;
echo "<center><br><br>Strona wygenerowana w <b>" . substr($run, 0, 5) . "</b> sek.<BR>";

//------------------- STOPKA -------------------------//
echo 'Powered by <B>mBoard</B> v Alpha &copy; 2003</center>';
echo '</body></html>';


ob_end_flush();


}
/*-----------------------------------------------
ŁĄCZY SIĘ Z BAZĄ DANYCH
------------------------------------------------*/

//Pobiera ustawienia z bazy danch

ob_start('ob_gzhandler');

?>[/php:1:0fd8afecfb]
Wyglądają NIESCHLuDNIE ale poprostu wszystko z nich wycinałem i i tak nie pomogło. I jak teraz uruchamiam plik. t.php to nic sie nie pokazuje sad.gif Powiedzccie czy u was też tak jest. No bo to jest niemożliwe. Normalnie na wszystkich stronach forum to działa tylko na tej za żyda pana nie chce sad.gif
e-Gandalf
Poczekaj, powoli. Opisz co dokladnie dzieje sie, a czego bys sie spodziewal po tym kawalku kodu.
menic
Normalnie powinno sie wyświetlić to co jest w echo a jest pusta strona sad.gif
e-Gandalf
Ani jedno echo ani drugie? To sproboj zakomentowac require i zobacz co wtedy.

Hint - sproboj tez zlapac handler ob i podac go flushowi.
menic
Doszedłem to tego że cos nie tak z ob_start('ob_gzhandler'); a dokładniej jak wytne ob_gzhandler' to działa. Ale to mnie zastanawia, że normalnie na wszystkich stronach forum to DZIAŁA tylko na tej nieszczęsnej nie chce sad.gif
Ona chyba jest jakas nawiedzona rolleyes.gif Może egzzorcysta pomoże rolleyes.gif
e-Gandalf
A sproboj w ob_flush tez podac ten indeks?
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.