Hallo!
könntest du mir das als beispiel sagen?
irgendwie versteh ich das nicht so ganz
<?PHP
ini_set("session.use_cookies", "off"); // keine Cookies (Geschmackssache)
ini_set("session.use_trans_sid", "off"); // Trans-session-Id aus, weil Input-Hidden schon angegeben (Geschmackssache)
session_name("sess"); // Session-Name (ohne -> PHPSESSION)
session_register("sess_ts"); // Sessionvariable registrieren
/*
- wurde Formular abgesendet und ist sess_ts ungleich form_ts
*/
if($_POST['senden'] AND ($_SESSION['sess_ts'] != $_POST['form_ts']))
{
$msg = "Formular wurde abgesendet!";
}
/*
Bei einem Reload ist sess_ts == form_ts weil form_ts noch den alten Timestamp enthält, der vor dem Reload, als nach dem Absenden, in sess_ts abgespeichert wurde.
*/
if($_POST['senden'] AND ($_SESSION['sess_ts'] == $_POST['form_ts']))
{
$msg = "RELOAD";
}
/*
form_ts in sess_ts abspeichern. "if($_POST['senden'])" ist nicht nötig, aber irgendwie sauberer.
*/
if($_POST['senden'])
{
$_SESSION['sess_ts'] = $_POST['form_ts'];
}
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
</head>
<body>
<?PHP
echo $msg; // Mal sehen in welchen Block man ist.
?>
<form action="<?PHP echo($_SERVER['PHP_SELF']); ?>" method="post">
<!-- Timestamp -->
<input type="Hidden" name="form_ts" value="<?PHP echo(time()); ?>">
<!-- SESSION-Daten -->
<input type="Hidden" name="<?PHP echo(session_name()); ?>" value="<?PHP echo(session_id()); ?>">
<input type="Submit" name="senden" value="absenden">
</form>
</body>
</html>
MfG, André Laugks
L-Andre @ gmx.de