Nessuna session start in login PHP

helpdesk

Utente Attivo
30 Set 2009
726
0
0
Pesaro
Salve ragazzi, non riesco a capire dov'è l'errore.
Non mi apre la sessione il php e proprio non capisco perchè.
Potreste analizzare lo script cortesemente?

PHP:
<?php
    session_start();
    require_once("config.inc.php"); 
    
	 $user=$_REQUEST["$User_utente"];
	
	 if( (isset($_POST['user']) ) && ( isset($_POST['pass']) ) ){
	  
                $User_utente = $_POST['user'];
	  $Password_utente =$_POST['pass'];
	  $user=$User_utente;
	  
	  $sql1=mysql_query("SELECT id FROM iscritti WHERE user='$User_utente' AND         pass='$Password_utente'") or die (mysql_error());
	 
	if(mysql_num_rows($sql1)!=0){
	  echo"User=".$user;
	  echo("$user");
	   $riga = mysql_fetch_array($sql1);
	  $_SESSION['id']=$riga['id'];
	 }else{
   }
  }
?>
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
vuoi dire che non ti entra nell'if dove valorizzi la $_SESSION['id']?
se è così vuol dire che
mysql_num_rows($sql1)è uguale a 0, quindi devi verificare la query.
ti conviene dividerla e mettere dei var_dump così vedi
PHP:
<?php
//....
$sql1_str="SELECT id FROM iscritti WHERE user='$User_utente' AND pass='$Password_utente'";
var_dump($sql1_str);
$sql1=mysql_query($sql1_str) or die (mysql_error());
//...
?>
esempio
se il var_dump ti restituisce
string(xy) "SELECT id FROM iscritti WHERE user='' AND pass='password'"
devi verificare perche non trasmetti/ricevi $User_utente/$_POST['user'], analogamente per la password o se entrambi

non credo che l'errore sia in
session_start();
perche, da quello che dici, se (es.) prima ci fosse anche solo uno spazio, php ti darebbe il warning...
 

helpdesk

Utente Attivo
30 Set 2009
726
0
0
Pesaro
sparisce se chiudi la finestra

Scusate ragazzi ma la sessione non dovrebbe restare anche se chiudi la finestra e poi ne riapri una nuova?

http://www.banneranimati.com/000xjzqm/php/phpHtml.html

LOGIN: USER: GUEST PASSWORD: guest

se provate poi a fare il refresh del link che si apre dopo il login la sessione resta ma se poi si chiude la pagina e ci si riconette alla stessa pagina la sessione spariche perchè?

PHP:
<?php
    session_start();
    require_once("config.inc.php"); 
    
	if( (isset($_POST['user']) ) && ( isset($_POST['pass']) ) ){
	  $User_utente = $_POST['user'];
	  $Password_utente =$_POST['pass'];
	  $user=$User_utente;
	  
	
	 $sql1_str="SELECT id FROM iscritti WHERE user='$User_utente' AND pass='$Password_utente'";
     $sql1=mysql_query($sql1_str) or die (mysql_error());
	 echo"User=".$user;
	 if(mysql_num_rows($sql1)!=0){
	  $riga = mysql_fetch_array($sql1);
	  $_SESSION['id']=$riga['id'];
	 }else{
   }
  }
?>
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
non è che la sessione sparisca al refresh.
facendo il ref in pratica è come se ritrasmettessi i post, ma in questo caso il loro valore è "" per cui
$riga['id'] non viene trovato di conseguenza $riga['id'] =="" così la $_SESSION['id']
prova a mettere
PHP:
<?php 
    session_start(); 
    require_once("config.inc.php");  
    if( isset($_POST['user'])  && isset($_POST['pass']) && ($_POST['user'] !="" || $_POST['pass'] !="")){ 
      //cioè oltre all'isset i due valori non devono essere vuoti
	  $User_utente = $_POST['user']; 
      $Password_utente =$_POST['pass']; 
      $user=$User_utente; //questa riga a che ti serve?
     $sql1_str="SELECT id FROM iscritti WHERE user='$User_utente' AND pass='$Password_utente'"; 
     $sql1=mysql_query($sql1_str) or die (mysql_error()); 
     echo"User=".$user; //non potresti mettere semplicemente echo "User=".$User_utente; ?
     if(mysql_num_rows($sql1)!=0){ 
      $riga = mysql_fetch_array($sql1); 
      $_SESSION['id']=$riga['id']; 
     }else{//qui metti l'echo cosi vedi dove sei
	 echo "I VALORI NON SONO VALIDI";
   } 
  } 
