Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2008
    Messaggi
    122

    Filosofia e Tecnica del Login

    Ciao,
    ho usato un titolo un pò forzato...spero di farmi capire meglio qui.
    Mi chiedevo se c'è /ci sono delle regole (filosofia) per la gestione del Login.
    Qui nel forum ho visto decine di casi ognuno con delle problematiche diverse.
    Io stavo impostando la struttura con queste linee :

    a) Dalla pagina principale del sito, ho la possibiltà di inserire User / Pwd e di registrarmi.
    b) Quando digito User / PWD viene chiamato un modulo PHP che effettua il controllo su un Database. Questo modulo, se trova la user imposta una variabile (es. il nominativo completo) di sessione con il nominativo oppure a stringa nulla, quindi richiama la pagina iniziale.
    c) La pagina iniziale ha un test sulla variabile impostata nel punto b, e se è significativa
    vuol dire che il login è OK e visualizza il nominativo con un bel "Ciao Paperino" altrimenti non fa nulla.

    Detto ciò, faccio due domande :

    1) La filosofia è corretta o c'è qualche baco ?
    2) Domanda più semplice...come faccio (tecnicamente) a reindirizzare dal modulo php alla pagina principale ?

    Ciao e grazie.

  2. #2

    Re: Filosofia e Tecnica del Login

    Originariamente inviato da makikaz
    Ciao,
    ho usato un titolo un pò forzato...spero di farmi capire meglio qui.
    Mi chiedevo se c'è /ci sono delle regole (filosofia) per la gestione del Login.
    Qui nel forum ho visto decine di casi ognuno con delle problematiche diverse.
    Io stavo impostando la struttura con queste linee :

    a) Dalla pagina principale del sito, ho la possibiltà di inserire User / Pwd e di registrarmi.
    b) Quando digito User / PWD viene chiamato un modulo PHP che effettua il controllo su un Database. Questo modulo, se trova la user imposta una variabile (es. il nominativo completo) di sessione con il nominativo oppure a stringa nulla, quindi richiama la pagina iniziale.
    c) La pagina iniziale ha un test sulla variabile impostata nel punto b, e se è significativa
    vuol dire che il login è OK e visualizza il nominativo con un bel "Ciao Paperino" altrimenti non fa nulla.

    Detto ciò, faccio due domande :

    1) La filosofia è corretta o c'è qualche baco ?
    2) Domanda più semplice...come faccio (tecnicamente) a reindirizzare dal modulo php alla pagina principale ?

    Ciao e grazie.
    L'idea sembra buona, come variabile di sessione ti consiglio qualcosa tipo ['identificato']='ok', in modo che quando scrivi il codice è chiaro cosa e perché testi.

    Codice PHP:
    header('Location: pagina.principale.php'); 

  3. #3
    Utente di HTML.it L'avatar di gianiaz
    Registrato dal
    May 2001
    Messaggi
    8,027

    Re: Re: Filosofia e Tecnica del Login

    Originariamente inviato da dvds
    L'idea sembra buona, come variabile di sessione ti consiglio qualcosa tipo ['identificato']='ok', in modo che quando scrivi il codice è chiaro cosa e perché testi.
    Oppure

    $_SESSION['UID_LOGGED'] = 0; // se non è loggato
    $_SESSION['UID_LOGGED'] = 121; // id dell'utente su db (cosi pui reperire tutti i dati che ti servono).

    ciao

  4. #4
    Utente di HTML.it
    Registrato dal
    Apr 2008
    Messaggi
    122

    Re: Re: Re: Filosofia e Tecnica del Login

    Originariamente inviato da gianiaz
    Oppure

    $_SESSION['UID_LOGGED'] = 0; // se non è loggato
    $_SESSION['UID_LOGGED'] = 121; // id dell'utente su db (cosi pui reperire tutti i dati che ti servono).

    ciao
    Grande..queste sono piccole idee che comunque aiutano a sviluppare un buon codice.
    Mi rimane il problema del re-indirizzamento...mi viene fuori il seguente errore :

    Warning: Cannot modify header information - headers already sent by (output started at c:\programmi\easyphp1-8\www\europeo\moduli\config.php:17) in c:\programmi\easyphp1-8\www\europeo\moduli\login.php on line 23

    Dò ancora alcune info sulla struttura dei due moduli PHP:
    index.php è il modulo principale.
    login.php è il modulo che effettua il login e si trova in una sottocartella chiamata moduli.
    config.php è il modulo che contiene i parametri per la connessione al DB.

    L'istruzione di re-indirizzamento posta nel file login.php è la seguente :

    header('Location: ..\index.php');

    Cosa sbaglio ?

  5. #5
    Utente di HTML.it L'avatar di gianiaz
    Registrato dal
    May 2001
    Messaggi
    8,027
    il comando header va lanciato prima di aver effettuato qualsiasi output sulla pagina.

    In alternativa puoi usare un locatio.replace in javascript, ma escluderesti gli utenti che hanno js disabilitato.

    ciao

  6. #6
    Utente di HTML.it
    Registrato dal
    Apr 2008
    Messaggi
    122
    Originariamente inviato da gianiaz
    il comando header va lanciato prima di aver effettuato qualsiasi output sulla pagina.

    In alternativa puoi usare un locatio.replace in javascript, ma escluderesti gli utenti che hanno js disabilitato.

    ciao
    Scusa,
    probabilmente mi manca qualcosa...il mio primo modulo index.php esegue sicuramente degli output sulla pagina, quindi questo vuol dire che da quel momento in poi non posso più usare la funzione di re-indirizzamento ?

  7. #7
    Utente di HTML.it L'avatar di gianiaz
    Registrato dal
    May 2001
    Messaggi
    8,027
    esatto.

    O meglio esistono delle tecniche con ob_start() che sopprimono l'output della pagina finchè non lo decidi tu, ma devo essere sincero non mi sono mai soffermato nemmeno a guardare la sintassi del comando.

    Per quanto mi riguarda risolvo questo problema a monte, facendo in modo di gestire tutta la logica di programmazione prima di aver dato in output qualsiasi elemento, in questo modo posso fare i controlli e un eventuale header prima di aver stampato ad esempio il logo di testata della pagina.

    ciao

  8. #8
    Originariamente inviato da makikaz
    Scusa,
    probabilmente mi manca qualcosa...il mio primo modulo index.php esegue sicuramente degli output sulla pagina, quindi questo vuol dire che da quel momento in poi non posso più usare la funzione di re-indirizzamento ?
    Esatto. Puoi provare in alternativa con un <META HTTP-EQUIV="Refresh" CONTENT="1; URL=pagina.html">, ma non sono sicuro che funzioni se non negli head di HTML.

  9. #9
    Utente di HTML.it
    Registrato dal
    Apr 2008
    Messaggi
    122
    Scusatemi ma non riesco ancora a capire una cosa...(dopo questa domanda vado alla ricerca di qualche guida / manuale)..
    ma come faccio a inserire del codice di programmazione a monte, se ad esempio (come nel mio caso) non mi vengono imputati la user / pwd.

    Il normale flusso elaborativo dovrebbe essere :

    Richiesta user/PWD (e qui ho già fatto dell'output)
    Elaborazione (controllo input digitati)
    Ritorno a video iniziale.

    Tenete presente che io provengo da piattaforme di programmazione diverse dal WEB e sicuramente il mio approccio potrebbe non essere corretto.
    Ciao

  10. #10
    Utente di HTML.it L'avatar di gianiaz
    Registrato dal
    May 2001
    Messaggi
    8,027
    Bisognerebbe vedere come strutturi le richieste, però nel web (per il momento lasciando perdere ajax) in genere avviene questo:

    - Pagina html (o php è lo stesso) contenente il form, con action = pippo.php
    - Pagina pippo.php riceve in $_POST i dati del form, fa le verifiche e fa il redirect alla pagina php dalla quale sei partito (la pagina php non deve dare nessun output).

    Ci sono casi in cui (la maggiorparte) un'unica pagina php fa tutto, e in questo caso se tu hai ad esempio:

    index.php
    include('header.php'); // pagina che fa output
    include('modulochevuoieseguire.php'); // qui controlli lo user e pass che ti arrivano dal form ma non puo fare nessun header perchè la pagina precedente ha già dato un output.
    include('footer.php'); // pagina che fa output

    L'alternativa è seguire questa strada:

    index.php
    include('modulo.logica.php'); // questo decide cosa fare, riempie le variabili che ti serviranno per l'output
    include('header.php');
    include('modulo.output.php'); // in questa pagina crei l'html "mischiato" alle variabili generate in modulo.logica.php
    include('footer.php'); // pagina che fa output

    A questo punto puoi fare tutti gli header che vuoi nel modulo "logica" senza preoccuparti.

    Ciao

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.