PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Formular - Datenübergabe an sich selbst


Ringo21
09.08.2009, 19:19:59
Ich schon wieder :-)


Ein weiteres Problem wo ich nicht ganz weiter komme:
Ich habe bei der Hompage eine index.php in der weitere Seiten per include aufgeruden werden z.B.: "index.php?page=settings"
Diese anderen php datein liegen in einem andern ordner. Jetzt habe ich wie im beispiel die Datei settings in der ich Einstellungen ändern möchte, sprich daten in der MySQL-Datenbank.
Die Daten die nun geändert sind sollen wieder an die Settings datei gesendet werden, sodass ich nicht zig datein rumfliegen hab, dass mach ich per
<?php
if(!$submit)
{
echo '
<form method="post" action="index.php?page=settings">
usw.
Jedoch funzt das nicht wirklich wie ich mir das gedacht hab.
Ist es so das das in der Form einfach nicht zu realisieren ist und ich somit noch ne extra datei z.B. save-settings Datei anlegen muss in der der kram letzenendes verarbeitet wird?
Das würd ich mir nämlich gern sparen da ich das mit if(!$submit) ne feine sache finde.


Danke schonmal für hoffentlich gute denkanstöße :-)


LG Ringo21

DokuLeseHemmung
09.08.2009, 19:27:42
Dein $submit sieht nicht register_globals=off konform aus.
Man sollte Get Parameter in Post Formularen vermeiden. Denn sie werden nach der Umstellung auf Get abgeschnitten. Für diesem Zweck wurden hidden Fields erfunden.

Und Ja, das sollte so gehen!
Siehe dazu Google: Affenformular

Ringo21
09.08.2009, 20:05:35
Hmm hab mir da nen paar sachen angesehen steige da aber nich ganz durch wie ich das auf meinem Formular anwenden muss...

Ich erlaube mir mal den ganzen code zu posten
<?php
if(!$submit)
{
echo '
<form action="'.$_SERVER['PHP_SELF'].'">
<input type="hidden" name="page" value="settings">
<table width="100%" cellspacing="2" cellpadding="2" border="0">
<tr>
<td colspan="2" height="95"><img src="./gfx/title_settings.png" width="330" height="95"></td>
</tr>
<tr>
<td height="20"></td>
</tr>
<tr>
<td width="200"><div class="standard">Nickname:</div></td>
<td><div class="standard">'.$nickname.'</div></td>
</tr>
<tr>
<td width="200"><div class="standard">Benutzername:</div></td>
<td><input type="text" name="benutzername" value="'.$benutzername.'" class="settings"></td>
</tr>
<tr>
<td width="200"><div class="standard">Emailadresse:</div></td>
<td><input type="text" name="email" value="'.$email.'" class="settings"></td>
</tr>
<tr>
<td width="200"><div class="standard">Neues Passwort:</div></td>
<td><input type="password" name="newpassword" class="settings"></td>
</tr>
<tr>
<td width="200"><div class="standard">Neues Passwort wiederholen:</div></td>
<td><input type="password" name="newpassword2" class="settings"></td>
</tr>
<tr>
<td width="200"><img src="./gfx/no_avatar.jpg" width="80" height="104"></td>
<td valign="top"><input type="file" name="file"><br><div class="standard">Wenn du ein Avatar hochladen m&ouml;chtest, klicke<br>auf "Durchsuchen" und w&auml;hle ein Bild auf deinem<br>Computer aus. Ansonsten wird das linke Bild angezeigt.</div></td>
</tr>
<tr>
<td colspan="2" align="center"><input type="submit" value="&Auml;nderungen speichern" name="Senden" class="button-save"></td>
</tr>
</table>
</form>';
}
else
{
include "./cfg/connect-db.php";
$sql = "UPDATE bentuzer SET benutzername ='".$bentuzername."' WHERE id='".$userid."'";
$query = mysql_query($sql) or die(mysql_error());
echo 'Alle daten Wurden aktualisiert!';
}
?>

Vielleicht kannste mir da nen tipp geben wie das hier anzuwenden währe!

vt1816
10.08.2009, 17:22:36
Hmm hab mir da nen paar sachen angesehen steige da aber nich ganz durch wie ich das auf meinem Formular anwenden muss...

[...]

Kennst Du $_POST[]?

DokuLeseHemmung
10.08.2009, 17:34:55
PHP_SELF kann XSS Attacken ermöglichen.

Ringo21
10.08.2009, 19:34:10
$_POST[] nee leider noch nich! Kenn mich halt noch echt nich so gut aus!
Und PHP_SELF kann XSS Attacken ermöglichen? Man dann gibgts aber Tuts die von Leuten geschrieben werden die sich wohl auch nich so auskennen behaupte ich mal!

DokuLeseHemmung
10.08.2009, 19:41:12
Ich behaupte:
90% aller verfügbaren Tutorials sind veraltet oder von Stümpern geschrieben.
Die erste Anlaufstelle sollte IMMER das PHP Manual sein.

vt1816
10.08.2009, 20:38:06
$_POST[] nee leider noch nich! Kenn mich halt noch echt nich so gut aus!
Und PHP_SELF kann XSS Attacken ermöglichen? Man dann gibgts aber Tuts die von Leuten geschrieben werden die sich wohl auch nich so auskennen behaupte ich mal!

$_POST[] (http://de.php.net/manual/de/reserved.variables.post.php)

XSS Attacken (http://de.wikipedia.org/wiki/Cross-Site_Scripting)

Ringo21
10.08.2009, 22:51:51
Jo vielen dank für die tollen Infos, habs jetzt auch hinbekomm!

Also nochmal großen dank an euch!