Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 17
  1. #1

    problemi con modulo login

    ciao a tutti!
    cerchero di definire al meglio il mio problema, dunque, ho creato un modulo login collegato al mio database, e ho creato una pagina che solo gli utenti loggati al mio sito dopo aver effettuato la registrazione possono visualizzarla se un utente non è loggato il contenuto della pagina non è visibile ma potrà solo vedere un "non puoi vedere questa pagina". ora il mio problema è il seguente: facendo delle prove con il modulo di login ho notato che se si immettono anche dati a caso nei form e si clicca accedi, la pagina dirà ovviamente che il login è sbagliato pero la pagina è visualizzabile lostesso!!! non so se sono riuscito a definire per bene il mio problema comunque se qualcuno è cosi gentile da potermi dedicare un po di tempo ne sarei veramente grato

  2. #2
    dovresti postare il codice altrimenti sarà difficile aiutarti
    Angelo
    www.neweratechnology.it

  3. #3
    Utente di HTML.it L'avatar di brodik
    Registrato dal
    Jan 2009
    Messaggi
    765
    posta un po' di codice...probabilmente c'è un problema con la query che utilizzi
    EDIT: arrivato tardi
    eXvision

  4. #4
    Utente di HTML.it L'avatar di Jack991
    Registrato dal
    Oct 2006
    Messaggi
    156
    senza codice non possiamo aiutarti ma cmq controlla:

    • IF - ELSE che controlla se la md5_pass nel DB è = alla md5_pass del logn
    • if - else che controlla se $rs (risultato della query) è True
    • bo...
    Errare n00bbium est, perseverare autem hackerum

  5. #5
    buongiorno e grazie a tutti della disponibilità
    allora il mio modulo login è impostato cosi:

    modulo login (ancora da sistemare solo per prova):

    Codice PHP:
    <HTML>
    <
    HEAD>
    <
    META NAME="GENERATOR" Content="AlterVista - Editor HTML">
    <
    TITLE></TITLE>
    </
    HEAD>
    <
    BODY>
    <
    form name="form1" method="post" action="checklogin.php">
    <
    table border="1" bordercolor="#D2FFBF" style="background-color:#D2FFBF" width="248" cellpadding="0" cellspacing="0">
        <
    tr>
            <
    td><font face="arial" size="2" color="#246209">Username</font></td>
            <
    td><input name="myusername" type="text" size="11px" style="color: rgb(43, 43, 43)" id="myusername"></td>
            <
    td><input type="submit" name="Submit" value="Accedi"></td>
        </
    tr>
        <
    tr>
            <
    td><font face="arial" size="2" color="#246209">Password</font></td>
            <
    td><input name="mypassword" type="password" size="11px" style="color: rgb(43, 43, 43)" id="mypassword""></td>
            <td><font face="
    arial" size="2">[url=""]Registrati[/url]</font></td>
        </tr>
    </table>
    </form>
    </tr>
    </table>

    </BODY>
    </HTML> 
    la pagina che dovrebbe divenire accessibile solamente con il login è il seguente, non so se è corretto il codice:

    Codice PHP:
    <?php
    session_start
    ();
    if(isset(
    $_SESSION['myusername']) && (strlen($_SESSION['mypassword'])>0))
    {  
        
    //sorgente in caso che il visitatore sia loggato
         
    ?>
        
       <?php
    }
    else
    {
         
    ?>
         Non puoi vedere questa pagina
         <?php
    }
    ?>
    grazie ancora!
    se serve qualcos'altro posterò

  6. #6
    Dimenticavo:
    se serve posto anche il codice della pagina "checklogin.php":
    Codice PHP:
    <?php
    session_start
    ();
    $host="localhost"// Host name 
    $username="naturewildlife"// Mysql username 
    $password="******"// Mysql password 
    $db_name="my_naturewildlife"// Database name 
    $tbl_name="members"// Table name

    // Connect to server and select databse.
    mysql_connect("$host""$username""$password")or die("cannot connect"); 
    mysql_select_db("$db_name")or die("cannot select DB");

    // username and password sent from form 
    $myusername=$_POST['myusername']; 
    $mypassword=$_POST['mypassword'];

    //Salvo i dati...
    $_SESSION['myusername'] = $myusername;
    $_SESSION['mypassword'] = $mypassword;

    // To protect MySQL injection (more detail about MySQL injection)
    $myusername stripslashes($myusername);
    $mypassword stripslashes($mypassword);
    $myusername mysql_real_escape_string($myusername);
    $mypassword mysql_real_escape_string($mypassword);

    $sql="SELECT * FROM $tbl_name WHERE username='$myusername' and password='$mypassword'";
    $result=mysql_query($sql);

    // Mysql_num_row is counting table row
    $count=mysql_num_rows($result);
    // If result matched $myusername and $mypassword, table row must be 1 row

    if($count==1){
    // Register $myusername, $mypassword and redirect to file "login_success.php"
    session_register("myusername");
    session_register("mypassword"); 
    header("location:login_success.php");
    }
    else {
    echo 
    '<center><font size="5">Username o password errati o non inseriti.rieffettua il login!</font></center>';
    }
    ?>


    <center><INPUT TYPE="BUTTON" VALUE="← TORNA INDIETRO" 
    ONCLICK="history.go(-1)"></center>

  7. #7
    codice:
    // username and password sent from form 
    $myusername=$_POST['myusername']; 
    $mypassword=$_POST['mypassword'];
    
    //Salvo i dati...
    $_SESSION['myusername'] = $myusername;
    $_SESSION['mypassword'] = $mypassword;
    
    // To protect MySQL injection (more detail about MySQL injection)
    $myusername = stripslashes($myusername);
    $mypassword = stripslashes($mypassword);
    $myusername = mysql_real_escape_string($myusername);
    $mypassword = mysql_real_escape_string($mypassword);
    fai un echo sulle variabili $myusername e $mypassword vedi cosa ti esce a video se sono i dati inseriti oppure c'è qualche errore (questo per sicurezza)

    poi cambia questo

    codice:
    if($count==1){
    // Register $myusername, $mypassword and redirect to file "login_success.php"
    session_register("myusername");
    session_register("mypassword"); 
    header("location:login_success.php");
    }
    in

    codice:
    if($count==1){
    session_register('autorizzato');
    $_SESSION["autorizzato"] = 1;
    session_register('myusername');
    header("location:login_success.php");
    }
    poi questo codice
    codice:
    <?php
    session_start();
    if(isset($_SESSION['myusername']) && (strlen($_SESSION['mypassword'])>0))
    {  
        //sorgente in caso che il visitatore sia loggato
         ?>
        
       <?php
    }
    else
    {
         ?>
         Non puoi vedere questa pagina
         <?php
    }
    ?>
    questo
    codice:
    <?php
    session_start();
    if (!session_is_registered('autorizzato')) {
      echo "Area riservata - accesso negato";
    }
    else
    {  
    //sorgente in caso che il visitatore sia loggato 
     echo $myusername; 
    }
    ?>
    vedi come va.. non ho testato quindi se hai problemi fammi sapere che modifichiamo

    ps ti consiglio di utilizzare md5 come crittografia per la password
    Angelo
    www.neweratechnology.it

  8. #8
    benissimo grazie mille!!
    pero ho un problema in pratica quando metto il contenuto html della pagina che voglio che venga visualizzato solo dagli utenti loggati sotto al codice che mi hai postato
    ( sotto a //sorgente in caso che il visitatore sia loggato echo $myusername;) , mi da errore di sintassi nella scrittura, piu precisamente mi dice Parse error: syntax error, unexpected '<'
    come devo fare??

  9. #9
    Utente di HTML.it L'avatar di brodik
    Registrato dal
    Jan 2009
    Messaggi
    765
    a mio avviso il problema sta qua...

    Codice PHP:
    //codice omesso

    // username and password sent from form 
    $myusername=$_POST['myusername']; 
    $mypassword=$_POST['mypassword']; 

    //Salvo i dati...
    $_SESSION['myusername'] = $myusername;
    $_SESSION['mypassword'] = $mypassword;

    // altro codice

    if($count==1){
    // Register $myusername, $mypassword and redirect to file "login_success.php"
    session_register("myusername");
    session_register("mypassword"); 
    header("location:login_success.php"); 
    //resto del codice 
    in quanto $_SESSION e session_register sono la stessa cosa....

    quindi io lo cambierei così..

    Codice PHP:
    <?php
    session_start
    ();
    $host="localhost"// Host name 
    $username="naturewildlife"// Mysql username 
    $password="******"// Mysql password 
    $db_name="my_naturewildlife"// Database name 
    $tbl_name="members"// Table name

    // Connect to server and select databse.
    mysql_connect("$host""$username""$password")or die("cannot connect"); 
    mysql_select_db("$db_name")or die("cannot select DB");

    // username and password sent from form 
    $myusername=$_POST['myusername']; 
    $mypassword=$_POST['mypassword'];

    // To protect MySQL injection (more detail about MySQL injection)
    $myusername stripslashes($myusername);
    $mypassword stripslashes($mypassword);
    $myusername mysql_real_escape_string($myusername);
    $mypassword mysql_real_escape_string($mypassword);

    $sql="SELECT * FROM $tbl_name WHERE username='$myusername' and password='$mypassword'";
    $result=mysql_query($sql);

    // Mysql_num_row is counting table row
    $count=mysql_num_rows($result);
    // If result matched $myusername and $mypassword, table row must be 1 row

    if($count==1){
    //Salvo i dati...
    $_SESSION['myusername'] = $myusername;
    $_SESSION['mypassword'] = $mypassword;
    header("location:login_success.php");
    }
    else {
    echo 
    '<center><font size="5">Username o password errati o non inseriti. Rieffettua il login!</font></center>';
    }
    ?>
    http://php.net/manual/en/function.session-register.php

    ah.. inoltre session_register è deprecata
    eXvision

  10. #10
    mi da sempre il solito errore

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.