?>

p.s.
poi trattandosi di log con accesso la db fai altri controlli sui post e come minimo metti
PHP:
$User_utente = addslashes($_POST['user']); 
$Password_utente =addslashes($_POST['pass']);
 

helpdesk

Utente Attivo
30 Set 2009
726
0
0
Pesaro
No la sessione non sparice al refresh perdo la sessione se chiudo la pagina e mi riconnetto alla pagina
dove c'è scritto USER=GUEST
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
scusa, mi sono confuso io, ma per vedere dove sei devi mettere
PHP:
//...
      $_SESSION['id']=$riga['id']; 
     }else{//qui metti l'echo cosi vedi dove sei
     //echo "I VALORI NON SONO VALIDI";
   }
   echo "I VALORI NON SONO VALIDI";
  } 
?>
chiamando
http://www.banneranimati.com/000xjzqm/php/login.php
dovrebbe apperirti il messaggio I VALORI NON SONO VALIDI
eventalmente prima dell'echo metti un
var_dump($_SESSION['id']);
così vedi cosa succede alla sessione
 

helpdesk

Utente Attivo
30 Set 2009
726
0
0
Pesaro
Ho inserito il tuo script, che se ho ben capito evidenzia che non entra nella if valida
quindi c'è qualcosa che non permette alla condizione di aprire la sessione giusto?
poichè il valore è diverso da 0? e non dovrebbe esserlo?

PHP:
<?php  
    session_start();  
    require_once("00xj_config.inc.php"); 
    if( isset($_POST['user'])  && isset($_POST['pass']) && ($_POST['user'] !="" || $_POST['pass'] !="")){ 
      
      $User_utente = $_POST['user'];  
      $Password_utente =$_POST['pass'];  
      $sql1_str="SELECT id FROM iscritti WHERE user='$User_utente' AND pass='$Password_utente'"; 
      $sql1=mysql_query($sql1_str) or die (mysql_error());  
      echo"User=".$User_utente;
      if(mysql_num_rows($sql1)!=0){  
      $riga = mysql_fetch_array($sql1);  
     $_SESSION['id']=$riga['id'];  
     var_dump($_SESSION['id']);
     }else{
    } 
   echo "I VALORI NON SONO VALIDI"; 
  }  
?>
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
la session non c'entra
per cercare di risolvere conviene mettere in giro dei ver_dump o degli echo per vedere dove lo script si incastra
ti stampa sempre I VALORI NON SONO VALIDI ? se sì ancora non trasmetti/ricevi i $_POST del'user e delle pass o suono vuoti, verifica i nomi dei campi di input e quelli dentro ['...']
oppure ti stampa la riga con echo"User=$User_utente password=$Password_utente<br>";? quindi da verificare cosa risulta alla riga
echo "trovati $numero<br>";
se questa risulta 0 vuol dire che la query non è giusta o che non c'è un record come richiesto, verifica la corripondenza tra i nomi dei campi nella query e quelli in tabella (comprese minuscole/maiuscole) e/o il record esista
PHP:
<?php  
    session_start();  
    require_once("00xj_config.inc.php"); 
    if( isset($_POST['user'])  && isset($_POST['pass']) && ($_POST['user'] !="" || $_POST['pass'] !="")){ 
      echo "sono dentro il primo if<br>";
      $User_utente = $_POST['user'];  
      $Password_utente =$_POST['pass']; 
      $sql1_str="SELECT id FROM iscritti WHERE user='$User_utente' AND pass='$Password_utente'"; 
      $sql1=mysql_query($sql1_str) or die (mysql_error());  
      echo"User=$User_utente  password=$Password_utente<br>";
      $numero=mysql_num_rows($sql1);
	  echo "trovati $numero<br>";
	  if(mysql_num_rows($sql1)!=0){  
      $riga = mysql_fetch_array($sql1);  
	  $_SESSION['id']=$riga['id'];  
      var_dump($_SESSION['id']); echo "la sessione<br>";
     }else{
	  echo "non trovata corrispondenza nella tabella <br>";
     } 
   echo "I VALORI NON SONO VALIDI"; 
  }  
