[PHP] login e protezione pagine con session

lelemkop

Utente Attivo
2 Lug 2013
55
0
6
salve. Ho questo script di login che funziona correttamente.

PHP:
<?php
session_name('LoginForm');
@session_start();
error_reporting(0);
include("/config.php");
?>
<!DOCTYPE html>
<!--[if lt IE 7]>      <html class="no-js lt-ie9 lt-ie8 lt-ie7"> <![endif]-->
<!--[if IE 7]>         <html class="no-js lt-ie9 lt-ie8"> <![endif]-->
<!--[if IE 8]>         <html class="no-js lt-ie9"> <![endif]-->
<!--[if gt IE 8]><!--> <html class="no-js"> <!--<![endif]--> 
  <head>       
 <meta charset="utf-8">        <meta http-equiv="X-UA-Compatible" content="IE=edge">        <title>Login Form</title>        <meta name="description" content="">        <meta name="viewport" content="width=device-width, initial-scale=1">
        
        <link rel="stylesheet" href="css/main.css">   
    <link href='http://fonts.googleapis.com/css?family=Roboto:400,300,500' rel='stylesheet' type='text/css'>        <link href="//netdna.bootstrapcdn.com/font-awesome/4.1.0/css/font-awesome.min.css" rel="stylesheet"> 
      <script src="/archivio/js/jquery-1.8.2.min.js"></script>     
  <script src="/archivio/js/jquery.validate.min.js"></script>     
   <script src="/archivio/js/main.js"></script>
   </head> 
  <body>
<?php   
 $error = '';    if(isset($_POST['is_login'])){       
 $sql = "SELECT * FROM ".$SETTINGS["USERS"]." WHERE `email` = '".mysqli_real_escape_string($_POST['email'])."' AND `password` = '".mysqli_real_escape_string($_POST['password'])."'";       
 $sql_result = mysqli_query ($sql, $connection ) or die ('request "Could not execute SQL query" '.$sql);       
 $user = mysqli_fetch_assoc($sql_result);   
     if(!empty($user)){         
   $_SESSION['user_info'] = $user;         
   $query = " UPDATE ".$SETTINGS["USERS"]." SET last_login = NOW() WHERE id=".$user['id'];       
    mysqli_query ($query, $connection ) or die ('request "Could not execute SQL query" '.$query);     
   }       
 else{   
         $error = 'Errata email o password.';   
     } 
  }   
    if(isset($_GET['ac']) && $_GET['ac'] == 'logout'){   
    $_SESSION['user_info'] = null;        unset($_SESSION['user_info']);   
 }
?>
   <?php
 if(isset($_SESSION['user_info']) && is_array($_SESSION['user_info'])) { ?>
        <form id="login-form" class="login-form" name="form1">
            <div id="form-content">                <div class="welcome">     
              <?php echo $_SESSION['user_info']['name']  ?>, you are logged in.                     <br /><br />               
    <?php
 echo $_SESSION['user_info']['content']  ?>         
          <br /><br />                    <a href="index.php?ac=logout" style="color:#3ec038">Logout</a>         
      </div>   
            </div>     
       </form>         
   <?php } else { ?>     
  <form id="login-form" class="login-form" name="form1" method="post" action="/tabella.php">            <input type="hidden" name="is_login" value="1">            <div class="h1">Login Form</div>            <div id="form-content">                <div class="group">           
        <label for="email">Email</label>                    <div>
<input id="email" name="email" class="form-control required" type="email" placeholder="Email"></div>   
             </div>         
     <div class="group">               
    <label for="name">Password</label>             
       <div><input id="password" name="password" class="form-control required" type="password" placeholder="Password"></div>           
     </div>               
 <?php if($error) { ?> 
                  <em>                        <label class="err" for="password" generated="true" style="display: block;"><?php echo $error ?></label>                    </em>                <?php } ?>                <div class="group submit">                    <label class="empty"></label>                    <div><input name="submit" type="submit" value="Submit"/></div>                </div>            </div>            <div id="form-loading" class="hide"><i class="fa fa-circle-o-notch fa-spin"></i></div>        </form>    <?php } ?>       </body></html>


Ora vorrei proteggere le altre pagine del portale, infatti se scrivo 10.10.10.10/index.php mi apre la pagina del login ( che funziona correttamente), mentre se apro 10.10.10.10/table.php me la apre lo stesso.
Ho provato a mettere nella pagina table il seguente codice:
session_start();
if($_SESSION['user_info'] = 'email'){
echo('Login successful');
}




ma mi fa accedere lo stesso senza login.
COme posso fare?
 

bubino8

Utente Attivo
28 Apr 2017
360
20
28
31
BZ
Ciao,
Primo controlla se la sessione info deve essere testo 'email' oppure una variabile $email.
PHP:
if($_SESSION['user_info'] = 'email'){

echo('Login successful');
}

Prova cosi con == e non =

PHP:
if($_SESSION['user_info'] == $email){
echo('Login successful');
}

Fammi sapere
 

zorro

Utente Attivo
20 Ott 2014
324
21
28
ROMA
Ciao,
non ho provato lo script ma, come giustamente dice Bubino, devi fare attenzione al numero degli uguale: un = : assegnazione, due == : uguaglianza,tre === uguaglianza stretta
 

lelemkop

Utente Attivo
2 Lug 2013
55
0
6
Salve ragazzi, analizzando bene lo script mi sono accorto che è molto vecchio. Quindi sono passato ad uno scritp pdo, che funziona benissimo.
Grazie.
 
Discussioni simili
Autore Titolo Forum Risposte Data
S [PHP] Stampa a video Nome e Cognome in seguito a login PHP 1
M [PHP] header (location..) non funzionante dopo login PHP 3
L [PHP] Visualizzare utente dopo login PHP 0
L [PHP] login con password_verify PHP 3
L [PHP] login con varie entrate PHP 3
L [PHP] login con password_verify - password_hash PHP 5
M [PHP] Problemi con il riconoscimento login. PHP 21
F [PHP] Login senza database PHP 3
F [php] sicurezza password form login PHP 2
M [PHP] Metodo migliore per fare login a un DB Mysql PHP 1
F Problema con pagine login in PHP PHP 2
Y [PHP] Errore di login dopo aver inserito Codice AdSense PHP 0
M [PHP] Problemi con login facebook PHP 0
W [PHP] Login sicuro al web Service SOAP PHP 20
P [PHP] Limitare login ad un solo utente per volta PHP 12
L [PHP] login con la classe medoo.in PHP 5
I [PHP] [Javascript] login da smartphone a web PHP 3
P [PHP] Reindirizzamento post Login PHP 3
I [PHP] login con sessione singola PHP 1
bubino8 [WordPress] [PHP] Login diretto da bottone WordPress 4
D [PHP] Login Multiutente con pagina privata PHP 5
D problemi login php 5.6 mysql PHP 1
I [PHP] Login Facebook SDK returned an error: No URL set! PHP 0
G PHP Login PHP 1
Laskot Login php e redirect PHP 1
K [PHP] Unica sessione login forum/sito PHP 1
bubino8 [PHP] Login Automatico PHP 1
M [PHP] Sessione Login PHP 15
C [PHP] Aprire la pagina dopo aver fatto il login PHP 1
fabry1986 [PHP] login PHP 2
Punix pagine login-logout php principiante PHP 4
S [PHP] Problemi con Login e pagina Utente PHP 5
ANDREA20 [PHP] Echo login PHP 2
P [PHP] aiuto creazione login PHP 16
webmachine [PHP] Problemi con Login e pagina Utente PHP 3
F Problemi login con lo script php PHP 2
M login.php PHP 12
M Script php login con password in scadeza ogni tre mesi PHP 2
otto9due [risolto] Problema sessioni php e login PHP 5
D creazione di una login in php PHP 1
D aiuto con pag di login in php PHP 1
M Pagina di registrazione e login in php PHP 4
C Creare Login php PHP 0
M Login con php PHP 2
D Pagina login php-mysql PHP 1
E [PHP + MySql] Sito con login e sessioni PHP 8
helpdesk Nessuna session start in login PHP PHP 12
L [PHP/MYSQL] Login con ricordo utente PHP 1
max_400 il login in php è sicuro? PHP 14
I [PHP]Problema sito con form login in ogni pagina PHP 7

Discussioni simili