Visualizzazione risultati 1 fino 12 di 12

Discussione: problema php "?"

  1. #1
    nicobattisti non è connesso Neofita
    Data registrazione
    10-04-2013
    Messaggi
    5

    Post problema php "?"

    salve, sono nuovo del forum e di altervista, conosco appena il php, ma quel poco che mi basta per fare quello che mi serve.

    chiedo aiuto perchè ho caricato un paio di pagine, che sono gestite tutte dal l file index.php attraverso la funzione include, o meglio:

    all'apertura del sito si apre una pagina index.php che ha al suo interno,
    1- un include di una pagina menù (cosi se lo modifico automaticamente viene visualizzato il nuovo menù)
    2- un include per il contenuto centrale della pagina (una sorta di frame in html insomma).

    per fare questo devo ovviamente richiamare la pagine con la funzione "?" ovvero per la pagina biografia il link sarà: index.php?pagina=biografia.php ...
    però non funziona poichè viene sempre richiamata la pagina index senza includere "appunto la pagina che viene indicata nel link" (in questo caso biografia.php)

    aggiungo che il tutto mi funzionava correttamente sul mio vecchio sito con dominio.it
    potete aiutarmi a risolvere questo problemino?
    grazie

    nico

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

    Predefinito

    Puoi indicare il codice dello script PHP in questione?

  3. #3
    nicobattisti non è connesso Neofita
    Data registrazione
    10-04-2013
    Messaggi
    5

    Post

    ciao karl94 e grazie per l'interesse,
    lo script è il seguente

    Codice PHP:
    <?php
    if ($pagina == "" ) { $pagina = "home.php" ; }

    include
    "$pagina";
    ?>
    all'interno della pagina index.php vi è un'area vuota con la funzione "include", che và proprio ad includere il risultato della variabile $pagina (che come già detto se vuota carica la home.php
    quindi un semplicissimo include che se trova il campo vuoto nella variabile $pagina, (ovvero all'arrivo sul sito da un sito esterno o da una introduzione) carica la pagina home

    negli altri casi cliccando sul menù si avrà quanto segue

    Codice HTML:
    <li><a href="index.php?pagina=home.php">Home</a> </li>
    <li><a href="index.php?pagina=biografia.php">Biografia</a></li>
    <li><a href="index.php?pagina=video.php">Video</a></li>
    come ripeto sul mio vecchio sito.it con hosting a pagamento funzionava tutto, e non mi pare di aver modificato i files di configurazione php

    spero di essere stato chiaro nella spiegazione...

    attendo risposte

    ciao e grazie
    Ultima modifica di alemoppo : 21-04-2013 alle ore 17.47.39 Motivo: corretti tag [php] & [html]

  4. #4
    Guest

    Predefinito

    Se non erro la direttiva register_global su AV è OFF per cui dovresti usare l'array $_GET

    Codice PHP:
    $pagina = $_GET['pagina'];
    o meglio

    Codice PHP:
    $pagina = isset($_GET['pagina']) ? $_GET['pagina'] : '';
    NB.
    Se il codice che usi è solo quello che hai scritto, se messo male in fatto di sicurezza...

  5. #5
    nicobattisti non è connesso Neofita
    Data registrazione
    10-04-2013
    Messaggi
    5

    Predefinito

    Citazione Originalmente inviato da simpleticket Visualizza messaggio
    Se non erro la direttiva register_global su AV è OFF per cui dovresti usare l'array $_GET

    Codice PHP:
    $pagina = $_GET['pagina'];
    o meglio

    Codice PHP:
    $pagina = isset($_GET['pagina']) ? $_GET['pagina'] : '';
    NB.
    Se il codice che usi è solo quello che hai scritto, se messo male in fatto di sicurezza...
    grazie ST, quindi posso copiare paro paro il codice che mi hai scritto?
    inoltre che intendi per messo male in fatto di sicurezza?

    restando in attesa di una tua risposta ti ringrazio di nuovo e ti saluto

  6. #6
    Guest

    Predefinito

    Si, basta inserirlo prima del tuo.

    Per la sicurezza, regola che vale SEMPRE: MAI FIDARSI DELL'INPUT UTENTE.

    Ti do un indizio, tu supponi che vengano usati solo i tuoi link

    Codice PHP:
    <li><a href="index.php?pagina=home.php">Home</a> </li>
    <
    li><a href="index.php?pagina=biografia.php">Biografia</a></li>
    <
    li><a href="index.php?pagina=video.php">Video</a></li>
    ma metti che qualcuno cominci a scrivere sulla barra del titolo ...

    Codice PHP:
    index.php?pagina=../../qualcosa.txt
    index
    .php?pagina=altropath/altrofile.ext
    index
    .php?pagina=altra_prova.php
    che dici, troverà prima o poi qualcosa?

  7. #7
    Guest

    Predefinito

    Citazione Originalmente inviato da simpleticket Visualizza messaggio
    Si, basta inserirlo prima del tuo.

    Per la sicurezza, regola che vale SEMPRE: MAI FIDARSI DELL'INPUT UTENTE.

    Ti do un indizio, tu supponi che vengano usati solo i tuoi link

    Codice PHP:
    <li><a href="index.php?pagina=home.php">Home</a> </li>
    <
    li><a href="index.php?pagina=biografia.php">Biografia</a></li>
    <
    li><a href="index.php?pagina=video.php">Video</a></li>
    ma metti che qualcuno cominci a scrivere sulla barra del titolo ...

    Codice PHP:
    index.php?pagina=../../qualcosa.txt
    index
    .php?pagina=altropath/altrofile.ext
    index
    .php?pagina=altra_prova.php
    che dici, troverà prima o poi qualcosa?
    Scusate l'intromissione Questo problema può essere ovviato con la funzione stripslashes(), giusto?

  8. #8
    Guest

    Predefinito

    Citazione Originalmente inviato da mathis Visualizza messaggio
    Scusate l'intromissione Questo problema può essere ovviato con la funzione stripslashes(), giusto?
    Io non vedo stringhe quotate negli esempi che ho scritto.

  9. #9
    nicobattisti non è connesso Neofita
    Data registrazione
    10-04-2013
    Messaggi
    5

    Exclamation

    Citazione Originalmente inviato da simpleticket Visualizza messaggio
    Si, basta inserirlo prima del tuo.

    Per la sicurezza, regola che vale SEMPRE: MAI FIDARSI DELL'INPUT UTENTE.

    Ti do un indizio, tu supponi che vengano usati solo i tuoi link

    Codice PHP:
    <li><a href="index.php?pagina=home.php">Home</a> </li>
    <
    li><a href="index.php?pagina=biografia.php">Biografia</a></li>
    <
    li><a href="index.php?pagina=video.php">Video</a></li>
    ma metti che qualcuno cominci a scrivere sulla barra del titolo ...

    Codice PHP:
    index.php?pagina=../../qualcosa.txt
    index
    .php?pagina=altropath/altrofile.ext
    index
    .php?pagina=altra_prova.php
    che dici, troverà prima o poi qualcosa?
    MMMh hai ragione!
    esiiste un metodo con poche righe per evitare tutto ciò, oppure cos'altro?

    come sempre ti ringrazio SimpleTicket

  10. #10
    Guest

    Predefinito

    Citazione Originalmente inviato da nicobattisti Visualizza messaggio
    MMMh hai ragione!
    esiiste un metodo con poche righe per evitare tutto ciò, oppure cos'altro?

    come sempre ti ringrazio SimpleTicket
    Non esiste una funzione per questo.
    Devi fare in modo, quanto meno, di verificare che quanto passato corrisponda ad un percorso per te valido e consentito.

  11. #11
    nicobattisti non è connesso Neofita
    Data registrazione
    10-04-2013
    Messaggi
    5

    Predefinito

    Citazione Originalmente inviato da simpleticket Visualizza messaggio
    Non esiste una funzione per questo.
    Devi fare in modo, quanto meno, di verificare che quanto passato corrisponda ad un percorso per te valido e consentito.
    Non ho capito!!!!!!!!

  12. #12
    Guest

    Predefinito

    Citazione Originalmente inviato da nicobattisti Visualizza messaggio
    Non ho capito!!!!!!!!
    Se, ad esempio, vuoi che sia consentito includere solo home.php, biografia.php e video.php verifica prima che il parametro passato corrisponda ad uno di questi.

Regole di scrittura

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