kostenloser Webspace werbefrei: lima-city


Ajax Request - Sessions

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    profilezz

    profilezz hat kostenlosen Webspace.

    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!)
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. 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
  4. Autor dieses Themas

    profilezz

    profilezz hat kostenlosen Webspace.

    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!
  5. 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>
  6. Autor dieses Themas

    profilezz

    profilezz hat kostenlosen Webspace.

    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
  7. 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>";
    ?>
  8. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!