[PHP] header (location..) non funzionante dopo login

Mattuso

Nuovo Utente
19 Mag 2019
6
0
1
Buonasera a tutti,
sto cercando di costruire una pagina di login per un sito; al momento è molto semplice, i controlli di sicurezza li aggiungerò in un secondo momento.
Questa è l'intero codice della pagina login2.php che riceve i dati da login.php che contiene solo un form con i campi email e password:
PHP:
<?php
[INDENT]session_start();
include "conn.php";

$email = $_POST["email"];
$password = $_POST["password"];

$sql = "SELECT * FROM users WHERE email = '$email' and password = '$password'";
$result = mysqli_query($conn,$sql);
$row = mysqli_fetch_array($result);
$count = mysqli_num_rows($result);

if($count == 1){
   $_SESSION['id'] = $row["id"];
   header('Location: dashboard.php');
       }else{
       echo "Username or Password invalid";
   }
?>
Se inserisco email o password errati, ricevo l'errore correttamente, ma se inserisco i dati corretti, invece di caricare dashboard.php (che contiene solo un echo "welcome";), mi ricarica login.php, ossia il form iniziale.[/INDENT]
Ho provato a sostituire header(...) con
PHP:
echo "$row["id"]";
e viene correttamente stampato l'id dell'utente, ho sostituito tutto il codice con il seguente
PHP:
<?php header('Location: dashboard.php');?>

ho verificato che la codifica del file sia UTF-8 e non UTF-8 BOM in modo da accertarmi che non ci fosse output prima del comando "header", ma il redirect alla pagina dashboard.php non c'è verso di farlo funzionare.
Questo problema lo sto riscontrando con phpmyadmin su un server privato, ma usando XAMPP in locale ho lo stesso risultato.
Qualcuno ha idea di cosa sto sbagliando? Sono due giorni che sto impazzendo e non riesco a venirne a capo.
Grazie in anticipo
 
Ultima modifica di un moderatore:
@Mattuso
Da regolamento del forum, come tutti noi sei tenuto ad usare il tag
code-gif.6007
o il tag
php-png.6009
per il PHP, quando posti del codice, oppure la funzione codice dalla barra degli strumenti
box-inserisci-2-png-jpg.6008


Inoltre ti prego di leggere attentamente il regolamento generale del forum e quello di sezione dove posti

Grazie
Per questa volta te lo sistemo io ma mi raccomando per il futuro
 
Fai così:
PHP:
if($count==1){
$_SESSION['id'] = $row["id"];
   header('Location: dashboard.php');
exit;
       }else{
       echo "Username or Password invalid";
}
 
Chiedo scusa per il post senza tag, ero esausto dopo una giornata passata su questo problema e ho dato solo un'occhiata veloce al regolamento.
Volevo solo dire che nel frattempo ho risolto il problema, ripulendo completamente il codice nella pagina dashboard.php, la quale conteneva delle righe che evidentemente creavano qualche conflitto a me sconosciuto.
Grazie lo stesso per l'aiuto
 

Discussioni simili