Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1

    Se l'url corrisponde al REFERER

    ciao,

    mettiamo caso che devo fare un controllo del genere:
    Codice PHP:
    if ( $sito == $_SERVER['HTTP_REFERER'] )
    {
          echo 
    'ok';

    dove $sito = 'http://www.sito.ext';
    e $_SERVER['HTTP_REFERER'] sarà (se tutto è ok) lo stesso di $sito.

    il problema sorge quando:
    $sito = 'http://sottodominio.sito.ext/directory1/file.html';
    oppure:
    $sito = 'http://www.sito.ext/directory1/directory2/file8.php';
    e
    quando $_SERVER['HTTP_REFERER'] assume il valore di http://www.sito.ext
    poichè in questo caso il controllo non va a buon fine, mentre dovrebbe andare tutto ok perchè $_SERVER['HTTP_REFERER'] "appartiene" a $sito...

    come posso sviluppare una cosa del genere?


    grazie



  2. #2
    Utente di HTML.it L'avatar di Il_Drugo
    Registrato dal
    May 2006
    Messaggi
    1,220
    Codice PHP:
    <?php

    function get_domain_url($url)
    {
        if(
    substr($url07) !== "http://")
        {
            
    $url "http://".$url;
        }
        
    $a explode("/"$url);
        
    $b explode("."$a[2]);
        return 
    $b[1];
    }

    function 
    get_ext_url($url)
    {
        if(
    substr($url07) !== "http://")
        {
            
    $url "http://".$url;
        }
        
    $a explode("/"$url);
        
    $b explode("."$a[2]);
        return 
    $b[2];
    }

    $sito "http://sottodominio.sito.ext/directory1/file.html";

    $referer 'http://www.sito.ext/directory1/directory2/file8.php';

    if(
    get_domain_url($sito) == get_domain_url($referer) && get_ext_url($sito) == get_ext_url($referer))
    {
        echo 
    "ok";
    }
    else
    {
        echo 
    "no!";
    }
    ?>
    Non so usare le espressioni regolari, quindi questo (per me) è il modo migliore. Controlla e fai dei test per verificare che non ci siano casi particolari che lo fanno incasinare, anche se non dovrebbe.


  3. #3
    grazie...
    è molto buono come script, solo che non fa differenza tra www.sito.ext e www.sito.ext2 (stesso nome ma diversa estensione)...

  4. #4
    Utente di HTML.it L'avatar di Il_Drugo
    Registrato dal
    May 2006
    Messaggi
    1,220
    Avevo dimenticato una piccola modifica...ora trova la differenza anche tra le estensioni.


  5. #5
    perfetto, grazie

  6. #6
    mmm... scusa ancora, ma quella funzione mi dà undefined offset alle seguenti righe:
    return $b[1];
    e
    return $b[2];

    probabilmente dipende dai valori immessi...

  7. #7
    Utente di HTML.it L'avatar di Il_Drugo
    Registrato dal
    May 2006
    Messaggi
    1,220
    Forse hai beccato un caso che non avevo previsto.
    Postami che stringa url gli dai in ingresso...

  8. #8
    $sito = "http://localhost/cartella1/file1.php";

    $referer = "http://localhost/cartella2/file2.php";



  9. #9
    Utente di HTML.it L'avatar di Il_Drugo
    Registrato dal
    May 2006
    Messaggi
    1,220
    No beh...in local host non puo' funzionare in quanto non ha estensione e non esistono domini senza estensioni...infatti il localhost è un dominio "farlocco".

    Provalo online e vedrai che funzia, o se vuoi, finchè sei in localhost, togli la parte dell'if dopo i &&.


  10. #10
    c'è ancora un altro piccolo problema...

    se l'url è: http://sottodominio.dominio.ext
    e il referer è: http://www.sottodominio.dominio.ext

    lo script mi dice che nn è lo stesso sito

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.