sapzero
Goto Top

Seite aktualisieren

Hallo,
wie der Titl schon sagt versuch ich die Seite zu aktualisieren. Die Seite beinhaltet ein HTML Formular indem ich den Usernamen ändern kann, welches ohne Probleme Funktioniert.
Auf der Seite wird der alte Username Angezeigt, wenn man den neuen Usernamen angibt wird er erst angezeigt wenn man selber aktualisiert. Es soll aber automatisch sofort nach der neuen Eingabe aktualisieren.
Ich hoffe mir kann jemand helfen. Hier ist noch der Code:
<?php
if($_REQUEST['abschicken1'])  
{
	if(strlen($username_neu)>=4)
	{
		echo "Ihr Username wurde geändert.<br>";  
					
		$aendern = "UPDATE tblRegistry  
		 			SET Username = '$username_neu'  
					WHERE Username = '$username'  
				    AND Passwort = '$passwort'";  
		$update = mysql_query($aendern);
		
		$_SESSION['username'] = $username_neu;  
                --> HIER SOLL ES DIE SEITE AKTUALISIEREN
    }
	else
	{
		echo "Ihr Username muss mindestens 2 Zeichen beinhalten.<br>";  
	}
}
?>
MfG
Sapzero

Content-Key: 105152

Url: https://administrator.de/contentid/105152

Ausgedruckt am: 28.03.2024 um 13:03 Uhr

Mitglied: Cubic83
Cubic83 04.01.2009 um 16:24:26 Uhr
Goto Top
Hallo,

 

echo '<script language="javascript">document.location="newsite.php";</script>';  

Wie wärs damit?

mfG
Mitglied: Arano
Arano 04.01.2009 um 18:00:48 Uhr
Goto Top
Naja, das ja nicht so ein tolle Lösung... wenn JS deaktiviert ist, haste wieder das selbe Problem. Ausserdem löst das hier auch wahrscheinlich nicht Problem.

1. Da du den neuen Namen in eine Session überträgst, hast du ein session_start() ?
2. Wird der Name der angezeigt wird, noch vorher oder erst nach dem Speichern ausgelesen ?
3. Auf Daten eines Formulares immer per $_POST oder $_GET zugreifen.

Hm... wenn das jetzt alles ist, das in der Datei steht, an die das Formular geschickt wird, kannst du auch per header() weiterleiten -> PHP-Manual - header()

~Arano
Mitglied: Sapzero
Sapzero 04.01.2009 um 18:23:37 Uhr
Goto Top
Hi,
ja ich habe ein session_start() und der Name wird nach dem Speichern ausgelesen.
Ich hatte es schon mit header versucht aber habs nicht hinbekommen deswegen habe ich hier nochmal nachgefragt.

Ich hatte auch noch mal nachgelesen, dass es mit PHP nicht geht, da es Serverseitig läuft.
Also müsste ich die Aktualisierung dann in mein HTML Formular einbauen oder?
Vielleicht dort wo ich den neuen Usernamen mit einem Button-click übergebe.
Aber die Frage ist wie?
Mitglied: Cubic83
Cubic83 04.01.2009 um 19:11:15 Uhr
Goto Top
Der Redirect mit header() wird nicht funktionnieren wenn vorher schon iergendeine Ausgabe an den Client gesendet wurde. Du hast meines Erachtens nur die Möglichkeit mit Javascript oder eben einen Link erstellen.
Mitglied: Arano
Arano 04.01.2009 um 19:15:26 Uhr
Goto Top
PHP läuft Serverseitig ja, aber die anfragen werden auch an den Server geschickt, der wiedeerum schickt dem Browser den HTTP-Header mit der Umleitung die dann vom Browser weiter verfolgt wird.

Ich habe es mal in klein nachgebastelt, hier funktioniert es wunderbar
<?php
 session_start();
 
 if(isset($_POST['upd_name']) && isset($_POST['name']) && !empty($_POST['name']))  
  name2session($_POST['name']);  
 
 function name2session($n){
  $_SESSION['name']=$n;  
  echo 'Name wurde aktualisiert !<br>';  
 }
?>
<html>
 <head>
  <title>session help</title>
 </head>
 <body>
 
  Ihr Name lautet derzeit: "<?php echo $_SESSION['name']; ?>"<br>  
  <br>
  <form action="./index.php" method="POST">  
   <input type="text" name="name" value="name"><br>  
   <input type="submit" name="upd_name" value="Speichern">  
  </form>
 
 </body>
</html>
Wie sieht es denn bei dir aus ? Irgendwo muss da ja noch der Wurm drin sein.

~Arano
Mitglied: Sapzero
Sapzero 04.01.2009 um 21:59:55 Uhr
Goto Top
Kannst du mir mal erläutern was der quellcode den macht?
Wo wird die Seite den aktualisiert?
Was mich noch interessiert, wieso soll ich über post und nicht über request zugreifen wo sind den die unterschiede?
Mitglied: Sapzero
Sapzero 04.01.2009 um 22:03:45 Uhr
Goto Top
Wie würde es dann aussehen kannst du mir mal ein Beispiel zeigen?
Würde es dann auch automatisch ablaufen oder muss ich vorher ein Link anklicken, weil sonst kann ich ja auch einfach den Browser aktualisieren und er zeigt mir den neuen Usernamen an. Doch er soll es automatisch machen.
Mitglied: Cubic83
Cubic83 05.01.2009 um 07:44:55 Uhr
Goto Top
Wenn du mit $_REQUEST arbeitest könnte jemand Variablen einschleusen (index.php?variable=wert) da $_REQUEST alle $_POST und $_GET Variablen zusammenführt.

Die Seite wird neu geladen beim Klick auf auf den Button "Speichern".

