Visualizzazione risultati 1 fino 21 di 21

Discussione: [php] Se la variabile menu in get non è espressa...

  1. #1
    Guest

    Predefinito [php] Se la variabile menu in get non è espressa...

    Ciao a tutti.
    Avrei un piccolo problema con la progettazione di una pagina in php.

    In pratica vorrei usare la funzione include() in cui la pagina da includere viene specificata nell'url (con l' uso della variabile GET). Questo è il codice che ho fatto fino ad ora:

    Codice PHP:
    <?php if($_GET['menu'] == news) {
    include (
    'news.php');
    }
    ?>
    E fin qua tutto ok.
    Ma io vorrei che comparisse la schermata delle news senza la variabile nell'url (index.php?menu=news)... Qualcuno mi può aiutare??

  2. #2
    Guest

    Predefinito

    Comunque vanno messe le " " a news:
    Codice PHP:
    <?php if($_GET['menu'] == "news") { ... } ?>
    ciauu! ^^

  3. #3
    L'avatar di Xsescott
    Xsescott non è connesso AlterGuru
    Data registrazione
    08-02-2004
    Messaggi
    1,413

    Predefinito

    Citazione Originalmente inviato da djpix95 Visualizza messaggio
    Ciao a tutti.
    Avrei un piccolo problema con la progettazione di una pagina in php.

    In pratica vorrei usare la funzione include() in cui la pagina da includere viene specificata nell'url (con l' uso della variabile GET). Questo è il codice che ho fatto fino ad ora:

    Codice PHP:
    <?php if($_GET['menu'] == news) {
    include (
    'news.php');
    }
    ?>
    E fin qua tutto ok.
    Ma io vorrei che comparisse la schermata delle news senza la variabile nell'url (index.php?menu=news)... Qualcuno mi può aiutare??
    se vuoi nascondere le variabili devi usare il modulo mod_rewrite.
    ciao
    "Quando il potere dell'amore supererà l'amore per il potere il mondo conoscerà la pace" Jimmy Hendrix


    [ Richiesta: http://www.unibologna.eu/ ] --> [Risposta: http://www.magazine.unibo.it/Magazin...al_Portale.htm Morale] -->[ http://www.anti-phishing.it/news/art...s.13062007.php ]
    consoliwebsite.altervista.org

  4. #4
    Guest

    Predefinito

    esattamente dove e cm?
    grazie a tutti della risp!

  5. #5
    Guest

    Predefinito

    io non ho capito bene! In poche parole vuoi includere un file in base al valore passato tramite GET no?

  6. #6
    Guest

    Predefinito

    esatto. però vorrei che senza mettere la variabile (http://www.miosito.it/index.php) venga la pagina delle news.
    Ho guardato un po ingiro, e da quello che ho capito c'entra la funzione issent()

  7. #7
    Guest

    Predefinito

    Crei delle condizioni if/else/elseif, dove se GET è vuoto (usa la funziona empty())oppure ha un valore errato mostri la pagina news.

  8. #8
    Guest

    Predefinito

    cioè?? XD

  9. #9
    Guest

    Predefinito

    Codice PHP:
    <?php
    if (empty($_GET['page']) || $_GET['page'] == 'news')
    {
    include(
    'news.php');
    }
    else
    {
    #scrivi quello che vuoi accada se una condizione non restituisce true
    }
    ?>

  10. #10
    programmazioned non è connesso Utente attivo
    Data registrazione
    25-03-2008
    Messaggi
    440

    Predefinito

    Semplifichiamo le cose:
    switch().
    Ciao!
    Ultima modifica di programmazioned : 03-03-2009 alle ore 21.40.36

  11. #11
    Guest

    Predefinito

    Io avrei anche un metodo più veloce, ma se non so quali osno i valori da passare tramite get come faccio?

  12. #12
    programmazioned non è connesso Utente attivo
    Data registrazione
    25-03-2008
    Messaggi
    440

    Predefinito

    Metodo più veloce? :S ... Array associativo?
    Non penso ci siano altre soluzioni, o almeno al momento non mi vengono in mente...comunque occhio alle RFI ;)
    Ciao!
    Ultima modifica di programmazioned : 03-03-2009 alle ore 21.54.31

  13. #13
    Guest

    Predefinito

    Citazione Originalmente inviato da programmazioned Visualizza messaggio
    e comunque occhio alle RFI :)
    Su AV è impossibile che accada!
    Citazione Originalmente inviato da progammazioned Visualizza messaggio
    Dimenticato prima: nel post #9 quell'empty() sarebbe meglio sostituirlo con la negazione di isset() ;)
    Ciao!
    Quale sarebbe la differenza il rusultato è sempre lo stesso

  14. #14
    programmazioned non è connesso Utente attivo
    Data registrazione
    25-03-2008
    Messaggi
    440

    Predefinito

    Citazione Originalmente inviato da nokiagames Visualizza messaggio
    Su AV è impossibile che accada!
    Sì giusto, hai ragione :)
    Su AV c'è solo il rischio di una LFI.


    Quale sarebbe la differenza il rusultato è sempre lo stesso
    In realtà ci sono delle piccole differenze tra isset() ed empty().
    Ad ogni modo avevo già cancellato il suggerimento prima del tuo messaggio, rendendomi conto che nel caso specifico è conveniente verificare anche che la variabile contenga un valore, oltre ad essere impostata.

    Comunque la funzione switch() oltre a semplificarci il tutto, ci permette con l'etichetta "default", di evitare questioni di questo tipo :)

    Ciao!
    Ultima modifica di programmazioned : 03-03-2009 alle ore 22.05.45

  15. #15
    Guest

    Predefinito

    grazie 1000 a tutti! mi avete salvato la vita!

  16. #16
    Guest

    Unhappy

    Citazione Originalmente inviato da biccheddu Visualizza messaggio
    Codice PHP:
    <?php
    if (empty($_GET['page']) || $_GET['page'] == 'news')
    {
    include(
    'news.php');
    }
    else
    {
    #scrivi quello che vuoi accada se una condizione non restituisce true
    }
    ?>
    ottimo, me se ci sono + condizioni... devo fare così?

    Codice PHP:
    <?php
    if (empty($_GET['page']) || $_GET['page'] == 'news')
    {
    include(
    'news.php');
    }
    if(
    $_GET['menu'] == "staff")
    {
    include(
    'staff.php');
    }
    if(
    $_GET['menu'] == "xd")
    {
    include(
    'xd.php');
    }
    else
    {
    include(
    'news.php');
    }
    ?>
    Il problema è che se metto altre cose dopo la stringa staff, in tutte le pagine appaiono le news!!!

  17. #17
    Guest

    Predefinito

    Prova con switch():
    Codice PHP:
    $page = $_GET['page'];
    if(!isset(
    $page)) {
    include(
    "news.php");
    }
    switch(
    $page) {
    case
    "news":
    include(
    "news.php");
    break;
    case
    "staff":
    include(
    "staff.php");
    break;
    case
    "xd":
    include(
    "xd.php");
    break;
    }

  18. #18
    Guest

    Predefinito

    benissimo grazie ;)

    PS: ma il richiamo dell'include tramite get è sicuro? se non lo è, come posso renderlo + sicuro?
    Ultima modifica di djpix95 : 05-04-2009 alle ore 21.14.23

  19. #19
    Guest

    Predefinito

    Non credo che avrai problemi di sicurezza...
    $_GET viene utilizzato solo per specificare l'azione da compiere.

  20. #20
    Guest

    Predefinito

    poi utilizzando la funzione include, si possono includere solo file presenti nello spazio web di dove si esegue lo script, non esterni

    Se proprio vuoi essere sicuro, crea un array con tutte le pagina disponibili, e poi nella condizione ci metti && in_array($:GET['menu'], $array);

    Io ho fatto così nel mio sito, uso un array per le pagine, e in base a quello passato via GEt, se è presente nell'array, includo, mentre se non lo è mostro un die()

  21. #21
    Guest

    Predefinito

    bueno ;)

Regole di scrittura

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