Visualizzazione risultati 1 fino 11 di 11

Discussione: [php]Nascondere i parametri di $_GET

  1. #1
    Guest

    Predefinito [php]Nascondere i parametri di $_GET

    Forse il titolo non è esaustivo. Vi espongo il caso:

    dispongo di una index.php e di un menu.php e di un content.php.
    La menu e content sono incluse nella index.

    Ora il mio obiettivo è passare delle variabili, che sono meta-tags ad esempio alla index attraverso i links.

    Uso il metodo $_GET per farlo.

    Ad esempio in menu ho:
    Codice HTML:
    <li><a href="index.php?page=content.php&amp;title=TITOLO%20PAGINA&amp;keys=PAROLA1%20PAROLA2%20PAROLA3">Link</a></li>
    E in index prendo queste variabili e le associo in questo modo:
    Codice HTML:
    <?  
    $metatitle = $_GET['title'];  
    if (is_null($metatitle)) $metatitle='TITOLO PAGINA DEFAULT';  
    $metakeys = $_GET['keys'];  
    if (is_null($metakeys)) $metakeys='CHIAVI DEFAULT';  
    print '<meta name="keywords" content="'.$metakeys.'" />';    
    print '<title>'.$metatitle.'</title>';  
    ?>
    E' possibile mandare queste variabili senza renderle visibili? In modo che al posto di avere:
    Codice HTML:
    <li><a href="index.php?page=content.php&amp;title=TITOLO%20PAGINA&amp;keys=PAROLA1%20PAROLA2%20PAROLA3">Link</a></li>
    Io abbia:
    Codice HTML:
    <li><a href="index.php?page=content.php">Link</a></li>
    So pochissimo di php, quindi se è possibile, una spiegazione chiara. Ho letto che $_POST manda parametri hidden, ma io non voglio usare forms di sorta.

  2. #2
    Guest

    Predefinito

    Potrei sbagliarmi di grosso ma se non erro i paramatri che passi con $_GET non li puoi nascondere nell'url..

    ciao
    BaD_TuX

  3. #3
    Guest

    Predefinito

    se non vuoi usare $_POST poptresti usare dei cookies o delle varibili di sessione:
    http://it.php.net/manual/it/function.setcookie.php
    http://it.php.net/manual/it/ref.session.php
    (se hai bisogno di qualche spiegazione chiedi pure...)

  4. #4
    Guest

    Predefinito

    Ma se voglio usare $_post, come devo fare senza forms?


    Oppure esiste un modo per cryptare le informazioni che sono all'interno dell'URL?

  5. #5
    Guest

    Predefinito

    prova cosi:
    Codice HTML:
    <form action="index.php?page=content.php" method="post" name="form1">
    <input type="hidden" name="title" value="TITOLO PAGINA">
    <input type="hidden" name="keys" value="KEY1, KEY2, KEY3">
    </form>
    nel menu:

    Codice HTML:
    <li><a href="#" onclick="document.form1.submit()">Link</a></li>
    nella index:

    Codice PHP:
    <?
    $metatitle
    = ( isset($_POST['title']) ) ? $_POST['title'] : 'TITOLO DI DEFAULT';
    $metakeys = ( isset($_POST['keys'] ) ? $_POST['keys'] : 'KEY DI DEFAULT';

    print
    '<meta name="keywords" content="'.$metakeys.'" />';
    print
    '<title>'.$metatitle.'</title>';
    ?>

  6. #6
    Guest

    Predefinito

    Ti posso dire che ti amo????? Scherzo lol. Grazie mille per l'aiuto a tutti!!!

  7. #7
    Guest

    Predefinito

    Avevo letto nel primo post che non avresti usato dei forms per la soluzione.. ma vedo che hai cambiato idea :)

    Ad ogni modo,
    esulando un momento dalla specifica richiesta di soluzione (ad un meccanismo che hai pensato tu)... io avrei qualche dubbio che sia una buona idea.
    Mi spiego meglio..
    mi sembra assurdo che sia l'UTENTE, navigando sul sito, a inviare al server le informazioni di COME è fatto il tuo sito e che titolo/contenuti ha.. mi sembra fuori luogo.
    perché per esempio io potrei sul MIO sito, per dire, creare un form che posti delle informazioni false e infamanti riguardo il TUO sito e il bello è che nel titolo etc si vedrebbe sul TUO sito quel che ho deciso IO. Per esempio bestemmie, oscenità, frasi contrarie al tuo pensiero e compagnia bella. (già questo penso ti faccia riflettere)
    e comunque non sarebbe una buiona organizzazione centralizzata in ogni modo.

    Segue il mio consiglio:
    nel menu di navigazione devi soltanto indicare un indice (0, 1, ..) o una chiave associativa ("home", "links", ..) e poi LATO SERVER associare a queste chiavi tutto un complesso di informazioni (titoli, descrizioni, keyword, contenuti, etc..) tutte scritte in un unico punto, comodamente modificabile all'occorrenza dove hai un piano generale del tuo sito e la sua navigazione.
    ciao


    EDIT:
    Ecco una prova pratica di quel che potrei scrivere sul tuo sito dal mio:
    http://nospam.altervista.org/tabboz_test.html

    clic sul link e poi controlla il titolo sulla finestra del browser
    Ultima modifica di NoSpam : 17-06-2006 alle ore 12.12.09

  8. #8
    Guest

    Predefinito

    Citazione Originalmente inviato da NoSpam
    Segue il mio consiglio:
    nel menu di navigazione devi soltanto indicare un indice (0, 1, ..) o una chiave associativa ("home", "links", ..) e poi LATO SERVER associare a queste chiavi tutto un complesso di informazioni (titoli, descrizioni, keyword, contenuti, etc..) tutte scritte in un unico punto, comodamente modificabile all'occorrenza dove hai un piano generale del tuo sito e la sua navigazione.
    ciao


    EDIT:
    Ecco una prova pratica di quel che potrei scrivere sul tuo sito dal mio:
    http://nospam.altervista.org/tabboz_test.html

    clic sul link e poi controlla il titolo sulla finestra del browser
    Si lo so, questo è un problema a cui ho pensato, anche se l'utente in questione non ha un cavolo da fare. Tuttavia mi spieghi meglio come dovrei procedere? Ovvero come associare ad ogni pagina queste informazioni senza che lo script risulti pesante?

  9. #9
    Guest

    Predefinito

    Oltretutto navigando nel sito tramite submit di form renderesti INACCESSIBILE il tuo sito ai motori di ricerca e questo già da solo dovrebbe convincere a cambiare metodo.

    molto semplice:

    nei link di navigazione vari del tuo sito metti qualcosa come:
    <li><a href="/?page=uno">Pag 1</a></li>
    <li><a href="/?page=due">Pag 2</a></li>

    e in un include di configurazione base metti le associazioni chiave-> contenuti per es:

    $mappa = array(
    'uno' => array('Pag 1', 'pag1.php', 'key1 key2 ...'),
    'due' => array('Pag 2', 'pag2.php', 'keya keyb ...')
    );

    in modo tale che poi quando vuoi reperire una informazione in base alla pag. , per esempio il titolo di pagina uno, fai:
    $mappa['uno'][0]

    dunque più genericamente nel codice html comune a tutti fai:
    <title><?= $mappa[ $pag ][0] ?></title>

    dove $pag è il parametro passato nei link di navigazione ( ?page=uno ):
    $pag = $_REQUEST['page'];


    edit:
    ovviamente per ogni pagina, ad ogni riga del genere dell'array $mappa:
    array('Pag 1', 'pag1.php', 'key1 key2 ...')

    metterai ad ogni posizione (0, 1, 2) delle informazioni precise per es.
    0 = titolo
    1 = pagina php con contenuto centrale
    2 = keywords
    etc... metti tanti item nell'array per quante informazioni ciascuna pagina deve avere.
    Pianifica bene la cosa e poi parti per tutto il sito.
    Ultima modifica di NoSpam : 17-06-2006 alle ore 12.38.54

  10. #10
    Guest

    Predefinito

    Non c'era bisogno dell'edit, avevo capito. Ma potevi dirmelo subito NoSpam che volevi sposarmi XD. Grazie mille ho fatto come hai detto. ^_____________^
    E' anche più comodo per coloro che mi devono aiutare nei contenuti. Thanks!

  11. #11
    Guest

    Predefinito

    Di niente...
    Poi ovviamente se ti va di (o meglio, se hai AC per..) attivare il mod_rewrite puoi rendere la cosa ancora più "liscia" senza parametri in querystring, ma qualcosa tipo:
    /cartella/pag_uno.html
    dove la stringa "uno" viene estrapolata e girata all'index php come parametro per la chiave associativa. E vai di lusso.
    ciao

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •