Visualizzazione risultati 1 fino 11 di 11

Discussione: Url non trova la classe css

  1. #1
    Guest

    Predefinito Url non trova la classe css

    Quando il link "Home" è selezionato appare con lo sfondo colorato giallo (con la classe bottone1a), se però a questo codice tolgo index.php lo sfondo non appare più, come mai?

    Codice PHP:
    <?php
    $links
    = array('http://miosito.it/index.php' => 'Home');
    $pagina = basename($_SERVER['PHP_SELF']);
    foreach(
    $links as $link => $text) {
    if(
    basename($link) == $pagina) {
    echo
    '<div class="bottone1a">' . $text . '</div>';
    }
    else
    {
    echo
    '<a class="bottone1" href="' . $link . '">' . $text . '</a>';
    }
    }
    ...
    Ultima modifica di photoman : 27-06-2013 alle ore 14.16.30

  2. #2
    karl94 non è connesso Staff AV
    Data registrazione
    03-10-2005
    Messaggi
    17,745

    Predefinito

    Mi sembra banale: la questione è che quando viene visualizzata la pagina all'indirizzo http://miosito.it/ il server Apache cerca la risorsa da fornire e le varie direttive suggeriscono di eseguire e inviare il risultato dell'esecuzione dello script PHP presente nel file index.php. Quando questo viene interpretato, l'espressione basename($_SERVER['PHP_SELF']) assume per valore la stringa index.php e non /.

  3. #3
    Guest

    Predefinito

    Citazione Originalmente inviato da karl94 Visualizza messaggio
    Mi sembra banale: la questione è che quando viene visualizzata la pagina all'indirizzo http://miosito.it/ il server Apache cerca la risorsa da fornire e le varie direttive suggeriscono di eseguire e inviare il risultato dell'esecuzione dello script PHP presente nel file index.php. Quando questo viene interpretato, l'espressione basename($_SERVER['PHP_SELF']) assume per valore la stringa index.php e non /.
    La tua è una spiegazione tecnica, ma che devo fare?

    Non è che index.php mi dia fastidio, ma è un fattore estetico, vedo siti che nella home hanno solo l'url senza index.php.

  4. #4
    karl94 non è connesso Staff AV
    Data registrazione
    03-10-2005
    Messaggi
    17,745

    Predefinito

    Citazione Originalmente inviato da photoman Visualizza messaggio
    La tua è una spiegazione tecnica, ma che devo fare?
    Ma sei tu che hai chiesto il perché!

    Comunque, prova a sostituire PHP_SELF con REQUEST_URI.

  5. #5
    Guest

    Predefinito

    Citazione Originalmente inviato da karl94 Visualizza messaggio
    Ma sei tu che hai chiesto il perché!

    Comunque, prova a sostituire PHP_SELF con REQUEST_URI.
    Uguale, per far apparire lo sfondo giallo devo sempre mettere index.php

  6. #6
    karl94 non è connesso Staff AV
    Data registrazione
    03-10-2005
    Messaggi
    17,745

    Predefinito

    Beh, c'è anche il fatto che usi la funzione basename con gli URL, mentre dovrebbe essere usata per i soli percorsi. Io ti consiglierei di fare così:
    Codice PHP:
    $links = array('/' => 'Home', '/Indirizzo assoluto1' => 'Pagina1', '/Indirizzo assoluto2' => 'Pagina2');
    foreach(
    $links as $link => $text){
    if(
    $link == $_SERVER['REQUEST_URI']){
    echo
    '<div class="bottone1a">' . $text . '</div>';
    }else{
    echo
    '<a class="bottone1" href="' . $link . '">' . $text . '</a>';
    }
    }

  7. #7
    Guest

    Predefinito

    Citazione Originalmente inviato da karl94 Visualizza messaggio
    Beh, c'è anche il fatto che usi la funzione basename con gli URL, mentre dovrebbe essere usata per i soli percorsi. Io ti consiglierei di fare così:
    Codice PHP:
    $links = array('/' => 'Home', '/Indirizzo assoluto1' => 'Pagina1', '/Indirizzo assoluto2' => 'Pagina2');
    foreach(
    $links as $link => $text){
    if(
    $link == $_SERVER['REQUEST_URI']){
    echo
    '<div class="bottone1a">' . $text . '</div>';
    }else{
    echo
    '<a class="bottone1" href="' . $link . '">' . $text . '</a>';
    }
    }
    Non ho capito il tuo codice.

    Per gli altri link come questo sotto, va tutto bene e appare lo sfondo giallo proprio perché l'url ha la parte finale, es:

    Codice PHP:
    $links = array('http://miosito/pagina2' => 'Pagina2');
    $pagina = basename($_SERVER['PHP_SELF']);
    foreach(
    $links as $link => $text) {
    if(
    basename($link) == $pagina) {
    echo
    '<div class="bottone3a">' . $text . '</div>';
    }
    else
    {
    echo
    '<a class="bottone3" href="' . $link . '">' . $text . '</a>';
    }
    }
    Ultima modifica di photoman : 27-06-2013 alle ore 20.44.16

  8. #8
    karl94 non è connesso Staff AV
    Data registrazione
    03-10-2005
    Messaggi
    17,745

    Predefinito

    Nel mio codice devi usare URL relativi: non devi ripetere il protocollo e il dominio, ma cominciare con lo slash del percorso del file.

  9. #9
    Guest

    Predefinito

    Citazione Originalmente inviato da karl94 Visualizza messaggio
    Nel mio codice devi usare URL relativi: non devi ripetere il protocollo e il dominio, ma cominciare con lo slash del percorso del file.
    Sono un po' confuso, ti spiego: a me interessa solo il primo codice che ho postato, quello della Home, è solo questo che non mette lo sfondo giallo quando è linkato.

  10. #10
    karl94 non è connesso Staff AV
    Data registrazione
    03-10-2005
    Messaggi
    17,745

    Predefinito

    Io invece ti ho spiegato perché non funziona, che è meglio non usare quel codice così, in quanto non funziona per esempio nel caso della pagina principale, e ti ho consigliato un codice alternativo, con le indicazioni su come usarlo.

  11. #11
    Guest

    Predefinito

    Citazione Originalmente inviato da karl94 Visualizza messaggio
    Io invece ti ho spiegato perché non funziona, che è meglio non usare quel codice così, in quanto non funziona per esempio nel caso della pagina principale, e ti ho consigliato un codice alternativo, con le indicazioni su come usarlo.
    Non si può annidare il codice così perché ogni link ha il suo css




    AGGIUNTA: è una cosa un po' strana: se entro nella Home dal mio menu Preferiti, lo sfondo giallo appare e l'url è senza index.php
    Ultima modifica di photoman : 27-06-2013 alle ore 21.40.13 Motivo: Aggiunta

Regole di scrittura

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