Autor Zpráva
houbeek
Profil *
zdravim mam takový problém s guestbookem. Jak zamezit znovunačtení post dat při aktualizaci stránky. (př. napíšu nějaký vzkaz, pošlu ho potom dám aktualizovat abych se podíval jestli na něho někdo neodpověděl, vyskočí známá hláška že stránka obsahuje post data a ten vzkaz co sem poslal tam mam znovu). V php sem uplný začátečník. Ten guestbook je odnekud stazeny, už ale nevim odkud. Tady mate kod tak kdybyste mi ukazali kde co mam vložit. Diky moc

<?php

//ZADEJTE SVŮJ VLASTNÍ EMAIL V NÁSLEDUJÍCÍM ŘÁDKU
$mujEmail = '';

$idprispevek = $_GET['idprispevek'];
$submit = $_POST['submit'];
$jmeno = $_POST['jmeno'];
$email = $_POST['email'];
$zprava = $_POST['zprava'];
$PHP_SELF = $_SERVER['$PHP_SELF'];

$soubor = 'book2Data.cgi';
if ($submit) pridej ($jmeno, $email, $zprava);
?>

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1250">
<title>Pokec</title>
<link rel="stylesheet" type="text/css" href="styly.css">

<script src="validace.js" charset="windows-1250" type="text/javascript"></script>

</head>
<body>
<div align="left"><a href="../tajna_stranka.php">zpět</a></div>
<div align="right"><a href="../logout.php">odhlasit</a></div>
<table align="center" border="0" cellpadding="5" cellspacing="0" width="95%">
<tr>
<td align="center" width="100%">
<h1>Pokec</h1>
</td>
</tr>
</table>

<div align="center">
<form
name="F"
action="<?php echo $PHP_SELF ?>"
method="post"
onSubmit="return kontrola();"
>

<table width="450" border="0" cellpadding="5" cellspacing="0" class="formular">
<tr>
<td valign="top" align="left">
Jméno:
</td>
<td>
<input type="text" name="jmeno" size="30" maxlength="12">
</td>
</tr>

<tr>
<td valign="top" align="left">
Text zprávy:
</td>
<td>
<textarea cols="50" rows="5" name="zprava"></textarea>

<div style="cursor:hand;">
<a href="javascript:emo('A')"><img src="smajl/a.png" border=0 height=18 width=18></a>
<a href="javascript:emo('B')"><img src="smajl/b.png" border=0 height=18 width=18></a>
<a href="javascript:emo('C')"><img src="smajl/c.png" border=0 height=18 width=18></a>
<a href="javascript:emo('D')"><img src="smajl/d.png" border=0 height=18 width=18></a>
<a href="javascript:emo('E')"><img src="smajl/e.png" border=0 height=18 width=18></a>
<a href="javascript:emo('F')"><img src="smajl/f.png" border=0 height=18 width=18></a>
<a href="javascript:emo('G')"><img src="smajl/g.png" border=0 height=18 width=18></a>
<a href="javascript:emo('H')"><img src="smajl/h.png" border=0 height=18 width=18></a>
<a href="javascript:emo('I')"><img src="smajl/ch.png" border=0 height=18 width=18></a>
<a href="javascript:emo('J')"><img src="smajl/i.png" border=0 height=18 width=18></a>
<a href="javascript:emo('K')"><img src="smajl/j.png" border=0 height=18 width=18></a>
<a href="javascript:emo('L')"><img src="smajl/k.png" border=0 height=18 width=18></a>
</div>

</td>
</tr>

<tr>
<td colspan=2 valign="top" align="center">
<input class="tlacitko" name="submit" type="submit" value="Odeslat">&nbsp;&nbsp;&nbsp;
</td>
</tr>
</table>

</form>
</div>


<table align="center" border="0" width="95%" cellpadding="3" cellspacing="0">
<tr>
<td>


<?php

