Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2004
    Messaggi
    119

    Problemi login e cookies

    Ciao a tutti.. ho un problema con i cookies riguardanti il controllo di login di un utente.. ho due pagine admin.php (dove c'è la form) e auth.php (dove ci sono le funzioni)

    admin.php
    Codice PHP:
    <?
            
    include_once("auth.php");
            include_once(
    "header.php");
            include_once(
    "menu.php");
            
    if(!isset(
    $_POST["user"])) {

    echo 
    '
        
        <div class="content">
            <div class="left">
                <div class="item">


        <form name="form" method="post" action="admin.php">
            

    Ola, se fai parte dello staff del sito inserisci il tuo Nick e la tua Password per accedere all’area riservata!!</p>
            

    Nick:

              <input type="text" name="user">
              

              Password:

              <input type="password" name="pass">
            </p>
            

     
              <input name="Login" type="submit" id="Login" value="Login">
              <input name="Cancella" type="reset" id="Cancella" value="Cancella">
            </p>
        </form>
        

                </div>    
            </div>
            <br class="clearer"/><span></span>
        </div>

    '
    ;

    }else{

        if(
    login($_POST["user"], $_POST["pass"]) == 0
        
          {
            
            
    $connect mysql_connect(HOST_DBUSER_DBPASS_DB)
                or die(
    "Connessione non riuscita");
            
            
    mysql_select_db(NAME_DB
                or die(
    "Selezione del database non riuscita");
            
            
    $query "
                
                    SELECT *
                    FROM `utenti`
                    WHERE `nick` = '"
    .$_POST["user"]."'
                    AND `password` = '"
    .$_POST["pass"]."'
                 
                     "
    ;
            
            
    $sql mysql_query($query)
                or die(
    "Query fallita: "$query);

          echo 
    '
            <div class="content">
                <div class="left">
                    <div class="item"> '
    ;
                            
                            while ( 
    $dati mysql_fetch_array($sql) ) {
                            
                              echo 
    '<h1> Ciao '.$dati["nome"].' '.$dati["cognome"].'!!</h1>';
                            
                                   }; 
          echo 
    '
                                        
                    </div>    
                </div>
                <br class="clearer"/><span></span>
            </div>
          '
    ;

          } 
        else{
        
          echo 
    '
            <div class="content">
                <div class="left">
                    <div class="item">
                    <h1>Opssss</h1>
                    

    Ue furbacchione.. le possibilità sono due: o hai sbagliato a fare il login, oppure mi sa tanto che non hai l\'autorizzazione ad entrare in questa sezione protetta.</p>
                    </div>    
                </div>
                <br class="clearer"/><span></span>
            </div>
          '
    ;
          }
          
    }
            include_once(
    "footer.php");


    ?>
    auth.php

    Codice PHP:
    <?php

    include_once("config.php");

    function 
    auth(){

        if(isset(
    $_COOKIE["USER"])) {

            
    $connect mysql_connect(HOST_DBUSER_DBPASS_DB)
                   or die(
    "Connessione non riuscita");
            
    mysql_select_db(NAME_DB
                or die(
    "Selezione del database non riuscita");
            
            
    $query "
            
            SELECT * FROM `sessions` WHERE
            `user` = '"
    $_COOKIE["USER"] ."' AND `pass` = '"$_COOKIE["PASS"] ."' 
            AND `session` = '"
    $_COOKIE["SESSION"] ."'
            
            "
    ;
               
    $result mysql_query($query
                or die(
    "Query fallita");

            
    $line mysql_fetch_array($resultMYSQL_ASSOC);

            if(
    mysql_num_rows($result) == 1) {

                
    $auth 0;
                
            }else{
        
                
    $auth = -1;

            }
        
            
    $query "DELETE FROM sessions WHERE time < ". (time()-(60*60*24))  .";";
            
    mysql_query($query);

        
            
    mysql_free_result($result);
            
    mysql_close($connect);
        
        
        }else{

            
    $auth = -1;
            
        }
        
        return 
    $auth;
        
    }


    function 
    login($user$pass) {


        
    $user=$_POST['user'];
        
    $pass=$_POST['pass'];
        
        
    $pass=urlencode($pass);

        
    $connect mysql_connect(HOST_DBUSER_DBPASS_DB)
            or die(
    "Connessione non riuscita");
        
        
    mysql_select_db(NAME_DB
            or die(
    "Selezione del database non riuscita");
            
        
    $query "
                
                SELECT *
                FROM `utenti`
                WHERE `nick` = '"
    .$user."'
                AND `password` = '"
    .$pass."'
                 
                 "
    ;
        
        
    $sql mysql_query($query)
            or die(
    "Query fallita: "$query);

        
    $numrows=mysql_num_rows($sql);
            
        if (
    $numrows == 1
        {
          
              
    $time time();
              
    $session time()+$user+$pass;
                    
              
    mysql_query("INSERT INTO session (user, pass, session, time)
              VALUES ('" 
    $user "', '" $pass "', '" md5($session) . "', '" $time "');")
                or die(
    "Query fallita");
        
              
    setcookie ("USER"$user);
              
    setcookie ("PASS"$pass);
              
    setcookie ("SESSION"md5($session));
              
    setcookie ("TIME"$time);
        
              return 
    0;  
        }
        else
        {
              return -
    1;  
        }

        
    mysql_free_result($result);
        
    mysql_close($connect);
        
    }

    ?>
    Nel file config.php ci sono le variabili di connessione al db.
    Mi da questi errori:
    codice:
    Warning: Cannot modify header information - headers already sent by (output started at c:\programmi\easyphp1-8\www\cpg\auth.php:111) in c:\programmi\easyphp1-8\www\cpg\auth.php on line 93
    
    Warning: Cannot modify header information - headers already sent by (output started at c:\programmi\easyphp1-8\www\cpg\auth.php:111) in c:\programmi\easyphp1-8\www\cpg\auth.php on line 94
    
    Warning: Cannot modify header information - headers already sent by (output started at c:\programmi\easyphp1-8\www\cpg\auth.php:111) in c:\programmi\easyphp1-8\www\cpg\auth.php on line 95
    
    Warning: Cannot modify header information - headers already sent by (output started at c:\programmi\easyphp1-8\www\cpg\auth.php:111) in c:\programmi\easyphp1-8\www\cpg\auth.php on line 96
    Quelle righe sono le righe (appunto ) dove ci sono i 4 setcookies:
    setcookie ("USER", $user);
    setcookie ("PASS", $pass);
    setcookie ("SESSION", md5($session));
    setcookie ("TIME", $time);

    Come risolvo?? Grazie

  2. #2
    include_once("header.php");
    include_once("menu.php");

    scrivono sull'output?

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2004
    Messaggi
    119
    si.. stavo pensando anche io che fosse quello il problema.. come risolvo?

  4. #4
    I cookie vengono inviati sull'header quindi devi settarli prima di fare qualsiasi output, perciò devi spostare il codice per il controllo utente prima degli include....

    una domanda: ma sei sicuro sia una buona idea registrare le password degli utenti nei cookie? io credo proprio di no....

  5. #5
    Utente di HTML.it
    Registrato dal
    Dec 2004
    Messaggi
    119
    Originariamente inviato da V1RuZ
    una domanda: ma sei sicuro sia una buona idea registrare le password degli utenti nei cookie? io credo proprio di no....
    e come mi consiglieresti di fare?

  6. #6
    Utente di HTML.it
    Registrato dal
    Dec 2004
    Messaggi
    119
    non metterla ovviamente.. che domande che faccio

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.