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

    nuovo quesito da newbie link nascosti

    scusate ma se voglio fare in modo che nel sito nel momento in cui ti registri hai accesso ad alcune pagine come posso fare??

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Al momento del login metti in sessione una variabile che ti indica il buon esito, ad esempio dopo aver verificato la correttezza di username e password metti

    $_SESSION['loggato'] = TRUE;

    Poi nelle pagine che vuoi rendere disponibili solo agli utenti loggati metti
    Codice PHP:
    session_start();
    if (isset(
    $_SESSION['loggato']) && $_SESSION['loggato'] == TRUE)
    {
        
    //qui il contenuto della pagina da mostrare
    }
    else
    {
        echo 
    'Accesso negato. Solo gli utenti registrati possono visualizzare questa pagina!';


  3. #3
    Originariamente inviato da Alhazred
    Al momento del login metti in sessione una variabile che ti indica il buon esito, ad esempio dopo aver verificato la correttezza di username e password metti

    $_SESSION['loggato'] = TRUE;

    Poi nelle pagine che vuoi rendere disponibili solo agli utenti loggati metti
    Codice PHP:
    session_start();
    if (isset(
    $_SESSION['loggato']) && $_SESSION['loggato'] == TRUE)
    {
        
    //qui il contenuto della pagina da mostrare
    }
    else
    {
        echo 
    'Accesso negato. Solo gli utenti registrati possono visualizzare questa pagina!';

    scusa ma loggato sta per??? e una variabile inventata al volo?? non dovrei mettere username??
    o quando meno qua cambiarlo cosi?
    if (isset($_SESSION['loggato']) && $_SESSION['username'] == TRUE)

    perche non vedo riferimenti a utenti in login... non riesco ad interpretare bene questo spezzone...

  4. #4
    ho anche questo problema..
    e un messaggio di errore non riesco a dargli stile..


    if(isset($_GET['errmail']) and $_GET['errmail']==1)
    echo("Hai inserito due E-mail diverse tra loro. Controlla i dati!");

    ho provato a manipolarlo un po ma non mi riesce con le conoscenze che ho.. come potrei fare?

  5. #5
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Originariamente inviato da franzolo77
    scusa ma loggato sta per??? e una variabile inventata al volo?? non dovrei mettere username??
    Sì, è una variabile inventata al volo.
    Non c'è alcun obbligo di metterci l'username in sessione, certo può far comodo averlo sempre a disposizione, ma la mia era a titolo dimostrativo.
    E' buona norma metterci una variabile diversa da $_SESSION['username'] perché si ricade nei problemi di sicurezza. Un malintenzionato sarà la prima cosa che proverà per avere accesso a sezioni riservate.
    Ovviamente anche $_SESSION['loggato'] è facile da indovinare, ma magari invece che assegnargli TRUE gli assegni un valore a caso, tipo decidi che deve valere 09lp#°02-.-2, così anche se uno cerca di registrare in sessione la variabile $_SESSION['loggato'] di certo gli verrà difficile pensare di valorizzarla con quella stringa.
    o quando meno qua cambiarlo cosi?
    if (isset($_SESSION['loggato']) && $_SESSION['username'] == TRUE)

    perche non vedo riferimenti a utenti in login... non riesco ad interpretare bene questo spezzone...
    No, Il login lo fai come l'hai già fatto in precedenza, $_SESSION['loggato'] è una variabile in più da mettere in sessione.

    Comunque se hai difficoltà con queste cose, trova un tutorial serio che spieghi come effettuare un sistema di login e che affronti un minimo i problemi di sicurezza.
    Tu hai sicuramente usato un tutorial base che più base non si può, che giusto ti ha dato un'idea di cosa sia un login, ma nulla riguardo la sicurezza.

  6. #6
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Originariamente inviato da franzolo77
    echo("<span class='quellochevuoi'>Hai inserito due E-mail diverse tra loro. Controlla i dati!</span>");
    nel css ci metti
    .quellochevuoi { qui le regole che ti servono }

  7. #7
    gentilissimo prontissimo e dettagliatissimo come sempre...
    GRAZIE DAVVERO

    sai.. mi piacerebbe comprendere il php fino in fondo.. solo che non trovo guide serie online.. ecco qualcosa che spieghi dettagliatamente le cose...

    un 20 minuti fa ho scoperto questo mi sembra ufficiale.. solo che vedi.. mi serve un esempio...
    http://it2.php.net/manual/it/index.php
    non mi va di sentirmi dire.. un array si fa cosi.. voglio anche vedere come lo puoi usare.. in che caso ti fa comodo ecc ecc...

    te ne sarei grato se puoi fornirmi skype.. cosi magari piiccoli dubbi e tempo e voglia tua permettendo mi puoi aiutare se ti va..

  8. #8
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Una cosa che spieghi tutto per bene non la troverai su internet, devi orientarti sui libri e non te ne basterà uno solo. Essendo molto vasto come argomento, i libri sono divisi per gradi, dal livello base a quello avanzato e poi libri specifici per aspetti particolari.

    Se vuoi imparare senza libri devi mettere in conto che ci vorrà un bel po' di tempo.
    In tal caso devi imparare le basi del linguaggio, quindi l'uso delle variabili, gli array, i cicli, le strutture di controllo (if/else, switch, while...) e così via.
    Poi ci vuole tanta pratica, bisogna scrivere tanto codice, vedere cosa non si è capito e rimediare.
    Man mano si aumenta la difficoltà dei progetti e si studiano gli aspetti specifici che servono, per esempio i problemi di sicurezza per restare in tema di login ed aree riservate, ma anche per la proteizione dei dati.

    Sperare di imparare partendo da un progetto complicato è un suidicio, ci si perderebbe una marea di tempo perché ad ogni passo nascerebbero problemi che non si sanno risolvere e che invece sono cose banali se si è andati per gradi.

  9. #9
    si dai ma molte cose le conosco ed ho appunti su come strutturarli.. poi se non so qualcosa me la rivedo e se non ci capisco chiedo..

    con gli if sono ferrato
    gli array so come farli e come sono
    qualcosina la so.. ora grazie a te so aprire una sessione...

    insomma e ovvio che devo ancora studiare.. ma perdonami io sono una decina di giorni che leggo ed ascolto.. non ti pare tanto quello che ho gia fatto?
    e saranno max 4 gg che scrivo...dai mi ritengo molto soddisfatto...

    ora per esempio quando ti registri nella pagina -_reg.php per confermare che ti sei registrato

    mail("$email", "$oggett", "$text"); ti invio una mail...
    pero per quanto possa avere cercato non ho trovato qualcosa che mi parlasse del click che si fa nel corpo della mail per poter attivare l'account... questa la vedo complicatuccia.. credo..

    perche devo impostare in automatico il livello utente 0 a conferma attivazione sara 1 e poi per qualche sala segreta diciamo 2 e gli amministratori 3..
    se hai qlk link in ita che mi spieghi.. mi rendi felice...

  10. #10
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Il mio era un discorso generale per l'approccio ad un nuovo linguaggio, non stavo dicendo che non sei in grado di programmare.

    Ad ogni modo, quello che devi fare è molto più semplice di quanto pensi.

    Nella tabella utenti nel DB ti servono 3 campi per ciò che ti serve:
    - un campo di nome livello che conterrà un numero che indica che livello di accesso ho l'utente (admin, utente generico...)
    - un campo di nome reg_code, qui ci metti un codice generato casulmente, per esempio md5(time())
    - un campo di nome abilitato che conterrà 1 oppure 0, come default conterrà 0

    nel momento in cui un utente si registra metti in "livello" il numero per l'utente generico, in "reg_code" il codice generico e in "abilitato" 0.

    Nell'email ci metti un link fatto così
    Codice PHP:
    [url]www.sito.it/conferma.php?codice=il_codice_che_hai_generato[/url
    Dovrai poi creare il file conferma.php
    In questo file prendi il codice con $_GET['codice'] ed esegui una query fatta così
    Codice PHP:
    $query "UPDATE utenti SET abilitato=1 WHERE reg_code=".$_GET['codice']; 
    Se mysql_affected_rows() ti restituisce 1 vuol dire che l'abilitazione è andata a buon fine, se restituisce 0 invece no.

    Ovviamente i nomi dei campi puoi cambiarli a piacere.

    L'admin dovrai inserirlo a mano nel database.

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.