Ajax und Session() übergabe

xamunrax

Erfahrenes Mitglied
Hallo,
ich weiss dieses Thema ist schon oft besprochen worden, jedoch habe ich trotz sorgfältiger Suche keine brauchbaren Ergebnisse gefunden!

Also ich habe ein Shop-System (basierend auf xt:Commerce) nun möchte ich einige Scripte mit Ajax realisieren. Mein Problem ist das die SessionID zwar übergeben wird jedoch nicht die darin befindlichen Variablen übergeben werden.

Auszüge aus dem Code:

Index.php
Code:
<?php 
  ...
  session_start();
  ...
  $_SESSION['test'] = "123";
  ...
?>

mit hilfe von jQuery öffne ich nun einen HTTP_Request:
Code:
function get_XXX(SESid) {
// in der SESid ist die session_id() aus der index.php gespeichert!
$.ajax({
	  type: "GET",
	  async: false,
	  url: "get_xxx.php?sesID="+ SESid,
	  data: "getid=true",
	  success: function(data){
	    ...
	  }
   });
}

so nun die get_xxx.php, ich habe sie zu Testzwecken stark vereinfacht!

Code:
session_start($_GET['sesID']);
echo "1: ";
print_r($_SESSION['test']);
echo "<br>2: ";
print_r($_SESSION);

Die Ausgabe ist:
Code:
1:
2: Array ( [] => [9ee0a723d6f0e48220e60e22bb1e4e18] => )

wie hier ersichtlich ist, übergibt er lediglich die session_id, jedoch nicht meine $_SESSION['test']...
wie immer in PHP wird es sicherlich nur ein dummer Denkfehler sein, jedoch kostet mich dieser jetzt schon etliche Stunden, daher auch mein post hier im Forum.

Vielen Dank im voraus!

Marco
 
Moin,

erstmal: session_start() erwartet keine Parameter
dann: bist du sicher, dass der Name der Session sesID ist?
Wenn du keinen eigenen Namen setzt(session_name()) dann ist das meist ein Standardwert, normalerweise PHPSESSID.

Die richtigen Werte solltest du auf jeden Fall erhalten, wenn du als SESid die PHP-Konstante SID übergibst.
Das liefert einen String a'la sessionname=sessionid
Wenn es nichts liefert, ist auch gut, dann wurde die Session in einem Cookie gespeichert.
 
Danke schonmal, leider funktioniert es noch immer nicht.

Puh... also, den session_name ist XTCsid also versuche ich die Variable mit get_xxx.php?XTCsid=<Session_ID> zu übermitteln, leider gibt er mir genau das selbe Ergebnis wie vorher auch...

Gibt es eine Möglichkeit das senden der Session_ID zu anderen Dateien zu unterbinden?

Ich probiere mich daran schon seit Stunden und komme einfach nicht zu einem gescheiten Ergebnis
 
Gut mein Problem hat sich erledigt, durch das Includen der "application_top.php" (eine xtcommerce Datei), warum und wieso es jetzt genau funktioniert, weiss ich leider immer noch nicht - aber es funktioniert!

Trotzdem nochmals vielen Dank Sven!
 
Das Problem ist folgendes:
Der Callback in AJAX (....function(data)....) er wartet einen einzigen Wert (oder eben einen Array).

Er macht folgendes hintereinander:

data= $_GET['sesID'];
data= "1: ";
data=$_SESSION['test'];
data="<br>2: ";
data=$_SESSION;

Kurz gesagt, er überschreibt immer wieder Data. Du musst statt dessen in PHP ein Array erzeugen, wo alles drin ist und die dann über geben (echo array;) Ich hoffe, ich habe das richtig verstanden :)
 

Neue Beiträge

Zurück