Fehler beim MySql Update

Fxice

Mitglied
Also ich habe folgende Zeilen geschrieben um in einem Loginsystem (mit sessions) die Emailaddresse des Users zu ändern aber leider wird nix in die Datenbank eingetragen!
Ich versteh aber leider nicht wo der Fehler ist! Kann mir jemand helfen?

Code:
  <?
  include ('bodyguard.php');
  if(isset($_POST['new_email'])){
  $_POST['new_email'] = $email;
  include ('db.php');
  $email_address = mysql_query("UPDATE `users` SET `email_address`='$email' WHERE `userid`='$userid'");
  echo "Email adresse geändert!";
  }
  
  ?>
  <table width="40%" border="0" cellspacing="0" cellpadding="0">
    <tr>
  	<td>Profil:</td>
  	<td>&nbsp;</td>
    </tr>
    <tr>
  	<td>Username:</td>
  	<td><? echo "$username"; ?></td>
    </tr>
    <tr>
  	<td>Name:</td>
  	<td><? echo "$first_name"; ?></td>
    </tr>
    <tr>
  	<td>Nachname:</td>
  	<td><? echo "$last_name"; ?></td>
    </tr>
    <tr>
  	<td>Emailadresse:</td>
  	<td><? echo "$email_address"; ?></td>
    </tr>
    <tr>
  	<td>Userlevel:</td>
  	<td><? echo "$user_level"; ?></td>
    </tr>
    <tr>
  	<td>Letzter Login:</td>
  	<td><? echo "$last_login"; ?></td>
    </tr>
    <tr>
  	<td>Anmelde Datum:</td>
  	<td><? echo "$signup_date"; ?></td>
    </tr>
  </table>
  <br>
  <br>
  <form action="index.php?section=profil" method="POST">
  <table width="40%" border="0" cellspacing="0" cellpadding="0">
    <tr>
  	<td>Emailadresse ändern:</td>
    </tr>
    <tr>
  	<td><input type="text" name="new_email" class="login" ></td>
    </tr>
    <tr>
  	<td><input type="submit" class="button" value="Ändern"></td>
    </tr>
  </table>
  </form>
 
So wäre es doch viel logischer:
PHP:
$email = $_POST['new_email'];
Deine Methode weißt $_POST['new_email'] einen neuen Wert aus der Variable $email
zu, diese existiert nicht und dementsprechend wird $_POST['new_email'] geleert.
Wo wird die Variable $userid gefüllt?

p.s.: Sowas kannst du dir auch schenken:
PHP:
echo "$username";
// besser ists so:
echo $username;
 
Zuletzt bearbeitet:
Danke werde das mal Probieren.

$userid wird mit nem wert aus der session gefüllt!

Ps:
Danke für den Tipp ich bin noch nicht so lange beim Php lernen und mache öfter mal kleine Fehler
 
Ferner würde ich empfehlen, die Abänderung der eMail-Adresse bzw der Details des Benutzerkontos nicht untendrunter in ein extra-Form zu stecken sondern die komplette Datenausgabe in den Form zu holen. Ich finde es sieht sonst komisch aus und ist unnötig kompliziert. Die Teile, die nicht editierbar sein sollen kann man ja dann nicht veränderbar machen...
 
Danke für die tipps!
Werde das ändern.
Aber ich hab noch nen Problem!
Kann mir jemand helfen?

Ich will eigentlich nur abchecken ob die adresse schon vorhanden ist aber ich kriege es nicht hin! Er gibt dann aus
"Parse error: parse error, unexpected $ in /usr/export/www/vhosts/funnetwork/hosting/fxice/bet/profil.php on line 72
"
aber ich hab garnicht so viele zeilen!
Code:
 <?
  include ('bodyguard.php');
  if(isset($_POST['new_email'])){
  $email_address = $_POST['new_email'];
  include ('db.php');
  
  $sql_email_check = mysql_query("SELECT `email_address` FROM `users` WHERE `email_address`='$email_address'"); 
  
  $email_check = mysql_num_rows($sql_email_check);
  
  if($email_check > 0){
  echo "Emailaddresse ist schon in der Datenbank vorhanden!";
  } else {
  
  mysql_query("UPDATE `users` SET `email_address`='$email_address' WHERE `userid`='$userid'");
  
  session_register('email_address'); 
  $_SESSION['email_address'] = $email_address;
  
  echo "Email adresse geändert!";
  }
  ?>
  <table width="40%" border="0" cellspacing="0" cellpadding="0">
    <tr>
  	<td>Profil:</td>
  	<td>&nbsp;</td>
    </tr>
    <tr>
  	<td>Username:</td>
  	<td><? echo "$username"; ?></td>
    </tr>
    <tr>
  	<td>Name:</td>
  	<td><? echo "$first_name"; ?></td>
    </tr>
    <tr>
  	<td>Nachname:</td>
  	<td><? echo "$last_name"; ?></td>
    </tr>
    <tr>
  	<td>Emailadresse:</td>
  	<td><? echo "$email_address"; ?></td>
    </tr>
    <tr>
  	<td>Userlevel:</td>
  	<td><? echo "$user_level"; ?></td>
    </tr>
    <tr>
  	<td>Letzter Login:</td>
  	<td><? echo "$last_login"; ?></td>
    </tr>
    <tr>
  	<td>Anmelde Datum:</td>
  	<td><? echo "$signup_date"; ?></td>
    </tr>
  </table>
  <br>
  <br>
  <form action="index.php?section=profil" method="POST">
  <table width="40%" border="0" cellspacing="0" cellpadding="0">
    <tr>
  	<td>Emailadresse ändern:</td>
    </tr>
    <tr>
  	<td><input type="text" name="new_email" class="login" ></td>
    </tr>
    <tr>
  	<td><input type="submit" class="button" value="Ändern"></td>
    </tr>
  </table>
  </form>
 
Zuletzt bearbeitet:
Sorry hab den Fehler gefunden!
Glaube ich! Jetzt funtzt es, weil ich ein "}" vergessen hatte war die if-schleife net beendet.
Erledigt.
 
Zurück