• ModSenior

    Prova cosi:
    [php]

    <?php
    // Includo la connessione al database
    require('config.php');

    // Se non è stata definita la variabile manda l'utente alla homepage
    if(!isset($_SESSION['login']))
    {
    header('Location: login.php');
    exit;
    }

    // Se il modulo viene inviato...
    if(isset($_POST['modifica']))
    {

    // Dati Inviati dal modulo 
    $nome = (isset($_POST['nome'])) ? trim($_POST['nome']) : '';    // Metto nella variabile 'name' il dato inviato dal modulo, se non viene inviato dò di default '' 
    $cognome = (isset($_POST['cognome'])) ? trim($_POST['cognome']) : '';    // Metto nella variabile 'surname' il dato inviato dal modulo, se non viene inviato dò di default '' 
    $user = (isset($_POST['user'])) ? trim($_POST['user']) : '';    // Metto nella variabile 'username' il dato inviato dal modulo, se non viene inviato dò di default '' 
    $pass = (isset($_POST['pass'])) ? trim($_POST['pass']) : '';    // Metto nella variabile 'password' il dato inviato dal modulo, se non viene inviato dò di default '' 
    $mail = (isset($_POST['mail'])) ? trim($_POST['mail']) : '';    // Metto nella variabile 'mail' 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()) { 
        $nome = addslashes($nome); 
        $cognome = addslashes($cognome); 
        $user = addslashes($user); 
        $pass = addslashes($pass); 
        $mail = addslashes($mail); 
    

    }

    if($attualenome != $nome && $nome != '')  
        $setquery = ((isset($setquery)) ? $setquery.",nome = '$nome'" : "nomeattuale = '$nome'");// IF in forma contratta, sintassi: ((CONDIZIONE) ? RETURN_TRUE : RETURN_FALSE) 
    if($attualeuser != $cognome && $cognome != '')  
        $setquery = ((isset($setquery)) ? $setquery.",cognome = '$cognome'" : "cognomeattuale = '$cognome'");// IF in forma contratta, sintassi: ((CONDIZIONE) ? RETURN_TRUE : RETURN_FALSE) 
    if($attualeuser != $user && $user != '')  
        $setquery = ((isset($setquery)) ? $setquery.",campouser = '$user'" : "campouser = '$user'");// IF in forma contratta, sintassi: ((CONDIZIONE) ? RETURN_TRUE : RETURN_FALSE) 
    if($attualepassword != $password) 
        $setquery = ((isset($setquery)) ? $setquery.",campopassword = '$password'" : "campopassword = '$password'");// IF in forma contratta, sintassi: ((CONDIZIONE) ? RETURN_TRUE : RETURN_FALSE) 
    if($attualemail != $mail) 
        $setquery = ((isset($setquery)) ? $setquery.",campomail = '$mail'" : "campomail = '$mail'");// IF in forma contratta, sintassi: ((CONDIZIONE) ? RETURN_TRUE : RETURN_FALSE) 
    if($attualeazienda != $azienda) 
        $setquery = ((isset($setquery)) ? $setquery.",campoazienda = '$azienda'" : "campoazienda = '$azienda'");// IF in forma contratta, sintassi: ((CONDIZIONE) ? RETURN_TRUE : RETURN_FALSE) 
    if($attualeoccupazione != $occupazione) 
        $setquery = ((isset($setquery)) ? $setquery.",campooccupazione = '$occupazione'" : "campooccupazione = '$occupazione'");// IF in forma contratta, sintassi: ((CONDIZIONE) ? RETURN_TRUE : RETURN_FALSE)         
    if($attualeindirizzo != $indirizzo) 
        $setquery = ((isset($setquery)) ? $setquery.",campoindirizzo = '$indirizzo'" : "campoindirizzo = '$indirizzo'");// IF in forma contratta, sintassi: ((CONDIZIONE) ? RETURN_TRUE : RETURN_FALSE)         
    if($attualecitta != $citta) 
        $setquery = ((isset($setquery)) ? $setquery.",campocitta = '$citta'" : "campocitta = '$citta'");// IF in forma contratta, sintassi: ((CONDIZIONE) ? RETURN_TRUE : RETURN_FALSE)         
    if($attualecomune != $comune) 
        $setquery = ((isset($setquery)) ? $setquery.",campocomune = '$comune'" : "campocomune = '$comune'");// IF in forma contratta, sintassi: ((CONDIZIONE) ? RETURN_TRUE : RETURN_FALSE) 
    if($attualeprovincia != $provincia) 
        $setquery = ((isset($setquery)) ? $setquery.",campoprovincia = '$provincia'" : "campoprovincia = '$provincia'");// IF in forma contratta, sintassi: ((CONDIZIONE) ? RETURN_TRUE : RETURN_FALSE) 
    if($attualecap != $cap) 
        $setquery = ((isset($setquery)) ? $setquery.",campocap = '$cap'" : "campocap = '$cap'");// IF in forma contratta, sintassi: ((CONDIZIONE) ? RETURN_TRUE : RETURN_FALSE)         
    if($attualetelefono != $telefono) 
        $setquery = ((isset($setquery)) ? $setquery.",campotelefono = '$telefono'" : "campotelefono = '$telefono'");// IF in forma contratta, sintassi: ((CONDIZIONE) ? RETURN_TRUE : RETURN_FALSE) 
    if($attualefax != $fax) 
        $setquery = ((isset($setquery)) ? $setquery.",campofax = '$fax'" : "campofax = '$fax'");// IF in forma contratta, sintassi: ((CONDIZIONE) ? RETURN_TRUE : RETURN_FALSE)         
    

    if(isset($setquery))
    mysql_query("UPDATE utenti SET $setquery WHERE id = '$id'");
    }
    ?>
    [/php]


  • User Newbie

    Grazie per la dritta, ma ancora non va... non capisco proprio da cosa possa dipendere! Potrebbe dipendere dalla sessione con cui mi loggo? Oppure il form che utilizzo è sbagliato? Scusa se ti stresso! Ma è l'unica pagina che proprio non sono riuscito a far funzionare da solo!

    Mega dubbio, ma è normale che dentro i campi del form non mi compaia niente? In teoria per come li ho costruiti dovrebbero vedersi i valori attualmente inseriti nel database, o sbaglio?

    P.


  • ModSenior

    Aggiungi dopo la query:
    [php]
    echo "UPDATE utenti SET $setquery WHERE id = '$id'";
    [/php]

    Ed incolla qua cosa mostra.


  • User Newbie

    Stampando la query mi vienie fuori:
    UPDATE utenti SET WHERE id = ''
    Direi che non mi riconosce l'id, quindi come temevo potrebbe essere "un'errore" di login?

    Se eseguo la query in PHP my admin questo è il risultato.
    #1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'mysql_query("UPDATE utenti SET $setquery WHERE id = '$id' ")' at line 1

    Scusa ma sono anche io, ovviamente, alle prime armi con il PHP... e non è così semplice!


  • ModSenior

    Infatti $id non c'è da nessuna prte nel tuo script, $setquery suppongo sia vuota perchè avevi lasciato i campi vuoti durante la prova, fai questa modifica e dovrebbe funzionare:
    Al posto di:
    [php]
    mysql_query("UPDATE utenti SET $setquery WHERE id = '$id'");
    [/php]
    Metti:
    [php]
    mysql_query("UPDATE utenti SET $setquery WHERE id = {$_SESSION['login']}");
    [/php]


  • User Newbie

    Grazie Thedarkita... ma purtroppo non funziona ancora 😢. Non so davvero più che pesci prendere...

    Quale altro potrebbe essere l'errore?? Nel form? Secondo me non invia i dati... però boh?:?

    Help please!


  • ModSenior

    Ma a $attualenome gli hai assegnato il valore?


  • User Newbie

    hem... forse no... che pirla... cosa faccio, gli assegno un valore del tipo:

    [PHP]$attualenome = (isset($_POST['nome'])) ? trim($_POST['nome']) : '';[/PHP]

    Oppure non c'entra niente? che valore devo dargli? che richiama al form di pubblicazione?

    E' giusto che esistano due variabili diverse $nome e $attualenome? Una riferita ai dati nel DB e una riferita ai dati inviati dal modulo?


  • ModSenior

    Dipende cosa devi fare... se devi fare un confronto con il nome attuale devi fare una query per recuperarlo.


  • User Newbie

    Ok, grazie ho afferrato il concetto... Però per far funzionare a livello basilare la mia pagina di modifica profilo non è necessario fare un confronto vero? Ciò detto, come devo definire la variabile nomeattuale? E soprattutto è necessaria? Scusami se ti stresso, ma dopo aver fatto tutto senza bisogno d'aiuto ora sono entrato nel pallone... Credo mi sfugga ancora qualche concetto teorico... Però dovresti essere orgolioso, grazie al tuo tutorial ho fatto grandi cose sul mio sito :tongueout:!


  • ModSenior

    Non è necessaria.


  • User Newbie

    Ho riprovato il tutto... Temo ci sia ancora qualcosa che non va, perché non solo non mi cambia i dati nel DB, ma per altro se clicco su "modifica" mi ricarica semplicemente la stessa pagina... Possibile che io sia così tonto? Avresti voglia di provare a ricontrollare tutto il mio codice, senza fretta e correggermelo? Grazie in anticipo
    P.

    PS: Altro problemino, aprendo la pagina mi compila in automatico il campo "user" (come da impostazione) mentre tutti gli altri campi sono vuoti... potrebbe essere un problema di login? Magari sbaglio a impostare la sessione di login?

    Codice PHP all'inizio della pagina di modifica:
    [PHP]<?php
    // Includo la connessione al database
    require('config.php');

    // Se non è stata definita la variabile manda l'utente alla homepage
    if(!isset($_SESSION['login']))
    {
    header('Location: login.php');
    exit;
    }

    // Se il modulo viene inviato...
    if(isset($_POST['modifica']))
    {
    // Dati Inviati dal modulo
    $nome = (isset($_POST['nome'])) ? trim($_POST['nome']) : ''; // Metto nella variabile 'nome' il dato inviato dal modulo, se non viene inviato dò di default ''
    $cognome = (isset($_POST['cognome'])) ? trim($_POST['cognome']) : ''; // Metto nella variabile 'surname' il dato inviato dal modulo, se non viene inviato dò di default ''
    $user = (isset($_POST['user'])) ? trim($_POST['user']) : ''; // Metto nella variabile 'username' il dato inviato dal modulo, se non viene inviato dò di default ''
    $pass = (isset($_POST['pass'])) ? trim($_POST['pass']) : ''; // Metto nella variabile 'password' il dato inviato dal modulo, se non viene inviato dò di default ''
    $mail = (isset($_POST['mail'])) ? trim($_POST['mail']) : ''; // Metto nella variabile 'mail' 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()) { 
        $nome = addslashes($nome);
        $cognome = addslashes($cognome);
        $user = addslashes($user);
        $pass = addslashes($pass);
        $mail = addslashes($mail);
    

    }

    if($nome != $nome && $nome != '')  
        $setquery = ((isset($setquery)) ? $setquery.",nome = '$nome'" : "nomeattuale = '$nome'");// IF in forma contratta, sintassi: ((CONDIZIONE) ? RETURN_TRUE : RETURN_FALSE) 
    if($cognome != $cognome && $cognome != '')  
        $setquery = ((isset($setquery)) ? $setquery.",cognome = '$cognome'" : "cognomeattuale = '$cognome'");// IF in forma contratta, sintassi: ((CONDIZIONE) ? RETURN_TRUE : RETURN_FALSE) 
    if($user != $user && $user != '')  
        $setquery = ((isset($setquery)) ? $setquery.",campouser = '$user'" : "campouser = '$user'");// IF in forma contratta, sintassi: ((CONDIZIONE) ? RETURN_TRUE : RETURN_FALSE) 
    if($pass != $pass) 
        $setquery = ((isset($setquery)) ? $setquery.",campopass = '$pass'" : "campopass = '$pass'");// IF in forma contratta, sintassi: ((CONDIZIONE) ? RETURN_TRUE : RETURN_FALSE) 
    if($conferma != $pass) 
        $setquery = ((isset($setquery)) ? $setquery.",campoconferma = '$conferma'" : "campoconferma = '$conferma'");// IF in forma contratta, sintassi: ((CONDIZIONE) ? RETURN_TRUE : RETURN_FALSE)
    if($mail != $mail) 
       $setquery = ((isset($setquery)) ? $setquery.",campomail = '$mail'" : "campomail = '$mail'");// IF in forma contratta, sintassi: ((CONDIZIONE) ? RETURN_TRUE : RETURN_FALSE)
    

    if(isset($setquery))
    mysql_query("UPDATE utenti SET $setquery WHERE id = {$_SESSION['login']}");
    }
    ?>[/PHP]

    Form da compilare:
    [HTML]<form action="" method="post">
    Nome<br />
    <input name="nome" type="text" id="nome" value="<?php echo $_SESSION["nome"];?>" onfocus="if(this.value=='nome') this.value='nome';" /><br />
    <br />
    Cognome<br />
    <input name="cognome" type="text" id="cognome" value="<?php echo $_SESSION["cognome"];?>" onfocus="if(this.value=='cognome') this.value='cognome';" /><br />
    <br />
    Username<br />
    <input name="user" type="text" id="user" value="<?php echo $_SESSION["user"];?>" onfocus="if(this.value=='user') this.value='user';" /><br />
    <br />
    Password<br />
    <input name="pass" type="pass" id="pass" value="<?php echo $_SESSION["pass"];?>" onfocus="if(this.value=='pass') this.value='pass';" /><br />
    <br />
    Conferma password<br />
    <input name="conferma" type="pass" id="conferma" value="<?php echo $_SESSION["conferma"];?>" onfocus="if(this.value=='conferma') this.value='conferma';" /><br />
    <br />
    Indirizzo email<br />
    <input name="mail" type="text" id="mail" value="<?php echo $_SESSION["mail"];?>" onfocus="if(this.value=='mail') this.value='mail';" /><br />
    <br />
    <input name="modifica" type="submit" value="modifica" /><br />
    <br />

    			</form>[/HTML]

  • ModSenior

    Hai messo:

    [php]$nome != $nome[/php]
    Un tantinello impossibile che si verifichi....


  • User Attivo

    Salve, vorrei utilizzare questo script per proteggere una pagina, dove sono contenuti in una tabella dei dati un po delicati, secondo voi questo metodo va bene ed e sicuro oppure dovrei adottare altro?


  • ModSenior

    Ciao Bivio,

    il metodo è sicuro.


  • User Newbie

    Ciao TheDarkita, sono sempre io... è da giorni (forse settimane) che provo e riprovo, ma non riesco proprio... ti chiedo l'ultima cortesia... mi spieghi esattamente il significato del codice che ho scritto (ammesso che ne abbia uno) se riesco a capire davvero cosa vuol dire allora FORSE riuscirò anche a riscriverne uno funzionante... Non vorrei che me ne scrivessi uno tu, perché non sarebbe corretto... Grazie mille.

    [PHP]<?php
    // Includo la connessione al database
    require('config.php');

    // Se il modulo viene inviato...
    if(isset($_POST['Modifica']))
    {

    // Dati Inviati dal modulo 
    $nome = (isset($_POST['nome'])) ? trim($_POST['nome']) : '';    // Metto nella variabile 'name' il dato inviato dal modulo, se non viene inviato dò di default '' 
    $cognome = (isset($_POST['cognome'])) ? trim($_POST['cognome']) : '';    // Metto nella variabile 'surname' il dato inviato dal modulo, se non viene inviato dò di default '' 
    $user = (isset($_POST['user'])) ? trim($_POST['user']) : '';    // Metto nella variabile 'username' il dato inviato dal modulo, se non viene inviato dò di default '' 
    $pass = (isset($_POST['pass'])) ? trim($_POST['pass']) : '';    // Metto nella variabile 'password' il dato inviato dal modulo, se non viene inviato dò di default '' 
    $mail = (isset($_POST['mail'])) ? trim($_POST['mail']) : '';    // Metto nella variabile 'mail' 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()) { 
        $nome = addslashes($nome); 
        $cognome = addslashes($cognome); 
        $user = addslashes($user); 
        $pass = addslashes($pass); 
        $mail = addslashes($mail); 
    

    }

    if($nomeattuale != $nome && $nome != '')  
        $setquery = ((isset($setquery)) ? $setquery.",nome = '$nome'" : "nomeattuale = '$nome'");// IF in forma contratta, sintassi: ((CONDIZIONE) ? RETURN_TRUE : RETURN_FALSE) 
    if($cognomeattuale != $cognome && $cognome != '')  
        $setquery = ((isset($setquery)) ? $setquery.",cognome = '$cognome'" : "cognomeattuale = '$cognome'");// IF in forma contratta, sintassi: ((CONDIZIONE) ? RETURN_TRUE : RETURN_FALSE) 
    if($userattuale != $user && $user != '')  
        $setquery = ((isset($setquery)) ? $setquery.",user = '$user'" : "userattuale = '$user'");// IF in forma contratta, sintassi: ((CONDIZIONE) ? RETURN_TRUE : RETURN_FALSE) 
    if($passattuale != $password) 
        $setquery = ((isset($setquery)) ? $setquery.",pass = '$pass'" : "passattuake = '$pass'");// IF in forma contratta, sintassi: ((CONDIZIONE) ? RETURN_TRUE : RETURN_FALSE) 
    if($confermaattuale != $password) 
        $setquery = ((isset($setquery)) ? $setquery.",pass = '$pass'" : "passattuake = '$pass'");// IF in forma contratta, sintassi: ((CONDIZIONE) ? RETURN_TRUE : RETURN_FALSE) 
    if($mailattuale != $mail) 
        $setquery = ((isset($setquery)) ? $setquery.",mail = '$mail'" : "mailattuale = '$mail'");// IF in forma contratta, sintassi: ((CONDIZIONE) ? RETURN_TRUE : RETURN_FALSE) 
    
    // Crypt delle password per garantire una miglior sicurezza
        $pass = md5($pass);
    

    if(isset($setquery))
    $strSQL = "UPDATE utenti (nome,cognome,user,pass,conferma,mail)";
    $strSQL .= "VALUES('$nome', '$cognome', '$user', '$pass', '$conferma', '$mail')";
    mysql_query($strSQL);
    }
    ?>[/PHP]


  • ModSenior

    La variabile $nomeattuale non ha nessun valore per cui un confronto è inutile.
    L'hash della password andrebbe fatto prima di generare la query.
    La sintassi della query di update è errata.
    Sarebbe meglio studiare prima un pò di teoria, altrimenti non potrai mai realizzare niente...


  • User Newbie

    Ciao Thedarkita... mi scuso per il post precedente, mi sono lasciato travolgere dalla fretta di finire tutto ed ho postato il codice sbagliato. Questo è il codice che volevo postarti. In realtà è già stato di nuovo modificato (c'era un errore stupidissimo) ed ora funziona correttamente, ed è anche leggermente modificato rispetto a quelli precedentemente postati. Le caratteristiche sono: la possibilità di modificare il profilo (tutti i campi tranne la password) e la richiesta PER CONFERMA della password. Viene poi inviata in automatico una mail con i nuovi dati aggiornati, e qui subentra il problema, forse per mia mancanza teorica, ma non so come scrivere il codice per far comparire nella mail i nuovi campi nome, congnome ecc... non ho trovato nulla di utile nelle mie guide, quindi mi rivolgo a te. Posto il codice intero così anche altri utenti potranno sfruttare questa pagina.

    MODIFICA.php
    [PHP]<?php
    // Includo la connessione al database
    require('config.php');

    // Definisco le variabili
    $nomettuale = $_SESSION ['nome'];
    $cognomeattuale = $_SESSION ['cognome'];
    $userattuale = $_SESSION ['user'];
    $passattuale = $_SESSION ['pass'];
    $confermaattuale = $_SESSION ['conferma'];
    $mailattuale = $_SESSION ['mail'];

    // Se il modulo viene inviato...
    if(isset($_POST['Modifica']))
    {
    // Dati Inviati dal modulo
    $nome = (isset($_POST['nome'])) ? trim($_POST['nome']) : 'nomeattuale'; // Metto nella variabile 'nome' il dato inviato dal modulo, se non viene inviato dò di default 'nomeattuale'
    $cognome = (isset($_POST['cognome'])) ? trim($_POST['cognome']) : 'cognomeattuale'; // Metto nella variabile 'cognome' il dato inviato dal modulo, se non viene inviato dò di default 'cognomeattuale'
    $user = (isset($_POST['user'])) ? trim($_POST['user']) : 'userattuale'; // Metto nella variabile 'user' il dato inviato dal modulo, se non viene inviato dò di default 'userattuale'
    $pass = (isset($_POST['pass'])) ? trim($_POST['pass']) : 'passattuale'; // Metto nella variabile 'pass' il dato inviato dal modulo, se non viene inviato dò di default 'passattuale'
    $conferma = (isset($_POST['conferma'])) ? trim($_POST['conferma']) : 'confermaattuale'; // Metto nella variabile 'conferma' il dato inviato dal modulo, se non viene inviato dò di default 'confermaattuale'
    $mail = (isset($_POST['mail'])) ? trim($_POST['mail']) : 'mailattuale'; // Metto nella variabile 'mail' il dato inviato dal modulo, se non viene inviato dò di default 'mailattuale'

    // Filtro i dati inviati se i magic_quotes del server sono disabilitati per motivi di sicurezza 
    if (!get_magic_quotes_gpc()) { 
        $nome = addslashes($nome); 
        $cognome = addslashes($cognome); 
        $user = addslashes($user);
        $pass = addslashes($pass);  
        $mail = addslashes($mail); 
    	}
    
    $pass = md5($pass);
    
    $query = mysql_query("SELECT id FROM utenti WHERE pass = '$pass' LIMIT 1");
        // Controllo se la password è giusta    
    if(mysql_num_rows($query) == 0)
        die('Password non valida');
    else
    {
        if($nome != $nomeattuale && $nome != '')  
            $setquery = ((isset($setquery)) ? $setquery.",nome = '$nome'" : "nome = '$nome'");// IF in forma contratta, sintassi: ((CONDIZIONE) ? RETURN_TRUE : RETURN_FALSE) 
        if($cognome != $cognomeattuale && $cognome != '')  
            $setquery = ((isset($setquery)) ? $setquery.",cognome = '$cognome'" : "cognome = '$cognome'");// IF in forma contratta, sintassi: ((CONDIZIONE) ? RETURN_TRUE : RETURN_FALSE) 
        if($user != $userattuale && $user != '')  
            $setquery = ((isset($setquery)) ? $setquery.",user = '$user'" : "user = '$user'");// IF in forma contratta, sintassi: ((CONDIZIONE) ? RETURN_TRUE : RETURN_FALSE) 
        if($mail != $mailattuale) 
            $setquery = ((isset($setquery)) ? $setquery.",mail = '$mail'" : "mail = '$mail'");// IF in forma contratta, sintassi: ((CONDIZIONE) ? RETURN_TRUE : RETURN_FALSE) 
           
    if(isset($setquery))
        mysql_query("UPDATE utenti SET $setquery WHERE id = {$_SESSION['login']}");
    
    // Inviamo l'email di conferma all'utente
    $message = 'Il tuo profilo &egrave stato modificato con successo, i tuoi dati aggiornati sono: <br /><br />Nome: .$nomeattuale<br />Cognome: .$cognomeattuale<br />Username: .$userattuale<br />Indirizzo email: .$mailattuale.<br /><br />Torna a visitare il tuo profilo al seguente link:<a href="[...]Profilo.php">Profilo Utente</a>, ma ricordati che devi loggarti nuovamente per vedere la pagina aggiornata!';
        // Header dell'email, per mandarla in formato html
        $headers = "From: Semplicemente Poesia <semplicementepoesia.it>\r\n";
        $headers .= "Reply-To: [email protected]\r\n";
        $headers .= "Return-Path: [email protected]\r\n";
        $headers .= "Content-Type: text/html; charset=ISO-8859-1\r\n";
    
        // Invio L'email
        mail($mail, 'Semplicemente Poesia - Modifica Profilo', $message, $headers);
    
    die('Ti &egrave appena stata inviata una email contenente i nuovi dati inseriti, controlla subito la posta elettronica e verifica la correttezza dei dati!<br /> Effettua il <a href="Logout.php">Logout</a>');
    

    }
    }
    ?>[/PHP]

    FORM di modifica
    [HTML]<form class="loginContent" action="" method="post">
    Nome<br />
    <input class="field" name="nome" type="text" id="nome" size="35" value="<?php echo $_SESSION["nome"];?>" onfocus="if(this.value=='nome') this.value='nome';" /><br />
    <br />
    Cognome<br />
    <input class="field" name="cognome" type="text" id="cognome" size="35" value="<?php echo $_SESSION["cognome"];?>" onfocus="if(this.value=='cognome') this.value='cognome';" /><br />
    <br />
    Username<br />
    <input class="field" name="user" type="text" id="user" size="35" value="<?php echo $_SESSION["user"];?>" onfocus="if(this.value=='user') this.value='user';" /><br />
    <br />
    Indirizzo email<br />
    <input class="field" name="mail" type="text" id="mail" size="35" value="<?php echo $_SESSION["mail"];?>" onfocus="if(this.value=='mail') this.value='mail';" /><br />
    <br />
    Inserisci la Password prima di confermare le modifiche<br />
    <input class="field" name="pass" type="password" id="pass" size="35" value="" onfocus="if(this.value=='pass') this.value='pass';" /><br />
    <br />
    <input class="Modifica" name="Modifica" id="Modifica" type="submit" value="" /><br />
    <br />
    </form>[/HTML]


  • User

    Ciao TheDarkita, sembre in gamba!

    Volevo una delucidazione in merito ad un form che riguarda la cancellazione degli utenti da parte dell'amministratore del sito;
    ossia: ho una tabella che visualizza gli utenti del sito e vorrei eliminare degli utenti che si sono registrati clicando su "elimina".
    Ho già fatto un form ma questo non procede all'eliminazione dell'utente.
    ecco il codice:

    [php]<style type="text/css">
    <!--
    .Stile1 {
    color: #FF0000;
    font-weight: bold;
    font-size: 24px;
    }
    -->
    </style>
    <div align="center" class="Stile1">Cancellazione Utenti</div>
    <?php
    // Includo la connessione al database
    require('config.php');
    if($_POST)
    {
    $ids = isset($_POST['id']) ? $_POST['id'] : array();
    elimina_record($ids);
    }
    elseif(isset($_GET['id']))
    {
    elimina_record(array($_GET['id']));
    }
    else
    mostra_lista();
    function mostra_lista()
    {
    // mostro un eventuale messaggio
    if(isset($_GET['msg']))
    echo '<b>'.htmlentities($_GET['msg']).'</b><br /><br />';
    // preparo la query
    $query = "SELECT user FROM utenti";
    // invio la query
    $result = mysql_query($query);
    // controllo l'esito
    if (!$result) {
    die("Errore nella query $query: " . mysql_error());
    }
    echo '
    <form name="form1" method="post" action="">
    <table border="1">
    <tr>
    <th> </th>
    <th>Nome</th>
    <th> </th>
    </tr>';
    while ($row = mysql_fetch_assoc($result))
    {
    $nome = htmlentities($row['user']);
    // preparo il link per la modifica dei dati del record
    $link = $_SERVER['PHP_SELF'].'?id=' . $row['id'];
    echo "<tr>
    <td><input name="id[]" type="checkbox" value="$row[id]" /></td>
    <td>$nome</td>
    <td><a href="$link">elimina</a></td>
    </tr>";
    }
    echo '</table>
    <br />
    <input type="submit" name="Submit" value="Elimina record selezionati" />
    </form>';
    // libero la memoria di PHP occupata dai record estratti con la SELECT
    mysql_free_result($result);
    // chiudo la connessione a MySQL
    mysql_close();
    }
    function elimina_record($ids)
    {
    // verifico che almeno un id sia stato selezionato
    if(count($ids) < 1)
    {
    $messaggio = urlencode("Nessun record selezionato!");
    header('location: '.$_SERVER['PHP_SELF'].'?msg='.$messaggio);
    exit;
    }
    // per precauzione converto gli ID in interi
    $ids = array_map('intval',$ids);
    // creo una lista di ID per la query
    $ids = implode(',',$ids);
    // preparo la query
    $query = "DELETE FROM utenti WHERE id IN ($ids)";
    // invio la query
    $result = mysql_query($query);
    // controllo l'esito
    if (!$result) {
    die("Errore nella query $query: " . mysql_error());
    }
    // conto il numero di record cancellati
    $num_record = mysql_affected_rows();
    // chiudo la connessione a MySQL
    mysql_close();
    $messaggio = urlencode("Numero record cancellati: $num_record");
    header('location: '.$_SERVER['PHP_SELF'].'?msg='.$messaggio);
    }
    ?>[/php]

    Ogni qualvolta clicco su "elimina" il responso è "

    Numero record cancellati: 0

    Il Db comprende user mail pass e accetta (accettazione dell'informativa di registrazione al sito spuntando una casella)

    Se hai un'altra soluzione ben venga.
    Grazie anticipato.
    Ciao


  • ModSenior

    Ciao arkom,

    fai un echo della query.