Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2012
    Messaggi
    79

    Sessioni non mantengono dati

    Buongiorno a tutti ^^
    Sono da pochissimi giorni alle prese con il php, e sono incappata in un problema che ho visto è stato riscontrato da molti, ho letto quindi molte soluzioni, anche qui sul forum, tuttavia per me non sono servite.

    Ho creato un database al qualche vado a collegarmi con una form di login, per poter quindi far effettuare l'accesso agli utenti registrati nel database. Il collegamento al serve e database avviene senza alcun problema. Il problema sta nel fatto che se utilizzo la variabile $_SESSION non mi restituisce alcun valore dell'username dell'utente registrato.

    Il mio "sito" è composto da 3 paginette
    main_login.php dove si trova solo la struttura html del sito con la form (fatta molto semplice, giusto per avere un abbozzo di form, in quanto ora l'aspetto importante è l'atto di loggarsi) che richiama checklogin.php

    checklogin.php dove vengono fatti i collegamenti al database e viene controllato che l'utente esista
    (il controllo avviene correttamente, infatti mi fa loggare solo gli utenti registrati)

    Codice PHP:
    <?php
    //Memorizzo tutti i dati per il collegamento
    $host=
    $username=
    $password=
    $db_name=
    $tbl_name=

    mysql_connect("$host""$username""$password")or die("cannot connect"); 
    mysql_select_db("$db_name")or die("cannot select DB");

    $myusername=$_POST['myusername']; //prendo i dati dalla form
    $mypassword=$_POST['mypassword'];
    $myusername stripslashes($myusername);
    $mypassword stripslashes($mypassword);
    $myusername mysql_real_escape_string($myusername);
    $mypassword mysql_real_escape_string($mypassword);

    $sql="SELECT * FROM $tbl_name WHERE U_NomeUtente='$myusername' and U_Password='$mypassword'";
    $result=mysql_query($sql);
    $count=mysql_num_rows($result);

    if(
    $count==1)
    {
    $_SESSION['usernameSessione']="myusername";
    $_SESSION['passwordSessione']="mypassword"

    //echo "Ciao ". $_SESSION['usernameSessione'] . " La tua password è " . $_SESSION['passwordSessione']; <--Ciao myusername La tua password Ã¨ mypassword
    header("location:loggato.php");
    }else 
    {
    echo 
    "Wrong Username or Password"; }
    ?>
    loggato.php pagina di reindirizzamento se login è ok
    Codice PHP:
    <?php
    session_start
    ();
    if (isset(
    $_SESSION["usernameSessione"]))
    {
    echo 
    "Ciao "$_SESSION["usernameSessione"];
    }
    else{
    echo 
    "Utente non trovato";}
    ?>
    L'output è il seguente: Ciao myusername

    Inizialmente avevo provato anche con session_start in checklogin, ma la situazione non cambia.
    Ho provato a ricontrollare che non fosse un errore di nome di variabile e non mi pare, ho seguito vari tutorial, tra cui molti semplicissimi che riportano semplicemente il procedimento da me seguito, ma non riesco ad ottenere risultati. Il problema si è riscontrato su tutti i browser, nonostante i cookies sono abilitati. Ho controllato anche tramite phpinfo, e pare sia tutto abilitato per la gestione delle sessioni, ma appunto, sono da poco su questo linguaggio quindi potrei aver fatto un errore ridicolo!

    Ho letto anche della variabile PHPSESSID ma non ho capito se nel mio caso è da utilizzare o meno, poichè i cookie sono abilitati.

    Grazie in anticipo per la collaborazione, spero di esser stata chiara.
    Ultima modifica di JErikaM; 12-09-2014 a 12:24

  2. #2
    Utente di HTML.it L'avatar di las
    Registrato dal
    Apr 2002
    Messaggi
    1,221
    prova a stamapare i dati in sessione per vedere cosa hai:

    Codice PHP:
     <?php
    session_start
    ();

    echo 
    "<pre>";
    print_f($_SESSION);
    echo 
    "</pre>";

    if (isset(
    $_SESSION["usernameSessione"]))
    {
    echo 
    "Ciao "$_SESSION["usernameSessione"];
    }
    else{
    echo 
    "Utente non trovato";}
    ?>
    Il calcolatore è straordinariamente veloce, accurato e stupido.
    L'uomo è incredibilmente lento, impreciso e creativo.
    L'insieme dei due costituisce una forza incalcolabile.
    (Albert Einstein)

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2012
    Messaggi
    79
    Scusate se riporto in vita un vecchio post ma volevo segnalare che ho risolto. Era stupidamente un errore di sintassi.
    avevo omesso $ da $_SESSION['usernameSessione']=$myusername;

    Grazie comunque las
    Ultima modifica di JErikaM; 22-09-2014 a 12:13

Tag per questa discussione

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.