/////////////////////////// PŘIDEJ ZPRÁVU ///////////////////////////
function pridej ($jmeno, $email, $zprava) {

global $mujEmail;
global $soubor;
$jmeno = htmlspecialchars($jmeno);
$tempj = "<div align='center'><div class='hlavickaZpravy'><B>Jméno:</B> ";

if ($email) $tempj .= "<a href=\"mailto:$email\">$jmeno</a>";
else $tempj .= "<span class='pink'>$jmeno</span>";
$jmeno = $tempj;

$timeDate = Date("j/". "m/" . "Y " . "H:i:s");
$cas = "&nbsp;&nbsp;<B>Datum:</B> " . $timeDate . "</div>";

$zprava = substr($zprava, 0, 3000);
$zprava = trim($zprava);
// mail("$mujEmail", 'Kniha navstev', "$zprava");
$zprava = htmlspecialchars($zprava);
$zprava = str_replace("\n"," <br> ", $zprava);


$smajl_ct = substr_count ( $zprava, '`');
if ($smajl_ct > 10) exit ('Nanejvýš 10 smajlíků');
$zprava = eregi_replace ('`A', "<img src=smajl/a.png>", $zprava);
$zprava = eregi_replace ('`B', "<img src=smajl/b.png>", $zprava);
$zprava = eregi_replace ('`C', "<img src=smajl/c.png>", $zprava);
$zprava = eregi_replace ('`D', "<img src=smajl/d.png>", $zprava);
$zprava = eregi_replace ('`E', "<img src=smajl/e.png>", $zprava);
$zprava = eregi_replace ('`F', "<img src=smajl/f.png>", $zprava);
$zprava = eregi_replace ('`G', "<img src=smajl/g.png>", $zprava);
$zprava = eregi_replace ('`H', "<img src=smajl/h.png>", $zprava);
$zprava = eregi_replace ('`I', "<img src=smajl/ch.png>", $zprava);
$zprava = eregi_replace ('`J', "<img src=smajl/i.png>", $zprava);
$zprava = eregi_replace ('`K', "<img src=smajl/j.png>", $zprava);
$zprava = eregi_replace ('`L', "<img src=smajl/k.png>", $zprava);


$znak = 66;
$slovo = split("[[:blank:]]+", $zprava);

for($y=0;$y<count($slovo);$y++) {
$slovo[$y] = trim($slovo[$y]);
if (strlen($slovo[$y])<=$znak) {
$odkaz = $slovo[$y] . " ";
$celek .= $odkaz;
}
else {
$delit = ceil(strlen($slovo[$y])/$znak);
for($z=0;$z<$delit;$z++) {
$cast = substr($slovo[$y], $z*$znak, $znak);
$celek .= $cast . " - ";
}
}
}
$zprava = str_replace("&lt;b&gt;", "<P>", $celek);
$zprava = "<div align=center class=teloZpravy>$zprava</div></div>\n";
$write = stripslashes($jmeno . $cas . $zprava);

if (file_exists ($soubor)) {
$fp = fopen ($soubor, "r");
$data = fread ($fp, filesize($soubor));
fclose($fp);
}
$fp = fopen ($soubor, "w");
fwrite ($fp, $write.$data);
fclose ($fp);
}

//////////////////////////// ZOBRAZ ZPRÁVY ////////////////////////////

function Odkaz() {
global $idprispevek;
global $soubor;
if (file_exists ($soubor)) {
echo "<div align='center'><div class='zobrazZpravy'> Zobraz zprávy:<br>";
$prispevek = file($soubor);
$strana = ceil(count($prispevek)/20);
for ($x=1; $x <= $strana; $x++) {
if ($idprispevek == $x)
echo "<span class='red'><a href=\"gbook2.php?idprispevek=$x\">" . ($x*20-19) . "-" . $x*20 . "</a></span>&nbsp;&nbsp;&nbsp";
else
echo "<a href=\"gbook2.php?idprispevek=$x\">" . ($x*20-19) . "-" . $x*20 . "</a>&nbsp;&nbsp;&nbsp";
}
echo "</div></div>";
}
}
Odkaz();

if (file_exists ($soubor)) {
if (!isset($idprispevek)) $idprispevek=1;
$pocatek = $idprispevek*20-20;
$konec = $idprispevek*20-1;
$prispevek = file($soubor);
for ($i=$pocatek;$i<=$konec;$i++) echo $prispevek[$i];
}
Odkaz();
?>

</td>
</tr>
</table>

</body>
</html>

tiso
Profil
if ($submit) pridej ($jmeno, $email, $zprava);

nahraď:
if (isset($_POST["submit"])){

pridej ($jmeno, $email, $zprava);
header("Location: ".$_SERVER["SERVER_NAME"].$SERVER["PHP_SELF"]);
die();
}
minimal
Profil *
tam sa to riasilo
http://diskuse.jakpsatweb.cz/index.php?action=vthread&forum=9&topic=37 024
houbeek
Profil *
hodi mi to ze požadovaná stránka neexistuje, a když misto toho "SERVER_NAME" dám cestu k souboru tak mi to hodí bílou stránku. Když dám zpět tak tam sice ten příspěvek je dokonce se to da aktualizovat aniž by to znovu napsalo ten příspěvek ale štve mě ta bílá stránka tak jestli někdo víte co s tím??
tiso
Profil
chybička se vloudila:
header("Location: http://".$_SERVER["SERVER_NAME"].$SERVER["PHP_SELF"]);
houbeek
Profil *
dik moc už to funguje
Toto téma je uzamčeno. Odpověď nelze zaslat.

0