• Moderatore

    mentre non posti nulla fai anche una ricerca sul forum troverai molte discussioni e script su questo argomento 😉


  • User Newbie

    AIUTOO!!!! Sono una frana lo so, ma non riesco nemmeno a fare un login:x

    😢😢😢

    Mi aiutate a trovare l'errore?

    Dunque...
    C'è una pagina di registrazione con una semplice form chiamata registrazione.php; i dati della form vengono passati al DB tramite la pagina esito.php:

    <html>
    <head>
    ...bla bla...
    <div id="content">

     <div id="esito">
    

    <?php
    include_once("include/config.php");

    $sql = "SELECT * FROM utenti WHERE username = '" . $_GET["username"] . "' AND password = '" . $_GET["password"] . "'";
    $result = mysql_query($sql) or die("Query fallita: " .
    

    mysql_error());
    if (mysql_num_rows($result) > 0) {
    echo"<b>ATTENZIONE: UTENTE GIA' REGISTRATO!!!</b>";
    } else {
    $sql = "INSERT INTO utenti (username, perms, password, name, surname, citta, eta) VALUES ('" .
    $_GET["username"] . "', 'client', '" . $_GET["password"]. "', '" . $_GET["name"] . "', '" . $_GET["surname"] . "', '" .$_GET["citta"] ."', '" .$_GET["eta"] ."')";
    $result = mysql_query($sql) or die("Query fallita: " .
    mysql_error());
    echo"<b>UTENTE REGISTRATO CORRETTAMENTE!!!</b>";
    }
    mysql_close();
    ?>
    </div></html>

    il file config.php contiene:

    <?php
    $host = "127.0.0.1";
    $username = "root";
    $password = "";
    $dbname = "museo2";
    $conn = mysql_connect("$host", "$username", "$password")or die('Impossibile stabilire una connessione');
    mysql_select_db("$dbname")or die("Impossibile connettersi al database");
    ?>

    Ora, la registrazione funziona, scrive sul Db e tutto.
    Veniamo al login. C'è una maschera di login che contiene la form; i dati vengono processati dal file login.php:

    <html>
    <head>
    ...bla bla...
    <div id="content">
    <?php
    include("include/config.php");
    $uname=$_POST['uname'];
    $passw=$_POST['passw'];$sql="SELECT * FROM utenti WHERE username='$uname' and password='$passw'";
    $result=mysql_query($sql);
    $count=mysql_num_rows($result);
    if($count==1) {
    **session_register("username");
    **session_register("password");
    header("location:login_success.php");
    }
    else {
    echo "ATTENZIONE username o password errati";
    }
    ?>
    </div>
    </body>
    </html>

    Ovviamente mi da errore (le righe in grassetto😞

    Warning: session_register(): Cannot send session cache limiter - headers already sent...........

    Warning: Cannot modify header information - headers already sent by......

    Credo sia perchè l'header non richiede altre cose scritte prima, ma come lo metto allora?
    E poi secondo voi va bene il procedimento che ho usato per la gestione utenti o non ci ho preso per niente?

    Grazie!


  • User Attivo

    al posto di session_register(); usa session_start();

    e poi crei le sessioni con $_SESSION['nome']


  • User Newbie

    Ok ho corretto così:
    login.php:

    <?php
    session_start();
    ?>
    <html>
    <head>
    ...bla bla...
    <div id="content">

    <?php
    include("include/config.php");
    $uname=$_POST['uname'];
    $passw=$_POST['passw'];
    $sql="SELECT * FROM utenti WHERE username='$uname' and password='$passw'";
    $result=mysql_query($sql);
    $count=mysql_num_rows($result);
    if($count==1) {
    header("location:login_success.php");
    }
    else {
    echo "ATTENZIONE username o password errati";
    }
    ?>

    </div>
    </body>
    </html>

    Però ora praticamente mi dice che nelle righe in grassetto gli indici uname e passw sono indefiniti... dunque ma che cavolo di indici ci devo mettere lì? Da dove li prendo?


  • User Attivo

    ma l'html come è fatto??


  • User Newbie

    @Skyline said:

    ma l'html come è fatto??

    LOGIN.PHP

    <?php
    session_start();
    ?>
    <html>
    <head>
    <title>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 class="logo" src="images/LogoFotografando.jpg" alt="Logo Fotografando... immagini d'autore" />
    <h1>Museo della fotografia italiana</h1>
    Lucca, Complesso monumentale di San Micheletto
    </div>

       <div id="navigation">
          <a id="activelink" href="#">Home</a>  |  
          <a href="info.php">Informazioni</a>  |  
          <a href=" ">Eventi</a>  |  
          <a href=" ">Collezione</a>  |  
          <a href="mascheraLogin.php">Login</a>  | 
          <a href="registrazione.php">Registrati</a>
       </div>
    
          <div id="content"> 
    

    <?php
    include("include/config.php");
    $uname=$_POST['uname'];
    $passw=$_POST['passw'];
    $sql="SELECT * FROM utenti WHERE username='$uname' and password='$passw'";
    $result=mysql_query($sql);
    $count=mysql_num_rows($result);
    if($count==1) {
    header("location:login_success.php");
    }
    else {
    echo "ATTENZIONE username o password errati";
    }
    ?>
    </div>
    </div>
    </body>
    </html>

    Questa invece è la form per il login che è in un altro file:

     <h2>Effettua il login al sistema</h2><br /><br />
        <p>Immetti nei campi specifici i tuoi dati:</p>
    

    <form action="http://localhost:81/museo2/login.php" method="post">
    <table class="formLogin">
    <tr>
    <td>Username:</td>
    <td><input type="text" name="uname" id="uname"></td>

    </tr>
    <tr>
      <td>Password:</td>
      <td><input type="password" name="passw" id="passw"></td>
      
    </tr>
    

    <tr>
    <td></td>
    <td>
    <input type="hidden" name="op" value="login" />
    <input type="submit" name="action" value="Entra" /></td></tr></table>
    </form>


  • User Newbie

    Ok, ho cambiato tutto il codice 😄 ho trovato un esempio già fatto su internet e l'ho adattato al mio :D:D:D ma ovviamente mi da degli errori :arrabbiato:

    Ecco la pagina per il login:

    <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 class="logo" src="images/LogoFotografando.jpg" alt="Logo Fotografando... immagini d'autore" />
        <h1>Museo della fotografia italiana</h1>
        Lucca, Complesso monumentale di San Micheletto 
        </div>
           <div id="navigation">
              <a href="index.php">Home</a>  |  
              <a href="info.php">Informazioni</a>  |  
              <a href=" ">Eventi</a>  |  
              <a href=" ">Collezione</a>  |  
              <a id="activelink" href="#">Login</a>  | 
              <a href="registrazione.php">Registrati</a>
           </div>
      <div id="content">
                 <div id="right">
                 <img src="images/foto1.jpg" width="200" height="190" alt="Chiostro" border="0" /><br />
                 <font size="1" face="arial">Chiostro: angolo di nord-ovest.</font><br /><br />
                 <img src="images/foto2.jpg" width="200" height="193" alt="Veduta aerea" border="0" /><br />
                 <font size="1" face="arial">Veduta aerea del Complesso <br />Monumentale di San Micheletto</font> 
                 </div>
         <h2>Effettua il login al sistema</h2><br /><br />
            <p>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>
    

    Gli errori sono qusti (ho evidenziato le righe 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 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 99


    Sempre cookie e header che danno problemi :rambo1:


  • User

    ciao, riprova ad utilizzare session_register e poi vai in configurazione->php e metti a on tutti i register_globals che sono a off


  • User Attivo

    gianaru ma cosa centra? lo script funziona... dice solo che non riesce a cambiare gli headers puoi utilizzare il javascript
    <script type="text/javascript">
    <!--
    window.location = "http://www.google.com/"
    //-->

    poi c'è il problema dei cookies ma non so aiutarti io uso le sessioni.
    </script>


  • User Attivo