Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    [BUG] REQUEST_URI, favicon e javascript

    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
    Se il destino mi è avverso, peggio per lui!

  2. #2
    up
    Se il destino mi è avverso, peggio per lui!

  3. #3
    ancora più semplice da riprodurre...

    il codice è il seguente:
    Codice PHP:
    <?php
        session_start
    ();
    ?>
    <html><head>
    <link rel="shortcut icon" href="./favicons.ico"/>
    </head><body>
    <?
        $string 
    $_SERVER['REQUEST_URI'];
        
    $f=fopen("temp",'w');
        
    fwrite($f,$string);
        
    fclose($f);
        
    $_SESSION['variabile']=$string;
        echo 
    "[b]variabile:[/b] ".$_SESSION['variabile'];
    ?>
    </body></html>
    usando come url per la richiesta per esempio

    Codice PHP:
     /php_test/test.php/ciao/ciao/ciao 
    nella pagina viene visualizzato

    Codice PHP:
     /php_test/test.php/ciao/ciao/ciao 
    mentre nel file viene scritto

    Codice PHP:
     /php_test/test.php/favicons.ico 
    qualcuno mi suggerisce un workaround?
    Se il destino mi è avverso, peggio per lui!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.