- Home
- Categorie
- Coding e Sistemistica
- PHP
- [Tutorial] Area privata
-
Non è necessaria.
-
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]
-
Hai messo:
[php]$nome != $nome[/php]
Un tantinello impossibile che si verifichi....
-
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?
-
Ciao Bivio,
il metodo è sicuro.
-
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]
-
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...
-
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 è 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 è 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]
-
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
-
Ciao arkom,
fai un echo della query.
-
Ciao TheDarkita,
come dovrei fare un "echo" sulla query?Di "echo" ne ho una sfilza
Se mi potresti fare la correzione te ne sarei molto grato
Grazie.
-
Da:
[php]$query = "DELETE FROM utenti WHERE id IN ($ids)";[/php]
A:
[php]
$query = "DELETE FROM utenti WHERE id IN ($ids)";
echo $query;
[/php]
-
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
-
L'echo deve restituirti in output una stringa con la query eseguita dovresti incollarla qua per vedere se la query generata è corretta.
-
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
-
Scusami Thedarkita, sto scrivendo un'italiano da sc...fo
"hai" e "Help"
-
Commenta la funzione header in modo da eliminare il redirect ed incolla qua l'output restituito dallo script da te postato.
-
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.
-
Ciao TheDarkita,
forse sei molto impegnato.
Stavo aspettando una tua soluzione per la cancellazione degli utenti da parte dell' Admin.Grazie.
-
Ciao TheDarkita,
posto per tutti gli utenti, la risoluzione per la cancellazione degli utenti registrati da parte dell' amministratore. Funzionante al 100%
[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.