Problema con update

E' sbagliata, nell'url devi mettere chiave=valore concatenandoli

Codice:
chiave1=valore1&chiave2=valore2&chiave3=valore3


Comunque non applicare questo metodo, memorizza i dati in sessione è meglio, così è bypassabile senza nessun controllo
 
Ciao

Ciao Nefyt,

Mi puoi spiegare come fare ???? Perchè non lo so proprio fare. Un esempio con un campo data e poi il resto proseguo da solo e te lo posto semmai per verifica. Grazie.
 
Ciao Nefyt,

Mi puoi spiegare come fare ???? Perchè non lo so proprio fare. Un esempio con un campo data e poi il resto proseguo da solo e te lo posto semmai per verifica. Grazie.
Quando ricavi le prime variabili setta delle sessioni
PHP:
//inizializzi le sessioni
session_start();

//e utilizzi $_SESSION per gestire la sessione, che poi potrai riutilizzare in un altra pagina
$_SESSION['campo'] = $valore;

E poi riusale dopo, esempio
PHP:
session_start();

if(isset($_SESSION['campo'])) echo $_SESSION['campo'];
 
Ciao

Ciao Nefyt,

Allora ho eseguito il tuo esempio e l'ho adattao al mio ma sicuramente ho fatto na stronzata. Spero che me la puoi correggere. Purtroppo solo adesso mi sono messo al lavorare, ma se dopo mi rispondi e mdici se è corretta o sbagliata, io ti risponderò dal mio tablet. Ho fatto in questa maniera qua se non ho capito male:


area riservata (ossia paginaris.php):

PHP:
<br><br> <center>
   <!--$mail->MsgHTML('Grazie di esserti iscritto.  <a href="http://utenti/iscrizionebymarco92jq/attivautente.php?email=' . $email-->
        <input type='button' onclick='getpage("<?=$page-1?>")' value='Indietro' ?> 
        <input type='button' onclick='getpage("<?=$page+1?>")' value='Avanti' ?>
<!--<input type="button" onClick="window.location.href='aggiornaprofilo.php';" style='padding:10px' value="Logout" />        -->
    
       <!-- <input type="button" onClick="location.href='http://utenti/iscrizionebymarco92jq/aggiornaprofilo.php?email=' . $email" style='padding:10px' value="Aggiorna Profilo" />-->

<?php

//inizializzi le sessioni
session_start();      //Modificato sempre se non ho capito male

//e utilizzi $_SESSION per gestire la sessione, che poi potrai riutilizzare in un altra pagina
$_SESSION['datadinascita'] = $datadinascita;  
$_SESSION['citta'] = $citta;  
$_SESSION['provincia'] = $provincia;  
?>
        
        <input type="button" onClick="window.location.href='logout.php';" style='padding:10px' value="Logout" />

    
    </center>
    <?php
    break;
    case 3:
    ?>
        <input type='button' onclick='getpage("<?=$page-1?>")' value='Indietro' ?> 
    <?php
    break;
}
?>
<script> 
$('input[id=regolamento]').click(function(){
    var input = $('input[value="Avanti"]');
    if($(this).is(':checked')) input.removeAttr('disabled');
    else input.attr('disabled','disabled');
});
function getpage(page)
{
    location.href = '?page='+page;
}
</script>


aggiornaprofilo.php (modificato sempre se non ho capito male):

PHP:
<?php
require_once("connetti.php"); 
//inizializzi le sessioni
session_start();

if(isset($_SESSION['datadinascita'])) echo $_SESSION['datadinascita']; 
if(isset($_SESSION['citta'])) echo $_SESSION['citta']; 
if(isset($_SESSION['provincia'])) echo $_SESSION['provincia']; 

$datadinascita = mysql_real_escape_string(strtolower(trim ($_GET['datadinascita'])));   
$citta = mysql_real_escape_string(strtolower(trim ($_GET['citta']))); 
$provincia = mysql_real_escape_string(strtolower(trim ($_GET['provincia']))); 
$email = mysql_real_escape_string(strtolower(trim ($_GET['email']))); 
  
$qry = "UPDATE utenti SET datadinascita='$datadinascita', citta='$citta', provincia='$provincia' WHERE email='$email'"; 

//qry = "UPDATE utenti SET nome='" . $nome_m . "', cognome='" . $cognome_m . "', 
                               // indirizzo='" . $indirizzo_m . "', mail='" . $mail_m . "', pwd='" . $pwd_m . "' 
                           // WHERE user='" . $_SESSION['user'] . "'";  

if (mysql_query($qry)) { 
    echo "Aggiornamento effettuato"; 
     
} else { 
    echo "Errore: nell'aggiornamento ".mysql_error(); 
}  
?>

Ma sicuramente ho fatto na grossa stronzatao lo sento. L'unica cosa, se fosse giusto, è come gestire il tasti "aggiorna profilo". Ti prego,s e ho sbagliato correggimi sennò non ne esco fuori. Grazie.
 
Scusami, ma tu hai fatto mente locale di cosa devi fare o no? Le sessioni di prima erano un esempio, in questo caso ti servivano per gestire i campi del form di alcune pagine precedenti, quindi memorizzavi quei dati e al posto di passare quelli con $_GET passavi le sessioni se esistevano oppure davi un errore, o sennò unisci tutto il form e fai prima
 
ciao

Immaginavo che non avevo capito na sega. Allora, qu se sei disponibile, mi potresti fare un esempo più chiaaro con un campo solo ???? Da solo non riesco a farcela a capire scusami. Ma come dicevi tu, sempre con le sessioni per favore. Debbbo capire sennò faccio un casino bestiale e non conclufo e imparo niente. Grazie..
 
Immaginavo che non avevo capito na sega. Allora, qu se sei disponibile, mi potresti fare un esempo più chiaaro con un campo solo ???? Da solo non riesco a farcela a capire scusami. Ma come dicevi tu, sempre con le sessioni per favore. Debbbo capire sennò faccio un casino bestiale e non conclufo e imparo niente. Grazie..

PHP:
session_start();
if(isset($_POST['campo_del_form'])) $_SESSION['campo_del_form_da_recuperare_dopo'] = $_POST['campo_del_form'];

Questo è un esempio se devi gestire dei campi che vengono inviati in un form delle pagine precedenti, cosi più avanti ti è sufficiente controllare se la sessione esiste e recuperarla
 
Ciao

Ciao Perdonami di nuovo,

Ovviamente questo esempio che mi hai fatto su quale parte del programma lo dovrei mettere ??? Sull'area riservata oppure sulla pagina chiamata aggiornaprofilo.php ??? Presumo sull'area riservata. E un ultima cosa, come faccio a recuperare la sessione ??? Scusatemi ma a capire c'è ne impiego di tempo.... Come se dice a Roma, so un po' de coccio.
 
Ciao

Ho provato con il tuo esempio, ma non va o non ho capito bene io:

PHP:
<?php
require_once("connetti.php"); 
//inizializzi le sessioni
session_start();
if(isset($_POST['citta']))
    $_SESSION['citta'] = $_POST['citta'];  



$datadinascita = mysql_real_escape_string(strtolower(trim ($_GET['datadinascita'])));   
$citta = mysql_real_escape_string(strtolower(trim ($_GET['citta']))); 
$provincia = mysql_real_escape_string(strtolower(trim ($_GET['provincia']))); 
$email = mysql_real_escape_string(strtolower(trim ($_GET['email']))); 
  
$qry = "UPDATE utenti SET datadinascita='$datadinascita', citta='$citta', provincia='$provincia' WHERE email='$email'"; 

if (mysql_query($qry)) { 
    echo "Aggiornamento effettuato"; 
     
} else { 
    echo "Errore: nell'aggiornamento ".mysql_error(); 
}  
?>

Questa pagina area riservata è rimasta tale e quale:

PHP:
<br><br> <center>
   <!--$mail->MsgHTML('Grazie di esserti iscritto.  <a href="http://utenti/iscrizionebymarco92jq/attivautente.php?email=' . $email-->
        <input type='button' onclick='getpage("<?=$page-1?>")' value='Indietro' ?> 
        <input type='button' onclick='getpage("<?=$page+1?>")' value='Avanti' ?>
<input type="button" onClick="window.location.href='aggiornaprofilo.php';" style='padding:10px' value="Aggiorna Profilo" />

Allora se è giusto come ho capito io, non mi aggiorna na sega ugualmente (non so se il campo datadinascita = date) va trattao in un'altra maniera. Ma so sicuramente che non è gisto, se per favore fai le modifiche commenandone magari riesco a capire meglio. Grazie.
 
Riassumiamo la situazione intanto

Tu hai 2 form, uno nella pagina precedente e uno dopo no?

Allora dopo il primo form setti le sessioni

es.
PHP:
if(isset($_POST['citta'])) 
    $_SESSION['citta'] = $_POST['citta'];

E dopo alla fine del secondo form tu passi le sessioni

es.
PHP:
//anche qui ricordati di controllarle con isset
$datadinascita = mysql_real_escape_string(strtolower(trim ($_SESSION['datadinascita'])));

Forse ho capito male io di cosa intendi fare?
 
Ciao

Riassumiamo la situazione intanto

Tu hai 2 form, uno nella pagina precedente e uno dopo no?

Allora dopo il primo form setti le sessioni

es.
PHP:
if(isset($_POST['citta'])) 
    $_SESSION['citta'] = $_POST['citta'];

E dopo alla fine del secondo form tu passi le sessioni

es.
PHP:
//anche qui ricordati di controllarle con isset
$datadinascita = mysql_real_escape_string(strtolower(trim ($_SESSION['datadinascita'])));

Forse ho capito male io di cosa intendi fare?

Allora, Il concetto diciamo che è centrato. Nel senso che tu faresti nella stessa pagina l'aggiornamento della tabella se non ho capito male ???? Conil metodo update, perchè poi una volta aggiornato il profilo, non ci si deve mettere più le mani se non per modficare lo stato civile (single, separato o divorziato ecc. ecc. o per il lavoro o per l'abitazione o ancora pe rla modifca della password ed email). Quindi in teoria si si può fare in un unica pagina e poi farla sparire e iniziare a chattare o cercare amici nel db ecc.ecc. Io avevo diviso le cose in due form forse per comodità ma alla fine mi sa che mi sono complicato la vita e basta. Spero di essermi spiegato meglio.....
 
Beh si, prova a farlo in unico form forse ti torna meglio, ricordati sempre i controlli per verificare che le variabili inviate siano compilate
 
Ciao

Beh si, prova a farlo in unico form forse ti torna meglio, ricordati sempre i controlli per verificare che le variabili inviate siano compilate


Il controllo sempre in qyuesta maniera giusto ????:

PHP:
if(isset($_POST['citta'])) 
    $_SESSION['citta'] = $_POST['citta']; 

ecc. ecc.


unico dubbio, la data viene trattata come un campo varchar o come un campo date visto che ho inserito datadinascita = date e nel caso fosse trattata date, la verifica e l'aggiornamento sempre come un campo normale ????
 
Il controllo sempre in qyuesta maniera giusto ????:

PHP:
if(isset($_POST['citta'])) 
    $_SESSION['citta'] = $_POST['citta']; 

ecc. ecc.


unico dubbio, la data viene trattata come un campo varchar o come un campo date visto che ho inserito datadinascita = date e nel caso fosse trattata date, la verifica e l'aggiornamento sempre come un campo normale ????
Se è un unico form che te ne fai delle sessioni? Semmai applica l'isset della variabile del form per accertarti che sia stata mandata, oppure ancora meglio con !empty() per controllare che non sia vuota, sennò nella query cosa aggiorni

Per il dubbio: dipende da com'è la data nel db e com'è quella spedita
 
Ultima modifica:
Ciao

Allora,

Ho fatto come da te suggerito, ma non successe niente. ti posto il codice che sicuramente troverai un sacco di errori:

