problema misterioso session ID

foki

Utente Attivo
2 Lug 2009
48
0
0
Ciao a tutti, ecco la pagina da dove effettuo il login:

PHP:
<?php
session_start();

if( isset($_POST['submit_x']) && (trim($_POST['submit_x'])))
{ 
  if((!isset($_POST['username'])) || ($_POST['username'] == ""))
  {
    echo "Attenzione, username non corretto!";
  }
  elseif((!isset($_POST['password'])) || ($_POST['password'] == "") || (!preg_match("/^[a-z0-9]+$/i", $_POST['password'])))
  {
    echo "Attenzione, password non corretta.";
  }else{
    $username = $_POST['username'];
    $password = $_POST['password'];

    @include "config.php";

    $ctrl_login = @mysql_query("SELECT id FROM iscrizioni WHERE username='$username' AND password='$password'") or die (mysql_error());
    if(@mysql_num_rows($ctrl_login)==0)
    {
      echo "Login incorretto.";
    }else{
      $obj = @mysql_fetch_object($ctrl_login) or die (mysql_error());

      $_SESSION['id'] = $obj->id;
      
      @header("Location: iscritti.php");
    }
  } 
}else{
  ?>

l'azione del form...
PHP:
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">

Il problema è che non mi fa entrare nella pagina di destinazione "iscritti.php" ma mi reindirizza nella index.php, come vuole il codice qua sotto, inserito nella pagina iscritti.php.
PHP:
<?php
session_start();

// controlliamo se è stata inizializzata la sessione
if(isset($_SESSION['id']))
{
  //controllo id con esito positivo
  echo "Benvenuto! Processo di attivazione concluso positivamente!";
}else{
  //controllo sessione con esito negativo
  @header("Location: index.php");
}
?>

non trovo il problema...anche se sembra essere nella codice del login...chiedo il vostro aiuto, grazie. :byebye:

In particolar modo chiedo aiuto a Eliox visto che mi sono basato su una sua guida. ;)
 
Ultima modifica:

Eliox

Utente Attivo
25 Feb 2005
4.390
3
0
ritesta il codice togliendo tutte quelle @, diversamente non riesci a vedere gli errori
 

foki

Utente Attivo
2 Lug 2009
48
0
0
Eliox il codice funziona, il problema è che non mi fa entrare nella pagina di destinazione "iscritti.php" ma mi reindirizza nella index.php, come vuole il codice inserito nella pagina iscritti.php.

penso che il problema stia nel codice del login...non può essere altrimenti...

comunque il codice l'ho preso da questo ho solo tolto questa riga:
PHP:
$query_attivo = @mysql_query("UPDATE iscrizioni SET attivo='1' WHERE id=".$obj->id) or die (mysql_error());

che serve a settare su attivo l'account dell'untente..e ho trasformato il tuo form per la conferma il un login.
 

Eliox

Utente Attivo
25 Feb 2005
4.390
3
0
se avviane il redirect su inde.php vuol dire che $_SESSION['id'] non è settata, prova semplicemente a stamparla nella pagina iscritti.php e vedi se esiste.
 

foki

Utente Attivo
2 Lug 2009
48
0
0
in che modo si setta? comunque nella tabella sql l'id c'è.
 

foki

Utente Attivo
2 Lug 2009
48
0
0
Eliox scusa la mia ignoranza ma potresti essere un pò + preciso? :byebye:
 

alessandro1997

Utente Attivo
6 Ott 2009
5.302
1
0
26
Roma
alessandro1997.netsons.org
Non hai capito. Significa che per qualche motivo l'ID di sessione non viene impostato correttamente. Può dipendere da molte cose.

Comunque ti consiglio di leggerti una guida a PHP e un tutorial su come utilizzare le sessioni.
 

foki

Utente Attivo
2 Lug 2009
48
0
0
Alessandro guarda in alto c'è il codice php della pagina in cui effettui il login e il codice php della pagina in cui arrivi dopo aver effettuato il login.

Secondo te che problema c'è con il session id?
che c'è di wrong nel codice?

grazie per l'attenzione!

:byebye:
 

foki

Utente Attivo
2 Lug 2009
48
0
0
Eliox missà che ho scoperto la causa del problema, mi sono riletto il tuo tutorial e proprio nella prima pagina in alto hai scritto:

****************
Il database che utilizzaremo, potremmo chiamarlo "iscritti", avrà una struttura molto semplice e conterrà un'unica tabella a cui verranno associati 4 campi:

1. Id: identificativo univoco, numerico intero e autoincermentale per ogni record;
2. email: campo di testo per le email/userID; <------QUA
3. password: campo di testo per le password;
4. attivo, campo ENUM che prevede due soli valori possibili: 0 (utente non attivo), 1 (utente attivo).
****************


io ho aggiunto anche un'altro campo: username

e ho sostituito nel tuo form login "email" con "username" però nel ritaglio qua sopra c'è scritto "email/userID", mi pare di aver capito che l'email fosse legata all'ID, mentre io sostituendolo nel codice con "username" ho "spezzato" qualcosa, penso sia questo il motivo per cui il codice funziona ma la sessione mi da problemi, che ne pensi? il problema potrebbe essere con la tabella in SQL?

:byebye:
 
Ultima modifica:

Eliox

Utente Attivo
25 Feb 2005
4.390
3
0
postami il codice del form, non è che per caso hai lasciato email invece che username?
 

foki

Utente Attivo
2 Lug 2009
48
0
0
eliox il codice del form è al primo mio post di questa discussione ed anche il codice della pagina di destinazione..dagli un occhio per favore :byebye:
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao, prova due cose (al massimo non funzia)
1. in entrambe le pagine al posto di sesson_start();
metti questo

PHP:
if(!isset($_SESSION)){
session_start ();
}

2. nella punto dove controlli pass e user metti

PHP:
$ctrl_login = mysql_query("SELECT id FROM iscrizioni WHERE username='$username' AND password='$password'") or die (mysql_error());
    if(mysql_num_rows($ctrl_login)==0)
    {
      echo "Login incorretto.";
    }else{
      $obj = mysql_fetch_array($ctrl_login) or die (mysql_error());
      $_SESSION['id'] = $obj['id'];
      header("Location: iscritti.php");
    }

tentar non nuoce
 

foki

Utente Attivo
2 Lug 2009
48
0
0
Grazie a tutti ma non funziona. :incazz2: mi sto sbattendo ma niente..
ecco (per chi voglia aiutarmi) le "versione", aggiornata con i vostri consigli, del codice:

PHP:
<?php

if( isset($_POST['submit_x']) && (trim($_POST['submit_x'])))
{ 
  if((!isset($_POST['username'])) || ($_POST['username'] == ""))
  {
    echo "Attenzione, username non corretto!";
  }
  elseif((!isset($_POST['password'])) || ($_POST['password'] == "") || (!preg_match("/^[a-z0-9]+$/i", $_POST['password'])))
  {
    echo "Attenzione, password non corretta.";
  }else{
    $username = $_POST['username'];
    $password = $_POST['password'];

    include "config.php";

    $ctrl_login = mysql_query("SELECT id FROM iscrizioni WHERE username='$username' AND password='$password'") or die (mysql_error());
    if(mysql_num_rows($ctrl_login)==0)
    {
      echo "Login incorretto.";
    }else{
      $obj = mysql_fetch_array($ctrl_login) or die (mysql_error());
      $query_attivo = mysql_query("UPDATE iscrizioni SET attivo='1' WHERE id=".$obj['id']) or die (mysql_error());

      $_SESSION['id'] = $obj['id'];
      
      header("Location: iscritti.php");
    }
  } 
}else{
?>

P.S. dopo l'ultimo else c'è il codice del form:

PHP:
?>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
<p align="center" style="margin-top: -20px; margin-bottom: 0">
<img border="0" src="username.gif" width="56" height="11"><br>
<input name="username" type="username" size="20"><br>
<img border="0" src="password.gif" width="57" height="11"><br>
<input name="password" type="password" size="20"></p>
<p align="center" style="margin-top: -8px; margin-bottom: 0"><br>
<input name="submit" type="image" src="buttonlogin.gif"> 
<a href="registrazione.php">
<img border="0" src="buttonregister.gif" width="70" height="26"></a></p>
<p align="center" style="margin-top: -8px; margin-bottom: 0">&nbsp;</p>
<p align="center" style="margin-top: -8px; margin-bottom: 0"><u>
<font size="1" color="#0000FF" face="Arial"><a href="richiesta_password.php">&gt;&gt;</a></font><a href="richiesta_password.php"><font face="Tahoma" size="1" color="#0000FF"> 
hai dimenticato la password?</font></a></u></p>
</form>
<?
}
?>

vedete un pò.. :byebye:
 

onebill964

Utente Attivo
21 Giu 2009
46
0
0
venezia
problema session id

ciao prova cosi':
PHP:
    $ctrl_login = @mysql_query("SELECT id FROM iscrizioni WHERE 'username'='$username' AND password='$password'") or die (mysql_error());
    if(@mysql_num_rows($ctrl_login)>0)
    {
	// esito login positivo 
      $obj = @mysql_fetch_object($ctrl_login) or die (mysql_error()); 
    
      $_SESSION['id'] = $obj->id; 
      // redirect alla pagina degli iscritti
      @header("Location: iscritti.php");
      
    }else{....form....// esito login negativo
 

foki

Utente Attivo
2 Lug 2009
48
0
0
..hai solamente copiato una parte della guida da cui solo partito..quella di eliox..sbaglio?
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
mi sembra che tu utilizzi due nomi diversi:

<input name="submit" type="image" src="buttonlogin.gif">

e poi

if( isset($_POST['submit_x']) && (trim($_POST['submit_x'])))

prova a controllare
 
Discussioni simili
Autore Titolo Forum Risposte Data
I Sto progettando nuovi siti utilizzando bootstrap e devo dire funziona bene, l'unico problema e la maschera -moz- HTML e CSS 0
K Problema form update PHP 2
O problema con dvr dahua xvr5116 IP Cam e Videosorveglianza 0
S Problema nel ciclare un json Javascript 0
G Problema con Xampp Web Server 1
andrea barletta Problema con miniature comandi Photoshop 0
I problema con alice Posta Elettronica 0
K Problema Inner join PHP 1
F firefox problema http Linux e Software 0
N Problema con position absolute e overflow HTML e CSS 4
E Problema jquery Success jQuery 2
L Problema con inner join PHP 11
K [php] Problema con inner join PHP 4
E problema selezione sfumata Photoshop 2
K [PHP] Problema con variabili concatenate. PHP 1
A Problema filtro fluidifica Photoshop Photoshop 1
H Problema Bordi Scontorno Photoshop 1
O problema con query PHP 4
R Problema installazione Realtek WiFi USB rtl8821 Reti LAN e Wireless 1
I problema con 2 account Posta Elettronica 1
L problema collegamento file css con html HTML e CSS 1
Y Problema percorso file in rete PHP 1
N Problema SEO "L'URL non si trova su Google" SEO e Posizionamento 4
E Problema accesso a file con app sviluppata con MIT APP INVENTOR 2 Sviluppo app per Android 0
P Problema acquisizione clienti Webdesign e Grafica 1
F NetBeans problema creazione progetto Java Windows e Software 0
M Problema con Try Catch PHP 0
C problema seo + cerco esperto SEO e Posizionamento 11
Sergio Unia Problema con gli eventi del mouse su una data table: Javascript 2
T PROBLEMA CON SESSIONI PHP 3
A Problema, non so, di scale() o transform, oppure altro? HTML e CSS 0
T ALTRO PROBLEMA CON ARRAY PHP PHP 1
R problema con else PHP 0
T PROBLEMA CON ARRAY PHP 8
L problema con query select PHP 2
R Problema query con ricerca id numerico PHP 2
F Problema con risposta PHP 0
S problema con recupero dati tabella mysql PHP 2
Z Problema con il mio tp-l i nk Reti LAN e Wireless 1
I PROBLEMA: Sostituzione sito XAMPP E-Commerce 0
T problema data 30/11/-1 PHP 0
L Problema RAM con Tomcat 8 Apache 0
napuleone problema con sort e asort PHP 4
Y Problema incolonnamento tabella PHP 7
S problema salvataggio immagini Photoshop 0
Z Problema con INT MySQL PHP 1
Z Problema database MySQL con XAMPP PHP 0
M Problema con controllo form in real time jQuery 6
D problema php mysql PHP 1
D problema php mysql PHP 1

Discussioni simili