Dobrý den, opět otravuji se svým guestbookem, mám problém s refreshem - napíšu příspěvek, dám odeslat...pak dám refresh F5 a příspěvek se mi tam vypíše znova, nevíte jak to poladit?
<?
require "obecne.php";
if ($send && $text != ""): // pokud byly odeslány data
// odstraníme z příspěvku HTML tagy
$text = HTMLSpecialChars($text);
$text = Ereg_Replace("(http://[^ ]+\.[^ ]+)", " <a href=\"\\1\">\\1</a>", $text);
$cas = date("d-m-Y H:i:s");
// vložíme příspěvek do databáze
@$f = mysql_query ("INSERT INTO guestbook VALUES ('','$jmeno','$email','$nazev','$text','$cas')");
endif;
// začátek výstupu stránky
?>
<table border="0" width="60%">
<tr>
<td>
<div>
<table border="0">
<FORM ACTION="index.php?page=guestbook" METHOD="POST">
<INPUT TYPE=HIDDEN NAME="send" VALUE="true">
<tr>
<td>Jméno:</td>
<td><input
type="text" size="50" name="jmeno"></td>
</tr>
<tr>
<td>E-mail:</td>
<td><input
type="text" size="50" name="email"></td>
</tr>
<tr>
<td>Nadpis:</td>
<td><input
type="text" size="50" name="nazev"></td>
</tr>
<tr>
<td>Text:</td>
<td><textarea
name="text" rows="2" cols="44"></textarea></td>
</tr>
<tr>
<td colspan="2"><input type="submit" value="Odeslat"></td></form>
</tr>
</table>
</div>
</td>
</tr>
</table>
</div>
<?
// vybereme posledních 20 zpráv z databáze
@$v = mysql_query("SELECT id,jmeno,email,nazev,text,cas
FROM guestbook
ORDER BY id DESC LIMIT 0,20");
@$p = mysql_num_rows($v);
// pokud nějaké takovéto zprávy existují, zobrazíme je
if ($p > 0):
echo "<div align=center><center><table border=0 width=75%>";
while ($z = mysql_fetch_row($v))
{
echo "<tr><td><strong>";
if($z[2]) echo "<a href=mailto:$z[2]>$z[1]</a>"; //pokud byl zadán e-mail
else echo "$z[1]"; // pokud ne zobrazíme jen jméno
echo "</strong><br><em>$z[3]</em></td>
<td><p align=right>$z[5]</p></td></tr>
<tr><td colspan=2><strong>$z[4]</strong></td></tr>
<tr><td colspan=2><hr noshade></td></tr>";
}
echo "</TABLE>\n";
endif;
echo "</BODY>\n";
?>
po odeslani prispevku tam pripis radek na presmerovani zpet na knihu...
header ("Location: http://tvuj_web.cz/cesta...");
a nebo javascriptem to same...
echo '<script type="text/javascript" for="window" event="onLoad()">';
echo '<!--
window.location.href="http://tvuj_web.cz/cesta..."';
echo '// --> </script>';
;)
hm, nevím kam to mám připsat...na jaký místo v tom kódu...?
zkus to takhle ... ;)
<?
require "obecne.php";
if ($send && $text != ""): // pokud byly odeslány data
// odstraníme z příspěvku HTML tagy
$text = HTMLSpecialChars($text);
$text = Ereg_Replace("(http://[^ ]+\.[^ ]+)", " <a href=\"\\1\">\\1</a>", $text);
$cas = date("d-m-Y H:i:s");
// vložíme příspěvek do databáze
@$f = mysql_query ("INSERT INTO guestbook VALUES ('','$jmeno','$email','$nazev','$text','$cas')");
// přesměrování
echo "<script type=\"text/javascript\">window.location='http://head23.kvalitne.cz/engine/index.php?page=guestbook';</script>";
endif;
// začátek výstupu stránky
?>
<table border="0" width="60%">
<tr>
<td>
<div>
<table border="0">
<FORM ACTION="index.php?page=guestbook" METHOD="POST">
<INPUT TYPE=HIDDEN NAME="send" VALUE="true">
<tr>
<td>Jméno:</td>
<td><input
type="text" size="50" name="jmeno"></td>
</tr>
<tr>
<td>E-mail:</td>
<td><input
type="text" size="50" name="email"></td>
</tr>
<tr>
<td>Nadpis:</td>
<td><input
type="text" size="50" name="nazev"></td>
</tr>
<tr>
<td>Text:</td>
<td><textarea
name="text" rows="2" cols="44"></textarea></td>
</tr>
<tr>
<td colspan="2"><input type="submit" value="Odeslat"></td></form>
</tr>
</table>
</div>
</td>
</tr>
</table>
</div>
<?
// vybereme posledních 20 zpráv z databáze
@$v = mysql_query("SELECT id,jmeno,email,nazev,text,cas
FROM guestbook
ORDER BY id DESC LIMIT 0,20");
@$p = mysql_num_rows($v);
// pokud nějaké takovéto zprávy existují, zobrazíme je
if ($p > 0):
echo "<div align=center><center><table border=0 width=75%>";
while ($z = mysql_fetch_row($v))
{
echo "<tr><td><strong>";
if($z[2]) echo "<a href=mailto:$z[2]>$z[1]</a>"; //pokud byl zadán e-mail
else echo "$z[1]"; // pokud ne zobrazíme jen jméno
echo "</strong><br><em>$z[3]</em></td>
<td><p align=right>$z[5]</p></td></tr>
<tr><td colspan=2><strong>$z[4]</strong></td></tr>
<tr><td colspan=2><hr noshade></td></tr>";
}
echo "</TABLE>\n";
endif;
echo "</BODY>\n";
?>
javascriptem bych to presmerovani nedelal, spolehlivejsi je to s tim header(); jak psal Rellik (akorat si dej pozor, abys pred tim header nemel zadnej vystup, vcetne bilejch znaku)
>spok spolehlivejsi to je, ale uz sem se setkal s knihou ve ktere to z neznameho duvodu neslo... pomohlo to az s tim javascriptem... Jinak skusit to muze i s tim headerem ne?
ja jen ze se da javascript blokovat