2012-03-23 16 views
3

Ich habe eine Reihe von Artikeln über die Verwendung von Sitzungen gefunden. Von dem, was ich in der Lage gewesen bin zu finden, ist der beste Weg, eine Init-Aktion hinzuzufügen. Ich habe diesen Artikel http://devondev.com/2012/02/03/using-the-php-session-in-wordpress/Wordpress-Sitzung Probleme

verfolgt, aber ich muss etwas verpassen. Jedes Mal, wenn ich die Seite mit meinem Plugin anrufe gibt es keine Sitzungs-ID

Fehle ich etwas?

Dank für jede Hilfe

add_action('init', 'my_GB_StartSession', 1); 
add_action('wp_logout', 'my_GB_myEndSession'); 
add_action('wp_login', 'my_GB_myEndSession'); 
if (!function_exists('my_GB_StartSession')) { 
    function my_GB_StartSession() { 
     if(!session_id()) { 
      errorLog("session starting\n"); 
      session_start(); 
     } 
    } 
} 
function UnitNet_GB_myEndSession() { 
    session_destroy(); 
} 
+0

Sie irgendwelche Fehler i log Ihre PHP-Fehler zu bekommen? "errorLog (" Sitzung beginnt \ n ");" sollte es nicht error_log sein ('session starting \ n'); ? – ninja

+0

Nein, ich bekomme keine Fehler. Das errorLog ist eine Funktion in meinem Zeug und ich bekomme die Sitzung jedes Mal in meiner Protokolldatei – randy

+0

Aufruf session_start setzt die $ _SESSION global, also, wenn Sie es aufrufen, bevor wp-settings ausgeführt wird und register_globals gesetzt ist verlieren Sie Ihre Sitzung Variablen. –

Antwort

0

versuchen, diese und fügen Sie zu Ihrem Thema des function.php:

add_action('init', 'myStartSession', 1); 
add_action('wp_logout', 'myEndSession'); 
add_action('wp_login', 'myEndSession'); 

    function myStartSession() { 
if(!session_id()) { 
    session_start(); 
    } 
    } 

function myEndSession() { 
session_destroy(); 
} 

Nun ist die Sitzung liegt bei Ihnen, wie Sie in Ihrem Code verwenden möchten:

$_SESSION['myKey'] = "Some data I need later"; 

if(isset($_SESSION['myKey'])) { 
$value = $_SESSION['myKey']; 
    } else { 
$value = ''; 
    } 

Oder diese vor den wp-Einstellungen zu wp-config.php hinzufügen (zum Beispiel oben auf der wp-config.php)

if (!session_id()) 
session_start();