[PHP] Pagina profilo UTENTE modificabile

giancadeejay

Utente Attivo
26 Ott 2010
224
0
16
torino
Buongiorno a tutti,
Sto creando un sito in php dove l'utente deve registrarsi e poi logarsi.
Vorrei crea la classica pagina"IL TUO PROFILO.PHP" dove l'utente puo' modificare e aggiornare i suoi dati.
Da dove posso cominciare?
Non ho trovato discussioni RISOLTE.

Ecco cio che ho creato ma non capisco perche' c'e' un errore...non mi restituisce nulla..??
profiloutente.php
Codice:
<?php
session_start();
if(!isset($_SESSION['utente'])){
    //una o entrambe le sessioni non esistono
    if(isset($_SESSION))session_destroy();
    header('location:http://mio sito.altervista.org_index_ok.php');// o altrove
    exit();
}else{
    //le sessioni esistono
?>

<?php
include('header.php');
$con = mysqli_connect("localhost","sito","", "my_db");
if (!$con)
  {
  die('Could not connect: ' . mysqli_error());
  }









$sqlquery = "SELECT username,password,nome,cognome,email,via,civico,cap,citta,telefono FROM utenti WHERE username = $username";
$result = mysql_query($sqlquery);
$number = mysql_num_rows($result);

$i = 0;
if ($number < 1) {
  print "<center><p>La ricerca non ha prodotto nessun risultato</p></center>";
}else{
  while ($number > $i) {
    $username = mysql_result($result,$i,"username");
    $password = mysql_result($result,$i,"password");
    $nome = mysql_result($result,$i,"nome");
    $cognome = mysql_result($result,$i,"cognome");
    $email = mysql_result($result,$i,"email");
    $datanascita= mysql_result($result,$i,"datanascita");
    $via = mysql_result($result,$i,"via");
    $civico = mysql_result($result,$i,"civico");
    $cap= mysql_result($result,$i,"cap");
    $citta = mysql_result($result,$i,"citta");
    $telefono = mysql_result($result,$i,"telefono");
  
  
    echo "<p><b>USERNAME:</b> $username<br>
    <b>PASSWORD:</b> $password<br>
    <b>NOME:</b> $nome<br>
    <b>COGNOME:</b> $cognome<br>
    <b>EMAIL:</b> $email<br>
    <b>DATA DI NASCITA:</b> $datanascita<br>
    <b>VIA:</b> $via<br>
    <b>CIVICO:</b> $civico<br>
    <b>CAP:</b> $cap<br>
    <b>CITTA':</b> $citta<br>
    <b>TELEFONO':</b> $telefono</p>";
  
  
    $i++;
  }
}
?>

<?php
}
?>

In piu',pero' vorrei che i dati si possano modificare ma non so come fare..
Grazie in anticipo.
 
Ultima modifica:

marino51

Utente Attivo
28 Feb 2013
2.869
153
63
Lombardia
Ecco cio che ho creato ma non capisco perche' c'e' un errore...non mi restituisce nulla..??
dovresti cominciare a leggere il log degli errori, ti renderebbe meno sprovveduto
qui, username dovrebbe essere una stringa
WHERE username = $username"
e come tale dovrebbe andare tra apici
sicuramente il log registra un errore simile
 

giancadeejay

Utente Attivo
26 Ott 2010
224
0
16
torino
Cia marino51 ,,,si chiedo scusa ma sto studiando per passione PHP,HTML5 E CSS ma sono molto novello quindi piu' che sprovveduto direi che ho bisogno ancora di molto tempo per imparare bene...
Detto questo ho creato e lo posto perche' la discussione penso riguardi molti:
form.php
Codice:
session_start();
if(!isset($_SESSION['utente'])){
    //una o entrambe le sessioni non esistono
    if(isset($_SESSION))session_destroy();
    header('location:http://MIO SITO.org');// o altrove
    exit();
}else{
    //le sessioni esistono
?>





<html>
<head>

<title>MODIFICA PROFILO</title>



<style type="text/css">
<!--
A{text-decoration:none}
-->
</style>


</head>
<body>




<table style="width:auto;border:1px solid black;font-weight:bold;font-family: oswald;
    margin-left:0px;border-radius:6px">
<h1>MODIFICA I TUOI DATI</h1><hr>

<form action="modifica_dati_utente1.php"  method="post">


<tr><td>Username:</td></tr><tr><td><input type="text"  name="username" width="205" height="27" style="height:27px; width:205px; font-size:24px;background:white;border-color:blue;align:left;border-style: solid;text-shadow: 1px 1px 1px blue;" value="<?php
    $username = $_SESSION['utente'];
    echo strtoupper("$username");
  ?>" /></td></tr>
<tr><td>Nome:</td></tr><tr><td><input type="text" name="nome" ></td></tr>
<tr><td>Cognome:</td></tr><tr><td><input type="text" name="cognome" ></td></tr>
<tr><td>Email:</td></tr><tr><td><input type="text" name="email" ></td></tr>
<tr><td>Data di nascita:</td></tr><tr><td><input type="text" name="datanascita" ></td></tr>
<tr><td>Via:</td></tr><tr><td><input type="text" name="via" ></td></tr>
<tr><td>Civico:</td></tr><tr><td><input type="text"  name="civico" ></td></tr>
<tr><td>Cap:</td></tr><tr><td><input type="text"  name="cap" ></td></tr>
<tr><td>Citta':</td></tr><tr><td><input type="text"  name="citta" ></td></tr>
<tr><td>Telefono:</td></tr><tr><td><input type="text"  name="telefono" ></td></tr>
<tr><td><input type="submit" name="submit" value="AGGIORNA DATI"></td></tr>

</form>
</table>











 



</body>

</html>
<?php
}
?>
LA PAGINA CHE MI LAVORA IL FORM:

modifica_dati_utente1.php

session_start();

if(!isset($_SESSION['utente'])){
    //una o entrambe le sessioni non esistono
    if(isset($_SESSION))session_destroy();
    header('location:http://MIOSITO.org');// o altrove
    exit();
}else{
    //le sessioni esistono


?>








<?php
$con = mysqli_connect("localhost","USER","", "my_DB");
if (!$con)
  {
  die('Could not connect: ' . mysqli_error());
  }
$username = mysql_real_escape_string($_POST['username']);
$nome = mysql_real_escape_string($_POST['nome']);
$cognome = mysql_real_escape_string($_POST['cognome']);
$email = mysql_real_escape_string($_POST['email']);
$datanascita = mysql_real_escape_string($_POST['datanascita']);
$via = mysql_real_escape_string($_POST['via']);
$civico = mysql_real_escape_string($_POST['civico']);
$cap = mysql_real_escape_string($_POST['cap']);
$citta = mysql_real_escape_string($_POST['citta']);
$telefono = mysql_real_escape_string($_POST['telefono']);

if(trim($_POST['nome']) == "" ||trim($_POST['cognome']) == "" ||trim($_POST['email']) == "" || trim($_POST['via']) == "" || trim($_POST['civico']) == "" || trim($_POST['username']) == "" || trim($_POST['cap']) == ""  || trim($_POST['citta']) == "" || trim($_POST['telefono']) == ""){
    echo "<h1 style='color:#000;'>ATTENZIONE , DEVI COMPILARE TUTTI I CAMPI !</h1>";
    header("Refresh: 4; URL= http://MIOSITO.org/registrazione_utenti/modifica_dati_utente_form.php");
}else{
    $conn = mysqli_connect($host,$username,$password, $db) or die (mysql_error());
      
    $sql="SELECT * FROM utenti WHERE username = '$username'";
    $exec1 = mysqli_query($con, $sql);
    if(mysqli_num_rows($exec1) > 0){
      
        $sql="UPDATE utenti SET nome = '$nome',cognome = '$cognome',email = '$email',datanascita = '$datanascita',via = '$via', civico = ('$civico'),cap = '$cap',citta = '$citta',telefono = '$telefono' WHERE username = '$username'";//UPPER TRASFORMA IN MAIUSCOLO L'INSERIMENTO DATI MINUSCOLI DELL'UTENTE
        $exec = mysqli_query($con, $sql) or die(mysqli_error());
        echo "<h1>DATO INSERITO CORRETTAMENTE</h1><img src='img/spuntaverde.png'>";
        header("Refresh:3;URL=http://MIOSITO.org/registrazione_utenti/index_ok.php");

        //e il ritorno automatico a dove vuoi
    }else{//se non ti serve questo elese puoi toglierlo
        echo "<h1>$username <img src='images/errore.png'><br>DATO NON PRESENTE O ERRATO!<hr> </h1>";
        //e il ritorno automatico a dove vuoi
    }
    mysqli_close($con);
}
?>
<?php
}
?>


Ora il mio problema e' che cosi ,se l'utente non compila un campo io lo obbligo a farlo ma non mi sembra il caso....
quindi mi piacerebbe che,se lascia 1 campo vuoto,
lo script non vada a modificare assolutamente il valore non riempito in DB.
e lasciasse quello che gia' e' scritto.
Qualcuno puo' darmi una mano sul codice?
Grazie...