Visualizzazione risultati 1 fino 5 di 5

Discussione: Script Login non recupera la sessione

  1. #1
    adminreluca non è connesso Utente
    Data registrazione
    06-03-2006
    Messaggi
    112

    Predefinito Script Login non recupera la sessione

    Ciao ragazzi, allora la pagina di registrazione l'ho gia fatta e funziona.
    Ora ho un problema, tenendo presente tutto il casino di pagine, lo script non mi mostra nella pagina reg_modifica_dati.php i dati del database, perche?

    Form Login: (login.php)
    Codice PHP:
    Compila i due campi sottostanti per accedere.<br /><br />
    <
    style type="text/css">
    #content{ width:250px; float:left;}
    #content2 { float:left; margin-right:20px; width:200px;}
    </style>

    <
    form action="reg_checklogin.php" method="post">
    <
    div id="content">Inserisci il tuo Nome Utente:</div>
    <
    div id="content2"><input id="myusername" name="myusername" type="text" /></div>
    <
    p>&nbsp;</p>
    <
    div id="content">Inserisci la tua Password:</div>
    <
    div id="content2"><input id="mypassword" name="mypassword" type="password" /></div>
    <
    p>&nbsp;</p><br />
    <
    input name="Submit" type="submit" value="Login" />
    </
    form>
    reg_checklogin.php
    Codice PHP:
    <?php
    // includiamo il file di connessione al database
    include ('mysql_connect.php');
    mysql_select_db("$db_name2")or die("cannot select DB");

    // Username e Password inviati dal form
    $myusername=$_POST['myusername'];
    $pwd=$_POST['mypassword'];

    //Converto la Password
    $mypassword=md5($pwd);

    // Pre la protezione da MySQL Injection
    $myusername = stripslashes($myusername);
    $mypassword = stripslashes($mypassword);
    $myusername = mysql_real_escape_string($myusername);
    $mypassword = mysql_real_escape_string($mypassword);

    $sql="SELECT * FROM registrazione_sito WHERE username='$myusername' and password='$mypassword'";
    $result=mysql_query($sql);

    // Conta le righe della tabella
    $count=mysql_num_rows($result);

    if(
    $count==1){
    // Registra la sessione e ti manda alla pagina login_success.php
    session_register("myusername");
    session_register("mypassword");
    session_register("mail");
    session_register("nome");
    session_register("cognome");
    session_register("associato");

    header("location:reg_login_success.php");
    }
    else {
    header("location:reg_login_fallito.php");
    }
    ?>
    reg_login_success.php (che non reindirizza automaticamente, perche?)
    Codice PHP:
    <?
    session_start
    ();
    if(!
    session_is_registered(myusername)){
    header("Refresh: 3;URL=reg_modifica_dati.php");
    }
    ?>

    Login effettuato con successo, attendi il redirect...<br><br>
    <a href="reg_modifica_dati.php">Non attendere oltre.</a>
    reg_modifica_dati.php che intanto deve mostrare solo i dati che recupera dal database.
    Codice PHP:
    <?
    session_start
    ();
    if(!
    session_is_registered(myusername)){
    header("location:index.php");
    }
    ?>
    Benvenuto nel pannello di controllo del tuo Account: potrai da questa pagina modificare i tuoi dati, decidere se continuare o meno a ricevere la newsletter, ecc.<br />
    <?php
    // includiamo il file di connessione al database
    include ('mysql_connect.php');
    mysql_select_db("$db_name2")or die("cannot select DB");

    // recupero di tutti i dati dal database
    $query = "SELECT nome, cognome, sesso, data_nascita, username, mail, accetto_newsletter FROM registrazione_sito WHERE username='$myusername'";
    $result = mysql_query ($query);

    if (
    mysql_num_rows ($result) < 1)
    {
    echo
    ""; // messaggio errore
    }
    else
    {
    $row = mysql_fetch_array ($result);
    $nome = $row['nome'];
    $cognome = $row['cognome'];
    $data_nascita = $row['data_nascita'];
    $username = $row['username'];
    $mail = $row['mail'];
    $accetto_newsletter = $row['accetto_newsletter'];
    }
    ?>

    <style type="text/css">
    #content{ width:350px; float:left;}
    #content2 { float:left; margin-right:20px; width:200px;}

    #content3{ width:315px; float:left;}
    #content4 { float:left; margin-right:20px; width:235px;}
    </style>

    <form action='?inviodati=ok' method='POST'>
    <p><strong>Informazioni reali.</strong></p>
    <div id="content">Nome:</div>
    <div id="content2"><input name='nome' type='text' size="27" value="<?php print "$nome"; ?>" /></div>


    <p>&nbsp;</p>
    <div id="content">Cognome:</div>
    <div id="content2"><input name='cognome' type='text' size="27" value="<?php print "$cognome"; ?>" /></div>


    <p>&nbsp;</p>
    <div id="content">Data di nascita: (gg/mm/aaaa)</div>
    <div id="content2"><input name='data_nascita' type='text' size="27" id="data_nascita" value="<?php print "$data_nascita"; ?>"/></div>


    <p>&nbsp;</p>
    <p><br /><strong>Informazioni virtuali. </strong></p>
    <div id="content">Nome Utente: (non modificabile)</div>
    <div id="content2"><input name='username' type='text' size="27" id="username" readonly="readonly" value="<?php print "$username"; ?>"/></div>
    <p>&nbsp;</p>


    <div id="content">Indirizzo e-Mail:</div>
    <div id="content2"><input name='mail' type='text' size="27" value="<?php print "$mail"; ?>" /></div>
    <p>&nbsp;</p>


    <div id="content">Modifica Password:</div>
    <div id="content2">(<a href="reg_modifica_password.php" target="box">Modifica</a>)</div>
    <p>&nbsp;</p>


    <p><br /><strong>Consensi e altre richieste.</strong></p>
    <div id="content3">Desidero ricevere all'indirizzo e-Mail da me indicato la newsletter e altre informazioni riguardanti gli aggiornamenti del sito e dei servizi.</div>
    <div id="content4">
    <input name='accetto_newsletter1' type='text' id="accetto_newsletter1" size="27" readonly="readonly" value="<?PHP if($accetto_newsletter == "Attivato") {echo "Stato attuale: Attivato"; } else {echo "Stato attuale: Disattivato"; } ?>"/>
    <input name="accetto_newsletter" type="checkbox" id="accetto_newsletter" value="Attivato" <?PHP if($accetto_newsletter == "Attivato") {echo "checked"; } ?> />
    </div>
    <p>&nbsp;</p><br /><br />

    <p>
    <input type='submit' value='Modifica i dati' /></p>
    </form>

  2. #2
    Guest

    Predefinito

    Aggiungi error_reporting(E_ALL); all'inizio dello script per fare dell'utile debug.

    In secondo luogo, myusername è una costante? Non è che vada tra virgolette?


  3. #3
    adminreluca non è connesso Utente
    Data registrazione
    06-03-2006
    Messaggi
    112

    Predefinito

    che casino, sono un niubbo e non so nemmeno usare l'error reporting, una volta funzionava sto coso, non riesco a capire come mai ha smesso.

  4. #4
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,270

    Predefinito

    Innanzitutto è sconsigliato utilizzare session_register(), session_is_registered() perché sono deprecati; dovresti usare $_SESSION.

    Venendo al tuo problema, prova a controllare $result. Se è FALSE, fai stampare tramite la mysql_error() l'errore. In questo modo dovresti trovare l'errore.

    Ciao!

  5. #5
    adminreluca non è connesso Utente
    Data registrazione
    06-03-2006
    Messaggi
    112

    Predefinito

    Ragazzi ho risolto. Grazie mille!

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •