rload des browsers 'verhindern'

dennisnowack

Mitglied
Hi! Hier ein Mini-Beispiel-Script von mir. Mein Problen ist, dass, wenn ein User bei seinem Browser auf reload clickt, die Variaben noch gesetzt sind und der auswertende Teil des Scripts einw eiteres Mal ausgeführt wird, was NICHT der Fall sein soll...
Wenn auch der php-Teil in diesem Beispiekl sehr klein ausfällt, denke ich, dort ist eine Lösung zu suchen/finden....

<html>
<?php
if($_POST["feld1"]!='')
echo "Dein Text: " . $_POST["feld1"];
?>

<form method='post' name='UE1'>
<input type='text' name='feld1'>
<input type='button' name='st' value='los!' ONCLICK='validateForm1()'></form>
</html>

<script LANGUAGE="JavaScript"><!--
function validateForm1()
{
var okSoFar=true
with (document.UE1)
{

if(!(feld1.value) && okSoFar)
{
okSoFar=false;
alert("Bitte eine Eingabe tätigen!");
feld1.focus;
}

if (okSoFar==true)
{
send_my_data();
}
}
}

function send_my_data()
{
with (document.M_F)
{
//document M_F ist eine übergeordnete Datei, die in Form eines 'headers' ein Menü zur Verfügung stellt
//feld1 ist hier ein 'hidden' field das reind er Übergabe dient
feld1.value=document.UE1.feld1.value;
//dies wird ausgeführt, damit nicht die home aus dem Menü geladen wird, sondern DIESE page
the_page.value=previous_spage;
submit();
}
}
// --></script>

Danke im Voraus!
 
Da Du die Daten mit PHP abarbeitest, hast Du nach Funktionsende die Möglichkeit, einen Header zu senden, der eine Seite (neu) lädt.
Beispiel:
Seite1.php sendet an Seite2.php Daten, eine Funktion überprüft die Eingaben und wertet diese aus, bei Erfolg wird ein Header gesendet, der Seite3.php aufruft (also nimmst Du Seite2.php als Art Brücke) oder er lädt Seite1.php neu und macht den User auf den Fehler aufmerksam.
Das Problem ist nur, dass der User immer noch den "Back-Button" drücken kann, Du musst in Deiner Funktion also gucken, dass Du zB keine doppelten Inserts in die Datenbank schreibst (Kann man mit Select vorher prüfen, indem Du die session_id() mit speicherst)

LG
Andy
 
Zurück