- Home
- Categorie
- Coding e Sistemistica
- Coding
- come funziona SESSION
- 
							
							
							
							
							
come funziona SESSIONCiao a tutti, io ho una pagina dove faccio il login, se è andato a buon fine vorrei che nalla pagina dolo lo invio, uscisse il nome di chi si è loggato, lo faccio, forse in modo errato 
 login.php
 [php]
 if(isset($_POST['t_username']))
 {
 $user = (isset($_POST['t_username'])) ? trim($_POST['t_username']) : '';
 $pass = (isset($_POST['t_password'])) ? trim($_POST['t_password']) : '';
 if (get_magic_quotes_gpc())
 {
 $user=stripslashes($user);
 $pass=stripslashes($pass);
 }
 $user= htmlspecialchars($user);
 $pass= htmlspecialchars($pass);
 $user=mysql_real_escape_string($user);
 $pass=mysql_real_escape_string($pass);$query = mysql_query("SELECT id_giocatore FROM tab_registrazione WHERE nickname = '$user' AND password = '$pass' LIMIT 1"); 
 if(mysql_num_rows($query) == 1)
 {
 $login = mysql_fetch_array($query);
 $_SESSION['login'] = $login['id_giocatore'];
 header('Location: index.php');
 exit;
 }
 else
 {
 $messaggio=urlencode("Accesso Negato!<br>
 Username e/o Password non riconosciuti"<br>
 header('location:'.'frm_login.php'.'?msg='.$messaggio);
 exit;
 }
 }
 [/php]
 la pagina index.php
 [php]
 <table border="1" cellspacing="0" cellpadding="0" bordercolor="#00FF00" height="400">
 <tr>
 <td><?php
 if(!isset($_SESSION['id_login'])){
 echo"aaa";}
 else{
 echo"$_SESSION['id_login']";}?></td>
 </tr>
 </table>
 [/php]mi stampa sempre aaa ciao e grazie 
 
- 
							
							
							
							
							Ciao danny1975, tu imposti $_SESSION['login'] mentre fai il controllo su $_SESSION['id_login']. 
 
- 
							
							
							
							
							
Grazie ho provato anche 
 [PHP]
 <?php
 if(!isset($_SESSION['login'])){
 echo"aaa";}
 else{
 echo"$_SESSION['login']";}?>
 [/PHP]
 ma nulla da fare, secondo me non ho capito niente delle sessioni
 
- 
							
							
							
							
							Il session_start viene eseguito in entrambe le pagine? 
 
- 
							
							
							
							
							
Solo in login.php nella index.php no 
 
- 
							
							
							
							
							Devi metterlo pure la, altrimenti non puoi usare le sessinoi in quella pagina. 
 
- 
							
							
							
							
							
Quando inserisco ``` 
 session_start();Warning: session_start()function.session-start: open(C:\temp\sess_b9ce7dd2e0c8e3427137d5a63ce49939, O_RDWR) failed: No such file or directory (2) in D:\html\fantascommetti\privato\index.php on line 2 [PHP] <?php session_start(); require '../Config.php'; require '../Connect.php'; ?> <table border="1" cellspacing="0" cellpadding="0" bordercolor="#00FF00" height="100"> <tr> <td><?php if(!isset($_SESSION['login'])){ echo"aaa";} else{ echo"$_SESSION['login']";}?></td> </tr> </table> [/PHP] eppure sembra cosi facile ciao :cry:
 
- 
							
							
							
							
							Ciao! (danny1975) prova se funziona così? [php] 
 <?php
 session_start();
 require '../Config.php';
 require '../Connect.php';
 ?>
 <table border="1" cellspacing="0" cellpadding="0" bordercolor="#00FF00" height="100">
 <tr>
 <td><?php
 $login=$_SESSION['login'];
 if(!isset($_SESSION['login']))
 {
 echo"Ciao $login";
 }else{ 
 echo"devi effettuare prima il login";}?></td>
 </tr>
 </table>
 ?>
 [/php]
 Se funziona fammi sapere.
 
- 
							
							
							
							
							
@mauranto99 said: Ciao! (danny1975) prova se funziona così? [php] 
 <?php
 session_start();
 require '../Config.php';
 require '../Connect.php';
 ?>
 <table border="1" cellspacing="0" cellpadding="0" bordercolor="#00FF00" height="100">
 <tr>
 <td><?php
 $login=$_SESSION['login'];
 if(!isset($_SESSION['login']))
 {
 echo"Ciao $login";
 }else{ 
 echo"devi effettuare prima il login";}?></td>
 </tr>
 </table>
 ?>
 [/php]
 Se funziona fammi sapere.Ciao oltre all'errore che ho segnalato in precedenza adesso mi dice **Notice**: Undefined index: login in **D:\html\fantascommetti\privato\siu.php** on line **9** Ciao
 
- 
							
							
							
							
							L'errore che hai postato precedentemente non è un problema che dipende dallo script, bensi ci sono problemi nelle gestioni lato server, è la configurazione del tuo server locale ad avere dei problemi e non lo script. 
 
- 
							
							
							
							
							
@mauranto99 said: Ciao! (danny1975) prova se funziona così? [php] 
 <?php
 session_start();
 require '../Config.php';
 require '../Connect.php';
 ?>
 <table border="1" cellspacing="0" cellpadding="0" bordercolor="#00FF00" height="100">
 <tr>
 <td><?php
 $login=$_SESSION['login'];
 if(!isset($_SESSION['login']))
 {
 echo"Ciao $login";
 }else{ 
 echo"devi effettuare prima il login";}?></td>
 </tr>
 </table>
 ?>
 [/php]
 Se funziona fammi sapere.@Thedarkita said: L'errore che hai postato precedentemente non è un problema che dipende dallo script, bensi ci sono problemi nelle gestioni lato server, è la configurazione del tuo server locale ad avere dei problemi e non lo script. Hai ragione adesso ho provato anche un altro sito che avevo fatto e mi da lo stesso errrore, mi potresti aiutare, grazie 
 
- 
							
							
							
							
							
Ok con un po di pazienza sono riuscito a settare il php.ini 
 adesso mi riconosce la session e mi da Ciao 1,
 1 sarebbe l'id del loggato, adesso devo dargli un nome ed ho fatto una query, ma non va pwerchè non so dove è l'errore con le virgolette, vi posto la query
 [PHP]
 <table border="1" cellspacing="0" cellpadding="0" bordercolor="#00FF00" height="100">
 <tr>
 <td><?php
 $login=$_SESSION['login'];
 $query_1=mysql_query("SELECT nickname FROM tab_registrazione WHERE id_giocatore=$login")
 or die("errore nella query;".mysql_error());
 $result=mysql_num_rows($query_1);
 if(isset($_SESSION['login']))
 {
 echo"Ciao" . $result['nickname'];
 }else{ 
 echo"devi effettuare prima il login";}?></td>
 </tr>
 </table>
 [/PHP]
 Lo so il problema sta che c'è una stringa
 
- 
							
							
							
							
							
@danny1975 said: Ok con un po di pazienza sono riuscito a settare il php.ini 
 adesso mi riconosce la session e mi da Ciao 1,
 1 sarebbe l'id del loggato, adesso devo dargli un nome ed ho fatto una query, ma non va pwerchè non so dove è l'errore con le virgolette, vi posto la query
 [php]
 <table border="1" cellspacing="0" cellpadding="0" bordercolor="#00FF00" height="100">
 <tr>
 <td><?php
 $login=$_SESSION['login'];
 $query_1=mysql_query("SELECT nickname FROM tab_registrazione WHERE id_giocatore=$login")
 or die("errore nella query;".mysql_error());
 $result=mysql_num_rows($query_1);
 if(isset($_SESSION['login']))
 {
 echo"Ciao" . $result['nickname'];
 }else{ 
 echo"devi effettuare prima il login";}?></td>
 </tr>
 </table>
 [/php]
 Lo so il problema sta che c'è una stringascusatemi tanto, non è mysql_num_rows 
 ma mysql_fetch_array, infatti il risultato torna, potreste dirmi se la query professionalmente è giusta? grazie da danny per l'aiuto