Ich glaube das Problem bei deinem Fall ist dass du die Query zu spät auf deiner Seite aufrufst. Wenn du deinen Quellcode gleich zu Beginn aufrufst, dann wird die $_SESSION Variable gleich gesetzt und alle echo $_SESSION['username'] werden richtig ausgeben.

Selbstverständlich erscheint der alte Inhalt noch wenn du den Code nach einem "echo" ausführst.


Eventuell könntest du mit <div id="username"></div> den Inhalt aller id="username" Felder mittels Javascript ändern.
Mitglied: Sapzero
Sapzero 05.01.2009 um 12:24:08 Uhr
Goto Top
Achso das ist dann wohl SQL Injection und das kann ich dann mit $_POST umgehen?
Mitglied: Arano
Arano 05.01.2009 um 20:35:52 Uhr
Goto Top
Nein, nicht wirklich !
Eine SQL-Injection ist etwas anderes.
<?php
  // Ein Wert von einem Formular (ein Name):
  $_POST['name']='Arano';  
  // Ein Query um ihn in einer Datenbank zu speichern:
  $query="INSERT INTO `tab` (`name`)  
               VALUES ('$_POST['name']')";  
  // Hier wird in dem Query die Variable surch den Wert des Formulares ersetzt=
  $query="INSERT INTO `tab` (`name`)  
               VALUES ('Arano')";  
  // Soweit klar ? Alles okay, aer was wenn ich keinen Namen ins Formualr eintrage, sondern etwas PHP-Code:
  $_POST['name']='Cracker\')"; echo $admin_pwd.\',\'.$admin_name; echo "';  
  /* Die einfachen Anführungszeichen musste ich wegen des Syntaxhiglighs maskieren */
  // Daraus würde möglicherweise ein Query wie dieser:
  $query="INSERT INTO `tab` (`name`)  
               VALUES ('Cracker')"; echo $admin_pwd.','.$admin_name; echo "')";  
  // Schaut man ihn sich nun genauer an, erkennt man, das der eigentliche Query okay ist aber danach direkt die Zugangsdaten angezeigt werden:
  $query="INSERT INTO `tab` (`name`)  
               VALUES ('Cracker')";  
  echo $admin_pwd.','.$admin_name;  
  echo "')";  
?>
Dies ist nur ein kleines Beispiel, das es verdeutlichen soll, unter umständen, wäre es so vielleicht auch möglich, den ganzen Server zu Cnacken und für eigene Zwecke zu missbrauchen (z.B. Spam verschicken, XXX-Filme verteilen, oder schlimmeres)

Aber trotzdem lieber POST und GET verwenden, denn wie es Cubic83 schon erzählte, mit der REQUEST-Methode wäre es leichter für den Cracker. Und wir wollen ihnen ja nicht die Tore öffnen ;)
Gegen die Injections hilft es nur SÄMTLICHE Benutzereingaben zu überprüfen z.B das Preiseingaben nur aus Zahlen bestehen, oder Namen nur aus A-Z und min3-max20-Zeichen ect.pp
__Bei Formularen gilt:__
Alle Eingaben die von einem Benutzer (auch Admins) kommen, sind BÖSE !


Wegen der Header-Weiterleitung:
update.php
<?php
 session_start();
 $_SESSION['username']=$_POST['neuer_username'];  
 header('Location: http://www.example.com/formular.php');  
?>
formular.php
<?php
 session_start();
?>
<html>
 <head>
  <title>blubb</title>
 </head>
 <body>
 
  <form action="./update.php" method="POST">  
   <input type="text"   name="neuer_username" value="<?php echo $_SESSION['username']; ?>"><br>  
   <input type="submit" name="upd_name_btn" value="Aktualisieren">  
  </form>
 
 </body>
</html>
Hier sollen (sollten, habs nur mal schnell getippt, nicht getestet) die Daten des Formulares an update.php geschickt werden, dies verarbeite sie und leitet dann wieder auf das Formular weiter, welches nun die aktualisierten Daten aus der Session liest.
(Das ist nur ein Beispiel also null sicherheit und von JEDEM aufrufbar ! [sowie kein Injectionschutz]).
Deswegen Fragte ich dich wie es bei dir aussieht, es gibt bekanntlich viele Wege die nach Rom führen :D


So, jetzt jetzt bin ich etwas durcheinander - zuviele dinge aufn mal... ähm.. hoffe ich habe jetzt aber alles, bis morgen.

~Arano
Mitglied: Sapzero
Sapzero 05.01.2009 um 22:18:39 Uhr
Goto Top
Also ehrlich gesagt bin ich jetzt ziemlich überfordert ich blicke ja garnet mehr durch :P
Soll ich mal den ganzen code Posten den ich habe vllt findest du ja eine Möglichkeit, wie ich meinen Code erweitern muss .
Mitglied: Arano
Arano 06.01.2009 um 15:41:45 Uhr
Goto Top
Das ist ja das, was ich meine.
Wenn dien gesamter Quelltext sehr lang ist, kannst du den auch hier "speichern" und uns den link geben.

~Arano
Mitglied: Sapzero
Sapzero 06.01.2009 um 18:17:36 Uhr
Goto Top
Sorry wusste nicht wie oder wo ich mein Quellcode speichern kann . :P


<?php session_start(); ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">  
<html xmlns="http://www.w3.org/1999/xhtml" dir="ltr">  

<head profile="http://gmpg.org/xfn/11">  
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />  
<meta name="description" content="description"/>  
<meta name="keywords" content="keywords"/>   
<meta name="author" content="author"/>   
<title>Homepage</title>
<link rel="stylesheet" href="style.css" type="text/css" media="screen" />  
<!--[if lte IE 7]><link rel="stylesheet" type="text/css" href="ie_fixes.css" media="screen" /><![endif]--> 
</head>
<body>

<div class="top">  
<div id="layout_wrapper">  
<div id="layout_edgetop"></div>  

<div id="layout_container">  

	<div id="site_title">  

		<h1 class="left"><a href="#">Homepage</a></h1>  
		<h2 class="right">	Homepage in Entwicklung</h2>  

		<div class="clearer">&nbsp;</div>  

	</div>

	<div id="top_separator"></div>  

	<div id="navigation">  

		<div id="tabs">  
			
			<ul>
				<li><a href="index.html"><span>Home</span></a></li>  
				<li class="current_page_item"><a href="account.html"><span>Account</span></a></li>  
				<li><a href="ftp.html"><span>FTP</span></a></li>  
				<li><a href="archive.html"><span>Archive</span></a></li>  
				<li><a href="kontakt.html"><span>Kontakt</span></a></li>  
				<li><a href="faq.html"><span>FAQ</span></a></li>  
								
			</ul>

	  </div>
	  <div class="clearer">&nbsp;</div>  
	</div>

	<div class="spacer h5"></div>  

	<div id="main">  

		<div class="left" id="main_left">  

			<div id="main_left_content">  
		
				<div class="post">  
					
					<div class="post_title">  
						<h1 class="left"><a href="#">Account</a></h1>  
						<div class="post_date right">  
						
							<!-- aktuelles Datum -->
							<script language="javascript" type="text/javascript">  
  								 var d = new Date();
  							 	 wt = d.getDay();
						     	 var Wochentag = new Array("Sonntag","Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag");  
						         document.write(Wochentag[wt]+", "+d.getDate()+"."+(d.getMonth()+1)+"."+(d.getYear()+1900));  
							 </script>
							 
						</div>
						<div class="clearer">&nbsp;</div>  
					</div>

					<div class="post_body">  
						
						<p>In dieser Rubrik kannst du dein Profil verwalten.</p>

						<div class="post_metadata">  
							<div class="content">  
								<div class="right">  
									<span class="comment"><a href="#">Hilfe</a></span>  
								</div>
								<div class="clearer">&nbsp;</div>  
							</div>
						</div>				
					</div>
					<div class="post_bottom"></div>  
				</div>

				<div class="post">  
					
					<div class="post_title">  
						<h1 class="left"><a href="#">Mein Profil</a></h1>  
						<div class="clearer">&nbsp;</div>  
					</div>
				
					<div class="post_body">  
					
<?php 

  // Datenbankverbindung
  //---------------------------------------------------				  
  //MIT DEM MySQL SERVER VERBINDEN
  
	$mysqluser = "root";		// Ihr MySQL Benutzername  
	$mysqlpasswd = "";			// Ihr MySQL Passwort  
	$mysqlhost = "localhost";	// Adresse des Datenbankservers, meist localhost  
	$db_name = "RegistryDB";	// Name der Datenbank  

	$connID = @mysql_connect($mysqlhost, $mysqluser, $mysqlpasswd);
         if ($connID == false)
           {
    	 //  echo "Leider kann keine Verbindung hergestellt werden<br>";  
         //  or die ("Konnte keine Verbindung zur Datenbank herstellen<br/>").mysql_error.("<br/>");  
             $verbunden=0;
           }
            else
           {
         //  echo "Verbindung hergestellt<br>";  
             $verbunden=1;
			 mysql_query("USE $db_name");  
           }
	//---------------------------------------------------

?>
<?php

if(isset($_SESSION['passwort']) && ($_SESSION['username']))  
{
	$username = $_SESSION['username'];  
	$passwort = $_SESSION['passwort'];  
	
/*	$vergleich = "SELECT Username, Vorname, Nachname, eMail FROM tblRegistry  
				  WHERE Username = '$username'  
				  AND Passwort = '$passwort'";  
	$erfolg = mysql_query($vergleich);
	while($daten_neu = mysql_fetch_assoc($erfolg))
	{
    	$daten_neu["Username"];  
		$daten_neu["Vorname"];  
		$daten_neu["Nachname"];  
		$daten_neu["eMail"];  
	}
*/	
	$vergleich = "SELECT Username FROM tblRegistry  
				  WHERE Username = '$username'  
				  AND Passwort = '$passwort'";  
	$erfolg = mysql_query($vergleich);
	$username_acc = mysql_fetch_assoc($erfolg);
    $username_acc["Username"];  
				
	$vergleich  = "SELECT Vorname FROM tblRegistry  
				   WHERE Username = '$username'  
				   AND Passwort = '$passwort'";  
	$erfolg = mysql_query($vergleich);
	$vorname_acc = mysql_fetch_assoc($erfolg);
    $vorname_acc["Vorname"];  
	
	$vergleich = "SELECT Nachname FROM tblRegistry  
				  WHERE Username = '$username'  
				  AND Passwort = '$passwort'";  
	$erfolg = mysql_query($vergleich);
	$nachname_acc = mysql_fetch_assoc($erfolg);
    $nachname_acc["Nachname"];  
	
	$vergleich = "SELECT eMail FROM tblRegistry  
				  WHERE Username = '$username'  
				  AND Passwort = '$passwort'";  
	$erfolg = mysql_query($vergleich);
	$email_acc = mysql_fetch_assoc($erfolg);
    $email_acc["eMail"];  
	
}
					  
?>
<?php 

$_POST['abschicken1'];  
$_POST['abschicken2'];  
$_POST['abschicken3'];  
$_POST['abschicken4'];  

$username_neu = $_POST['username_neu'];  
$passwort_alt = $_POST['pass_alt'];  
$passwort_neu = $_POST['pass_neu'];  
$passwort_neu2 = $_POST['pass_neu2'];  
$vorname_neu = $_POST['vorname_neu'];  
$nachname_neu = $_POST['nachname_neu'];  
$email_neu = $_POST['email_neu'];  

