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

    verificare se mi trovo in una data pagina

    Salve, ho una pagina php (Casella.php) che includo in varie pagine del mio sito.

    vorrei fare in modo che il file casella.php visualizasse per esempio un echo diverso a seconda della pagina che lo include.

    esempio se viene incluso in index.php vorrei "sputasse fuori" un "sei nell'home page"

    si puo' fare ?

    grassie mille
    ciaoz

  2. #2
    allora, se utilizzi un database puoi crearti una tabella con associazione Nome Pagina - Nome visualizzato,

    successivamente ad ogni pagina

    $pagina=$_SERVER['HTTP_REFERER'];

    che restituisce l'intero percorso della pagina, da questo recuperi il nome della pagina e fai la query per recuperare il nome da visualizzare...

    se volessi ottimizzare il tutto, potresti caricare una sola volta il contenuto della tabella pagine, creando un array di sessione associativo, quando ottieni il nome della pagina allora visualizzi $mio_array['nomepagina'];

    se qualcosa non ti è chiaro non esitare a chiedere...

  3. #3
    ok tutto perfetto, sulla carta oserei dire geniale. in che senso il fatto di caricare tutto su array ottimizzerebbe la cosa? non verrebbe comunque ripopolato ad ogni nuova inclusione ?

  4. #4
    allora:

    procedendo normalmente dovresti effettuare una query ogni volta che cambi pagina per ottenere la descrizione che hai dato a quest'ultima, se invece vuoi ottimizzare il tutto puoi procedere in questo modo:

    tabella mysql con due campi NomePagina DescrizionePagina

    io normalmente utilizzo un file (dove tengo le funzioni comuni) che includo in tutte le pagine



    ora realizzi due funzioni

    function get_nome (nomepagina) {
    if (!isset($_SESSION['nomepagine']) {
    get_array_nomi();
    }
    return $_SESSION['nomepagine'][nomepagina];
    }

    function get_array_nomi() {
    $pagine=array();
    $res=mysql_query("SELECT * FROM tabella");
    while ($dati=mysql_fetch_array($res)) {
    $pagine[$dati['NomePagina']]=$dati['DescrizionePagina'];
    }
    $_SESSION['nomepagine']=$pagine;
    }


    La logica dovrebbe essere chiara... la prima volta che visualizzano una qualsiasi pagina richiami la funzione get_nome, il sistema si accorge che $_session['nomepagina'] non è settato e richiama la funzione get_array_nomi, le volte successive, invece, la funzione si accorge che l'array di Sessione è settato e quindi restituisce il valore senza eseguire nessuna query...

    Può essere che c'è qualche errore nel codice perchè l'ho buttata giù così... però penso che la logica sia chiara.

    ciao

  5. #5
    an ok un array di sessione giusto mi sfuggiva questo.

    ci sono pero dei problemini. per esempio questo sistema ($_SERVER['HTTP_REFERER'] traccia le pagine da cui si proviene e non quella che include il file in questione . pertanto a livello pratico ci sono parecchi casi in cui la pagina non fa esattamente quello che dovrebbe fare

  6. #6
    sinceramente non ho capito...

    se ti trovi su index.php

    ($_SERVER['HTTP_REFERER'] restituisce index.php non capisco dove sta il problema... spiegati meglio...

  7. #7
    no, non proprio restituisce la pagina da cui sono giunto in quella.

    ho uppato nel sito www.italianraiders.com l'esempio con il tuo codice diciamo solamente che ho messo un semplice
    $pagina=$_SERVER['HTTP_REFERER'];
    echo $pagina;


    intanto se digiti direttamente l'url nella barra del browser l'echo non stamperà nulla.

    prova poi per esempio a cliccare da qualche parte giusto per cambiar pagina e vedrai che l'echo stampa esattamente la pagina di provenienza non quella d'arrivo

  8. #8
    hai ragione!!

    scusami...

    prova con uno di questi due facendo delle prove in diverse pagine

    $_SERVER["REQUEST_URI"]
    $_SERVER["SCRIPT_NAME"]


  9. #9
    bella li ho risolto grazie a request_uri ..

    grazie mille ^_^

  10. #10

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.