ciao a tutti
ho creato un piccolo pannello di controllo per gli utenti
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 controlloCodice 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();
?>
e qui arriva il problema praticamente il codice
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;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!");
}
}
ma ancora peggiore non modifica i dati sul db.
potete aiutarmi a trovare gli errori?
grazie mille

LinkBack URL
About LinkBacks

