login e session

luigithen

Utente Attivo
31 Mar 2020
84
3
8
ciao a tutti scusate ma forse mi sfugge qualcosa con il codice.

codice per il login
PHP:
<?php
   include ("admin/include/db.php");
   session_start();

   if($_SERVER["REQUEST_METHOD"] == "POST") {

      $myusername = mysqli_real_escape_string($db,$_POST['username']);
      $codice = mysqli_real_escape_string($db,$_POST['codice']);

      $sql = "SELECT id FROM login WHERE username = '$myusername' and codice = '$codice'";
      $result = mysqli_query($db,$sql);
      $row = mysqli_fetch_array($result,MYSQLI_ASSOC);
      $active = $row['active'];

      $count = mysqli_num_rows($result);

      if($count == 1) {
         //session_register("myusername");

         session_start();

         $_SESSION['login_user'] = $myusername;

         header("location: admin/form.php");
      }else {
         $error = "password o codice errato";
      }
   }
?>

codice logout
PHP:
<?php
   session_start();

   if(session_destroy()) {
      header("Location: admin/login.php");
   }
?>

ed infine la session
PHP:
<?php
   include ('admin/include/db.php');
   session_start();

   if(!isset($_SESSION['login_user'])){
      header("location:../login.php");
      die();
   }
?>

il tutto funziona correttamente riesco ad accedere ed a visualizzare la pagina indicata nel login ma i problemi sono 2

1 se sbaglio password o codice non visualizzo il messaggio di errore "password o codice errato"
2 se inserisco nella form.php (che richiamo nella pagina login con admin/form.php")

PHP:
<?php include ("../session.php");?>

senza effettuare l'accesso visualizzo la pagina invece di mandarmi al login
 
Per il problema 1, l'errore è contenuto nella variabile $error, se vuoi visualizzare l'errore in qualche modo devi mostrarla (con un echo).
Per il secondo errore, mi sembra di vedere che c'è qualche problema con la struttura dei file e delle directory e probabilmente è l'include che non funziona. Prova a mettere nel file session un semplice echo, e controlla se lo visualizziamo nel file form.php
 
Per il problema 1, l'errore è contenuto nella variabile $error, se vuoi visualizzare l'errore in qualche modo devi mostrarla (con un echo).
Per il secondo errore, mi sembra di vedere che c'è qualche problema con la struttura dei file e delle directory e probabilmente è l'include che non funziona. Prova a mettere nel file session un semplice echo, e controlla se lo visualizziamo nel file form.php

grazie per la rapida risposta, per il primo errore ho risolto il problema, ma per il secondo errore, in effetti non stampa nulla, stò diventando matto non riesco a capire il problema
 
Dentro al file session, metti un echo. Poi apri il file form.php e controlli, se l'echo viene visualizzato significa che il file è incluso correttamente e il problema è all'interno del file session, altrimenti se non lo visualizziamo significa che il problema è nella riga
PHP:
include("../session.php");
 
  • Like
Reactions: luigithen
Dentro al file session, metti un echo. Poi apri il file form.php e controlli, se l'echo viene visualizzato significa che il file è incluso correttamente e il problema è all'interno del file session, altrimenti se non lo visualizziamo significa che il problema è nella riga
PHP:
include("../session.php");

ho trovato il problema e chiedo scusa ma avevo sbagliato io la session ed ho fatto come hai scritto anche tu e adesso funziona grazie Tommy
 

Discussioni simili