Salve a tutti e grazie per l'aiuto che fin ora mi state fornendo... Siete gentilissimi...
Ho un problema con l'aggiornamento di alcuni campi del database tramite script php...
Questo è il codice :
Vi spiego come funziona... Io ho una pagina in cui inserisco l'user, poi arrivo alla pagina di cui codice sopra... Controlla l'esistenza, si connette al DB, stampa a video i dati, me li fa modificare (fin qui tutto ok) ma quando vado a modificare mi da l'ok ma non modifica nulla... Cosa sbalio???
:dipser::dipser::dipser:
Ho un problema con l'aggiornamento di alcuni campi del database tramite script php...
Questo è il codice :
PHP:
<?php
//TUTTO QUESTO SCRIPT E' SU UN'UNICA PAGINA
//creo le sessioni, da inserire nella prima riga in tutte le pagine che si utilizzano
if(!isset($_SESSION)){session_start ();}
include('connect.php');
//leggo l'input proveniente dal form di questa pagina
//questa parte sino al commento ***FINE MODIFICA*** si attiva alla pressione del submit del form modifica
if(isset($_POST['modifica']) && $_POST['modifica'] =="modifica"){//leggo submit da pagina modifica
//leggo i vari $_POST provenienti dal form modifica
//con htmlspecial... trasformo eventuali tag html malevoli
//con trim tolgo gli eventuali spazi ini e finali
$nome_m=trim(htmlspecialchars($_POST['nome_m']));
$cognome_m=trim(htmlspecialchars($_POST['cognome_m']));
$indirizzo_m=trim(htmlspecialchars($_POST['indirizzo_m']));
$mail_m=trim(htmlspecialchars($_POST['mail_m']));
$pwd_m=trim(htmlspecialchars($_POST['pwd_m']));
//creo la qeurystringa
//uso $_SESSION['codice'] perche devo usare il codice precedente
$query_str="UPDATE utenti SET nome='.$nome_m.', cognome='.$cognome_m.',
indirizzo='.$indirizzo_m.', mail='.$mail_m.', pwd='.$pwd_m.' WHERE user='".$_SESSION['user']."'";
//uppo e verifico
if(mysql_query($query_str)){//uppa OK
echo "modifica eseguita";
}else{//uppa KO
echo "verificato errore riprova più tardi";
}//fine if else uppa
echo "<meta http-equiv='Refresh' content='3; URL=form_codice.php'>";
if(@mysql_query($query_str)) {
echo '<p> Modifica utente avvenuta con successo!</p>';
} else {
exit('<p> Errore aggiornamento : ' . mysql_error() . '</p>');
}
}//fine if post modifica
//***FINE MODIFICA***
//questa parte si attiva quando dalla pagina precedente ho dato il submit
//termina al commento ***FINE FORM MODIFICA***
if(isset($_POST['invia'])){//leggo il submit da pagina form_codice.php
unset($_POST['invia']);
//leggo i post trattandoli come prima
$user=trim(htmlspecialchars($_POST['user']));//leggo post codice
//verifico i valori
if($user ==""){
//sono entrambi vuoti torno a form_codice.php
echo "non inserito codice e barcode";
echo "<meta http-equiv='Refresh' content='3; URL=edit_user.php'>";
}else{
//almeno uno dei due o entrambi sono stati riempiti
/*dato che almeno uno dei due campi non è vuoto preparo la stringa che ho chiamato $were
per ricordare che deve essere posta dove c'è la clausola WHERE ... della querystringa
*/
//a questo punto interrogo db/tabella
$query=mysql_query($query_str);
//verifico l'esistenza del record che soddisfi alle condizioni della clausola where
$esistono=mysql_num_rows($query);
if($esistono==0){// se 0 non esiste l'articolo
//do messaggio e torno ad inserimento codice
echo "utente inesistente";
echo "<meta http-equiv='Refresh' content='3; URL=edit_user.php'>";
}else{
//l'articolo esiste e leggo i suoi campi
$riga=mysql_fetch_array($query);
$nome=$riga['nome'];
//metto in sessione il codice perche se l'utente lo modifica quando uppo devo trovare il vecchio record
$_SESSION['user'];
//leggo anche gli altri campi del record
$cognome=$riga['cognome'];
$indirizzo=$riga['indirizzo'];
$mail=$riga['mail'];
$pwd=$riga['pwd'];
}//fine if-else esistono
}//fine if-else verifica vuoti
//esco da php per fare il form di modifica
?>
<html>
<head><title>Modifica User</title>
<style type="text/css">
body { background-image: url(sfondo.jpg);
background-repeat: repeat-x;
font: Eras Medium ITC;
}
</style>
<style type="text/css">
#main {
width:672px;
height:300px;
position:absolute;
top:30%;
left:50%;
margin:-150px 0 0 -336px;
}
</style>
</head>
<body bgcolor="#f7b76b">
<div id="main">
<form action="<?php echo htmlspecialchars($_SERVER['PHP_SELF']);?>" method="post" name="modifica">
<table cellspacing=5 cellpadding=5 align="center">
<tr>
<td>
Modifica user <?php echo $user;?>
</td>
</tr>
<tr>
<td>
Nome
</td>
<td>
<input name="nome_m" type="text" id="nome_m" value="<?php echo $nome;?>">
</td>
</tr>
<tr>
<td>
Cognome
</td>
<td>
<input name="cognome_m" type="text" id="cognome_m" value="<?php echo $cognome;?>">
</td>
</tr>
<tr>
<td>
Indirizzo
</td>
<td>
<input name="indirizzo_m" type="text" id="indirizzo_m" value="<?php echo $indirizzo;?>">
</td>
</tr>
<tr>
<td>
E-Mail
</td>
<td>
<input name="mail_m" type="text" id="mail_m" value="<?php echo $mail;?>">
</td>
</tr>
<tr>
<td>
Password
</td>
<td>
<input name="pwd_m" type="text" id="pwd_m" value="<?php echo $pwd;?>">
</td>
</tr>
<tr>
<td colspan="2">
<input name="modifica" type="submit" id="modifica" value="modifica">
</td>
</tr>
</table>
</form>
</div>
</body>
</html>
<?php
}//fine if leggo submit
// ***FINE FORM MODIFICA***
?>
Vi spiego come funziona... Io ho una pagina in cui inserisco l'user, poi arrivo alla pagina di cui codice sopra... Controlla l'esistenza, si connette al DB, stampa a video i dati, me li fa modificare (fin qui tutto ok) ma quando vado a modificare mi da l'ok ma non modifica nulla... Cosa sbalio???
:dipser::dipser::dipser: