ciao a tutti
ho creato un piccolo pannello di controllo per gli utenti
Codice PHP:
<?php
include("/membri/webeasy/inc/layout.php");
top("Pannello di controllo");
$id=$_SESSION['id'];
if($_SESSION['log'] == "1") {
$array=array('user', 'pass', 'email', 'nome', 'cognome', 'telefono', 'citta', 'indirizzo');
foreach($array as $valore) {
if(isset($_POST[$valore])) {
Db($db);
$$valore=$_POST[$valore];
if(mysql_query("UPDATE user SET telefono = $$valore WHERE id = $id", $db)) {
$_SESSION[$valore]=$$valore;
} else {
errore("1","Errore!");
}
}
};
foreach($array as $valore) {?>
<form name="<?=$valore;?>" method="post">
<input type="hidden" name="cambia" value="<?=$valore;?>" />
</form>
<? };
$cambia=$_POST['cambia'];?>
<h3>Benvenuto nel tuo pannello di controllo!</h3>
<table width="100%" border="0">
<tr>
<td colspan="3" align="center"><strong>Dati login!</strong></td>
</tr>
<tr height="5px" bgcolor="#00FF00">
<td width="50%">Username:</td>
<td width="50%"><?=$_SESSION['user'];?></td>
<td width="30px"><a href="#" onclick="cambia('email')">Cambia</a></td>
</tr>
<tr>
<td>Password:</td>
<td><em>*********</em></td>
<td><a href="#" onclick="cambia('pass')">Cambia</a></td>
</tr>
<tr bgcolor="#00FF00">
<td>email:</td>
<td><?=$_SESSION['email'];?></td>
<td><a href="#" onclick="cambia('email')">Cambia</a></td>
</tr>
<tr>
<td colspan="3" align="center"><strong>Dati personali!</strong></td>
</tr>
<tr bgcolor="#00FF00">
<td>Nome:</td>
<td><? if($cambia == 'nome'){?><form name="mod_nome" method="post" class="input"><input name="nome" value="<?=$_SESSION['nome'];?>" class="form"></form><? } else { echo $_SESSION['nome'];}?></td>
<td><? if($cambia == 'nome') {?><a href="javascript:document.mod_nome.submit();">invia</a><? } else {?><a href="javascript:document.nome.submit();">Cambia</a><? }?></td>
</tr>
<tr>
<td>Cognome:</td>
<td><? if($cambia == 'cognome'){?><form name="mod_cognome" method="post" class="input"><input name="cognome" value="<?=$_SESSION['cognome'];?>" class="form"></form><? } else { echo $_SESSION['cognome'];}?></td>
<td><? if($cambia == 'cognome') {?><a href="javascript:document.mod_cognome.submit();">invia</a><? } else {?><a href="javascript:document.cognome.submit();">Cambia</a><? }?></td>
</tr>
<tr bgcolor="#00FF00">
<td>Telefono</td>
<td><? if($cambia == 'telefono'){?><form name="mod_telefono" method="post" class="input"><input name="telefono" value="<?=$_SESSION['telefono'];?>" class="form"></form><? } else { echo $_SESSION['telefono'];}?></td>
<td><? if($cambia == 'telefono') {?><a href="javascript:document.mod_telefono.submit();">invia</a><? } else {?><a href="javascript:document.telefono.submit();">Cambia</a><? }?></td>
</tr>
<tr>
<td>Citta:</td>
<td><? if($cambia == 'citta'){?><form name="mod_citta" method="post" class="input"><input name="citta" value="<?=$_SESSION['citta'];?>" class="form"></form><? } else { echo $_SESSION['citta'];}?></td>
<td><? if($cambia == 'citta') {?><a href="javascript:document.mod_citta.submit();">invia</a><? } else {?><a href="javascript:document.citta.submit();">Cambia</a><? }?></td>
</tr>
<tr bgcolor="#00FF00">
<td>Indirizzo:</td>
<td><? if($cambia == 'indirizzo'){?><form name="mod_indirizzo" method="post"1 class="input"><input name="indirizzo" value="<?=$_SESSION['indirizzo'];?>" class="form"></form><? } else { echo $_SESSION['indirizzo'];}?></td>
<td><? if($cambia == 'indirizzo') {?><a href="javascript:document.mod_indirizzo.submit();">invia</a><? } else {?><a href="javascript:document.indirizzo.submit();">Cambia</a><? }?></td>
</tr>
</table>
<?
} else {
errore("0","Devi prima fare il login!");
}
lower();
?>
praticamente visualizza una pagina con i dati dell'utente con affianco un tasto cambia che submista un form a che se submistato cambia il dato con un form b, dove modificare il dato poi quando viene submistato viene eseguita una query che modifica il dato sul db ma a questo punto dovrebbe settare una sessione con il nuovo dato e di nuovo visualizzare il pannello di controllo
e qui arriva il problema praticamente il codice
Codice PHP:
if(isset($_POST[$valore])) {
Db($db);
$$valore=$_POST[$valore];
if(mysql_query("UPDATE user SET telefono = $$valore WHERE id = $id", $db)) {
$_SESSION[$valore]=$$valore;
} else {
errore("1","Errore!");
}
}
mi setta la sessione ma mi restituisce anche errore. una cosa impossibile visto che se viene settata la sessione non puo essere visualizato il codice e vice versa;
ma ancora peggiore non modifica i dati sul db.
potete aiutarmi a trovare gli errori?
grazie mille