Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2008
    Messaggi
    77

    [PHP] - Problema con sistema login.

    Ciao a tutti.
    Ho cominciato da pochissimo a programmare in php, quindi ho bisogno di una mano da parte vostra.
    Come prima "applicazione" sto provando a fornire il mio sito di un sistema di login delgi utenti.
    so che ci sono pillole a riguardo e script gia fatti, ma dato che sono alle prima armi e sto imparando vorrei cercare di capire cosa sbaglio.
    Allora:
    ho creato un modulo di registrazione al sito tramite il quale inserisco le informazioni nel db.
    Poi mando la mial di attivazione, attivo l'account e va tutto bene.
    quando poi effettuo il login, inserisco user e pass ma comunuqe mi indirizza alla pagina prevista per gli utenti non loggati, e non riesco a capire come mai!
    vi posto un po di codice:

    Questo è il programma che prende in ingresso i dati forniti nel form del log in
    <?
    /* Script controllo utenti*/
    session_start(); // inizia sessione

    include 'db.php';
    // Converto a variabili semplici
    $username = $_POST['username'];
    $password = $_POST['password'];

    if((!$username) || (!$password)){
    echo "Per favore inserisci Username e Password!
    ";
    include 'index.htm';
    exit();
    }

    // Converte la password in md5 hash
    $password = md5($password);

    // conotrolla se l'utente è presente nel db
    $sql = mysql_query("SELECT * FROM utenti WHERE User='$username' AND password='$password' AND attivato='1'");
    $login_check = mysql_num_rows($sql);

    if($login_check > 0){
    while($row = mysql_fetch_array($sql)){ //Questa parte qui l'ho presa da uno script gia
    //fatto e non ne capisco il significato
    foreach( $row AS $key => $val ){
    $$key = stripslashes( $val );
    }
    // registriamo alcune variabili di sessione!
    session_register('nome');
    $_SESSION['nome'] = $nome;
    session_register('cognome');
    $_SESSION['cognome'] = $cognome;
    session_register('indirizzo_email');
    $_SESSION['indirizzo_email'] = $indirizzo_email;

    header("Location: $sitepath/sample.php");
    }
    } else {
    echo "Errore!Username e Password inserite non valide!

    Perfavore riprova!
    ";
    include 'index.html';
    }
    ?>

    Quando inserisco user e pass esatte mi va alla pagnia di esempio che è questa:

    <?
    session_start();
    if ( empty( $nome ) ) {
    ?> Ciao ospite, puoi effettuare il Login qui, oppure puoi registrarti <a href="http:xxx">qui

    </a>
    <?
    } else { include 'db.php'; echo "Bentornato,
    ". $_SESSION['nome'] ."";
    ?>
    Logout
    <? } ?>

    e mi dice appunto: Ciao ospite, puoi effettuare il Login... etc etc..

    Dov'è il problema?

  2. #2
    Sarebbe meglio utilizzare i tag [php ] o [code ] per rendere lo script piu' leggibile.

    alcuni suggerimenti:

    1) usa il tag php esteso: <?php e non <?
    2) prima di "convertire a variabile semplice" verifica che sia valorizzato POST.
    3) Il while ed il foreach non ti servono visto che al max devi avere solo 1 record in risposta.
    4) Se usi $_SESSION non devi registrare le variabili. $_SESSION e' sempre registrato.
    5) If(empty(nome) ) sara' sempre TRUE nel senso di assente o vuoto perche' non lo hai mai valorizzato. Quindi dovresti usare: if(empty($_SESSION['nome']))

    dai un'occhiata al manuale per quanto riguarda le sessioni:

    http://it.php.net/manual/it/ref.session.php

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

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2008
    Messaggi
    77
    ciao, ti ringrazio per la risposta.
    domani darò un'occhiata al manuale ^__^

    Comunque la variabile nome l'ho valorizzata nel primo file, non viene valorizzata anche nel secondo?

  4. #4
    Utente di HTML.it
    Registrato dal
    Jan 2008
    Messaggi
    77
    ho effettuato le modifiche che mi hai segnalato, ma continua a considerarmi come ospite

  5. #5
    Utente di HTML.it
    Registrato dal
    Jan 2008
    Messaggi
    77
    ragazzi nessuno sa aiutarmi???

    ho anche provato a cambiare script, ed ho usato quello presentato in questo sito, ma il problema è sempre lo stesso: mi registro, mi autentico, mi riconosce, ma non mi fa visitare le pagine protette, com'è possibile??!?!
    vi prego di aiutarmi se vi è possibile

  6. #6
    Originariamente inviato da kurtdc
    ragazzi nessuno sa aiutarmi???

    ho anche provato a cambiare script, ed ho usato quello presentato in questo sito, ma il problema è sempre lo stesso: mi registro, mi autentico, mi riconosce, ma non mi fa visitare le pagine protette, com'è possibile??!?!
    vi prego di aiutarmi se vi è possibile
    posta lo script aggiornato secondo le indicazioni di prima.

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

  7. #7
    Utente di HTML.it
    Registrato dal
    Jan 2008
    Messaggi
    77
    in pratica è uguale a quello al primo post, solo che ho messo <?php al posto di <? e poi ho usato if(empty($_SESSION['nome'])) come mi hai detto di fare tu.

  8. #8
    Originariamente inviato da kurtdc
    in pratica è uguale a quello al primo post, solo che ho messo <?php al posto di <? e poi ho usato if(empty($_SESSION['nome'])) come mi hai detto di fare tu.
    ci sono anche altri punti. non sperare nei miracoli. Usa $_SESSION e non session_register()

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

  9. #9
    Utente di HTML.it
    Registrato dal
    Jan 2008
    Messaggi
    77
    Codice PHP:
    session_register('nome');
    $_SESSION['nome'] = $nome;
    session_register('cognome');
    $_SESSION['cognome'] = $cognome;
    session_register('indirizzo_email');
    $_SESSION['indirizzo_email'] = $indirizzo_email
    in pratica qui devo cancellare tutte le linee con session register e lasciare le altre cosi come sono?

  10. #10
    certamente. Oltretutto a quel modo servono a niente le variabili registrate.

    $nome e' ben diverso da $_SESSION['nome']

    lo stesso devi fare nella pagina protetta.

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