//Usernamen ändern
if($_POST['abschicken1'])  
{
	if(strlen($username_neu)>=4)
	{
		echo "Ihr Username wurde geändert.<br>";  
					
		$aendern = "UPDATE tblRegistry  
		 			SET Username = '$username_neu'  
					WHERE Username = '$username'  
				    AND Passwort = '$passwort'";  
		$update = mysql_query($aendern);
		
		$_SESSION['username'] = $username_neu;  
    }
	else
	{
		echo "Ihr Username muss mindestens 2 Zeichen beinhalten.<br>";  
	}
}

//Passwort ändern
if($_POST['abschicken2'])  
{
	if($passwort_alt == $_SESSION['passwort'])  
	{
		if(strlen($passwort_neu)>=4)
		{
			if($passwort_neu == $passwort_neu2)
			{
				echo "Ihr Passwort wurde geändert.<br>";  
				
				$aendern = "UPDATE tblRegistry  
		 					SET Passwort = '$passwort_neu'  
							WHERE Username = '$username'  
						    AND Passwort = '$passwort'";  
				$update = mysql_query($aendern);
				
				$_SESSION['passwort'] = $passwort_neu;  
				
			}
			else
			{
				echo "Sie haben das neue Passwort nicht 2 mal gleich angegeben.<br>";   
			}	
		}
		else
		{
			echo "Ihr Passwort muss mindesten 4 Zeichen beinhalten.<br>";  
		}
	}
	else
	{
		echo "Sie haben Ihr altes Passwort nicht richtig eingegeben.<br>";  
	}
}

//Vorname und Nachname ändern
if($_POST['abschicken3'])  
{
	echo "Ihr Vorname und Nachname wurde geändert.<br>";  
	
	$aendern = "UPDATE tblRegistry  
				SET Vorname = '$vorname_neu', Nachname = '$nachname_neu'  
				WHERE Username = '$username'  
			    AND Passwort = '$passwort'";  
	$update = mysql_query($aendern);
}

//E-Mail Adresse ändern
if($_POST['abschicken4'])  
{
	if(strpos($email_neu, "@") && strpos($email_neu, "."))   
	{	
		echo "Ihre E-Mail Adresse wurde geändert.<br>";  
		
		$aendern = "UPDATE tblRegistry  
					SET eMail = '$email_neu'  
					WHERE Username = '$username'  
					AND Passwort = '$passwort'";  
		$update = mysql_query($aendern);
	}
	else
	{
		echo "Ihre E-Mail Adresse wurde nicht richtig angegeben und konnte somit nicht geändert werden.<br>";  
	}
}

?>
						
					<p></p>
					<form name="profil" method="post" action="">  
					<table width="100%" border="0" cellspacing="0" cellpadding="5">  
                      <tr> 
                        <td width="50%" height="20">   
                          <div align="right"><b>Usernname: &nbsp;</b></div></td>  
                        <td width="50%">   
                          <div style="margin-left: 1em"><b><?php echo $username_acc["Username"]?></b></div>  
						</td>
                      </tr>
					  <tr> 
                        <td height="37"></td>  
                        <td> 
                          <input style="margin-left: 10px" type="text" name="username_neu" />  
                          <input style="margin-left: 2em" type="submit" name="abschicken1" value="ändern" class="formular" />  
						</td>
					  </tr>
					  <tr> 
                        <td height="10"></td>  
                        <td></td>
                      </tr>
					  <tr> 
                        <td height="30">   
                          <div align="right"><b>Passwort alt: &nbsp;</b></div></td>  
                        <td> 
                        <input style="margin-left: 10px" type="password" name="pass_alt" />  
						</td>
                      </tr>
					  <tr> 
                        <td height="30">   
                          <div align="right"><b>Passwort neu: &nbsp;</b></div></td>  
                        <td> 
                        <input style="margin-left: 10px" type="password" name="pass_neu" />  
						</td>
                      </tr>
					  <tr> 
                        <td height="30">   
                          <div align="right"><b>Passwort neu: &nbsp;</b></div></td>  
                        <td> 
                          <input style="margin-left: 10px" type="password" name="pass_neu2" />  
						  <input style="margin-left: 2em" type="submit" name="abschicken2" value="ändern" />  
						</td>
                      </tr>
					  <tr>
					    <td>
					    <div>_________________</div></td>
						<td>
					    <div>________________________________________________</div></td>
					  </tr>
					  <tr> 
                        <td height="15"></td>  
                        <td></td>
                      </tr>
					  <tr> 
                        <td height="20">   
                          <div align="right"><b>Vorname: &nbsp;</b></div></td>  
                        <td> 
                          <div style="margin-left: 1em"><b><?php echo $vorname_acc["Vorname"]?></b></div></td>  
                      </tr>
					  <tr> 
                        <td height="37"></td>  
                        <td> 
                          <input style="margin-left: 10px" type="text" name="vorname_neu" />  
						</td>
					  </tr>
					  <tr> 
                        <td height="20">   
                          <div align="right"><b>Nachname: &nbsp;</b></div></td>  
                        <td> 
                          <div style="margin-left: 1em"><b><?php echo $nachname_acc["Nachname"]?></b></div></td>  
                      </tr>
					  <tr> 
                        <td height="37"></td>  
                        <td> 
                          <input style="margin-left: 10px" type="text" name="nachname_neu" />  
                          <input style="margin-left: 2em" type="submit" name="abschicken3" value="ändern" /></td>  
					  </tr>
                      <tr>
					    <td>
					    <div>_________________</div></td>
						<td>
					    <div>________________________________________________</div></td>
					  </tr>
					  <tr> 
                        <td height="15"></td>  
                        <td></td>
                      </tr>
					  <tr> 
                        <td height="20">   
                          <div align="right"><b>E-Mail: &nbsp;</b></div></td>  
                        <td> 
                          <div style="margin-left: 1em"><b><?php echo $email_acc["eMail"]?></b></div>  
						</td>
                      </tr>
					  <tr> 
                        <td height="37"></td>  
                        <td> 
                          <input style="margin-left: 10px" type="text" name="email_neu" />  
                          <input style="margin-left: 2em" type="submit" name="abschicken4" value="ändern" />  
						</td>
					  </tr>
                    </table>
				</form>

						<div class="post_metadata">  
							<div class="content">  
								<div class="right">  
									<span class="comment"><a href="#">Hilfe</a></span>  
								</div>
								<div class="clearer">&nbsp;</div>  
							</div>
						</div>
					</div>
					<div class="post_bottom"></div>  
				</div>
		
				<div class="pagenavigation">  
					<div class="pagenav">  
						<div class="left"><a href="#">&laquo; Seitenanfang</a></div>  
						<div class="right"></div>  
						<div class="clearer">&nbsp;</div>  
					</div>
					<div class="pagenav_bottom"></div>  
				</div>

			</div>

		</div>

		<div class="right" id="main_right">  
	
			<div id="sidebar">  

				<div class="box">  
					<div class="box_title">Search</div>  
					<div class="box_body">  
					
						<form method="get" id="searchform" action="#">  
						<div>
							<table class="search">  
							<tr>
								<td><input type="text" value="" name="search" id="s" /></td>  
								<td style="padding-left: 10px"><input type="image" src="img/button_go.gif" /></td>  
							</tr>
							</table>
						</div>
						</form>
						
					</div>
					<div class="box_bottom"></div>  
				</div>

				<div class="box">  
					<div class="box_title">Archive</div>  
					<div class="box_body">  
						<ul>
							<li><a href="#">Dezember 2008</a> (5)</li>  
							<li><a href="#">November 2008</a> (2)</li>  
							
						</ul>
					</div>
					<div class="box_bottom"></div>  
				</div>

				<div class="box">  
					<div class="box_title">Categories</div>  
					<div class="box_body">  
						<ul>
							<li><a href="#">....</a> (5)</li>  
							
					</div>
					<div class="box_bottom"></div>  
				</div>
								
				<div class="box">  
					<div class="box_title">Links</div>  
					<div class="box_body">  
						<ul>
							
							<!-- gute links-->
							<li><a href="http://gmx.net">GMX</a></li>  
							
						</ul>
					</div>
					<div class="box_bottom"></div>  
				</div>

				<div class="box">  
					<div class="box_title">Galerie</div>  
					<div class="box_body p10">  
						
								<!-- Fotogalerie -->						
						        &nbsp;<a href="galerie.html"><img src="galerie/sample-thumbnail.jpg" width="90" height="90" alt="" /></a>&nbsp;&nbsp;  
								<a href="galerie.html"><img src="galerie/sample-thumbnail.jpg" width="90" height="90" alt="" /></a>  
								&nbsp;<a href="galerie.html"><img src="galerie/sample-thumbnail.jpg" width="90" height="90" alt="" /></a>&nbsp;&nbsp;  
								<a href="galerie.html"><img src="galerie/sample-thumbnail.jpg" width="90" height="90" alt="" /></a>  
														
					</div>
					<div class="box_bottom"></div>  
				</div>
			</div>
		</div>
		<div class="clearer">&nbsp;</div>  
	</div>

	<div id="footer">  

		<div class="clearer">&nbsp;</div>  
	
	</div>

