Online Shop Veyton Login Timeout verlängern

Die Dauer eines Logins wird im Veyton durch die serverseitige Verfallszeit der Session bestimmt. Wer keinen Zugriff auf die php.ini hat, kann mit etwas Javaskript die Session “fast ewig” aufrecht erhalten, eine Zwangstrennung durch den Provider ausgenommen.

Durch die folgenden Änderungen am Online Shop Veyton wird die Session alle 5 Minuten erneuert. Und natürlich muss Javaskript auf dem Clientrechner aktiviert sein.

1. Datei “templates/templatename/js.php” ergänzen:

<script language="Javascript">

function startRenewSession(){
  window.setInterval("renewSession();", 300000);
}
function renewSession(){
  params = "session_hold=yes";
  var myAjax = new Ajax.Request(
    "session_hold.php", {
      method: 'get',
      parameters: params,
      onComplete: zeige_session_ergebnis }
  );
}
function zeige_session_ergebnis(originalRequest) {
  var dummy = originalRequest.responseText;
}
</script>

2. Datei “xtCore/display.php” modifizieren:

Suche: <body>
Erstetze: <body onload=”startRenewSession();”>

3. Datei “session_hold.php” mit folgendem Inhalt im Stammverzeichnis anlegen:

<?php
  $session_param = $_GET['session_hold'];
  if($session_param == "yes"){
    session_start();
    echo "Session okay";
  }
?>

4. Erläuterung:

Beim Laden der Seite wird durch <body onload=”startRenewSession();”> die Funktion “startRenewSession()” aufgerufen. Diese ruft im Abstand von 5 Minuten die Funktion “renewSession()” auf, wobei ein Ajaxrequest auf die Datei “session_hold.php” gestartet wird. Und schließlich wird in der “session_hold.php” die Session durch “session_start()” aktualisiert, wodurch die Session Lifetime erneuert wird.

5. Jquery Umsetzung – Nachtrag

<script language="Javascript" type="text/javascript">
$(document).ready(function() {
    srnS();
    function srnS(){
        window.setInterval("rnS();", 300000);
    }
});

function rnS(){
    //with done(function) - at least jQuery 1.5 for jqXHR objects
    /*$.get("session_hold.php", { session_hold: "yes"}).done(function(data) {
        alert("Return " + data);
    });*/

    //instead use success: function(data) for older jQuery versions
    $.ajax({
        type: "POST",
        url: "session_hold.php",
        data: { session_hold: "yes" },
        success: function(data) {
            //alert("Return " + data);
        }
    });
}
</script>

PHP-File -> session_hold.php:

<?php
  /*Session aufrecht erhalten*/
  $session_param = $_POST['session_hold'];
  if($session_param == "yes"){
      session_start();
      echo "Session okay";
  }
?>
Veröffentlicht unter Shop Systeme
2 comments on “Online Shop Veyton Login Timeout verlängern
  1. Jürgen sagt:

    Super Sache, vielen Dank!

  2. Sandro sagt:

    Funktioniert wunderbar. Sogar am nächsten Tag nach ca. 12 Stunden immer noch als Kunde angemeldet, sonst war ein Kunde nach 5 bis 10 Minuten immer abgemeldet. Mercy

Hinterlasse eine Antwort

By continuing to use the site, you agree to the use of cookies. more information

The cookie settings on this website are set to "allow cookies" to give you the best browsing experience possible. If you continue to use this website without changing your cookie settings or you click "Accept" below then you are consenting to this.

Close