codencode ti aveva suggerito un ottimo link ti suggerisco di darci un'occhiata
codencode ti aveva suggerito un ottimo link ti suggerisco di darci un'occhiata
semplicità ... al sol nominarla sembra svanire
guarda
alla fine mi sono copiato il tuo codice...
l'ho fatto girare da me in locale
risultato:
a me funziona perfettamente!!!!!![]()
come già ti avevo già detto il codice è giusto.
almeno per quanto riguarda il login non da errori fa quello che deve fare...
se hai problemi questi sono sul db
![]()
non è sbagliata, nel senso che funziona,Poi la query di ricerca, secondo me è sbagliata:
$query = "SELECT id,username, nome, attivo FROM utenti WHERE username='" . $_POST['username'] . "' AND password='" . md5($_POST['password']) . "' AND attivo ='1'";
l'utente viene trovato, loggato e i suoi dati memorizzati in sessione
infatti
var_dump($_SESSION);
array(4) { ["username"]=> &string(10) "paperinik4" ["password"]=> &NULL ["attivo"]=> &int(1) ["pass"]=> &NULL }
il passo successivo è reindirizzare l'utente alla pagina paginaris.php
se il redirect non funziona e non hai voglia di studiarti l'articolo puoi risolvere con un link, magari fino a quando non trovi una soluzione migliore
Sei stato autenticato
<a href=paginaris.php>vai alla home page</a>
semplicità ... al sol nominarla sembra svanire
a parte che questa create è errata perchéOriginariamente inviato da paperinik4
Ma la tabella è giusta ???
Codice PHP:
create table utenti (
id INT UNSIGNED NOT NULL AUTO_INCREMENT,
nome VARCHAR(30) NOT NULL,
cognome VARCHAR(30) NOT NULL,
username VARCHAR(30) NOT NULL,
email VARCHAR(40) NOT NULL,
password VARCHAR(255) NOT NULL,
attivo int('1') DEFAULT '0', //sopratutto attivo
PRIMARY KEY (id)
);
attivo int('1') DEFAULT '0'
è sbagliato
perché dovrebbe essere al massimo
attivo int(1) DEFAULT 0
in ogni caso se metti attivo come INT è meglio se poi nella queriy non lo metti tra apici:
Io nella mia prova in locale avevo messoCodice PHP:
$query = "SELECT id,username, nome, attivo
FROM utenti WHERE username='" . $_POST['username']
. "' AND password='" . md5($_POST['password'])
. "' AND attivo =1";// 1 senza apici
attivo varchar(1) DEFAULT '0'
e ha funzionato alla grande
(in questo caso lasciando gli apici nella query)
senza apici o con apici non fa differenza,
ma se funziona che problemi ti fai?![]()
semplicità ... al sol nominarla sembra svanire
è giusto allora perché ENUM è un oggetto di tipo stringaOriginariamente inviato da paperinik4
Perdonami,
Ma se io metto attivo in questa maniera è uguale ????
E' solo per essere sicuri.Codice PHP:
create table utenti (
id INT UNSIGNED NOT NULL AUTO_INCREMENT,
nome VARCHAR(30) NOT NULL,
cognome VARCHAR(30) NOT NULL,
username VARCHAR(30) NOT NULL,
email VARCHAR(40) NOT NULL,
password VARCHAR(255) NOT NULL,
attivo ENUM('1', '0') DEFAULT '0',
PRIMARY KEY (id)
);
quindi non anche la tabella è giusta...,
allora non capisco perché a te non funzioni il login e a me sì...
scusa paperinik4 ... prima avevi detto
questo è segno che il login è riuscito!!! lo ripeto ancoraMi restituisce la seguentecosa:
Arrayarray(4) { ["username"]=> &string(10) "paperinik4" ["password"]=> &NULL ["attivo"]=> &int(1) ["pass"]=> &NULL }
adesso dici che visualizzi
ERRORE: 404 AREA RISERVATA.
in seguito a cosa? al submit del login? al redirect? spiegati
il 404 è l'errore della pagina non trovata, guarda l'url nel browser
semplicità ... al sol nominarla sembra svanire
Non vorrei dirvi nulla, ma va un solo session_start(); su ogni pagina, altrimenti si corre il rischio di azzerare la sessione