Shopsystem ShopPilot Shoploesung Diskussionen und Infos zum Shopsystem ShopPilot
Willkommen Gast. Bitte einloggen oder registrieren.
Mai 23, 2012, 07:19:15

Einloggen mit Benutzername, Passwort und Sitzungslänge
Suche:     Erweiterte Suche
5257 Beiträge in 1422 Themen von 333 Mitglieder
Neuestes Mitglied: pje
* Übersicht Hilfe Login Registrieren
+  Diskussionen und Infos zum Shopsystem ShopPilot
|-+  ShopPilot
| |-+  SSP - Shop Server Pages
| | |-+  Reloadsperre nachbauen
0 Mitglieder und 2 Gäste betrachten dieses Thema. « vorheriges nächstes »
Seiten: [1] Drucken
Autor Thema: Reloadsperre nachbauen  (Gelesen 1024 mal)
dobra
Global Moderator
Hero Member
*****

Lob: 18
Offline Offline

Beiträge: 1182


WWW
« am: April 28, 2009, 19:29:53 »

Hallo,

im WC gibt es doch die Reloadsperre für den Warenkorb.
Wie kann ich das bei form-Abfragen nachbauen?

Konkret:
ich habe ein Script, dass einen bestimmten Formularwert abfragt
   my $mode = ssp::get_var_form("mode");
   if ($mode eq "new") {
         utils::mail();
   }

also wenn der im Formular übergebene Wert "new" ist, wird eine Mail versandt.
Wie kann ich verhindern, daß die Mail bei jedem Seitenreload (oder F5) nochmals gesendet wird?

Nachtrag:
Lösung gefunden - funktioniert zwar, aber ich bin nicht sicher, ob das so korrekt ist?

Habe als "Benutzerdaten OK" Seite eine Dummyseite eingetragen, auf der nur das steht
Code:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 <html>
<head>
<!--spmacro:include(online_editor_modul_0_2/inc/oe_new.ipl)-->  ### = Daten in DB schreiben
<!--spmacro:module(test)
sub test {   ### mail versenden
use online_editor_modul_0_2::inc::utils;
my $mode = ssp::get_var_form("mode");
if ($mode eq "new") {
utils::mail();
}
}
-->
__test::test__
<META HTTP-EQUIV="REFRESH" CONTENT="0; URL=http://__xxpath__?show1290000051,__xxsession__">   ### auf Zielseite weiterleiten
</head>
</html>

die Mail wird also auf dieser Seite abgesendet (und die DB-Einträge gemacht) und dann sofort - hoffentlich ohne dass der Kunde es überhaupt merkt - auf die eigentliche Zielseite weitergeleitet.
Hier kann man jetzt so oft man will reloaden OHNE die mail erneut abzusenden.

aber funktioniert das META HTTP-EQUIV="REFRESH" wirklich zuverlässig?
gibt es dafür nicht doch eine bessere Lösung?
« Letzte Änderung: April 28, 2009, 20:11:11 von dobra » Gespeichert

ahe
Global Moderator
Sr. Member
*****

Lob: 19
Offline Offline

Beiträge: 407


« Antwort #1 am: April 29, 2009, 01:37:49 »

Hallo dobra,

ich würde den Mailversand nicht nur von einer Form-Variablen abhängig machen.
Besser wäre es zu prüfen, ob der neu einzutragende Datensatz schon in der DB eingetragen ist.
Falls nicht: Datensatz eintragen und Mail versenden.
Falls doch: Meldung ausgeben und abbrechen.
Gespeichert

MfG ahe
dobra
Global Moderator
Hero Member
*****

Lob: 18
Offline Offline

Beiträge: 1182


WWW
« Antwort #2 am: April 29, 2009, 06:48:03 »

Hallo ahe,

ja - das ist eindeutig die bessere Lösung  Cheesy

war auch meine erste Idee, hat aber nicht funktioniert...
scheinbar hab ich da gestern irgendwas falsch gemacht  Embarrassed

hab's jetzt nochmal versucht und SO funktioniert es
Code:
                 ...
##main::plog("db_insert_item: itemid:$itemid itemid:$pgid params:@params\n");

my $ok = ssp::db_insert_item(0, $itemid, $pgid, @params);
if ($ok == -1) { ## Artikel existiert
$errmsg = "Operation nicht erfolgreich: Artikelnr. existiert bereits. Wählen Sie eine andere Artikel-Nr.";
} else {
$errmsg = "Erfolgreich: Artikel eingefügt.";
use online_editor_modul_0_2::inc::utils;
utils::mail();

## Gültige Subcats für den Nutzer auslesen
my @scids = split(',',ssp::get_var_user("PUBSUBCAT"));
               ....

Keine Dummyseite notwendig und kein doppelter mail Versand bei reload - jetzt funktioniert alles, wie es soll

Danke (auch für den Tipp gestern, wie ich das mit den mails überhaupt machen kann)
Gespeichert

Seiten: [1] Drucken 
« vorheriges nächstes »
Gehe zu:  

mysitelist Impressum Powered by SMF 1.1.16 | SMF © 2006, Simple Machines Prüfe XHTML 1.0 Prüfe CSS