secondo me è un baco nel php però ditemi se sbaglio: ecco il codice che genera l'errore:
file test.php (nella cartella /php_test/)
Codice PHP:
<?php
session_start();
?>
<html><head>
<link rel="shortcut icon" href="favicon.ico"/>
<script language="JavaScript" type="text/javascript">
function update(url,request){
var objHTTP, strResult;
if(window.XMLHttpRequest){
objHTTP = new XMLHttpRequest();
}else if (window.ActiveXObject) {
objHTTP = new ActiveXObject("Microsoft.XMLHTTP");
}
objHTTP.open('POST',url,false);
objHTTP.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
objHTTP.send(request);
return strResult=objHTTP.responseText;
}
function esegui(){
url="http://<?=$_SERVER['SERVER_NAME']?>/php_test/test1.php";
request="";
document.getElementById('result').innerHTML=update(url,request);
}
</script>
</head><body>
<?
$string = $_SERVER['REQUEST_URI']."|".$_SERVER['SCRIPT_NAME'];//preg_replace("/\?.*/","",$_SERVER["REQUEST_URI"]);
//$_SERVER['REQUEST_URI'];
$_SESSION['variabile']=$string;
echo "[b]variabile:[/b] ".$_SESSION['variabile'];
?>
<input type="button" value="cliccami" onclick="esegui()"/>
Risultato richiesta<hr/>
<div id="result" style="border:1px solid black">null</div>
</body></html>
file test1.php (nella cartella /php_test/)
Codice PHP:
<?php
session_start();
echo "risultato della variabile in sessione:".$_SESSION['variabile'];
?>
il problema sta nel fatto che nel primo codice è presente la richiesta della favicon; questo genera la modifica della variabile REQUEST_URI da quella effettiva della pagina a quella effettuata per la favicon... il baco non si mostra se si visualizza una nuova pagina ma solo se si fa una http_request e si carica la variabile da una sessione.
il problema nasce dal fatto che desidero salvare nella sessione una variabile SEZIONE generata dall'url... solo che richiedendo la variabile da sessione magicamente il valore contenuto è quello della favicon (assurdo)
un esempio di output:
variabile: /php_test/test.php/hjdskjfbk/sbfksb/dsjh|/php_test/test.php
e quello ottenuto con la http_request:
variabile: /php_test/test.php/hjdskjfbk/sbfksb/favicon.ico|/php_test/test.php