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.