Visualizzazione dei risultati da 1 a 4 su 4

Discussione: Mio esperimento ;)

  1. #1

    Mio esperimento ;)

    Premessa : la mia conoscenza di PHP e MySql credo non superi il 4.5/5 purtroppo ( cioè meno male !! ) lavoro in questo periodo e non poso dedicarmi come vorrei allo studio e provare.

    Voglio imparare a creare e l'ostacolo + grande che ho incontrato è fare il login e poi proseguire il controllo su tutte le pagine protette.
    Non mi piace molto prendere le pappe già pronte, anche se di livello molto alto come quelle che compaiono sul forum e sul sito, così ho provato a farne una versione mia.
    Vi posto solo il codice della funzione di controllo di login e poi il controllo della pagina principale e poi quello di una pagina successiva al login.
    Vorrei sapere cosa ne pensate del mio esperimento di creare pagine protette.

    Codice PHP:
    function user_login($username$password) {
        
    $db connection();
        
    $decrypt_password MD5($password);    // decriptazione della password
        
    $verify mysql_query("SELECT * FROM ml_user 
        WHERE username = '
    $username' && user_password = '$decrypt_password'",$db
        or die( 
    "Errore : " mysql_error() );
        
    $num_users mysql_num_rows($verify);
        if (
    $num_users != 1) { 
            
    $msg "<p class=warning>Attenzione !! Username o Password errate !!</p>";
            return array ( 
    'ERROR'$msgNULLNULL ); } 
            else {
            
    $data mysql_fetch_array($verify);
            return array ( 
    'LOGIN'$data[user_id], $data[username], $data[user_level]); }
        
        return 
    $result;

    Controllo nella pagina di login :
    Codice PHP:
    $data user_login($_POST[user], $_POST[pass]);
    list (
    $result$data1$data2$data3) = $data;

    if ( 
    $result == LOGIN ) {

        
    session_start ();
        
    $_SESSION['username'] = $data2;
        
    $_SESSION['level'] = $data3;
        
        echo 
    $data2;
        
        
    // vari link...


        
    if ($data3 == 1) {
            echo 
    "

    <a href=\"../admin/index.php\">Pannello d'amministrazione</a></p>"
    ;}
        
         } 
        
    else {echo 
    $data1;} 
    Controllo successivo nella pagina di amministrazione
    Codice PHP:
    session_start ();

    $username $_SESSION['username'];
    $level $_SESSION['level'];

    if (
    $level != OR !isset($level)) {
    echo 
    "<p class=warning>Attenzione !! Non hai i diritti di visualizzare questa pagina !!</p>";} else {

    echo 
    "sei l'amministratore"; } 

  2. #2
    e si come volevi farlo se no? è cosi ke si fa, al max mettevi la possibilità di registrare usr e pass nei cookie, al max

  3. #3
    metti un titolo un po' più preciso del post (vedi regolamento)

    per quanto riguarda lo script, io metterei qualche controllo sui caratteri di username e password che rendano il login indipendente dalle impostazioni del sistema

    ex. mettiamo che nel sistema le stringhe postate vengano trasmesse pari pari al database (vedi magic_quote_gpc)

    io metto come username nel login
    codice:
    $_POST['username'] = "pippo' OR '1";
    la tua query diverrebbe
    codice:
    SELECT * FROM ml_user
    WHERE username = 'pippo' OR '1' AND user_password='$decrypt_password'
    in pratica vado ad influire su di essa non per come è stata programmata


    piccola cosa
    codice:
    session_start ();
    
    $username = $_SESSION['username'];
    $level = $_SESSION['level'];
    
    if ($level != 1 OR !isset($level)) {
    echo "<p class=warning>Attenzione !! Non hai i diritti di visualizzare questa pagina !!</p>";} else {
    
    echo "sei l'amministratore"; }
    così, se $level non è settata avresti un notice, basta invertire i valori nell'if per avere lo stesso risultato senza il notice

    codice:
    session_start ();
    
    $username = isset($_SESSION['username']) ? $_SESSION['username'] : NULL;
    $level = isset($_SESSION['level']) ? $_SESSION['level'] : NULL;
    
    if (!isset($level) || $level != '1') {
         echo "<p class=warning>Attenzione !! Non hai i diritti di visualizzare questa pagina !!</p>";
    } else {
         echo "sei l'amministratore";
    }
    E' la mia opinione ed io la condivido
    Non condivido la tua idea ma darei la vita perché tu la possa esprimere (Voltaire)
    Scrivi sul muro

  4. #4
    Mi spiace per il titolo del post ma ormai è troppo tardi per cambiarlo

    Grazie per i suggerimenti. Più che i timori che non funzionasse ( l'ho testato un pò ) pensavo che fosse un pò troppo grezzo e facilmente superabile da un utente + esperto.
    Ho scelto di non usare i cookie xchè nn mi piace insozzare i pc della gente e poi xchè sono forse + crackabili.

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.