Visualizzazione risultati 1 fino 8 di 8

Discussione: [PHP/MySQL]Problema in script che modifica dati in db

  1. #1
    Guest

    Predefinito [PHP/MySQL]Problema in script che modifica dati in db

    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

  2. #2
    Guest

    Predefinito

    La prima cosa che mi è salta all'occhio, perchè usi il doppio $$ nella variabile?

  3. #3
    Guest

    Predefinito

    Citazione Originalmente inviato da biccheddu Visualizza messaggio
    La prima cosa che mi è salta all'occhio, perchè usi il doppio $$ nella variabile?
    grazie
    cmq perche se guardi faccio un foreach che imposta il nome della variabile in teoria è inutile adesso che ci penso.
    adesso provo a modificarlo

  4. #4
    Guest

    Predefinito

    #edit. Perchè setti sempre 'telefono'?
    Se ho capito il codice dovrebbe essere così.
    Codice PHP:
    $array=array('user', 'pass', 'email', 'nome', 'cognome', 'telefono', 'citta', 'indirizzo');
    foreach(
    $array as $valore) {
    if(!empty(
    $_POST[$valore])) {
    Db($db);
    if(
    mysql_query("UPDATE user SET ".$valore." = ".mysql_real_escape_string($_POST[$valore])." WHERE id = $id", $db)) {
    $_SESSION[$valore]=$_POST[$valore];
    } else {
    errore("1","Errore!");
    }
    }
    }
    Ultima modifica di stoner : 22-03-2009 alle ore 18.37.28

  5. #5
    Guest

    Predefinito

    grazie stoner quello era un errore che mi ero fatto scappare ma adesso continua a restituirmi errore ma adesso non imposta piu la sessione
    percaso vedete altri errori che ho fatto nel codice
    grazie mille

  6. #6
    Guest

    Predefinito

    Non capisco perchè apri 100 volte il tag <form>. Basta una volta sola, in cima, e fuori dal loop.

  7. #7
    Guest

    Predefinito

    Citazione Originalmente inviato da stoner Visualizza messaggio
    Non capisco perchè apri 100 volte il tag <form>. Basta una volta sola, in cima, e fuori dal loop.
    perche sono tutti form diversi, se lo apro solo una volta dopo vengo submistati tutti poi mi combina un casino

  8. #8
    Guest

    Predefinito

    Ok.
    Qual'è l'errore che ricevi?

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •