Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2008
    Messaggi
    5

    [ajax] problema referer dopo invio form

    salve, ho una pagina php cn qst codice:

    pagina form.php
    codice:
    <?php
    
    echo $_SERVER['HTTP_REFERER'].'
    
    ';
    
    if($_POST['usr'] == "a" && $_POST['psw'] == "b" && $_SERVER['HTTP_REFERER'] == "ciao"){
    	echo 'ok';
    }
    else{
    	echo 'fail';
    }
    
    ?>
    poi ho un form+ajax in html così impostato:

    pagina form.html
    codice:
    <script type="text/javascript" language="javascript">
       var http_request = false;
       function makePOSTRequest(url, parameters) {
          http_request = false;
          if (window.XMLHttpRequest) {
             http_request = new XMLHttpRequest();
             if (http_request.overrideMimeType) {
                http_request.overrideMimeType('text/html');
             }
          } else if (window.ActiveXObject) {
             try {
                http_request = new ActiveXObject("Msxml2.XMLHTTP");
             } catch (e) {
                try {
                   http_request = new ActiveXObject("Microsoft.XMLHTTP");
                } catch (e) {}
             }
          }
          if (!http_request) {
             alert('Cannot create XMLHTTP instance');
             return false;
          }
          http_request.onreadystatechange = alertContents;
          http_request.open('POST', url, true);
          http_request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
          http_request.setRequestHeader("Referer", "ciao");
          http_request.setRequestHeader("Content-length", parameters.length);
          http_request.setRequestHeader("Connection", "close");
          http_request.send(parameters);
       }
       function alertContents() {
          if (http_request.readyState == 4) {
             if (http_request.status == 200) {
                result = http_request.responseText;
                document.getElementById('myspan').innerHTML = result;            
             } else {
                alert('There was a problem with the request');
             }
          }
       }
       function get(obj) {
          var poststr = 	"usr="+document.getElementById('usr').value+
    			"&psw="+document.getElementById('psw').value;
          makePOSTRequest('form.php', poststr);
       }
    </script>
    
    <form action="javascript:get(document.getElementById('myform'))">
    <input name="usr" id="usr">
    <input name="psw" id="psw">
    <input type="submit">
    </form>
    
    
    
    Server-Response:
    
    <hr>
    <span name="myspan" id="myspan"></span>
    <hr>
    lo scopo è di leggere l'ok dal php ma qst nn accade xke il referer inviato è quello reale ovvero http://localhost/ajax/form.html

    come fare x inviare un referer (ignorando quello del browser) ke imposto io???

  2. #2
    ehm, posso sapere perché devi inviare il Referer? Se ti serve per controllare da dove viene l'accesso, tranquillizzati, Ajax funziona solo per chiamate locali, ti basta quindi controllare che venga dalla pagina con la form, se ti serve per l'url dove tornare indietro, anziché passarlo come referer perché non passi l'url in GET con usr e psw?

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2008
    Messaggi
    5
    spiego il punto..

    la pagina ke kiamo NON è la mia e fa un controllo sul referer (ovvero vuole ke deriva dal suo dominio ovviamente).. quindi nn so se sia possibile kiamare la pagina (ke nn è mia) passando il referer come se la kiamasse lo stesso dominio dove si trova la pagina

  4. #4
    Beh, non con AJAX, puoi fare solo chiamate locali, comunque mi è venuto in mente che il referer potrebbe non essere accettato perché non è un url valido.

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 © 2026 vBulletin Solutions, Inc. All rights reserved.