Problema con update

A posto dell'email ci posso mettere l'id o lo usernsname ??? Quale mmi conviene adoperare ????

Ri-perdonami,

per il recupero tu intendi così giusto:

PHP:
$email = mysql_real_escape_string(strtolower(trim ($_POST['email'])));

Le variabili vengono già esportate da $_POST sicure, inoltre non mettere una credenziale dell'utente nel form, ma usa eventualmente una sessione
 
Scusa forse sbaglio ma ho visto un po il codice e usi un metoto Post nel form, invece nel file aggiornaprofilo.php usi il metodo GET e per questo che non va. Prova ad usare il metodo Post nel file aggiornaprofilo.php.
 
Ciao,

Considera che questo era un sempplice form per capire dove sbagliavo ma continua a non volerne sapere, inoltre mi da un triangolino giallo sull'if non so il perchè....

Serve una variabile di autenticazione, ad esempio una sessione dove memorizzi l'id dell'utente, come esegui il controllo se è loggato scusa?

Se provi manualmente dovrebbe andare infatti
PHP:
$qry = "UPDATE utenti SET 
    datadinascita='$datadinascita', 
    citta='$citta', 
    provincia='$provincia' 
    WHERE email = 'mail@prova.it'";

Ovviamente togliendolo anche dall'isset
PHP:
if(isset($datadinascita,$citta,$provincia))
 
Ciao

Serve una variabile di autenticazione, ad esempio una sessione dove memorizzi l'id dell'utente, come esegui il controllo se è loggato scusa?

Se provi manualmente dovrebbe andare infatti
PHP:
$qry = "UPDATE utenti SET 
    datadinascita='$datadinascita', 
    citta='$citta', 
    provincia='$provincia' 
    WHERE email = 'mail@prova.it'";

Ovviamente togliendolo anche dall'isset
PHP:
if(isset($datadinascita,$citta,$provincia))

Dunque il controllo del ogin c'è sull'intero listato che ti avevo mandato nelle pagine precedenti, ora quesato era un form di sola prova per vedere dove sbagliavo e se faceva il suo update. Che intendi per manualmente via phpmyadmin nella finestra sql ????
 
Dunque il controllo del ogin c'è sull'intero listato che ti avevo mandato nelle pagine precedenti, ora quesato era un form di sola prova per vedere dove sbagliavo e se faceva il suo update. Che intendi per manualmente via phpmyadmin nella finestra sql ????

Intendo come mostrato sopra mettere la mail relativa all'account manualmente per verificare che va
 
Ciao

Ho provato anche come dici t ema non va ugualmente :( Mi spiace

Abbiamo partorito yuppiiiiiiiiiiiiiiiiiiiiiiiiiii l'ha fatto:

PHP:
if(isset($datadinascita,$citta,$provincia)){

if(preg_match('/^[0-9]{2}\/[0-9]{2}\/[0-9]{4}$/',$datadinascita)){ 
    $data = explode('/',$datadinascita); 
    if(checkdate($data[1],$data[0],$data[2])) $datadinascita = $data[1].'/'.$data[0].'/'.$data[2] ; 
    else die('Errore, data invalida');
} //else die('Errore formato invalido');

echo "<h1> Esecuzione in corso dell'aggiornameto profilo... </h1>"; 


if($datadinascita!='error')
$qry = "UPDATE utenti SET 
    datadinascita='$datadinascita', 
    citta='$citta', 
    provincia='$provincia' 
    WHERE email = 'paperinik4@gmail.com'";

Ora lo debbo applicare a quello con la session sei sempre disponibile a darmi una mano ?????

P.S.: Come presumevo la data di nascita se scritta erroneamente non la prende. Quindi deve essere scritta in formato americano e poi trasformata con un format in formato italiano gg/mm/aaaa
 
Ultima modifica:
P.S.: Come presumevo la data di nascita se scritta erroneamente non la prende. Quindi deve essere scritta in formato americano e poi trasformata con un format in formato italiano gg/mm/aaaa
Beh dato che la data tipica americana è mm/gg/aaaa ti è sufficiente invertirla come ti ho fatto vedere
 
Ciao

La cosa bella è la seguente, con i text box eravamo riusciti a partorire ed a ottenere l'update bene o male di due campi su tre, Invece con la selezione <select> <option>. Niente da fare. Nessun aggiornamento del campo. Ma c'è una tecnica diversa ???? QUando metti la lista di selezione ???? Questo è il codice:

aggiornaprofilo.php:

PHP:
<?php
require_once("connetti.php"); 

echo '<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">'; 

$email = mysql_real_escape_string(strtolower(trim ($_POST['email']))); 

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

extract($_POST,EXTR_SKIP);


//$email NON VIENE RECUPERATA DA NESSUNA PARTE, RIVEDILA

if(isset($datadinascita,$citta,$provincia)){

if(preg_match('/^[0-9]{2}\/[0-9]{2}\/[0-9]{4}$/',$datadinascita)){ 
    $data = explode('/',$datadinascita); 
    if(checkdate($data[1],$data[0],$data[2])) $datadinascita = $data[1].'/'.$data[0].'/'.$data[2] ; 
    else die('Errore, data invalida');
} //else die('Errore formato invalido');

echo "<h1> Esecuzione in corso dell'aggiornameto profilo... </h1>"; 


if($datadinascita!='error')
$qry = "UPDATE utenti SET 
    datadinascita='$datadinascita', 
    citta='$citta', 
    provincia='$provincia' 
    WHERE email = 'paperinik4@gmail.com'";  


if (mysql_query($qry)){ 
    echo "... Aggiornamento effettuato correttamente...."; 
     
} else die('Errore formato invalido');{ 
    echo "Errore: Non è stato possibile effettuare l'aggiornamento richiesto";         //or die (mysql_error()); 
} 

}

?>

E questo è con la select index.php (diverso da quello di prima):

PHP:
<?php
require_once("connetti.php");

echo '<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">';

?>
<form action= 'aggiornaprofilo.php' method="POST">

<?php

echo '<p align="left">';

echo "Data di Nascita Giorno: ";


//giorno

echo "<select name=\"giorno\">";
echo "<option value=\"\"> seleziona </option>";
for($gg=1; $gg<=31; $gg++){
 if(strlen($gg)< 2){$gg = "0".$gg;}  
 echo "<option value=\"$gg\"> $gg </option>";
}
echo "</select>";


echo '<align="left">';


require_once("arraylistecitta.php");

echo "Mese: ";
echo "<select name=\"mese\">";
foreach($mese as $chiave => $valore){
    echo "<option value=\"$chiave\">$valore";
echo "</option> ";
}
 echo "</select>";

 echo " Anno: ";
 
//anno
$da=1960;
$al=2014;
echo "<select name=\"anno\">";
echo "<option value=\"\"> seleziona </option>";
for($aa=$da; $aa<=$al; $aa++){
    echo "<option value=\"$aa\"> $aa </option>";
}
echo "</select>";
 
echo '<align="left">';

echo "<br>";
echo '<p align="left">';

echo "Città: ";

echo "<select name=\"citta\">";
foreach($citta as $chiave => $valore){
    echo "<option value=\"$chiave\">$valore";
echo "</option> ";
}
 echo "</select>";
 
echo '<align="left">';

echo "Provincia: ";


echo "<select name=\"province\">";
foreach($province as $chiave => $valore){
    echo "<option value=\"$chiave\">$valore";
echo "</option> ";
}
 echo "</select>";
 

    echo "<center> <br><br>";
                    echo '<input type="submit"  value="Aggiorna Profilo" />';
?>
    
        <input type="button" onClick="window.location.href='logout.php';" style='padding:10px' value="Logout" />
    </center> </form>
 
Beh in questo caso la data di nascita è data da 3 campi che poi unisci, quindi ti basta fare un checkdate e metterlo direttamente nel formato americano
 
Ciao

Beh in questo caso la data di nascita è data da 3 campi che poi unisci, quindi ti basta fare un checkdate e metterlo direttamente nel formato americano

In parole molto semplice ma in pratica ??? Sono quasi al digiuno (total direi anche se mi avete aiutato molto elo riconosco e ho imparato parecchio anche se non si vede), ma purtroppo con i diuretici e tutte le altre medicine che prendo mi si chiude il cervello completamente...
 
Controlli cosi

PHP:
$datadinascita = false;
if(checkdate($mese,$giorno,$anno)) $datadinascita = $mese.'/'.$giorno.'/'.$anno;

E aggiungi all'isset
PHP:
if(isset($citta,$provincia,$giorno,$mese,$anno))


E magari prima di eseguire la query
PHP:
if($datadinascita!=false){ //esegui la query.....
 
Ciao

Ma mi sai dire perchè non mi fa l'aggiornamento imettendo i campi select e usando lo stesso codice che avevo usato prima per i campi text ??? Mi fa rodere non capisco dove cavolo sbaglio.
 
Ma mi sai dire perchè non mi fa l'aggiornamento imettendo i campi select e usando lo stesso codice che avevo usato prima per i campi text ??? Mi fa rodere non capisco dove cavolo sbaglio.
Te l'ho spiegato sopra, la data di nascita è suddivisa in 3 campi invece di uno e li devi unire correttamente
 

Discussioni simili