2013-04-20 4 views
16

: Ich bin ein Plugin zu schreiben ..ich eine testplugin.php-Datei und eine ajax.php Datei habe ..Wie Sitzung in Wordpress in Plugin-Entwicklung verwenden

Mein Code in testplugin.php ist

global $session; 

print_r($abc); //$abc is array of my data .. 

$session['arrayImg']=$abc; //saving data in session 

echo $session['arrayImg']; //displayin "Array" 

Und mein ajax.php besteht aus folgenden Code

global $session; 

$abc = $session['arrayImg']; 

print_r ("abs== ".$abc); //displayin "abs== Array" 

Und wenn Gebrauch session_start();

I folgende Fehlermeldung erhält

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent 

Ich möchte nur von einer Datei von meinem Plugin in eine anderen Datei Array von Daten senden ...

+1

starten Sie die Sitzung in Init-Hook –

Antwort

40

// Auf dem Plugin oder Themen functions.php

function register_session(){ 
    if(!session_id()) 
     session_start(); 
} 
add_action('init','register_session'); 

// Um ​​eine SESSION Datensatz -

$_SESSION['arrayImg'] = $abc; 

// Um ​​die Daten auf ajax-Haken Funktion zu erhalten -

+0

Willkommen bei StackOverflow, @Shazzad. – jcwenger

+2

Lets haben eine Party :) @jcwenger – Shazzad

+1

Wie die Sitzung zu zerstören, wenn nicht mehr verwendet wird? –

1

In meinem Fall habe ich diese Session-Variable in Plugin-Aktivierung auch verwendet. Also etwas Unorthodoxes getan. Anstatt meinen session_start in einem Hook zu definieren, habe ich ihn als erste Zeile in meinem Plugin erstellt :).

Um mit Plugins zu hacken, sobald Wordpress scannt durch meine Datei initiiert es die Sitzung.

Am Ende zerstöre ich nicht die Sitzung auf Benutzerabmeldung. Ich habe einfach meine Variable deaktiviert. Dies ist nur für den Fall, wenn ein anderes Plugin auch Sitzung verwendet. Wenn ich die Session zerstöre, kann das andere Plugins beeinflussen.

Prost.

Verwandte Themen