Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1

    proteggere esecuzione script

    ciao a tutti,
    ho creato un form di login che manda i dati ad uno script php il quale li processa.
    Tutto funziona correttamente tranne per il fatto che se richiamo lo script che processa i dati digitando il suo indirizzo nel browser questo entra in esecuzione.

    Io vorrei che tale script venisse richiamato solo ed esclusivamente quando clicco con il mouse sul pulsante "accedi" dal form di login.

    č possibile?

  2. #2
    Utente di HTML.it L'avatar di garakkio
    Registrato dal
    Dec 2011
    residenza
    Roma
    Messaggi
    480
    devi usare le sessioni

  3. #3
    le uso gia

  4. #4
    Utente di HTML.it L'avatar di garakkio
    Registrato dal
    Dec 2011
    residenza
    Roma
    Messaggi
    480
    Se ho capito bene, vuoi che una determinata azione sia eseguita solo quando l'utente esegue il login, ma non successivamente.
    Allora ti basta mettere l'esecuzione di questa azione insieme al login, invece di metterlo su uno script a parte.
    Oppure, se proprio devi mantenere lo script separato, imposta una variabile di sessione al momento del login, verificala prima dell'esecuzione dello script e poi cancellala alla fine.

  5. #5
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    ...ma se usi le sessioni che dati processa lo script se lo richiami direttam.? cmq puoi mettere nel form come action questo script e poi in esso verificare:
    - l'esistenza delle variabili del form
    - l'url di provenienza (in questo modo processi i dati solo se il referrer č la pag. con il form)

  6. #6
    ti basta mettere tutto lo script in un if che controlla che esistano le variabili del form.

  7. #7
    forse mi sono spiegato male , riprovo: pagina login.php contiene il form di registrazione
    tale pagina manda i dati digitati nel form alla pagina processa.php lā quale si occupa loggare l utente .
    se io nel browser digito www.sito.com/processa.php viene lanciato lo script. questo ovviamente č sbagliato in quanto tale pagina deve essere accessibile solo se č chiamata da login.php

  8. #8
    Utente di HTML.it L'avatar di garakkio
    Registrato dal
    Dec 2011
    residenza
    Roma
    Messaggi
    480
    Mi sembra che la mia risposta precedente si adatti perfettamente, anche dopo la tua spiegazione.

  9. #9
    Puoi utilizzare una soluzione del genere:

    Codice PHP:
    <?php

     session_start
    (); 
    $old_sessionid session_id();

    session_regenerate_id();

    $new_sessionid session_id();
    $username $_SESSION['username'];

    if (
    $username =="") {

    header('Location:login.php'); 
    }else{

    //qui ci metti un altro header se vuoi 
    }
     
    ?>

  10. #10
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    aggiungo:

    - verifica del referer (giā detto)
    - verifica dei parametri "POST"

    (processa.php)
    Codice PHP:
    if (!isset($_POST['invio'])) { ... 
    e nel form metti un campo <input type="hidden" name="invio" value="..."/> anche se la verifica degli altri campi sarebbe giā sufficiente (usando POST come metodo)

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