• 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.


  • User

    Ciao TheDarkita,
    come dovrei fare un "echo" sulla query?

    Di "echo" ne ho una sfilza :giggle:

    Se mi potresti fare la correzione te ne sarei molto grato

    Grazie.


  • ModSenior

    Da:
    [php]$query = "DELETE FROM utenti WHERE id IN ($ids)";[/php]
    A:
    [php]
    $query = "DELETE FROM utenti WHERE id IN ($ids)";
    echo $query;
    [/php]


  • User

    Ciao TheDarkita,
    purtroppo la "echo" inserita nella query non cambia niente

    [PHP]// preparo la query
    $query = "DELETE FROM utenti WHERE id IN ($ids)";
    echo $query; [/PHP]

    Non è che hai un' altra soluzione che mi visualizza i tre campi:
    id, user e mail e che mi permetta di cancellare un'utente?

    Grazie


  • ModSenior

    L'echo deve restituirti in output una stringa con la query eseguita dovresti incollarla qua per vedere se la query generata è corretta.


  • User

    Ciao Thedarkita,
    ti rispedisco il codice modificato come mi ai consigliato

    [PHP]<?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)";
    echo $query;
    // 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]

    Ahimè non so dove mettere le mani adesso!

    Un "Hekp" e doveroso.

    Grazie


  • User

    Scusami Thedarkita, sto scrivendo un'italiano da sc...fo:eheh:

    "hai" e "Help"


  • ModSenior

    Commenta la funzione header in modo da eliminare il redirect ed incolla qua l'output restituito dallo script da te postato.


  • User

    Penso che tu ti riferisca a una di queste stringhe:

    [php]$messaggio = urlencode("Nessun record selezionato!");
    header('location: '.$_SERVER['PHP_SELF'].'?msg='.$messaggio);
    exit;[/php]

    e

    [php]$messaggio = urlencode("Numero record cancellati: $num_record");
    header('location: '.$_SERVER['PHP_SELF'].'?msg='.$messaggio);[/php]

    Nella prima stringa sembra non che ci sono stati messaggi di output,

    invece nella seconda al momento di cliccare su "elimina" dalla funzione:

    [php]<td><input name="id[]" type="checkbox" value="$row[id]" /></td>
    <td>$nome</td>
    <td><a href="$link">elimina</a></td>[/php]

    e anche da:

    [php]<input type="submit" name="Submit" value="Elimina record selezionati" />
    [/php]

    del form, la risposta è uguale:

    Numero record cancellati: 0

    Purtroppo navigo nel buio.


  • User

    Ciao TheDarkita,
    forse sei molto impegnato.
    Stavo aspettando una tua soluzione per la cancellazione degli utenti da parte dell' Admin.

    Grazie.


  • User

    Ciao TheDarkita,

    posto per tutti gli utenti, la risoluzione per la cancellazione degli utenti registrati da parte dell' amministratore. Funzionante al 100% :fumato:
    [PHP]<?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 id,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 Utente</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]

    Spero che a qualcuno servirà.
    Ciao.