Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2012
    Messaggi
    54

    login e protezione pagine

    salve. Ho questo script di login che funziona correttamente.
    Codice 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?
    Ultima modifica di lelemkop; 31-03-2018 a 19:34

  2. #2
    Utente di HTML.it
    Registrato dal
    May 2012
    Messaggi
    213
    Innanzittutto quell'if è sbagliato perchè stai facendo un assegnazione e non un confronto se lo hai scritto così. Prova ad utilizzare empty() su un valore che registri in $_SESSION in caso contrario nascondi il contenuto.

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2012
    Messaggi
    54
    grazie per la risposta.
    ho provato così
    if( !isset($_SESSION['user_info']) )
    die( "Login required." );
    e mi risponde sempre login required...
    secondo me è quell'user_info che non va.

  4. #4
    Utente di HTML.it
    Registrato dal
    May 2012
    Messaggi
    213
    Quote Originariamente inviata da lelemkop Visualizza il messaggio
    grazie per la risposta.
    ho provato così

    e mi risponde sempre login required...
    secondo me è quell'user_info che non va.
    Assolutamente il tuo array di sessione è diventato multidimensionale quindi non è corretto quella condizione dell'if. Prova a controllare ['user_info']['content'] se è settata e dovrebbe funzionare.

  5. #5
    Utente di HTML.it
    Registrato dal
    Nov 2012
    Messaggi
    54
    Strano, non facendo aprire la table mi restituisce questo errore.
    request "Could not execute SQL query" SELECT * FROM WHERE `email` = '' AND `password` = ''

  6. #6
    Utente di HTML.it
    Registrato dal
    May 2012
    Messaggi
    213
    Quote Originariamente inviata da lelemkop Visualizza il messaggio
    Strano, non facendo aprire la table mi restituisce questo errore.
    Che intendi per non aprire la table?

  7. #7
    Utente di HTML.it
    Registrato dal
    Nov 2012
    Messaggi
    54
    Leggendo qua e là mi sono accorto che è uno script molto vecchio. Quindi cambierò progetto con il pdo. Grazie per la pazienza.

Tag per questa discussione

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.