</div>
<div id="layout_edgebottom"></div>  
</div>
</div>

</body>
</html>
Mitglied: Arano
Arano 06.01.2009 um 19:19:35 Uhr
Goto Top
Nasiehste, da haben wir´s doch *g*

Wie ichs vermutet hatte, der Username wird aus der Datenbank gelesen, in der Datenbank aktualisiert und dann das Ausgelesene (von VOR der aktualisierung) ausgegeben.

Zeile 148-153 Username aus der DB lesen und in Variable speichern.
Zeile 201-205
DB-Eintrag aktualisieren - nicht die Variable !
Zeile 291 // Variable mit (mittlerweile veraltetem) Usernamen ausgeben.

Das gilt auch für alle anderen Daten, sie werden erst ausgelesen, dann aktualisiert und dann werden die alten Daten weiterverarbeitet.
Also, erste alle Datensätz bearbeiten (erstellen, aktualisieren, löschen, was auch immer) und dann zur Ausgabe auslesen ;)


Und jetzt noch ein bisschen was:
anstelle von diesem
	$vergleich = "SELECT Username FROM tblRegistry  
				  WHERE Username = '$username'  
				  AND Passwort = '$passwort'";  
	$erfolg = mysql_query($vergleich);
	$username_acc = mysql_fetch_assoc($erfolg);
    $username_acc["Username"];  
				
	$vergleich  = "SELECT Vorname FROM tblRegistry  
				   WHERE Username = '$username'  
				   AND Passwort = '$passwort'";  
	$erfolg = mysql_query($vergleich);
	$vorname_acc = mysql_fetch_assoc($erfolg);
    $vorname_acc["Vorname"];  
	
	$vergleich = "SELECT Nachname FROM tblRegistry  
				  WHERE Username = '$username'  
				  AND Passwort = '$passwort'";  
	$erfolg = mysql_query($vergleich);
	$nachname_acc = mysql_fetch_assoc($erfolg);
    $nachname_acc["Nachname"];  
	
	$vergleich = "SELECT eMail FROM tblRegistry  
				  WHERE Username = '$username'  
				  AND Passwort = '$passwort'";  
	$erfolg = mysql_query($vergleich);
	$email_acc = mysql_fetch_assoc($erfolg);
    $email_acc["eMail"];  
verwende folgendes:
	$vergleich = "SELECT Username,Vorname,Nachname,eMail FROM tblRegistry  
				  WHERE Username = '$username'  
				  AND Passwort = '$passwort'";  
	$erfolg = mysql_query($vergleich);
        // hier sollte man noch mal kontrollieren ob der Query erfolgreich ausgeführt wurde und ob es überhaupt ein Ergebnis gibt - auch eine Abfrage die nichts zurückliefert (z.B. Tippfehler im Passwort) wurde erfolgreich ausgeführt !
        $userdaten=mysql_fetch_assoc($erfolg);
         // $userdaten ist nun ein Array, das alle ausgelesenen Daten enthält
        /*
         $userdaten['Vorname'] 
         $userdaten['Nachname'] 
         ...
        */

