Schrift
[thread]454[/thread]

Aktualisieren verhindern: Aktualisieren des Browsers verhindern



<< >> 7 Einträge, 1 Seite
thdillinger
 2005-03-08 17:04
#4571 #4571
User since
2005-02-21
4 Artikel
BenutzerIn
[default_avatar]
Hallo,

ich bin auf der Such nach einer einfachen Lösung für folgendes Problem:

Bei einer Datenpflege-Oberfläche kann es vorkommen, dass z.B. beim Hinzufügen eines Datensatzes der Benutzer im Browser auf "Aktualisieren" klickt. Es soll aber das Skript / der DB-Insert nicht nochmal ausgeführt werden.

Wie könnte ich das Lösen, ohne Session-Management oder Cookies?

Danke schonmal und mfg
tddillinger
renee
 2005-03-08 17:23
#4572 #4572
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Beim Insert sollte man sowieso abfragen, ob es einen gleichen bzw. ähnlichen Eintrag gibt...
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
thdillinger
 2005-03-08 17:25
#4573 #4573
User since
2005-02-21
4 Artikel
BenutzerIn
[default_avatar]
Stimmt.
Abgesehen davon, habe ich das Problem trotzdem bei anderen Skripten, ich suche eine allgemein verwendbare Lösung, um das erneute ausführen zu verhindern.\n\n

<!--EDIT|thdillinger|1110295592-->
Ishka
 2005-03-08 17:36
#4574 #4574
User since
2003-08-04
771 Artikel
HausmeisterIn
[Homepage] [default_avatar]
ohne Sessionmanagement würde das beim erneuten Aufruf durch einen anderen Rechner auch nicht mehr gestartet werden. Wenn dir das Recht ist, kannst du irgendwo abspeichern, ob das Programm schonmal gestartet wurde.
sub z{if(@_){1while$x[$k=rand 10];t($t=$x[$k]=1)}print map"$z[$x[$_]]$_".($_%3?
"":"\n"),1..9}sub t{$j=0;$x[$_+1]==$t&&($j+=2**$_)for 0..8;z,die"Gewinner $z[$t]
"if grep$_==($j&$_),7,56,73,84,146,273,292,448;z,die"Gleichstand\n"if@x>9&&!grep
!$_,@x}@x=4;@z=qw{. [ (};z$^T&1;while(<>){next if$_>9||$x[$_];t$t=$x[$_]=2;z 1}
pktm
 2005-03-08 18:20
#4575 #4575
User since
2003-08-07
2921 Artikel
BenutzerIn
[Homepage]
user image
Ich benutze da CGI::Application.
Dabei gehe ich so vor:
Hat der benutzer eine Aktion durchgeführt bekommt er eine Bestätigungsseite. Diese kann er dann so oft aktualisieren wie er will, die Aktion wird dann nicht nochmal ausgeführt. Und wenn er sich mittels der zurück-Tasten durch die Seite bewegt wird, wie renee schon anmerkte, geprüft ob die Aktion schon ausgeführt wurde (jetzt speziell bei DBen) und dann die entsprechende Seite ausgegeben.

mfg pktm
http://www.intergastro-service.de (mein erstes CMS :) )
jan10001
 2005-03-09 13:50
#4576 #4576
User since
2003-08-14
962 Artikel
BenutzerIn
[default_avatar]
Er könnte ja auch vorher prüfen ob der Datensatz schon erzeugt wurde. Ne zusätzlich Abfrage braucht nicht viel Code.\n\n

<!--EDIT|jan10001|1110369060-->
pktm
 2005-03-09 18:39
#4577 #4577
User since
2003-08-07
2921 Artikel
BenutzerIn
[Homepage]
user image
[quote=jan10001,09.03.2005, 12:50]Er könnte ja auch vorher prüfen ob der Datensatz schon erzeugt wurde. Ne zusätzlich Abfrage braucht nicht viel Code.[/quote]
Hat renee schon gesagt, und das sollte man auf jeden Fall machen.
Allerdings kann man mit meiner Methode die Fallunterscheidung besser machen (Eintrag schon vorhadnen / auf aktualisieren geklickt) - finde ich.

Man muss das übrigens nicht zwingend mit CGI::App machen, man kann es auch mittels redirect machen.
http://www.intergastro-service.de (mein erstes CMS :) )
<< >> 7 Einträge, 1 Seite



View all threads created 2005-03-08 17:04.