PHP:
<br><br> <center>
   <!--$mail->MsgHTML('Grazie di esserti iscritto.  <a href="http://utenti/iscrizionebymarco92jq/attivautente.php?email=' . $email-->
        <input type='button' onclick='getpage("<?=$page-1?>")' value='Indietro' ?> 
        <input type='button' onclick='getpage("<?=$page+1?>")' value='Avanti' ?>
<input type="button" onClick='getpage("<?=$page+1?>")' style='padding:10px' value="Aggiorna Profilo" />
    
       

<?php

case 2:
   if(isset($_POST['datadinascita'])) 

       //anche qui ricordati di controllarle con isset

   $datadinascita = mysql_real_escape_string(strtolower(trim($_SESSION['datadinascita'])));  //Qua mi da cartellino giallo non so il perchè

    if(isset($_POST['citta'])) 
    $_SESSION['citta'] = $_POST['citta'];  
    if(isset($_POST['provincia'])) 
    $_SESSION['provincia'] = $_POST['provincia'];  

     $query = 'UPDATE utenti SET datadinascita= '$datadinascita', citta='$citta',  provincia='$provincia' WHERE id='$id'";  
    ?>

:gun::gun::gun::gun:
 
Ciao

Se è un unico form che te ne fai delle sessioni? Semmai applica l'isset della variabile del form per accertarti che sia stata mandata, oppure ancora meglio con !empty() per controllare che non sia vuota, sennò nella query cosa aggiorni

Per il dubbio: dipende da com'è la data nel db e com'è quella spedita

La data è stile americano nel db, invece, nel form è stile italiano ossia gg/mm/aaaa Comunuqe anche con un unico campo non mi aggiornana sega, non capisco il perchè :(
 
Allora,

Ho fatto come da te suggerito, ma non successe niente. ti posto il codice che sicuramente troverai un sacco di errori:

PHP:
<br><br> <center>
   <!--$mail->MsgHTML('Grazie di esserti iscritto.  <a href="http://utenti/iscrizionebymarco92jq/attivautente.php?email=' . $email-->
        <input type='button' onclick='getpage("<?=$page-1?>")' value='Indietro' ?> 
        <input type='button' onclick='getpage("<?=$page+1?>")' value='Avanti' ?>
<input type="button" onClick='getpage("<?=$page+1?>")' style='padding:10px' value="Aggiorna Profilo" />
    
       

<?php

case 2:
   if(isset($_POST['datadinascita'])) 

       //anche qui ricordati di controllarle con isset

   $datadinascita = mysql_real_escape_string(strtolower(trim($_SESSION['datadinascita'])));  //Qua mi da cartellino giallo non so il perchè

    if(isset($_POST['citta'])) 
    $_SESSION['citta'] = $_POST['citta'];  
    if(isset($_POST['provincia'])) 
    $_SESSION['provincia'] = $_POST['provincia'];  

     $query = 'UPDATE utenti SET datadinascita= '$datadinascita', citta='$citta',  provincia='$provincia' WHERE id='$id'";  
    ?>

:gun::gun::gun::gun:
Scusami ma che senso ha quella parte di codice? Vediamo di sistemarla, allora se le variabili $_POST arrivano correttamente non dovresti avere problemi, inoltre sei dentro ad uno switch quindi deve entrare in questo case
PHP:
    foreach($_POST as $key => $value) $_POST[$key] = mysql_real_escape_string(strtolower(trim($value)));

     extract($_POST,EXTR_SKIP); // qui preleviamo chiavi e valori dell'array e le facciamo diventare variabili se hanno gli stessi nomi ti conviene
      
         //$id dov'è? inoltre dove esegui la query?
   if(isset($datadinascita,$citta,$provincia))
     $query = 'UPDATE utenti SET datadinascita= '$datadinascita', citta='$citta',  provincia='$provincia' WHERE id='$id'";

edit:

La data è stile americano nel db, invece, nel form è stile italiano ossia gg/mm/aaaa Comunuqe anche con un unico campo non mi aggiornana sega, non capisco il perchè :(
Ti basta fare un explode() della data e invertire i campi (da php)
 
Ultima modifica:
Ciao

Ciao,

Niente non fa nemmeno così :(

PHP:
<br><br> <center>
   <!--$mail->MsgHTML('Grazie di esserti iscritto.  <a href="http://utenti/iscrizionebymarco92jq/attivautente.php?email=' . $email-->
        <input type='button' onclick='getpage("<?=$page-1?>")' value='Indietro' ?> 
        <input type='button' onclick='getpage("<?=$page+1?>")' value='Avanti' ?>
<input type="button" onClick='getpage("<?=$page+1?>")' style='padding:10px' value="Aggiorna Profilo" />
    
       

<?php

case 2:
   foreach($_POST as $key => $value) $_POST[$key] = mysql_real_escape_string(strtolower(trim($value)));

     extract($_POST,EXTR_SKIP); // qui preleviamo chiavi e valori dell'array e le facciamo diventare variabili se hanno gli stessi nomi ti conviene
      
         //$id dov'è? inoltre dove esegui la query?
   if(isset($datadinascita,$citta,$provincia))
     $query = "UPDATE utenti SET datadinascita= '$datadinascita', citta='$citta',  provincia='$provincia' WHERE id='$id'"; 
         ?>

Se è scritta da te sicuramente sarà giusta.......
 

Discussioni simili