In den Zeilen 153,160,167,174,181,182,183 und 184 stellst du einfach ein paar Variablen in den Raum, warum ?

Bei den einzelnen änderungsdurchführungen gibst du erst aus das es erfolgreich war, obwohl die Änderung erst danach durchgeführt wird. Was den nun wenn diese doch fehlschlägt ?
Dann hast du dort stehen, das die Änderung Erfolgreich war, geändert hat sich aber nichts ;)


Achso, ich muss mich noch bei dir entschuldigen !
Tut mir leid !
Ich sagte vorhin, das du den Quelltext hier "speichern" kannst wenn er zu lang ist.
Dummerweise habe ich vergessen dir den Link zu geben :D
Mir "hier" meinte ich übrigens Pastie.org.

So, dann erstmal frohes schaffen und weiterhin viel Erfolg !
~Arano
Mitglied: Sapzero
Sapzero 08.01.2009 um 14:50:37 Uhr
Goto Top
Hallo Arano,
es funktioniert jetzt mit dem Aktualisieren. Danke für deine Hilfe und sorry dass ich erst so spät antworte.
Jedoch habe ich nun einen anderen Fehler endeckt den ich zuvor nicht gesehen habe undzwar wenn ich nach der Usernamen änderung mich mit einem anderen User anmelde ändert er auch dort den Usernamen.
Hast du vielleich eine Idee wie ich das verhindern kann?

Bei den einzelnen änderungsdurchführungen gibst du erst aus das es erfolgreich war, obwohl die Änderung erst danach durchgeführt wird. Was den nun wenn diese doch fehlschlägt ?
Also müsste ich noch erst mit einem if überprüfen, ob der query erfolgreich war und dann erfolgreich ausgeben oder?

Hier nochmal der geänderte Code:

<?php session_start(); ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">  
<html xmlns="http://www.w3.org/1999/xhtml" dir="ltr">  

<head profile="http://gmpg.org/xfn/11">  
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />  
<meta name="description" content="description"/>  
<meta name="keywords" content="keywords"/>   
<meta name="author" content="author"/>   
<title>Sapsiz Homepage</title>
<link rel="stylesheet" href="style.css" type="text/css" media="screen" />  
<!--[if lte IE 7]><link rel="stylesheet" type="text/css" href="ie_fixes.css" media="screen" /><![endif]--> 
</head>
<body>

<div class="top">  
<div id="layout_wrapper">  
<div id="layout_edgetop"></div>  

<div id="layout_container">  

	<div id="site_title">  

		<h1 class="left"><a href="#">Sapsiz</a></h1>  
		<h2 class="right">	Homepage in Entwicklung</h2>  

		<div class="clearer">&nbsp;</div>  

	</div>

	<div id="top_separator"></div>  

	<div id="navigation">  

		<div id="tabs">  
			
			<ul>
				<li><a href="index.html"><span>Home</span></a></li>  
				<li class="current_page_item"><a href="account.html"><span>Account</span></a></li>  
				<li><a href="ftp.html"><span>FTP</span></a></li>  
				<li><a href="archive.html"><span>Archive</span></a></li>  
				<li><a href="kontakt.html"><span>Kontakt</span></a></li>  
				<li><a href="faq.html"><span>FAQ</span></a></li>  
								
			</ul>

	  </div>
	  <div class="clearer">&nbsp;</div>  
	</div>

	<div class="spacer h5"></div>  

	<div id="main">  

		<div class="left" id="main_left">  

			<div id="main_left_content">  
		
				<div class="post">  
					
					<div class="post_title">  
						<h1 class="left"><a href="#">Account</a></h1>  
						<div class="post_date right">  
						
							<!-- aktuelles Datum -->
							<script language="javascript" type="text/javascript">  
  								 var d = new Date();
  							 	 wt = d.getDay();
						     	 var Wochentag = new Array("Sonntag","Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag");  
						         document.write(Wochentag[wt]+", "+d.getDate()+"."+(d.getMonth()+1)+"."+(d.getYear()+1900));  
							 </script>
							 
						</div>
						<div class="clearer">&nbsp;</div>  
					</div>

					<div class="post_body">  
						
						<p>In dieser Rubrik kannst du dein Profil verwalten.</p>

						<div class="post_metadata">  
							<div class="content">  
								<div class="right">  
									<span class="comment"><a href="#">Hilfe</a></span>  
								</div>
								<div class="clearer">&nbsp;</div>  
							</div>
						</div>				
					</div>
					<div class="post_bottom"></div>  
				</div>

				<div class="post">  
					
					<div class="post_title">  
						<h1 class="left"><a href="#">Mein Profil</a></h1>  
						<div class="clearer">&nbsp;</div>  
					</div>
				
					<div class="post_body">  
					
<?php 

  // Datenbankverbindung
  //---------------------------------------------------				  
  //MIT DEM MySQL SERVER VERBINDEN
  
	$mysqluser = "root";		// Ihr MySQL Benutzername  
	$mysqlpasswd = "";			// Ihr MySQL Passwort  
	$mysqlhost = "localhost";	// Adresse des Datenbankservers, meist localhost  
	$db_name = "RegistryDB";	// Name der Datenbank  

	$connID = @mysql_connect($mysqlhost, $mysqluser, $mysqlpasswd);
         if ($connID == false)
           {
    	 //  echo "Leider kann keine Verbindung hergestellt werden<br>";  
         //  or die ("Konnte keine Verbindung zur Datenbank herstellen<br/>").mysql_error.("<br/>");  
             $verbunden=0;
           }
            else
           {
         //  echo "Verbindung hergestellt<br>";  
             $verbunden=1;
			 mysql_query("USE $db_name");  
           }
	//---------------------------------------------------

