Problem mit PHP Formualren

Benjamin5

Mitglied
Ich arbeite gerade an einem Profil Formular wo der User seine Daten ändern kann, dieses Sieht so aus:
PHP:
<?php 
include ("../checkuser.php"); 
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Unbenanntes Dokument</title>
<style type="text/css">
<!--
body,td,th {
	color: #FF0000;
}
body {
	background-color: #000000;
}
.Stil1 {
	font-size: 36px;
	font-weight: bold;
}
-->
</style></head>

<body>
 <p class="Stil1">Profil </p>
 <p>Hier kannst du dein Profil Einsehen und Bearbeiten! </p>
 <form name="form1" method="post" action="">
   <p>Benutzername:&nbsp; 
     <input name="nickname" type="text" id="nickname" value=" <?php echo $_SESSION["user_nickname"]; ?> ">
</p>
   <p>Dein Passwort: 
     <input name="pw" type="text" id="pw" value="<?php echo $_SESSION["user_pw"]; ?>"> 
     <strong>Wichtig: gebt bitte euer Passwort bei jeder &auml;nderung ein da euer Account sonst &uuml;ber keines mehr Verf&uuml;gt! </strong></p>
   <p>Deine E-Mail:&nbsp;&nbsp; 
     <input name="mail" type="text" id="mail" value="<?php echo $_SESSION["user_mail"]; ?>">
<strong>Achtung: damit die E-Mail Adresse &uuml;bernommen wird, must du dich Neu Einlogen! </strong></p>
   <p>
     <input type="submit" name="Submit" value="Speichern">
</p>
 </form>
 <p><?php
 include("../config.php");
$pw = "".$_POST["pw"]."";
$mail = "".$_POST["mail"]."";
$sql = "UPDATE benutzerdaten SET Kennwort = '".$_POST["pw"]."', `Mail` = '".$_POST["mail"]."' WHERE Id='".$_SESSION["user_id"]."'";
mysql_query($sql) or die(mysql_error());
?></p>
</body>
</html>

Dabei steht:
- <?php echo $_SESSION["user_nickname"]; ?> für Benutzername
- <?php echo $_SESSION["user_pw"]; ?> für das Kennwort
- <?php echo $_SESSION["user_mail"]; ?> für die E-Mailadresse für den user.

Das Problem, immer wenn man das Profil aufruft, lert man die Daten aus der Tabelle des jeweiligen Users ebenso beim Aktualisieren der seite.
Was habe ich falsch gemacht, kann mir mal jemand ein beispiel geben wie das richtig aussehen sollte?

Danke im Vorraus.
 
PHP:
<?php
 include("../config.php");
$pw = "".$_POST["pw"]."";
$mail = "".$_POST["mail"]."";
$sql = "UPDATE benutzerdaten SET Kennwort = '".$_POST["pw"]."', `Mail` = '".$_POST["mail"]."' WHERE Id='".$_SESSION["user_id"]."'";
mysql_query($sql) or die(mysql_error());
?>

Dieser Teil darf nur ausgeführt werden, wenn das Formular abgeschickt worden ist.
Das musst du also vorher immer erst überprüfen.
 
Kannst du mir mal ein Beispiel geben, ich weiss das dass mit einer If Abfrage gemacht werden muss, aber ich weiss nicht wie ich änderungen Prüfen kann.
 
PHP:
<?php 
if($_POST['Submit'] == 'Speichern'){

  include("../config.php");
  $pw = $_POST["pw"];
  $mail = $_POST["mail"];
  $sql = "UPDATE benutzerdaten SET Kennwort = '".$_POST["pw"]."', `Mail` = '".$_POST["mail"]."' WHERE Id='".$_SESSION["user_id"]."'";
  mysql_query($sql) or die(mysql_error());
}
else { 
  include ("../checkuser.php"); 
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Unbenanntes Dokument</title>
<style type="text/css">
<!--
body,td,th {
    color: #FF0000;
}
body {
    background-color: #000000;
}
.Stil1 {
    font-size: 36px;
    font-weight: bold;
}
-->
</style></head>

<body>
 <p class="Stil1">Profil </p>
 <p>Hier kannst du dein Profil Einsehen und Bearbeiten! </p>
 <form name="form1" method="post" action="">
   <p>Benutzername:&nbsp; 
     <input name="nickname" type="text" id="nickname" value=" <?php echo $_SESSION["user_nickname"]; ?> ">
</p>
   <p>Dein Passwort: 
     <input name="pw" type="text" id="pw" value="<?php echo $_SESSION["user_pw"]; ?>"> 
     <strong>Wichtig: gebt bitte euer Passwort bei jeder &auml;nderung ein da euer Account sonst &uuml;ber keines mehr Verf&uuml;gt! </strong></p>
   <p>Deine E-Mail:&nbsp;&nbsp; 
     <input name="mail" type="text" id="mail" value="<?php echo $_SESSION["user_mail"]; ?>">
<strong>Achtung: damit die E-Mail Adresse &uuml;bernommen wird, must du dich Neu Einlogen! </strong></p>
   <p>
     <input type="submit" name="Submit" value="Speichern">
</p>
 </form>
 <?php
}

?>
</body>
</html>

Allerdings solltest du das Formular vor dem Absenden noch validieren.
 
Zurück