Aktualisieren verbieten!?
Stefan
- javascript
Kann ich irgendwie (mit PHP oder Javascript) dem User verbieten, eine Seite zu aktualisieren?
Es geht um ein Formular, das durch klick auf "Aktualisieren" die Daten erneut in die Datenbank schreibt...
Bitte keine "Rechte-Maus-Kontextmenü-verbiet-Scripts" ;)
Grüße, Stefan
Hi,
Kann ich irgendwie (mit PHP oder Javascript) dem User verbieten, eine Seite zu aktualisieren?
Es geht um ein Formular, das durch klick auf "Aktualisieren" die Daten erneut in die Datenbank schreibt...
Dann ändere das Script, das die Daten mehrfach in die Datenbank schreibt.
Andreas
Hi,
Kann ich irgendwie (mit PHP oder Javascript) dem User verbieten, eine Seite zu aktualisieren?
Es geht um ein Formular, das durch klick auf "Aktualisieren" die Daten erneut in die Datenbank schreibt...
Dann ändere das Script, das die Daten mehrfach in die Datenbank schreibt.
Andreas
Hi!
Wie meinst Du das? Die Daten mit denen, die schon in der Datenbank drin sind, vergleichen?
Das geht nicht so einfach, weil die Daten nie genau die selben sind, es wird jedesmal ein Identifier hochgezählt der mit in die Datenbank geschrieben wird (notwendig wird für spätere Bearbeitungen).
Ich müsste irgendwie die Argumente des Formulars löschen können oder so... ?
Grüße, Stefan
Hi!
Wie meinst Du das? Die Daten mit denen, die schon in der Datenbank drin sind, vergleichen?
Das geht nicht so einfach, weil die Daten nie genau die selben sind, es wird jedesmal ein Identifier hochgezählt der mit in die Datenbank geschrieben wird (notwendig wird für spätere Bearbeitungen).
Ich müsste irgendwie die Argumente des Formulars löschen können oder so... ?
Grüße, Stefan
Hi,
Datenbank. :-)
Sollte doch 'ne SQL-fähige DB sein, richtig. Also mal 'ne gespeicherte Prozedur (als Job) oder nen Trigger schreiben. - Die ID ist nicht identisch, aber das ist doch kein echtes Problem.
Gruss,
Lude
Hi Lude [watn komischer Spitzname],
Datenbank. :-)
Sollte doch 'ne SQL-fähige DB sein, richtig. Also mal 'ne gespeicherte Prozedur (als Job) oder nen Trigger schreiben. - Die ID ist nicht identisch, aber das ist doch kein echtes Problem.
Das interessiert mich auch. Wie geht das? Könntest Du das bitte etwas ausführlicher darstellen?
LG
Chris
Hi Lude [watn komischer Spitzname],
Datenbank. :-)
Sollte doch 'ne SQL-fähige DB sein, richtig. Also mal 'ne gespeicherte Prozedur (als Job) oder nen Trigger schreiben. - Die ID ist nicht identisch, aber das ist doch kein echtes Problem.
Das interessiert mich auch. Wie geht das? Könntest Du das bitte etwas ausführlicher darstellen?
LG
Chris
Yo!
Welches DBMS iss denn da?
Gruss,
Lude
Hi,
Datenbank. :-)
Sollte doch 'ne SQL-fähige DB sein, richtig. Also mal 'ne gespeicherte Prozedur (als Job) oder nen Trigger schreiben. - Die ID ist nicht identisch, aber das ist doch kein echtes Problem.
Das interessiert mich auch. Wie geht das? Könntest Du das bitte etwas ausführlicher darstellen?
LG
Yo!
Welches DBMS iss denn da?
nun dämmerts...
Hier haben wir zur Zeit nur MySQL am Laufen. Da ist nicht viel mit Triggers, nur mit Trick(er)s...
Im Schrank steht immer noch das Paccket von Infomix für Linux. Bei Kollegen habe ich gesehen, dass das wirklich gut ist. Hätte ich doch nur mehr Zeit!
Chris
hi Stefan
AFAIK kannst du niemandem verbieten die F5 taste auf seiner tastatur zu drücken.
so long
ole
(8-)>
Hallo Stefan,
wenn da durch das Aktualisieren Daten nochmal in die DB geschrieben werden, dann ist das ein serverseitiges Problem. Da musst Du halt mit Sessions und/oder Cookies arbeiten.
Wenn Du aber meinst, dass es dem User möglich ist, durch den Back-Button an seinem Browser das Formular nochmals darzustellen und durch SUBMIT nochmals abzuschicken, dann bau etwas JavaScript ein:
Nur ein paar Gedaken aus meiner Bastelkiste:
<html><head><title>Test</title>
<script type="text/javascript">
<!--
function BTN_enable()
{
document.forms[0].elements["Absendebutton"].disabled = false;
//alert("ist angekommen");
}
function BTN_disable()
{
document.forms[0].elements["Absendebutton"].disabled = true;
//alert("ist angekommen");
}
//-->
</script>
</head><body>
<form name="Testform" action="abc.html" onSubmit="BTN_disable();">
<input type="radio" name="Auto" value="Porsche" checked> Porsche<br>
<input type="radio" name="Auto" value="Mercedes" alt="hier klicken" title="nein, nicht!"> Mercedes<br>
Name: <input type="text" size="30" name="Name" tabindex="1" readonly value="Nuckelpinne"><br>
Typ : <input type="text" size="30" name="Typ" tabindex="2" title="ohne Reue" ><br>
<input type="submit" name="Absendebutton" value="Absenden" disabled>
<input type="button" name="BTNenableSend" value="Absenden EIN" onClick="BTN_enable();"><br>
</form>
<script type="text/javascript">
<!--
for(var i=0;i<document.Testform.length;++i)
{
document.write("<br>");
document.write(i," <b>Elementname: </b>" + document.forms[0].elements[i].name);
document.write(",<b> Elementtyp: </b>" + document.forms[0].elements[i].type);
document.write(",<b> Checked: </b>" + document.forms[0].elements[i].checked);
// document.write(",<b> TabIndex: </b>" + document.forms[0].elements[i].tabindex);
document.write(",<b> ReadOnly: </b>" + document.forms[0].elements[i].style.ReadOnly); //undefined
// document.write(",<b> Elementtyp: </b>" + document.forms[0].elements[i].align);
document.write(",<b> AltText: </b>" + document.forms[0].elements[i].alt);
//document.write(",<b> Class: </b>" + document.forms[0].elements[i].class); //schwerer Fehler!!!
document.write(",<b> Title: </b>" + document.forms[0].elements[i].title);
document.write(",<b> Style: </b>" + document.forms[0].elements[i].style);
document.write(",<b> Disabled: </b>" + document.forms[0].elements[i].disabled);
}
//-->
</script>
</body></html>
Wie gesagt, nur Rohmaterial zum Weiterdenken.
Grüße aus http://www.braunschweig.de
Tom
Wie wärs mit ner Serverseitigen überprüfung, ob die Daten schonmal geschrieben wurden?
Warum werden die Daten direckt beim Aufruf der Seite gesendet?
Hi,
Es geht um ein Formular, das durch klick auf "Aktualisieren" die Daten erneut in die Datenbank schreibt...
mit PHP könntest Du dafür Sessions nutzen:
Die Formularseite startet eine Session und registriert eine eindeutige Variable,
die Zielseite überprüft die Gültigkeit dieser Sessionvariablen und macht bei Erfolg den Update.
Anschließend wird die Session beendet, auch die Variable ist damit nicht mehr definiert.
Bei einem Reload passiert nichts, da die Sessionvariable dann nicht mehr existiert.
Alternativ kannst Du dann natürlich eine Fehlermeldung ausspucken lassen.
Schönen Gruß
Rainer