?>
<?php

if(isset($_SESSION['passwort']) && ($_SESSION['username']))  
{
	$username = $_SESSION['username'];  
	$passwort = $_SESSION['passwort'];  
	
	$vergleich = "SELECT Username, Vorname, Nachname, eMail FROM tblRegistry  
				  WHERE Username = '$username'  
				  AND Passwort = '$passwort'";  
	$erfolg = mysql_query($vergleich);
	$userdaten = mysql_fetch_assoc($erfolg);
	
    	$userdaten["Username"];  
		$userdaten["Vorname"];  
		$userdaten["Nachname"];  
		$userdaten["eMail"];  
	
}
					  
?>
<?php 

$_POST['abschicken1'];  
$_POST['abschicken2'];  
$_POST['abschicken3'];  
$_POST['abschicken4'];  

$username_neu = $_POST['username_neu'];  
$passwort_alt = $_POST['pass_alt'];  
$passwort_neu = $_POST['pass_neu'];  
$passwort_neu2 = $_POST['pass_neu2'];  
$vorname_neu = $_POST['vorname_neu'];  
$nachname_neu = $_POST['nachname_neu'];  
$email_neu = $_POST['email_neu'];  

//Usernamen ändern
if($_POST['abschicken1'])  
{
	if(strlen($username_neu)>=4)
	{
		$aendern = "UPDATE tblRegistry  
		 			SET Username = '$username_neu'  
					WHERE Username = '$username'  
				    AND Passwort = '$passwort'";  
		$update = mysql_query($aendern);
		
		$_SESSION['username'] = $username_neu;  
		$userdaten["Username"] = $username_neu;  
		
                //erst überprüfen
		echo "Ihr Username wurde geändert.<br>";	  
    }
	else
	{
		echo "Ihr Username muss mindestens 2 Zeichen beinhalten.<br>";  
	}
}

//Passwort ändern
if($_POST['abschicken2'])  
{
	if($passwort_alt == $_SESSION['passwort'])  
	{
		if(strlen($passwort_neu)>=4)
		{
			if($passwort_neu == $passwort_neu2)
			{
				$aendern = "UPDATE tblRegistry  
		 					SET Passwort = '$passwort_neu'  
							WHERE Username = '$username'  
						    AND Passwort = '$passwort'";  
				$update = mysql_query($aendern);
				
				$_SESSION['passwort'] = $passwort_neu;  
	
                               //erst überprüfen
				echo "Ihr Passwort wurde geändert.<br>";  
			}
			else
			{
				echo "Sie haben das neue Passwort nicht 2 mal gleich angegeben.<br>";   
			}	
		}
		else
		{
			echo "Ihr Passwort muss mindesten 4 Zeichen beinhalten.<br>";  
		}
	}
	else
	{
		echo "Sie haben Ihr altes Passwort nicht richtig eingegeben.<br>";  
	}
}

//Vorname und Nachname ändern
if($_POST['abschicken3'])  
{
	$aendern = "UPDATE tblRegistry  
				SET Vorname = '$vorname_neu', Nachname = '$nachname_neu'  
				WHERE Username = '$username'  
			    AND Passwort = '$passwort'";  
	$update = mysql_query($aendern);
	
	$userdaten["Vorname"] = $vorname_neu;  
	$userdaten["Nachname"] = $nachname_neu;  

       //erst überprüfen
	echo "Ihr Vorname und Nachname wurde geändert.<br>";  
}

//E-Mail Adresse ändern
if($_POST['abschicken4'])  
{
	if(strpos($email_neu, "@") && strpos($email_neu, "."))   
	{	
		$aendern = "UPDATE tblRegistry  
					SET eMail = '$email_neu'  
					WHERE Username = '$username'  
					AND Passwort = '$passwort'";  
		$update = mysql_query($aendern);
		
		$userdaten["eMail"] = $email_neu;  
		
                //erst überprüfen
		echo "Ihre E-Mail Adresse wurde geändert.<br>";  
	}
	else
	{
		echo "Ihre E-Mail Adresse wurde nicht richtig angegeben und konnte somit nicht geändert werden.<br>";  
	}
}

?>
						
					<p></p>
					<form name="profil" method="post" action="">  
					<table width="100%" border="0" cellspacing="0" cellpadding="5">  
                      <tr> 
                        <td width="50%" height="20">   
                          <div align="right"><b>Username: &nbsp;</b></div></td>  
                        <td width="50%">   
                          <div style="margin-left: 1em"><b><?php echo $userdaten["Username"]?></b></div>  
						</td>
                      </tr>
					  <tr> 
                        <td height="37"></td>  
                        <td> 
                          <input style="margin-left: 10px" type="text" name="username_neu" />  
                          <input style="margin-left: 2em" type="submit" name="abschicken1" value="ändern" class="formular" />  
						</td>
					  </tr>
					  <tr> 
                        <td height="10"></td>  
                        <td></td>
                      </tr>
					  <tr> 
                        <td height="30">   
                          <div align="right"><b>Passwort alt: &nbsp;</b></div></td>  
                        <td> 
                        <input style="margin-left: 10px" type="password" name="pass_alt" />  
						</td>
                      </tr>
					  <tr> 
                        <td height="30">   
                          <div align="right"><b>Passwort neu: &nbsp;</b></div></td>  
                        <td> 
                        <input style="margin-left: 10px" type="password" name="pass_neu" />  
						</td>
                      </tr>
					  <tr> 
                        <td height="30">   
                          <div align="right"><b>Passwort neu: &nbsp;</b></div></td>  
                        <td> 
                          <input style="margin-left: 10px" type="password" name="pass_neu2" />  
						  <input style="margin-left: 2em" type="submit" name="abschicken2" value="ändern" />  
						</td>
                      </tr>
					  <tr>
					    <td>
					    <div>_________________</div></td>
						<td>
					    <div>________________________________________________</div></td>
					  </tr>
					  <tr> 
                        <td height="15"></td>  
                        <td></td>
                      </tr>
					  <tr> 
                        <td height="20">   
                          <div align="right"><b>Vorname: &nbsp;</b></div></td>  
                        <td> 
                          <div style="margin-left: 1em"><b><?php echo $userdaten["Vorname"]?></b></div></td>  
                      </tr>
					  <tr> 
                        <td height="37"></td>  
                        <td> 
                          <input style="margin-left: 10px" type="text" name="vorname_neu" />  
						</td>
					  </tr>
					  <tr> 
                        <td height="20">   
                          <div align="right"><b>Nachname: &nbsp;</b></div></td>  
                        <td> 
                          <div style="margin-left: 1em"><b><?php echo $userdaten["Nachname"]?></b></div></td>  
                      </tr>
					  <tr> 
                        <td height="37"></td>  
                        <td> 
                          <input style="margin-left: 10px" type="text" name="nachname_neu" />  
                          <input style="margin-left: 2em" type="submit" name="abschicken3" value="ändern" /></td>  
					  </tr>
                      <tr>
					    <td>
					    <div>_________________</div></td>
						<td>
					    <div>________________________________________________</div></td>
					  </tr>
					  <tr> 
                        <td height="15"></td>  
                        <td></td>
                      </tr>
					  <tr> 
                        <td height="20">   
                          <div align="right"><b>E-Mail: &nbsp;</b></div></td>  
                        <td> 
                          <div style="margin-left: 1em"><b><?php echo $userdaten["eMail"]?></b></div>  
						</td>
                      </tr>
					  <tr> 
                        <td height="37"></td>  
                        <td> 
                          <input style="margin-left: 10px" type="text" name="email_neu" />  
                          <input style="margin-left: 2em" type="submit" name="abschicken4" value="ändern" />  
						</td>
					  </tr>
                    </table>
				</form>

						<div class="post_metadata">  
							<div class="content">  
								<div class="right">  
									<span class="comment"><a href="#">Hilfe</a></span>  
								</div>
								<div class="clearer">&nbsp;</div>  
							</div>
						</div>
					</div>
					<div class="post_bottom"></div>  
				</div>
		
				<div class="pagenavigation">  
					<div class="pagenav">  
						<div class="left"><a href="#">&laquo; Seitenanfang</a></div>  
						<div class="right"></div>  
						<div class="clearer">&nbsp;</div>  
					</div>
					<div class="pagenav_bottom"></div>  
				</div>

			</div>

		</div>

		<div class="right" id="main_right">  
	
			<div id="sidebar">  

				<div class="box">  
					<div class="box_title">Search</div>  
					<div class="box_body">  
					
						<form method="get" id="searchform" action="#">  
						<div>
							<table class="search">  
							<tr>
								<td><input type="text" value="" name="search" id="s" /></td>  
								<td style="padding-left: 10px"><input type="image" src="img/button_go.gif" /></td>  
							</tr>
							</table>
						</div>
						</form>
						
					</div>
					<div class="box_bottom"></div>  
				</div>

				<div class="box">  
					<div class="box_title">Archive</div>  
					<div class="box_body">  
						<ul>
							<li><a href="#">December 2007</a> (5)</li>  
							<li><a href="#">June 2007</a> (2)</li>  
							<li><a href="#">May 2007</a> (6)</li>  
							<li><a href="#">March 2007</a> (12)</li>  
							<li><a href="#">February 2007</a> (8)</li>  
							<li><a href="#">May 2007</a> (10)</li>  
						</ul>
					</div>
					<div class="box_bottom"></div>  
				</div>

				<div class="box">  
					<div class="box_title">Categories</div>  
					<div class="box_body">  
						<ul>
							<li><a href="#">Single Column</a> (5)</li>  
							<li><a href="#">Three Columns</a> (2)</li>  
							<li><a href="#">Two Columns</a> (14)</li>  
						</ul>
					</div>
					<div class="box_bottom"></div>  
				</div>
								
				<div class="box">  
					<div class="box_title">Links</div>  
					<div class="box_body">  
						<ul>
							
							<!-- gute links-->
							<li><a href="http://gametrailers.com">Gametrailers</a></li>  
							<li><a href="http://gmx.net">GMX</a></li>  
							
						</ul>
					</div>
					<div class="box_bottom"></div>  
				</div>

				<div class="box">  
					<div class="box_title">Galerie</div>  
					<div class="box_body p10">  
						
								<!-- Fotogalerie -->						
						        &nbsp;<a href="galerie.html"><img src="galerie/sample-thumbnail.jpg" width="90" height="90" alt="" /></a>&nbsp;&nbsp;  
								<a href="galerie.html"><img src="galerie/sample-thumbnail.jpg" width="90" height="90" alt="" /></a>  
								&nbsp;<a href="galerie.html"><img src="galerie/sample-thumbnail.jpg" width="90" height="90" alt="" /></a>&nbsp;&nbsp;  
								<a href="galerie.html"><img src="galerie/sample-thumbnail.jpg" width="90" height="90" alt="" /></a>  
														
					</div>
					<div class="box_bottom"></div>  
				</div>
			</div>
		</div>
		<div class="clearer">&nbsp;</div>  
	</div>

	<div id="footer">  

		<div class="left">&#169; 2008 Website name</div>  

		<div class="right"><a href="http://templates.arcsin.se/">Website template</a> by <a href="http://arcsin.se/">Arcsin</a></div>  

		<div class="clearer">&nbsp;</div>  
	
	</div>

</div>
<div id="layout_edgebottom"></div>  
</div>
</div>

</body>
</html>