• User

    @Thedarkita said:

    Se devi far accedere solo chi ha come permessi admin:
    [php]
    if(!isset($_SESSION['permessi']) || $_SESSION['permessi'] != 'admin')
    {
    header('Location: index.php');
    exit;
    }
    [/php]

    Ciao ragazzi mi sono bloccato in questo punto.
    Io ho sia l'attivazione che i permessi e naturalmente come ho pensato
    di fare non funziona, cioè anche se mi loggo come user mei fa accedere
    dunque ergo non vada a fare al comparazione nella tabella id utenti livello.

    questa è la parte del login:

    [php]
    // Controllo l'utente esiste
    $query = mysql_query("SELECT id,attivazione AND livello FROM utenti WHERE user = '$user' AND pass = '$pass' LIMIT 1");
    // Se ha trovato un record
    if(mysql_num_rows($query) == 1)
    {
    // prelevo l'id dal database
    $login = mysql_fetch_array($query);
    // L'account è attivo?
    if($login['attivazione'] == '')
    {
    // Creo una variabile di sessione
    $_SESSION['login'] = $login['id'];
    $_SESSION['permessi'] = $login['livello'];

        // reindirizzo l'utente
        header('Location: privata.php');
        exit;
        }
        else
        {
        die('Attiva il tuo account!!!');
    

    [/php]

    e questa è la parte pagina dell'admin:

    [php]
    <?php
    // Includo la connessione al database
    require('config.php');
    $_SESSION['login'] = $login['id'];
    // Se non è stata definita la variabile manda l'utente alla homepage
    if(!isset($_SESSION['permessi']) || $_SESSION['permessi'] != 'admin')
    {
    header('Location: index.php');
    exit;
    }
    ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <link href="a.css" rel="stylesheet" type="text/css" />
    </head>
    <body >
    <p class="testo24">Benvenuti nel sito <br /></p>
    <table width="600" border="0" cellspacing="0" cellpadding="0">
    <tr>
    <td width="1" rowspan="4" bgcolor="#000000"></td>
    <td width="280"><?php
    $default = mysql_fetch_array(mysql_query("SELECT user FROM utenti WHERE id = '{$_SESSION['login']}' LIMIT 1"));
    echo "<span class="testo12"> Bentornato {$default['user']}</span>";
    ?></td>
    <td> </td>
    [/php]

    Nel database ho fatto una tabela livello con inserito Admin o user
    e sulle pagine dell'user inserisco user al posto dell'admin.


  • ModSenior

    Ciao maxmizer,
    la query è errata, dovrebbe essere cosi:
    [php]
    SELECT id,attivazione,livello FROM utenti WHERE user = '$user' AND pass = '$pass' LIMIT 1
    [/php]


  • User

    @Thedarkita said:

    Se devi far accedere solo chi ha come permessi admin:
    [php]
    if(!isset($_SESSION['permessi']) || $_SESSION['permessi'] != 'admin')
    {
    header('Location: index.php');
    exit;
    }
    [/php]

    Perfetto funziona, grazie mille Thedarkita buona serata max.


  • User

    Ciao a tutti, stasera ho avuto un po di tempo per mettere on line il mio lavoro, premettto che un locale funziona tutto, in remoto mi fa uno scherzetto con la sessione, per cui quando faccio il login la pagina privata mi rinvia alla index... qualche idea.


  • User

    Ciao a tutti, stasera ho guardato ma non mi sembra che ci siano errori:
    parte finale di login.php

    <?php
    // prelevo l'id dal database
    $login = mysql_fetch_array($query);
    // L'account è attivo?
    if($login['attivazione'] == '')
    {
    // Creo una variabile di sessione
    $_SESSION['login'] = $login['id'];
    $_SESSION['permessi'] = $login['livello'];

    // reindirizzo l'utente
    header('Location: privata.php');
    exit;
    }
    else
    {
    die('Attiva il tuo account!!!');
    }
    }
    // se non esiste da l'errore
    else
    die('Nome Utente o Password errati');
    }
    ?>

    e php di privata

    <?php
    // Includo la connessione al database
    require('config.php');
    $_SESSION['login'] = $login['id'];
    // Se non è stata definita la variabile manda l'utente alla homepage
    if(!isset($_SESSION['login']))
    {
    header('Location: index.php');
    exit;
    }
    ?>

    però non mi tiene la variabile di sessione.


  • ModSenior

    Dovresti postare per intero anche il file login.php.


  • User

    @Thedarkita said:

    Dovresti postare per intero anche il file login.php.

    [php]
    <?php
    // Includo la connessione al database
    require('config.php');
    // Se il modulo viene inviato...
    if(isset($_POST['login']))
    {

    // Dati Inviati dal modulo
    $user = (isset($_POST['user'])) ? trim($_POST['user']) : '';    // Metto nella variabile 'user' il dato inviato dal modulo, se non viene inviato dò di default ''
    $pass = (isset($_POST['pass'])) ? trim($_POST['pass']) : '';    // Metto nella variabile 'pass' il dato inviato dal modulo, se non viene inviato dò di default ''
    
    // Filtro i dati inviati se i magic_quotes del server sono disabilitati per motivi di sicurezza
    if (!get_magic_quotes_gpc()) {
        $user = addslashes($user);
        $pass = addslashes($pass);
    }
    
    // Crypto la password e la confronto con quella nel database
    $pass = md5($pass);
    
    // Controllo l'utente esiste
    $query = mysql_query("SELECT id,attivazione,livello FROM utenti WHERE user = '$user' AND pass = '$pass'  LIMIT 1 ");
    // Se ha trovato un record
    if(mysql_num_rows($query) == 1)
    {
        // prelevo l'id dal database
        $login = mysql_fetch_array($query);
        // L'account è attivo?
        if($login['attivazione'] == '')
        {
        // Creo una variabile di sessione
        $_SESSION['login'] = $login['id'];
        $_SESSION['permessi'] = $login['livello']; 
    
        // reindirizzo l'utente
        header('Location: privata.php');
        exit;
        }
        else
        {
        die('Attiva il tuo account!!!');
        }
    }
    // se non esiste da l'errore
    else
        die('Nome Utente o Password errati');
    

    }
    ?>
    [/php]

    session_start() è in config


  • User

    Sono riuscito solo stasera a mandarti l'intero file:

    [php]
    <?php
    // Includo la connessione al database
    require('config.php');
    // Se il modulo viene inviato...
    if(isset($_POST['login']))
    {

    // Dati Inviati dal modulo
    $user = (isset($_POST['user'])) ? trim($_POST['user']) : '';    // Metto nella variabile 'user' il dato inviato dal modulo, se non viene inviato dò di default ''
    $pass = (isset($_POST['pass'])) ? trim($_POST['pass']) : '';    // Metto nella variabile 'pass' il dato inviato dal modulo, se non viene inviato dò di default ''
    
    // Filtro i dati inviati se i magic_quotes del server sono disabilitati per motivi di sicurezza
    if (!get_magic_quotes_gpc()) {
        $user = addslashes($user);
        $pass = addslashes($pass);
    }
    
    // Crypto la password e la confronto con quella nel database
    $pass = md5($pass);
    
    // Controllo l'utente esiste
    $query = mysql_query("SELECT id,attivazione,livello FROM utenti WHERE user = '$user' AND pass = '$pass'  LIMIT 1 ");
    // Se ha trovato un record
    if(mysql_num_rows($query) == 1)
    {
        // prelevo l'id dal database
        $login = mysql_fetch_array($query);
        // L'account è attivo?
        if($login['attivazione'] == '')
        {
        // Creo una variabile di sessione
        $_SESSION['login'] = $login['id'];
        $_SESSION['permessi'] = $login['livello']; 
        
        // reindirizzo l'utente
        header('Location: privata.php');
        exit;
        }
        else
        {
        die('Attiva il tuo account!!!');
        }
    }
    // se non esiste da l'errore
    else
        die('Nome Utente o Password errati');
    

    }
    ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <link href="belzoni.css" rel="stylesheet" type="text/css" />
    <title>xxxx</title>
    </head>
    <body>
    <p class="testo24">xxxx xxx<br />
    Login</p>
    <table width="600" border="0" cellspacing="0" cellpadding="0">
    <tr>
    <td width="1" rowspan="4" bgcolor="#000000"></td>
    <td> </td>
    <td> </td>
    <td class="testo12"><form action="" method="post">
    <input name="user" type="text" id="user" value="Nome Utente" onfocus="if(this.value=='Nome Utente') this.value='';" /><br />
    <input name="pass" type="password" id="pass" value="Password" onfocus="if(this.value=='Password') this.value='';" /><br />
    <input name="login" type="submit" value="Login" /><br />
    </form></td>
    <td width="1" rowspan="4" bgcolor="#000000"></td>
    </tr>
    <tr>
    <td width="200"> </td>
    <td width="200"> </td>
    <td width="198" class="testo12"> </td>
    </tr>
    <tr>
    <td colspan="3"><img src="images/xxx.jpg" width="597" height="58" alt="xxx" /></td>
    </tr>
    <tr>
    <td colspan="3" bgcolor="#000000" height="1"></td>
    </tr>
    </table>
    <table width="600" border="0" cellspacing="0" cellpadding="0" height="20">
    <tr>
    <td id="testo10">Proprietà del sito xxx <a id="testo10" href="xxxx </a></td>
    <td id="testo10"><a id="testo" href="xxx"><img src="images/FaceBook_32x32.png" alt="xxx" width="16" height="16" border="0" /></a></td>
    </tr>
    </table>
    </body>
    </html>
    [/php]


  • User

    @Thedarkita said:

    Dovresti postare per intero anche il file login.php.
    Ciao Thedarkita, scusami del disturbo, oggi e domani ho tempo per vedere di far funzionare il tutto, tu vedi qualcosa di sbagliato dal file che ho postato.

    Grazie Max


  • User

    Ciao ragazzi sono contento di essermi iscritto in questo forum... Mi sa che è proprio quello che cercavo... Ora inizio il lavoro sicuramente avrò bisogno di un vostro intervento anche perchè in php sto appena iniziando a capirci qualcosa... Vi chiedo solo una cosa che per voi è banale ma per me mi sta creando un po dubbi..... All'inizio della discussione a Thedarkita incomincia con:[QUOTEr]database
    Codice PHP:
    CREATE TABLE utenti (
    id INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
    user TEXT NOT NULL ,
    pass TEXT NOT NULL ,
    mail TEXT NOT NULL
    ) ENGINE = MYISAM ; [/quote]
    Ora studiando un po ho capito che è stat creata un area per la registrazione e un area di login se non vado errato questo database serve a memorizzare tutti gli utenti registrati,giusto??? E per creare questo io apro il mio affidabilissimo blocco note ci inserisco lo script e lo devo rinominare database.php??? Spero che on mi prendiate in giro anche perchè quest'area mi servirebbe tantissimo per creare un area dove gli altri utenti si possano scambiare le varie opinioni o consigli! Grazie.


  • ModSenior

    Ciao dontorus,

    fai attenzione alle maiuscole...
    Per quanto riguarda la domanda da te posta, devi eseguire quel codice per creare la tabella secondo quella struttura, puoi farla eseguire ad esempio tramite phpmyadmin.


  • User

    @Thedarkita said:

    [...]
    Scusami se ancora ti disturbo,ma non comprendo.... Che significa phpmyadmin...:?
    Lo so che gia sto creando un po di fastidio, ma ti spiego cosa ho in mente... Allora sul mio sito si parla di celiachia..ok? Adesso creerò un area mediaca...Una piccola area dove gli utenti scrivono i loro problemi e si aiutino a vicenda. Spero che si iscriveranno anche medici sarebbe il top! Ora una volta fatta l'iscrizione io dovrei sapere il loro indirizzo ip anche per evitare spammer... Comunque il resto può venire dopo!


  • ModSenior

    Ciao dontorus,
    fai attenzione alle maiuscole nei tuoi messaggi, ti segnalo le nostre regole:

    3.2. Iniziare i messaggi con la maiuscola e terminare con un punto.

    3.3. Lasciare spazi dopo la punteggiatura.

    3.4. Non sono consentiti termini abbreviativi da sms come: nn_mlt_cn_qst_sn_xkè_ke_x_cmq+*_ ***ecc..
    Oltre ad una pessima capacità comunicativa, tali sigle così come gli errori di battitura, NON sono recepiti dai bot dei motori di ricerca, vanificando un'adeguata indicizzazione della pagina.
    Il Moderatore editerà a sua discrezione testi ritenuti sgrammaticati o in stile da telefonini.

    Per quanto riguarda il tuo problema, il tuo hosting ti da dei database mysql che puoi utilizzare?


  • User

    @Thedarkita said:

    Per quanto riguarda il tuo problema, il tuo hosting ti da dei database mysql che puoi utilizzare?
    Ok scusami thedarkita cercherò di seguire alla lettera le regole.
    Per quanto riguarda il mio hosting è altervista e mi da i database mysql che lo posso utilizzare. Quindi?


  • ModSenior

    Dal pannello altervista puoi collegarti al phpmyadmin ed eseguire la query.


  • User

    Sto adesso nel pannello,sembra di si.Ho trovato una voce finestra della queriy se cio clicco sopra mi esce una finestra con una tabella con scritto Eseguendo query SQL sul server "localhost": e con un campo di testo e all'interno sicuramente si deve inserire qualcosa...e due altre finestre con scritto importa file,storico dell'SQL.


  • ModSenior

    Nel campo di testo devi inserire in codice del database.sql, e fare esegui.


  • User

    Ok grazie ora ci provo,se ho difficoltà nel proseguire mi dispiace ma dovrò continuare a disturbarti 🙂 .
    ps. per renderti l'idea di quello che ho in mente è più o meno questo medicitalia.it/02it/iscriviti.asp .


  • User

    @Thedarkita said:

    config.php
    [php]<?php
    // avvio la sessione
    session_start();

    // Dati connessione al database
    $db_host = 'localhost'; // Host - solitamente localhost
    $db_utente = 'root'; // Nome utente del Database
    $db_password = 'pass'; // Password del Database
    $db_nomedb = 'thedarkita'; // Nome del Database

    // Effettua la connessione al database
    $dbh=mysql_connect ($db_host, $db_utente, $db_password) or die ('Errore nella stringa di connessione al database: '.mysql_error());
    mysql_select_db($db_nomedb);
    ?>[/php]
    Adesso passando al config host lo lascio invariato db_utente ? db_passwoerd? db_nomedb? come dovo procedere?:D


  • ModSenior

    Devi inserire i dati che ti dà altervista.