• User Newbie

    Pannello Amministrazione utenti

    Buonasera a tutti.
    Sono niubissimo sia del forum che del linguaggio PHP. Conosco pochissimo ma sono al corrente delle enormi potenzialità. Sono stato indirizzato su questo forum da moltissime persone che me l'hanno consigliato come validissimo, quindi eccomi qui.

    Il mio mentore è del parere che migliore di ogni libro c'è la pratica, così eccomi a progettare un pannello di amministrazione utenti, con 3 campi da riempire [nome utente, username e password] e 2 checkbox per assegnare il grado di amministrazione [user e admin].
    La mia conoscenza dell'html finora mi ha permesso di scrivere solo il codice per impostare i 6 campi citati sopra, ma il resto mi rimane sconosciuto.

    Chiedo quindi a voi, a chi ha pazienza e voglia di insegnare, un qualunque aiuto per iniziare questo cammino, visto che da qui partirà la mia probabile futura carriera lavorativa.

    Parto quindi con la prima domanda, che riguarda il codice HTML:

    1. ho questo caso qui sotto:

    <input type="checkbox" name="user" value="user" checked="checked"> User
    <br>
    <input type="checkbox" name="admin" value="admin" checked="checked"> Administrator

    vorrei escludere la seconda opzione se decido di scegliere la prima. Che codice devo usare? Vorrei evitare di usare <select name="bLaBla" multiple="multiple">


  • Super User

    Ciao iSleepy e benvenuto nel forum GT 🙂

    Fai così:

    <input type="radio" name="grado" value="user" checked> User 
    <br><input type="radio" name="grado" value="admin" checked> Administrator
    

    😉
    Ciao!

    P.S:Porgi pure nello stesso thread le altre domande senza aprire nuove discussioni,l'importante è non andare OT 🙂


  • User Newbie

    Buonasera probid e grazie per il benvenuto.
    Ho provato e mi restituisce il risultato voluto. Grazie mille.

    Ora che ho completato il form per l'inserimento degli utenti, dovrei mandare nel db MySQL l'output del modulo form, giusto?
    Per utilità, c'è bisogno che io incolli la porzione di codice PHP che mi hanno abbozzato?
    O avete [hai] qualche consiglio particolare e/o più funzionale per il processo?


  • Super User

    Per cominciare posta il tuo codice 🙂


  • User Newbie

    Ok, eccolo di seguito:


    <?
    include("DBManager.php");
    include("LogManager.php");
    include("../include/header.php");
    include("visualizza.php");
    $DBManager= new DBManager(DATABASE_UTENTE, DATABASE_PASSWORD, DATABASE_HOST, DATABASE_NOME);
    $DBConn= $DBManager->getConn();

    $selUser="SELECT * FROM users";
    $users=$DBManager->runQuery($DBConn, $selUser);

    echo "<pre>";
    print_r($users);
    echo "</pre>";

    foreach ($users as $key=>$user){
    echo $user['users_name']."<br>";
    echo $user['users_username']."<br>";

    }

    ?>


  • User Newbie

    praticamente questa porzione di codice serve per aprire la connessione con il database mysql e per printare il nome e lo username dell'utente, giusto ?


  • Super User

    La porzione di codice postata non è sufficiente in quanto la classe principale si trova in un file esterno incluso.
    Quindi potresti per favore postare anche:
    DBManager.php
    LogManager.php
    ../include/header.php
    visualizza.php
    ?
    Grazie 😉
    Ciao!


  • User Newbie

    LogManager.php

    <?php

    class LogManager{

    public function __construct(){
        
    }
    
    public function setLog($msg){
        if(!file_exists(LOG_PATH.LOG_FILE_NAME)){
            $log= fopen(LOG_PATH.LOG_FILE_NAME, "w") or die ("Worning!: log file non creato.");
            fwrite($log, date("Y-m-d H:i:s")."] LogManager\n\n");    
        }else{
            $log= fopen(LOG_PATH.LOG_FILE_NAME, "a");
            fwrite($log, date("Y-m-d H:i:s"). " -  ".$msg."\n");
            fclose($log);
        }
    }
    

    }
    ?>


    DBManager.php

    <?php
    require_once('DB.php');
    class DBManager{

    private $user= "";
    private $password= "";
    private $host= "";
    private $name= "";
    
    
    public function __construct($user, $password, $host, $name){
        $this->user= $user;
        $this->password= $password;
        $this->host= $host;
        $this->name= $name;
    }
    

    //*********************** CONNESSIONE ******************************************
    public function getConn(){
    try{
    $db= mysql_connect($this->host, $this->user, $this->password);
    mysql_select_db($this->name);

        }catch(Exception $e){
            $logManager= new LogManager();
            $logManager->setLog("Fallita connessione al database - ".$e->getMessage());
        }
        return $db;
    }
    
    
    public function dropConn($db){
        try{
            mysql_close($db);
        }catch (Exception $e){
            $logManager= new LogManager();
            $logManager->setLog("Errore di disconnessione dal database - ".$e->getMessage());
        }
    }
    

    //*********************** QUERY ******************************************

    public function runQuery($db, $query){
        $data= array();        
        try{
            $dataObj= mysql_query($query, $db);
            while($row= mysql_fetch_assoc($dataObj)){
                $data[]= $row;
            }
        }catch (Exception $e){
            $logManager= new LogManager();
            $logManager->setLog("Errore query: ".$query);
        }
        return $data;
    }
    
    public function runInsert($db, $query){
        try{
            mysql_query($query, $db);
            $lastId=mysql_insert_id();
            return $lastId;
        }catch (Exception $e){
            $logManager= new LogManager();
            $logManager->setLog("Errore query: ".$query);
        }
    }
    
    public function runQueryUpDel($db, $query){
        try{
            mysql_query($query, $db);
        }catch (Exception $e){
            $logManager= new LogManager();
            $logManager->setLog("Errore query: ".$query);
        }
    }
    

    //*********************** QUERY ******************************************
    }
    ?>

    header.php e visualizza.php sono inutili. la prima contiene un header con un javascript per i pulsanti del menù, la seconda è vuota.