Pagina 3 di 3 primaprima 1 2 3
Visualizzazione dei risultati da 21 a 27 su 27
  1. #21
    Quote Originariamente inviata da boots Visualizza il messaggio
    Il problema è che puoi usare anche i ".."
    Se decidi che $inizio = "cartella_privata" allora uno smaliziato potrebbe scrivere:
    "cartella_privata/../file.php"
    La tua funzione non andrebbe bene

    Io farei anche uno str_replace di "../" con ''
    1) Che ne dici di questo?
    Codice PHP:
    function URL_inizio($URL,$inizio){
        
    $inizio=VerificaURL($inizio);
        if(
    mb_substr($URL,0,strlen($inizio))==$inizio){
            if(
    strpos($stringa'..')>=0){
                return 
    false;
            } else {
                return 
    true;
            }
        } else {
            return 
    false;
        }

    2) session_start() nel mio codice viene usato in tutti i file in cui:
    a) chiamo una variabile di sessione;
    b) creo una nuova variabile di sessione;
    Mi sembrava di ricordare che session_start() si inserisse solo nel primo file dello script. E' tutto normale quello che scrivo?

    3) Esiste qualche script che permette di visualizzare nella pagina lo stato di avanzamento di un upload? Online ho trovato diverse soluzioni ma non riesco a capire come implementare questi codici/file. Esiste qualche pagina di esempio?

    4) Quando uso il tasto indietro del browser mi compare questo messaggio:
    Conferma reinvio modulo
    Questa pagina web richiede dati che hai inserito in precedenza per poter essere visualizzata correttamente. Puoi inviare di nuovo i dati, ma in questo caso ripeterai l'azione precedentemente eseguita nella pagina.
    Premi il pulsante Ricarica per inviare di nuovo i dati necessari per caricare la pagina.
    ERR_CACHE_MISS
    C'è modo di eliminare questo problema?

    5) Altra cosa che mi piacerebbe fare è rimuovere il link completo nella barra degli indirizzi del browser. So che è possibile perché alcuni siti sono strutturati in questo modo. Navigo da una pagina all'altra ma vedo sempre scritto www.nomesito.com.
    Più pratica in futuro...

  2. #22
    1) Che ne dici di questo?
    Codice PHP:
    function URL_inizio($URL,$inizio){
        
    $inizio=VerificaURL($inizio);
        if(
    mb_substr($URL,0,strlen($inizio))===$inizio){
            if(
    strpos($URL'..') !== false){
                return 
    false;
            } else {
                return 
    true;
            }
        } else {
            return 
    false;
        }

    2) session_start() nel mio codice viene usato in tutti i file in cui:
    a) chiamo una variabile di sessione;
    b) creo una nuova variabile di sessione;
    Mi sembrava di ricordare che session_start() si inserisse solo nel primo file dello script. E' tutto normale quello che scrivo?

    3) Esiste qualche script che permette di visualizzare nella pagina lo stato di avanzamento di un upload? Online ho trovato diverse soluzioni ma non riesco a capire come implementare questi codici/file. Esiste qualche pagina di esempio?

    4) Quando uso il tasto indietro del browser mi compare questo messaggio:
    Conferma reinvio modulo
    Questa pagina web richiede dati che hai inserito in precedenza per poter essere visualizzata correttamente. Puoi inviare di nuovo i dati, ma in questo caso ripeterai l'azione precedentemente eseguita nella pagina.
    Premi il pulsante Ricarica per inviare di nuovo i dati necessari per caricare la pagina.
    ERR_CACHE_MISS
    C'è modo di eliminare questo problema?

    5) Altra cosa che mi piacerebbe fare è rimuovere il link completo nella barra degli indirizzi del browser. So che è possibile perché alcuni siti sono strutturati in questo modo. Navigo da una pagina all'altra ma vedo sempre scritto www.nomesito.com.
    Ultima modifica di giannino1995; 03-04-2018 a 22:51
    Più pratica in futuro...

  3. #23
    Utente di HTML.it L'avatar di boots
    Registrato dal
    Oct 2012
    Messaggi
    1,626
    1. Si, dovrebbe andare
    2. Sarebbe meglio chiamarlo una volta sola. cioè se ho il file a.php che include il file b.php, mettilo o in a.php o in b.php
    3. Non mi pare esista una soluzione diretta...a meno che non usi javascript (jquery o simili). Potresti chiedere in quella sezione
    4. Non ho presente quale sia la tua "sequenza" di azioni, cmq se torni su una pagina "post" ovviamente il browser ti richiederà di ritrasmettere i dati. Se vuoi evitare il messaggio devi "saltare" questa pagina usando header('location:'):
    (GET)Pagina A -> (POST)PaginaB --- (header())- >Pagina C
    In questo modo a C il "back" ti porta in A evitando il messaggio
    5. Probabilmente i siti che hai visto usano pesantemente ajax oppure sono composti da solo una pagina divisa in blocchi. Cmq potresti cambiare l'url con javascript
    codice:
    history.pushState('www.sampleurl.com?a=1&b=2',null, 'http://www.sampleurl.com')
    Però occhio a come si comporta poi il browser con i tasto torna in dietro...potresti perderti i parametri passati
    Ultima modifica di boots; 04-04-2018 a 10:09

  4. #24
    Sempre grazie!
    Ho aggiunto questo codice:
    Codice PHP:
    <script>
    history.pushState('http://localhost/.../pagina_protetta.php',null'http://localhost/');
    </script> 
    e funziona ma gli header smettono di lavorare. Non uso variabili GET. Il browser mi scrive questo:
    La pagina non funziona
    localhost ti ha reindirizzato troppe volte.
    Prova a cancellare i cookie.
    ERR_TOO_MANY_REDIRECTS


    La mia applicazione funziona in questo modo:
    Da "index.php" a "pagina_protetta.php" a "download_file.php" a "pagina_protetta.php".
    In index.php mi autentico e creo $_POST ["password"], in pagina_protetta.php creo $_SESSION ["password"] per salvare $_POST ["password"] da qualche parte e poi chiamo download_file.php inviando $_SESSION ["password"] e $_POST ["file"], quest'ultima contiene l'URL del file da scaricare che passo a readfile(). Da download_file.php ritorno a pagina_protetta.php con gli header.
    A volte giocando sulle freccie del browser (da "index.php" a "pagina_protetta.php") ottengo:
    Conferma reinvio modulo
    Questa pagina web richiede dati che hai inserito in precedenza per poter essere visualizzata correttamente. Puoi inviare di nuovo i dati, ma in questo caso ripeterai l'azione precedentemente eseguita nella pagina.
    Premi il pulsante Ricarica per inviare di nuovo i dati necessari per caricare la pagina.
    ERR_CACHE_MISS
    Se in index.php scrivo session_start() per recuperare $_SESSION["password"] nel caso l'utente decida di giocare con i tasti 'avanti' ed 'indietro' del browser non riscontro miglioramenti.



    La cosa che non riesco a fare e che mi preme è impedire al browser di salvare la password digitata dall'utente. Non esiste qualche script in PHP che permette di aggirare questa funzione del browser?
    Ultima modifica di giannino1995; 04-04-2018 a 19:34
    Più pratica in futuro...

  5. #25
    .
    Più pratica in futuro...

  6. #26
    Utente di HTML.it L'avatar di boots
    Registrato dal
    Oct 2012
    Messaggi
    1,626
    Come ti ho detto devi "saltare" la pagina dove fai il post. Per esempio invece di fare il login
    index.php->(post)->index.php
    puoi fare
    index.php->(post)->login.php(salvi session)--(header)->index.php(login fallito)/pagina_protetta.php(login ok)

    Per la questione del salvataggio password, intendi quando il browser ti chiede di ricordare la password?

  7. #27
    Quote Originariamente inviata da boots Visualizza il messaggio
    Come ti ho detto devi "saltare" la pagina dove fai il post. Per esempio invece di fare il login
    index.php->(post)->index.php
    puoi fare
    index.php->(post)->login.php(salvi session)--(header)->index.php(login fallito)/pagina_protetta.php(login ok)
    Al momento sono solo 2 le pagine. La prima in html dove fare la login e la seconda in php dove mettere il ciclo if (se la password è giusta visualizza una cosa altrimenti fai altro). Mi piacerebbe mettere la login nella pagina protetta, fare tutto in una pagina, ho fatto qualche tentativo ma senza successo.

    Quote Originariamente inviata da boots Visualizza il messaggio
    Per la questione del salvataggio password, intendi quando il browser ti chiede di ricordare la password?

    Si esattamente, proprio quello!


    Adesso sto lavorando alla barra di scorrimento ma è un disastro. E' tutto complicatissimo perché non si trovano online dei codici con jquery funzionanti e neppure dei tutorial. Non c'è tutta questa documentazione che si dice che esista in php. Ho aperto una discussione qui ma al momento ancora nulla.
    Ultima modifica di giannino1995; 08-04-2018 a 23:16
    Più pratica in futuro...

  8. #28
    Utente di HTML.it L'avatar di boots
    Registrato dal
    Oct 2012
    Messaggi
    1,626
    Per me non ha molto senso mettere il controllo del login nella "pagina_protetta". Cmq come ti ho detto, se vuoi evitare che il browser ti chieda di "ritrasmettere" i dati, la pagina che riceve i dati POST deve fare un redirect. Tuttavia nel caso di login, non mi farei tutti sti problemi

    Per le credenziali, vedendo in giro mi pare non ci sia un modo per evitare che il browser salvi la password. Una soluzione che potrebbe funzionare è quella di avere dei nomi per i campi username/password variabili. cosi anche se il browser ricorda il login, non sarà più lo stesso form:
    Codice PHP:
    <?php
    $prefisso 
    time();
    ?>
    <form ...>
       <input name="<?php echo $prefisso ?>_username" ... />
       <input name="<?php echo $prefisso ?>_password" ... />
       <input name="prefisso" value="<?php echo $prefisso ?>" type="hidden" />
    </form>
    <?php
    // pagina post

    $prefisso $_POST['prefisso'];
    $user      $_POST[$prefisso.'_username'];
    $pass      $_POST[$prefisso.'_password'];

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.