Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2009
    Messaggi
    617

    Evitare apertura diretta di pagina!

    Salve, dopo ore ho creato 4 file:il primo è un form di login nel qule inserisci user e pass e invii i dati a un foglio php che controlla che tali dati siano prensenti nel database.Se sonopresenti, ti collega a una pagina con un altro form dove, una volta inseriti i dati, premi invio e questi vengono salvati nel database.
    Ora però mi sono posto un problema, se metto direttamente il link del secondo form, questi si apre e quindi mi viene bypassato il login.
    Come fare per evitarlo?
    Io non so proprio da dove cominciare, mi date una mano?
    Non so se è il caso di postare lo scipt se vi serve ve lo scrivo!

    Grazie anticipatamente.

  2. #2
    con le sessioni, guarda la pillola che c'è di Kuarl e qui

    http://it2.php.net/manual/en/ref.session.php
    http://codecanyon.net/category/all?ref=Manuelandro
    And I bet she told a million people that she'd stay in touch, Well all the little promises they dont mean much,When theres
    memories to be made

  3. #3
    se vuoi evitare l'accesso diretto tramite URL basta mettere due righe in testa allo script. Per esempio in un file di configurazione che deve solo poter essere incluso in altro file a prescindere dalle sessioni:

    codice:
    <?php
    $str = str_replace('\\\', '/', __FILE__);  
    
    if($str == $_SERVER['SCRIPT_FILENAME'])
    { exit('
    Vietato accedere direttamente al file
    ') ;  }
    la riga con str_replace serve per rendere compatibile il path di win con apache. Occhio che devono essere due i backslash e non 3 come ho dovuto mettere ora per il forum... (vedi con un quote)

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  4. #4
    Utente di HTML.it
    Registrato dal
    Feb 2009
    Messaggi
    617
    La pillola proprio non l'ho trovata se mi dai il link do uno sguardo.
    Piero volevo sapere dove devo mettere lo script che hai postato. Tieni presente che io ho:

    login.php(form per il log in), elabora_login.php(elabora i dati della form corrispondente), Inserimentodb.ph(form per l'inserimento dei dati nel database), elabora_inserimento db.php(elabora i dati della form corrispondente per immeterli nel database specificato).

    In pratica, vorrei che la pagina inserimentodb.php non sia visualizzata se non si arriva dalla pagina login.php(o da elabora_login.php se va meglio) quindi credo che lo script dovrei piazzarlo nella prima pagina(login.php)giusto?
    Altrimenti non c'ho capito una mazza.

    Tra l'altro vorrei sapere qui: if($str == $_SERVER['SCRIPT_FILENAME']).... script_filename stà per?La pagina da cui si arriva?BHo, chiedo venia ma mi sono bloccato!

    Grazie anticipatamente!

  5. #5
    quelle righe le devi mettere in prima posizione nelle pagine che non debbono essere caricate direttamente da un URL.

    Un classico utilizzo e' l'uso in tutti i file che vengono inclusi e quindi richiamati da un altro file e non da un URL. Nel tuo caso ti servono le sessioni.

    se vuoi sapere cosa contiene $_SERVER e' sufficiente stamparlo.

    Codice PHP:
    <?php
    echo "<pre>";
    print_r($_SERVER);
    ?>

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

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.