?>
provalo e verifica e posta i vari risultati
 

helpdesk

Utente Attivo
30 Set 2009
726
0
0
Pesaro
Ciao Borgo e grazie, funziona e funzionava anche prima solo che io pretendevo che riconoscesse l'id di sessione
dell'utente senza registrarlo da nessuna parte. Mentre registrandolo nel database e poi andandolo a recuperare con una query di select lo tiene :)

Grazie mille per la pazienza e per l'aiuto.
 
Discussioni simili
Autore Titolo Forum Risposte Data
felino Stampante Epson XP-322: nessuna traccia del colore nero! Hardware 6
G PHP Nessuna risposta PHP 3
helpdesk nessuna risposta dalla query di selct PHP 5
S [Skype] Videocall & Microfoni: nessuna funzione MicBoost... E' possibile "installarne" una? Windows e Software 1
E HELP - nessuna password database Database 1
S Daemon tools non crea nessuna unità virtuale Hardware 1
L login e session PHP 4
max1974 Session Timeout Javascript 0
L [PHP] login e protezione pagine con session PHP 3
P [PHP] Multi-session PHP 1
Y [PHP] The session is lost PHP 8
G [PHP] Problema - Warning: session_start() [function.session-start] PHP 9
L [WordPress] creare un plugin , come faccio ad utilizzare le session. WordPress 5
M [Java] Session Attribute Spring MVC Java 1
M [PHP] ID in SESSION PHP 1
P Session e cookie funzionano solo dopo passaggio valori tramite POST PHP 8
W Session e htaccess PHP 2
M Non aggiorna valore session PHP 5
Nik Cannot send session cache limiter - ERRORE utilizzando session_start(); PHP 3
I registrazione (SESSION) PHP 5
K problemi con nome della session PHP 3
N Problema con le SESSION PHP 6
P problema salvataggio e richiamo SESSION PHP 0
M Session timeout in ASP.NET ASP.NET 1
S VS2010: Variabili Session in ASP net ASP.NET 2
Emix Problema Session PHP 1
S codeigniter session problem PHP 1
A session hijacking PHP 0
A Problema SESSION e LOGIN PHP 1
T Cambiare session id PHP 1
Monital Errore solo per alcuni utenti, colpa delle session? PHP 5
Fabrizio Fiorita header e session funzionano perfettamente in locale ma creano problemi in remoto PHP 32
J PhPBB , e le session di login phpBB 1
S session come mettere l'id utente PHP 1
G problema con session.gc_maxlifetime PHP 3
T problema con le session PHP 3
ciacos74 PHP errore function.session-start PHP 25
max_400 blog con session si può fare? PHP 10
M problema con Session PHP 3
M Problema con l'utilizzo delle Session PHP 3
H Warning: session_start() [function.session-start]: Cannot send session cache limiter PHP 8
foki problema misterioso session ID PHP 30
A session sid PHP 12
borgo italia session evanescente PHP 4
G problema con session.cookie_lifetime PHP 1
A session start() PHP 7
L Session o cookie? Classic ASP 3
M Warning: session_start(): Cannot send session cache... ???? PHP 5
P problema sessioni php [function.session-start] PHP 2
L Abbinare ad una session un determinato valore Classic ASP 16

Discussioni simili