Ajax Request - Sessions
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
abfrage
aufruf
code
date
file
folgenden test
folgendes code
funktionieren
geladenen datei
header
http
klappen
leute
message
problem
session
system
target
test
url
-
Hallo Leute,
ich hab das Problem, das ich ein File per AJAX aufrufe, diese File muss aber die SESSION des Users kenne, um Session Variablen auszulesen.
Lokal auf meinem PC funktioniert das ganze System einwandfrei, hier auf lima city jedoch überhaupt nicht.
seltsam ist jedoch folgendes:
$ID = $_POST['to']; $Message = clean($_POST['Message'],true); $Date = time(); $vID = $_SESSION['ID'];
in der varialbe $vID ist der Wert aus $_POST['to'];
Warum? und wie kriege ich mein PHP-Skript dazu die Session zu erkennen. (mit Session ID übergeben is auch nix, hab ich auch schon getestet!) -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Du musst schon in der durch AJAX geladenen Datei ein session_start() machen http://de2.php.net/manual/de/function.session-start.php
Dann sollte es eigentlich klappen mit der $_SESSION
Ciao,
Franco -
session_start() ist logischerweiße gemacht ;)
sonst würds warscheinlich auf meinem lokalen server auch nicht funktionieren ;)
es geht hier drum, dases nur hier auf lima nicht funktioniert! -
Sessions funktionieren fast immer über Cookies. Diese Werden bei xhr Requests genauso wie bei normalen Seitenaufrufen mitgesendet.
Falls die Session nicht über Cookies geht, häng an den Request noch die SID an:
<a href="ajax.php?<?php echo SID; ?>">Mein Link</a>
-
es sollte eigentlich über cokies gehen =/
die lösung mit der SID hätt ich schon versucht, leider vergebens
auch mit session_start($sessionvar) is nix gegangen, ich versteh nur ned warum -
Ich hab jetzt mal folgenden Test gemacht:
Eine kleine Ajax Abfrage in test_01.php die test_02.php aufruft.
zu Bewundern auf http://franco-bez.4lima.de/test_01.php
Die $_SESSION kommt wunderbar rüber.
Hier der Code:
test_01.php
<?php session_start(); $_SESSION['test']='Hallo'; $_SESSION['test2']='Hallo'; ?> <script type="text/javascript"> <!-- var xmlHttp; function createXMLHttpRequestObject() { if(window.ActiveXObject){ try{ xmlHttp = new ActiveXObject("Microsoft.XMLHTTP"); } catch(e){ xmlHttp = false; } } else{ try{ xmlHttp = new XMLHttpRequest(); } catch(e){ xmlHttp = false; } } if(!xmlHttp) alert("Fehler beim erzeugen des XMLHttpRequest Objekts"); else return xmlHttp; } function process() { if(xmlHttp.readyState == 4 || xmlHttp.readyState == 0){ var teststring="testval=hallo"; xmlHttp.open("POST","test_02.php",true); xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded"); // WICHTIG FUER POST !!! xmlHttp.onreadystatechange = handleServerResponse; xmlHttp.send(teststring); } else setTimeout('process()',1000); } function handleServerResponse(){ if(xmlHttp.readyState == 4){ if(xmlHttp.status == 200){ xmlResponse = xmlHttp.responseXML; xmlDocumentElement = xmlResponse.documentElement; hrgData = xmlDocumentElement.firstChild.data; document.getElementById("Target").innerHTML = '<pre>'+hrgData+'</pre>'; // setTimeout('process()',1000); } else{ alert("Problem bei der Server Kommunikation: "+xmlHttp.statusText); } } } createXMLHttpRequestObject(); --> </script> <pre> <?php var_dump($_SESSION); ?> </pre> <form name="testform" method="post"> <div id="Target" name="Target" > Ajax - Test -Target </div> <br/> <input type="button" value="Test" onclick="process();"/> </form>
test_02.php
<?php session_start(); header('Content-Type: text/xml'); echo '<?xml version="1.0" encoding="UTF-8" standalone="yes"?>'; echo "<response>"; var_dump($_SESSION); $testval = $_POST['testval']; echo "testval=".$testval; echo "</response>"; ?>
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage