PRoblema con le sessioni

ciao, sto preparando uno script per il login degli utenti.

Questo il codice

<?

session_start ();

include "dati.php" ;

mysql_select_db($db_name, $db);

if ( $_GET[action]=="login")

{

$controllo = mysql_numrows (mysql_query("SELECT id FROM iscritti WHERE username='$_POST[username]' AND password='$_POST[password]'"));

if ( $controllo == "1" ) {

$loggato="si";

}

else

{ echo "Non sei loggato" ; $loggato="no"; }

session_register("loggato");

}

mysql_close();

?>

Questo l'errore:

Warning: Unknown: Your script possibly relies on a session side-effect which existed until PHP 4.2.3. Please be advised that the session extension does not consider global variables as a source of data, unless register_globals is enabled. You can disable this functionality and this warning by setting session.bug_compat_42 or session.bug_compat_warn to off, respectively. in Unknown on line 0

Le global sono su on...per cua non capisco il problema..

inviato 9 anni fa
pazzomania
X 0 X

Ciao,

il metodo che usi in via di dismissione, non neanche previsto in php6.

Non usare register_globals... non ha pi nessun senso.

Per risolvere il tuo problema semplicemente rimuovi session_register("loggato"); e sostituisci $loggato="si" con $_SESSION['loggato']='si'

http://tw.php.net/session_register

:bye:

risposto 9 anni fa
robertomigli
X 0 X

ok grazie.

Poi secondo te il metodo di login al riparo dalle sql injection?

risposto 9 anni fa
pazzomania
X 0 X

ovviamente NO! metti che $_POST['password'] = "' AND '1'='1" per esempio....

devi fare un escape della stringa...eventualmente (ma proprio se pensi di essere in pericolo!) controllare valori specifici....

http://it.wikipedia.org/wiki/SQL_injection

:bye:

risposto 9 anni fa
robertomigli
X 0 X

Ragazzi, scusate se riprendo questa vecchia discussione, ma ho un problema simile!

In buona sostanza, ogniqualvolta un utente si logga al mio sito, setto la variabile $_SESSION['utente_loggato']=1. Bene, nelle altre pagine se effettuo un controllo del tipo:

if ($_SESSION['utente_loggato']=1)

anche se l'utente non ha inserito nessun nome utente ecc, accede tranquillamente alla pagina!!

Il tutto invece funziona perfettamente se io scrivo:

if (ISSET($_SESSION['utente_loggato']))

Ma perch??

risposto 8 anni fa
grifis78
X 0 X

devi cambiare

if ($_SESSION['utente_loggato']=1)

con

if ($_SESSION['utente_loggato']==1)

"=" assegna un valore alla variabile a sinistra

"==" confronta i valori a destra e sinistra

:bye:

risposto 8 anni fa
Gianni Tomasicchio
X 0 X

devi cambiare

if ($_SESSION['utente_loggato']=1)

con

if ($_SESSION['utente_loggato']==1)

"=" assegna un valore alla variabile a sinistra

"==" confronta i valori a destra e sinistra

:bye:

risposto 8 anni fa
grifis78
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda