
Originariamente inviata da
trimalcione70
ciao a tutti, sono disperata!
sto realizzando un sito con php su server linux (aruba). Per poter attivare alcune funzionalità occorre registrarsi.
Bene. Terminata la procedura di registrazione, si fa il login e il sistema rimanda alla pagina di presentazione. Da qui, posso scegliere di andare nella sezione profilo e modificare i miei dati.
E qui sorge il problema!
Posto la porzione di codice di questa pagina:
<?php
include('mysql.php');
if(!isset($_SESSION['userid'])) {
header ("Location: logerror.php");
} else {
$errform = 0;
if(isset($_POST['submit'])) {
// Controlli su campi form
if(empty($_POST['nome'])){$errform = 1; $pos1 = " class=\"bgc\"";}else{$_SESSION['nome'] = addslashes($_POST['nome']);}
if(empty($_POST['cognome'])){$errform = 1; $pos2 = " class=\"bgc\"";}else{$_SESSION['cognome'] = addslashes($_POST['cognome']);}
if(empty($_POST['edit_email'])){$errform = 1; $pos3 = " class=\"bgc\"";}else{
$_SESSION['edit_email'] = $_POST['edit_email'];
if(eregi("^([a-zA-Z0-9_.-])+@(([a-zA-Z0-9-]{2,})+.)+([a-zA-Z0-9]{2,})+$",$_POST['edit_email'])==false){
$errform = 1; $pos3 = " class=\"bgc\"";
}
}
if(empty($_POST['telefono'])){$errform = 1; $pos4 = " class=\"bgc\"";}else{$_SESSION['telefono'] = addslashes($_POST['telefono']);}
if(empty($_POST['username'])){$errform = 1; $pos5 = " class=\"bgc\"";}else{$_SESSION['username'] = mysql_real_escape_string($_POST['username']);}
if(empty($_POST['indirizzo'])){$errform = 1; $pos6 = " class=\"bgc\"";}else{$_SESSION['indirizzo'] = addslashes($_POST['indirizzo']);}
if(empty($_POST['cap'])){$errform = 1; $pos7 = " class=\"bgc\"";}else{$_SESSION['cap'] = addslashes($_POST['cap']);}
if(empty($_POST['citta'])){$errform = 1; $pos8 = " class=\"bgc\"";}else{$_SESSION['citta'] = addslashes($_POST['citta']);}
//if(empty($_POST['provincia'])){$errform = 1; $pos9 = " class=\"bgc\"";}else{$_SESSION['provincia'] = ($_POST['provincia']);}
if(empty($_POST['piva'])){$errform = 1; $pos10 = " class=\"bgc\"";}else{$_SESSION['piva'] = addslashes($_POST['piva']);}
if(empty($_POST['cf'])){$errform = 1; $pos11 = " class=\"bgc\"";}else{$_SESSION['cf'] = addslashes($_POST['cf']);}
if($errform==0){
// aggiorno utente
$ris = mysql_query("UPDATE utenti SET nome='".$_SESSION['nome']."', cognome='".$_SESSION['cognome']."', telefono='".$_SESSION['telefono']."', indirizzo='".$_SESSION['indirizzo']."',
cap='".$_SESSION['cap']."', citta='".$_SESSION['citta']."', provincia='".$_SESSION['provincia']."', piva='".$_SESSION['piva']."', cf='".$_SESSION['cf']."', email='".$_SESSION['edit_email']."', username='".$_SESSION['username']."'
WHERE id_utente = $_POST[id_utente]") or die (mysql_error());
$okform = 1;
}
}
?>
<?php
if($okform==1){
$messaggio = "Il tuo profilo è stato aggiornato.";
}else{
$ris_bis = mysql_query("SELECT * FROM utenti WHERE id_utente = $_SESSION[userid]");
$rs = mysql_fetch_array($ris_bis);
}
if($errform==1) {
$messaggio = "È necessario compilare tutti i campi.";
}
}
?>
Cosa succede: se giungo per la prima volta, faccio le modifiche del profilo -> invio il form e l'UPDATE di mysql funziona.
Ma se subito dopo, quando ancora presente il messaggio "Il tuo profilo è stato aggiornato.", cerco di fare una nuova modifica...
ecco che compare il messaggio:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 3
Esiste qualche anima gentile che potrebbe aiutarmi a capire cosa diavolo succede?
grazie