2016-03-19 13 views
3

Mein PHP-Skript zum Deaktivieren der Sitzungsvariablen funktioniert nicht.PHP Unset-Sitzung funktioniert nicht

Ich muss eine PHP-Datei destroy.php aufrufen, die Code enthält, um Sitzungsvariable von Ajax zu lösen, alles funktioniert gut außer Sitzung löschen.

Ich poste meinen Code für Clearing-Session-Variable, bitte weisen Sie auf meinen Fehler.

jQuery-Code:

$.ajax 
        ({ 
         type: "POST", 
         url: "SubmitReview.php", 
         data: dataString, 
         cache: false, 

         success: function(response) 
         { 
          $.fn.destroySession(); 
          $('body').animate({scrollTop:0}, 500); 
          $('body').children(':not(div.ErrorMessageContainer)').fadeTo(500, 0.1); 
          $('div.ErrorMessageContainer').html(response).fadeIn(500).delay(5000).fadeOut(500); 
          setTimeout(function() 
          { 
           $('body').children(':not(div.ErrorMessageContainer)').fadeTo(500, 1); 
          }, 5400); 
          setTimeout(function() 
          { 
           window.location.href = "Thanks.php"; 
          }, 5600); 
         } 
        }); 

$.fn.destroySession = function() 
      { 
       $.post("Destroy.php"); 
      } 

destroy.php:

<?php 

if(isset($_SESSION['MN'])) 
{ 
    $_SESSION['MN'] = array(); 
    unset($_SESSION['MN']); 
} 

?> 
+0

Sitzungen und Ajax manchmal Kombination macht es so, dass Sitzung nicht funktioniert. Wenn Sie Ajax verwenden, übergeben Sie den Parameter anstelle der Sitzung. – frosty

+3

Sitzung gestartet? plus '$ .post (" Destroy.php ");' und 'destroy.php' sind zwei verschiedene Tiere auf einem NIX-System. –

+0

@ Fred-ii-Arbeitete wie ein Zauberer Herr .... Vielen Dank .... Was ich dachte ist, dass wenn ich Sitzung Clearing dann warum wieder Sitzung beginnen .... aber Ihre Lösung hat mir geholfen. .... Vielen Dank Tonnen .... –

Antwort

1

Wie in den Kommentaren erwähnt, haben Sie die Sitzung nicht gestartet und müssen sich in allen Dateien mit Sitzungen befinden.

Daher fügt session_start(); an der Spitze und unter Ihrer Öffnung PHP-Tag.

Referenz:

hinzufügen error reporting zum Anfang der Datei (en), die Fehler finden helfen.

<?php 
error_reporting(E_ALL); 
ini_set('display_errors', 1); 

// Then the rest of your code 

Nebenbei bemerkt: angezeigte Fehler sollten nur in Staging durchgeführt werden, und nie Produktion.


„warum wieder starten Sitzung“ - Da wird session_start(); in der Datei befinden erforderlich, obwohl Sie es unscharf zu schalten wollen (das ist nur, wie sie es bei PHP.net gebaut).

<?php 
session_start(); 

if(isset($_SESSION['MN'])) 
{ 
    $_SESSION['MN'] = array(); 
    unset($_SESSION['MN']); 
} 
+0

@luweiqi hehe danke für den Tippfehler. Ich tippe mal ein bisschen zu schnell. Meine Finger bekommen alle * lkasdfkfdakdsdfjajsd * lol. –

+0

Gern geschehen;) – Panda

+0

@ Fred-ii-Du bist super Sir ... räumte meine Zweifel ... wieder ** Tonnen von Dankeschön ** ...... –

0

Put session_start() auf der ersten Linie.

+0

..... Vielen Dank Sir .... Ich behalte das im Hinterkopf .... –