Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2008
    Messaggi
    2

    Include, Get, e sicurezza..qualcuno potrebbe aiutarmi a scrivere un semplice array?

    Ciao a tutti, ho iniziato da pochi giorni a 'lavorare' col php sul mio sito e già mi ritrovo in difficoltà per garantire un minimo di sicurezza.

    Nella index.php h inserito il set d'istruzioni seguente per richiamare le altre pagine del sito e caricarle nella index.php. Al primo accesso al sito si viene indirizzati alla home (http://miosito/index.php?file=./home.php).




    if (!isset($_GET["file"]))
    {
    $_GET["file"] = './home.php';
    }

    include ($_GET["file"]);


    Un set d'istruzioni come sopra funziona perfettamente peccato che non mi garantisca nulla riguardo alla sicurezza.

    Dovrei usare un array ma non ho ancora le conoscenze minime per poterlo scrivere.

    Qualcuno potrebbe dirmi come fare?

    Grazie,
    Mirko

  2. #2
    inanzitutto ti consiglio di aggiungere un controllo di tipo file_exists e di controllare che la pagina passata non sia nel formato http://sito.etc/

    per scrivere un array basta fare:
    Codice PHP:
    <?php

    $pag 
    = array();
    $pag[] = "index.php";
    $pag[] = "utenti.php";
    $pag[] = "scrivi.php";
    #oppure
    $pag = array("index.php""utenti.php""scrivi.php");
    #oppure
    $pag = array();
    $pag[0] = "index.php";
    ...

    #e ci si accede cosi:
    echo $pag[0];
    echo 
    $pag[1];
    #oppure cosi
    $n count($pag);
    for(
    $i 0$i $n$i++)
        echo 
    $pag[$n]."
    "
    ;
    #oppure anche cosi
    foreach($pag as $k => $v)
        echo 
    "$pag[$k] = $v;
    "
    ;
    #oppure se vuoi un'anteprima formattata del contenuto di un array
    echo "<pre>";
    print_r($pag);
    echo 
    "</pre>";
    #cosi non si accede
    echo $pag;

    ?>




    Perchè essere stupidi non è una menomazione ma un diritto di tutti!!!

  3. #3
    Utente di HTML.it
    Registrato dal
    Jul 2008
    Messaggi
    2
    Originariamente inviato da sonounostrinato
    inanzitutto ti consiglio di aggiungere un controllo di tipo file_exists e di controllare che la pagina passata non sia nel formato http://sito.etc/

    per scrivere un array basta fare:
    Codice PHP:
    <?php

    $pag 
    = array();
    $pag[] = "index.php";
    $pag[] = "utenti.php";
    $pag[] = "scrivi.php";
    #oppure
    $pag = array("index.php""utenti.php""scrivi.php");
    #oppure
    $pag = array();
    $pag[0] = "index.php";
    ...

    #e ci si accede cosi:
    echo $pag[0];
    echo 
    $pag[1];
    #oppure cosi
    $n count($pag);
    for(
    $i 0$i $n$i++)
        echo 
    $pag[$n]."
    "
    ;
    #oppure anche cosi
    foreach($pag as $k => $v)
        echo 
    "$pag[$k] = $v;
    "
    ;
    #oppure se vuoi un'anteprima formattata del contenuto di un array
    echo "<pre>";
    print_r($pag);
    echo 
    "</pre>";
    #cosi non si accede
    echo $pag;

    ?>





    Grazie mille per l'aiuto e per la rapidità nel rispondermi.

    Per essere certi di aver capito bene posso riassumere quanto hai detto?

    Allora se ho capito bene , utilizzando una delle opzioni da te descritte, la mia index si trasforma in questo modo:

    <?php

    $pag = array();
    $pag[0] = "index.php";
    $pag[1] = "pagina1.php";
    $pag[2] = "pagina2.php";

    -------
    $pag[N] = "paginaN.php";




    $n = count($pag);
    for($i = 0; $i < $n; $i++)
    echo $pag[$n]."
    ";


    if (!isset($_GET["file"]))
    {
    $_GET["file"] = './pagina1.php';
    }

    include ($_GET["file"]);



    ?>



    Poichè i link alle pagine sono costruti con la sintassi :

    pagina1

    e quindi per i file contenuti all'interno di altre cartelle, la sintassi generica:

    pagina2

    cioè in ogni caso utilizzo "?file=" per l'include, vorrei chiederti se nell'array che mi hai postato devo inserire solo i nomi dei file (pagina1.php, ecc, ecc) oppure devo inserire anche il percorso (./cartella1/pagina2.php), oppure devo utilizzare la la sintassi "?file="? )

    cioè in altri termini:

    $pag[2] = "pagina2.php";

    oppure

    $pag[2] = "./cartella1/pagina2.php";

    oppure

    $pag[2] = "?=file=./cartella1/pagina2.php";




    Grazie in ogni caso per il tuo aiuto,

    Mirko.

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 © 2024 vBulletin Solutions, Inc. All rights reserved.