Problema con update

Nefyt

Utente Attivo
17 Apr 2012
1.102
0
0
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
 

paperinik4

Utente Attivo
29 Mag 2011
1.811
0
36
Roma
www.ricetteagogo.it
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.
 

Nefyt

Utente Attivo
17 Apr 2012
1.102
0
0
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'];
 

paperinik4

Utente Attivo
29 Mag 2011
1.811
0
36
Roma
www.ricetteagogo.it
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.
 

Nefyt

Utente Attivo
17 Apr 2012
1.102
0
0
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
 

paperinik4

Utente Attivo
29 Mag 2011
1.811
0
36
Roma
www.ricetteagogo.it
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..
 

Nefyt

Utente Attivo
17 Apr 2012
1.102
0
0
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
 

paperinik4

Utente Attivo
29 Mag 2011
1.811
0
36
Roma
www.ricetteagogo.it
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.
 

paperinik4

Utente Attivo
29 Mag 2011
1.811
0
36
Roma
www.ricetteagogo.it
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.
 

Nefyt

Utente Attivo
17 Apr 2012
1.102
0
0
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?
 

paperinik4

Utente Attivo
29 Mag 2011
1.811
0
36
Roma
www.ricetteagogo.it
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.....
 

Nefyt

Utente Attivo
17 Apr 2012
1.102
0
0
Beh si, prova a farlo in unico form forse ti torna meglio, ricordati sempre i controlli per verificare che le variabili inviate siano compilate
 

paperinik4

Utente Attivo
29 Mag 2011
1.811
0
36
Roma
www.ricetteagogo.it
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 ????
 

Nefyt

Utente Attivo
17 Apr 2012
1.102
0
0
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:

paperinik4

Utente Attivo
29 Mag 2011
1.811
0
36
Roma
www.ricetteagogo.it
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:
 

paperinik4

Utente Attivo
29 Mag 2011
1.811
0
36
Roma
www.ricetteagogo.it
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è :(
 

Nefyt

Utente Attivo
17 Apr 2012
1.102
0
0
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:

paperinik4

Utente Attivo
29 Mag 2011
1.811
0
36
Roma
www.ricetteagogo.it
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
Autore Titolo Forum Risposte Data
C Problema con update di un file PHP 6
K Problema con update di un database in un ciclo Classic ASP 1
C Problema con Update di una tabella di un db PHP 3
A Problema con UPDATE table SET username = $_SESSION["username"] PHP 22
blips Problema con Update multiplo PHP 1
P problema con l'update della data PHP 30
R Problema con UPDATE su DB mysql MySQL 1
G problema con insert e update PHP 2
jan267 Problema con UPDATE Classic ASP 3
O problema con dvr dahua xvr5116 IP Cam e Videosorveglianza 0
G Problema con Xampp Web Server 1
andrea barletta Problema con miniature comandi Photoshop 0
I problema con alice Posta Elettronica 0
N Problema con position absolute e overflow HTML e CSS 4
L Problema con inner join PHP 11
K [php] Problema con inner join PHP 4
K [PHP] Problema con variabili concatenate. PHP 1
O problema con query PHP 4
I problema con 2 account Posta Elettronica 1
L problema collegamento file css con html HTML e CSS 1
E Problema accesso a file con app sviluppata con MIT APP INVENTOR 2 Sviluppo app per Android 0
M Problema con Try Catch PHP 0
Sergio Unia Problema con gli eventi del mouse su una data table: Javascript 2
T PROBLEMA CON SESSIONI PHP 3
T ALTRO PROBLEMA CON ARRAY PHP PHP 1
R problema con else PHP 0
T PROBLEMA CON ARRAY PHP 8
L problema con query select PHP 2
R Problema query con ricerca id numerico PHP 2
F Problema con risposta PHP 0
S problema con recupero dati tabella mysql PHP 2
Z Problema con il mio tp-l i nk Reti LAN e Wireless 1
L Problema RAM con Tomcat 8 Apache 0
napuleone problema con sort e asort PHP 4
Z Problema con INT MySQL PHP 1
Z Problema database MySQL con XAMPP PHP 0
M Problema con controllo form in real time jQuery 6
Z Problema di sincronizzazione PAYPAL con PHP PHP 1
G Problema con Get page PHP 4
P Problema con require once PHP 6
P Problema con i package Java 1
A Problema login con Safari PHP 14
F INDESIGN: problema esportazione esecutivo per la stampa con foto B/N Webdesign e Grafica 0
S problema con css bootstrap3 HTML e CSS 4
M .load() problema con caricamenti dinamici di js Javascript 0
G Problema con eccessiva nitidezza apertura Camera Raw Photoshop 0
G Problema ------- con Query PHP 1
G Problema con Query PHP 1
T problema con select dinamica con jquery Javascript 0
S Problema con spazi bianchi HTML e CSS 5

Discussioni simili