Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 26
  1. #1
    Utente di HTML.it L'avatar di pariri
    Registrato dal
    Jul 2003
    Messaggi
    1,470

    Aiuto per passowrd e nome utente

    Ciao!!

    Ho preso questo codice per pagine protette con nome utente e passoword.

    Però se clicco "invia" senza inserire niente vedo la pagina in bianco che processa qualcosa per meno di un secondo... non so se mi sono spiega bene comunque vi posto il codice:

    check.php
    Codice PHP:
    <?php
    session_start
    ();
    if (!
    session_is_registered('autorizzato')) {
      echo 
    "<span>Area riservata - accesso negato</span>";
      die;
    }
    ?>
    destroy.php
    Codice PHP:
    <?php
    session_start
    ();
    session_unset();
    session_destroy();
    ?>
    <script language="JavaScript">
    document.location.href = "login.php"
    </script>
    login.php
    Codice PHP:
    <?php
    session_start
    ();
    if (isset(
    $_POST["invio"])) {
      
    $puntatore fopen("testi/pasx.txt""r");
      
    $trovato 0;
      while ((!
    feof($puntatore)) && (!$trovato)) {
        
    $linea fgets($puntatore);
        
    $trovato stristr($linea$_POST["userid"]);
        
    $puntatore++;
      }
      
    fclose($puntatore);
      list(
    $nomeutente$password) = split("~:~"$linea);
      if ((
    $trovato)  && ($_POST["passwd"] == trim($password))) {
        
    session_register('autorizzato');
        
    $_SESSION["autorizzato"] = 1;
        
    $destinazione "index.php";
      } else {
        
    $destinazione "destroy.php";
      }
      echo 
    '<script language=javascript>document.location.href="'.$destinazione.'"</script>';
    } else {
       
    ?>
    Io penso che sia la pagina "destroy.php" che mi fa vedere questa cosa veloce.

    grazie del vostro aiuto!
    La vita è un percorso, goditi il viaggio.

  2. #2
    Mentre il resto è php, la pagina destroy produce del javascript.

    Il javascript deve venire eseguito sul computer client, quando la pagina viene renderizzata.

    Quindi tu vedi che la pagina destroy viene aperta (vuota com'è di contenuti) ed un istante dopo viene eseguito il javascript, che ti ridireziona su altra pagina.
    Tecnolgie per l'arte.
    Arti per la tecnologia.
    softhare

  3. #3
    Perche' fare il redirect con Javascript in una pagina PHP poi boh

  4. #4
    Php esegue solo sul server.
    Javascript esegue solo sul client.

    Così certe cose devono venire fatte in php ed altre devono venire fatte in javascript.

    La confusione nasce dal fatto che php può generare o contenere del javascript.
    Ma anche in quel caso, lo javascript verrà eseguito solamente dopo arrivato sul computer dell'utente, mai sul server.
    Tecnolgie per l'arte.
    Arti per la tecnologia.
    softhare

  5. #5
    http://php.net/manual/en/function.header.php

    Delegare non è una soluzione ottimale quando l'operazione può essere fatta meglio e con meno risorse di un'altra...

  6. #6
    Originariamente inviato da softhare
    Php esegue solo sul server.
    Javascript esegue solo sul client.

    Così certe cose devono venire fatte in php ed altre devono venire fatte in javascript.

    La confusione nasce dal fatto che php può generare o contenere del javascript.
    Ma anche in quel caso, lo javascript verrà eseguito solamente dopo arrivato sul computer dell'utente, mai sul server.
    Grazie per il chiarimento, ma ne ero consapevole.
    Provo a ripetere in maniere piu' chiara: giacche' si sta eseguendo codice PHP, che senso ha far fare il redirect al client invece che usare un semplice header('Location: login.php') che funziona anche se il browser non ha javascript abilitato? Non e' una buona idea usare JS quando ci sono alternative valide e che creano meno problemi di compatibilita'.

  7. #7
    Utente di HTML.it L'avatar di pariri
    Registrato dal
    Jul 2003
    Messaggi
    1,470
    Ok... grazie mille del vostro aiuto! E come posso risolvere il problema?

    Ancora grazie!!
    La vita è un percorso, goditi il viaggio.

  8. #8
    Il $_POST['invio'] credo sia valorizzato dal tasto Submit del form, quindi quella if(isset...) non ha senso o comunque non basta, visto che in qualsiasi caso viene valorizzata...

    Aggiungi un controllo sui campi di testo che l'utente compila subito dopo quella if, in modo da non far procedere con la lettura del file se non sono valorizzati correttamente.


  9. #9
    che senso ha far fare il redirect al client invece che usare un semplice header('Location: login.php')
    Vere le osservazioni su javascript disabilitato, però nota che anche un header('Location: login.php') viene eseguito dal client: il server può solo costruirlo ed inviarlo al client, esattamente come per uno javascript.
    Tecnolgie per l'arte.
    Arti per la tecnologia.
    softhare

  10. #10
    Originariamente inviato da softhare
    Vere le osservazioni su javascript disabilitato, però nota che anche un header('Location: login.php') viene eseguito dal client: il server può solo costruirlo ed inviarlo al client, esattamente come per uno javascript.
    Si ma e' un header HTTP e quelli mica li puoi avere disabilitati.

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.