Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    Problema con Header e cookie

    Ciao , mi aiutate? Sono una frana...
    Io ho una pagina per il login:

    codice:
    <html>
    <head>
    <title>Maschera Login</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    <link rel="stylesheet" type="text/css" href="stile.css"></head>
    <body>
    
    <div id="container">
    
        <div id="header">
        [img]images/LogoFotografando.jpg[/img]
        <h1>Museo della fotografia italiana</h1>
        Lucca, Complesso monumentale di San Micheletto 
        </div>
        
           <div id="navigation">
              Home  |  
              Informazioni  |  
              Eventi  |  
              Collezione  |  
              Login  | 
              Registrati
           </div>
           
      <div id="content">
        
                 <div id="right">
                 [img]images/foto1.jpg[/img]
    
                 <font size="1" face="arial">Chiostro: angolo di nord-ovest.</font>
    
    
                 [img]images/foto2.jpg[/img]
    
                 <font size="1" face="arial">Veduta aerea del Complesso 
    Monumentale di San Micheletto</font> 
                 </div>
        
    
    	    <h2>Effettua il login al sistema</h2>
    
    
            
    
    Immetti nei campi specifici i tuoi dati:</p>
    
    <?php 
    
    // Connects to your Database 
    mysql_connect("127.0.0.1", "root", "") or die(mysql_error()); 
    mysql_select_db("museo2") or die(mysql_error()); 
    
    //Checks if there is a login cookie
    if(isset($_COOKIE['ID_my_site']))
    
    //if there is, it logs you in and directes you to the members page
    { 
    $username = $_COOKIE['ID_my_site']; 
    $pass = $_COOKIE['Key_my_site'];
    $check = mysql_query("SELECT * FROM utenti WHERE username = '$username'")or die(mysql_error());
    while($info = mysql_fetch_array( $check )) 
    {
    if ($pass != $info['password']) 
    {
    }
    else
    {	 
    header("Location: members.php");
    }
    }
    }
    
    //if the login form is submitted
    if (isset($_POST['submit'])) { // if form has been submitted
    
    // makes sure they filled it in
    if(!$_POST['username'] | !$_POST['pass']) {
    die('You did not fill in a required field.');
    }
    // checks it against the database
    $check = mysql_query("SELECT * FROM utenti WHERE username = '".$_POST['username']."'")or die(mysql_error());
    
    //Gives error if user dosen't exist
    $check2 = mysql_num_rows($check);
    if ($check2 == 0) {
    die('That user does not exist in our database. <a href=registrazione.php>Click Here to Register</a>');
    }
    while($info = mysql_fetch_array( $check )) 
    {
    $_POST['pass'] = stripslashes($_POST['pass']);
    $info['password'] = stripslashes($info['password']);
    $_POST['pass'] = md5($_POST['pass']);
    
    //gives error if the password is wrong
    if ($_POST['pass'] != $info['password']) {
    die('Incorrect password, please try again.');
    }
    else 
    { 
    
    // if login is ok then we add a cookie 
    $_POST['username'] = stripslashes($_POST['username']); 
    $hour = time() + 3600; 
    setcookie('ID_my_site', $_POST['username'], $hour); 
    setcookie('Key_my_site', $_POST['pass'], $hour); 
    
    //then redirect them to the members area 
    header("Location: members.php");
    
    } 
    } 
    } 
    else 
    { 
    
    // if they are not logged in 
    ?> 
    <form action="<?php echo $_SERVER['PHP_SELF']?>" method="post"> 
    <table border="0"> 
    <tr><td colspan=2><h1>Login</h1></td></tr> 
    <tr><td>Username:</td><td> 
    <input type="text" name="username" maxlength="40"> 
    </td></tr> 
    <tr><td>Password:</td><td> 
    <input type="password" name="pass" maxlength="50"> 
    </td></tr> 
    <tr><td colspan="2" align="right"> 
    <input type="submit" name="submit" value="Login"> 
    </td></tr> 
    </table> 
    </form> 
    <?php 
    } 
    ?> 
        </div> 
              <div id="footer">© 2007 - Sito Web realizzato da xxx</div>
    </div>
    </body>
    </html>
    Mi rilascia questi errori (le righe le ho evidenziate in grassetto):

    Warning: Cannot modify header information - headers already sent by (output started at c:\programmi\easyphp1-8\www\museo2\mascheralogin.php:13) in c:\programmi\easyphp1-8\www\museo2\mascheralogin.php on line 59

    Warning: Cannot modify header information - headers already sent by (output started at c:\programmi\easyphp1-8\www\museo2\mascheralogin.php:13) in c:\programmi\easyphp1-8\www\museo2\mascheralogin.php on line 95

    Warning: Cannot modify header information - headers already sent by (output started at c:\programmi\easyphp1-8\www\museo2\mascheralogin.php:13) in c:\programmi\easyphp1-8\www\museo2\mascheralogin.php on line 96

    Warning: Cannot modify header information - headers already sent by (output started at c:\programmi\easyphp1-8\www\museo2\mascheralogin.php:13) in c:\programmi\easyphp1-8\www\museo2\mascheralogin.php on line 101


    Come dovrei fare per risolvere? So che il problema è dovuto al fatto che headers e cookie non richiedono nessun tipo di output davanti, ma come faccio allora? :master:

    Grazie!

  2. #2
    :rollo:
    Gli header http vanno sempre messi prima di qualunque output html.
    max

    Silence is better than bullshit.
    @mmarcon
    jHERE, Maps made easy

  3. #3
    Originariamente inviato da mxa
    :rollo:
    Gli header http vanno sempre messi prima di qualunque output html.
    Eh lo so, ma se li metto in cima poi non mi prende l'html dopo e non funziona come dovrebbe!
    Sai come posso fare?

  4. #4
    potresti, invece che avere quella cozzaglia di roba fare:

    - pagina con form di login, al submit invia i dati a pagina di autenticazione
    - pagina di autenticazione: pulisce i dati e li confronta con quelli nel database
    # se sono validi fa un redirect a paginaOK, impostanto in sessione che l'utente e' loggato
    # se non sono validi fa un redirect a paginaKO (che potrebbe essere quella col form di login)
    max

    Silence is better than bullshit.
    @mmarcon
    jHERE, Maps made easy

  5. #5
    Originariamente inviato da mxa
    potresti, invece che avere quella cozzaglia di roba fare:

    - pagina con form di login, al submit invia i dati a pagina di autenticazione
    - pagina di autenticazione: pulisce i dati e li confronta con quelli nel database
    # se sono validi fa un redirect a paginaOK, impostanto in sessione che l'utente e' loggato
    # se non sono validi fa un redirect a paginaKO (che potrebbe essere quella col form di login)
    Proverò, grazie!

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 © 2024 vBulletin Solutions, Inc. All rights reserved.