André Laugks: automatischer refresh

Beitrag lesen

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