-
17.01.12 18:24 #1
- Registriert seit
- Jun 2011
- Ort
- Wiener Neustadt / Österreich
- Beiträge
- 165
Hallo
ich habe folgendes problem
ich möchte die user daten per formulat ändern aber in der sql wird umlaute so gespeichert
"Ã********Ã****Ã?Â"
so schaut mein code aus
und hier das formularPHP-Code:<?php
// ZUM BEARBEITEN VON USER DATEN
if(isset($_POST['doSave']) && $_POST['doSave'] == 'Speichern') {
// Filter POST data for harmful code (sanitize)
foreach($_POST as $key => $value) {
$data[$key] = filter($value);
}
mysql_query("UPDATE users SET
`user_name` = '$data[name]',
`adresse` = '$data[adresse]',
`ort` = '$data[ort]',
`plz` = '$data[plz]',
`tel` = '$data[tel]'
WHERE id = '$_GET[id]'
");
$msg[] = "Ihre Daten wurden erfogreich geändert";
}
$rs_settings = mysql_query("select * from users where id='$_GET[id]'");
?>
hab schon einiges ausprobiert aber aber die lösung noch nicht gefundenPHP-Code:<?php while ($row_settings = mysql_fetch_array($rs_settings)) {?>
<form action="" id="contactForm" method="post" name="myform" >
<ul class="forms">
<li class="odd"> <span class="name">UserName</span>
<input type="text" name="name" class="mid" value="<?php echo $row_settings['user_name']; ?> " /> </li>
<li class="odd"> <span class="name">Adresse</span>
<input type="text" name="adresse" class="mid" value="<?php echo $row_settings['adresse']; ?> " /> </li>
<li class="odd"> <span class="name">Ort</span>
<input type="text" name="ort" class="mid" value="<?php echo $row_settings['ort']; ?> " /> </li>
<li class="odd"> <span class="name">PLZ</span>
<input type="text" name="plz" class="mid" value="<?php echo $row_settings['plz']; ?> " /> </li>
<li class="odd"> <span class="name">Telefon</span>
<input type="text" name="tel" class="mid" value=" <?php echo $row_settings['tel']; ?> " /> </li>
</ul>
<input class="btn" name="doSave" type="submit" id="doSave" value="Speichern">
</form>
vielleicht könnt ihr mir ja weiter helfen
LG aus österreich
-
17.01.12 19:37 #2
Liegt vermutlich an der filter methode...
Achja.. das isn scherz oder?
Eine ungefilterte GET Variable in einem SQL Query?o0PHP-Code:$rs_settings = mysql_query("select * from users where id='$_GET[id]'");
Lg H4ckHunt3r
Auf Danke klicken kostet nichts und weh tut es auch nicht ;)
Meine Homepage | Mein Projekt | Mein Clan
-
17.01.12 19:40 #3
- Registriert seit
- Jun 2011
- Ort
- Wiener Neustadt / Österreich
- Beiträge
- 165
wieso soll das denn ein scherz sein?
-
17.01.12 19:42 #4
Hmm mal überlegen... Weil SQL Injection?

Naja egal.. Wie gesagt liegt es warscheinlich
an deiner filter methode
mit der du die POST Variablen filterst.Lg H4ckHunt3r
Auf Danke klicken kostet nichts und weh tut es auch nicht ;)
Meine Homepage | Mein Projekt | Mein Clan
-
17.01.12 19:49 #5
- Registriert seit
- Jun 2011
- Ort
- Wiener Neustadt / Österreich
- Beiträge
- 165
ja das ist mir schon bewust aber ich mach das ja zu lehrzwecken davon wird nix online gestellt...
ich mach das ja nur deswegen weil ich so besser lehrnen kann
-
17.01.12 19:53 #6
falls du noch Hilfe brauchst solltest du mal die filter() methode posten.
Und zum besser dran lernen... lern es lieber direkt richtig..
Schlechte Angewohnheiten fließen auch gerne ma in richtigen Code rein
Lg H4ckHunt3r
Auf Danke klicken kostet nichts und weh tut es auch nicht ;)
Meine Homepage | Mein Projekt | Mein Clan
-
17.01.12 19:57 #7
- Registriert seit
- Jun 2011
- Ort
- Wiener Neustadt / Österreich
- Beiträge
- 165
okey ich werd mir noch mehr in zug heuen und alles überarbeiten...
naja mit die POST filter methpden hab ich mich eigendlich noch nicht beschäftigt
-
17.01.12 20:00 #8
ähhh da du die methode verwendest um etwas das in die Datenbank eingetragen werden soll zu filtern,
wäre es angebracht die mysql_real_escape_string() methode zu verwenden anstelle von filter()
http://de3.php.net/manual/de/functio...ape-string.php
filter() dürfte für die Ausgabe von Daten bzw. Texten sein
achja und falls id wie ich vermute nur eine zahl ist... diese kannst du einfach durch die methode intval() filtern.
http://de3.php.net/manual/de/function.intval.phpLg H4ckHunt3r
Auf Danke klicken kostet nichts und weh tut es auch nicht ;)
Meine Homepage | Mein Projekt | Mein Clan
-
17.01.12 20:16 #9
- Registriert seit
- Jun 2011
- Ort
- Wiener Neustadt / Österreich
- Beiträge
- 165
PHP-Code:<?php
if(isset($_POST['doSave']) && $_POST['doSave'] == 'Speichern') {
// Filter POST data for harmful code (sanitize)
foreach($_POST as $key => $value) {
$data[$key] = mysql_real_escape_string($value);
}
mysql_query("UPDATE users SET
`user_name` = '".mysql_real_escape_string($data['name'])."',
`adresse` = '".mysql_real_escape_string($data['adresse'])."',
`ort` = '".mysql_real_escape_string($data['ort'])."',
`plz` = '".mysql_real_escape_string($data['plz'])."',
`tel` = '".mysql_real_escape_string($data['tel'])."'
WHERE id = '$_GET[id]'
");
$msg[] = "Ihre Daten wurden erfogreich geändert";
}
$rs_settings = mysql_query("select * from users where id='$_GET[id]'");
?>
-
17.01.12 20:24 #10Und die POST variablen musst du nur einmal filtern.
Zitat von H4ckHunt3r
Du filterst diese zwei mal.
Einmal oben in der Schleife und einmal darunter im Query
achja und dasist unnötig, da wennPHP-Code:isset($_POST['doSave']) &&
wahr ist, muss doSave ja zwangsläufig gesetzt seinPHP-Code:$_POST['doSave'] == 'Speichern'
Geändert von H4ckHunt3r (17.01.12 um 20:26 Uhr)
Lg H4ckHunt3r
Auf Danke klicken kostet nichts und weh tut es auch nicht ;)
Meine Homepage | Mein Projekt | Mein Clan
-
17.01.12 20:34 #11
- Registriert seit
- Jun 2011
- Ort
- Wiener Neustadt / Österreich
- Beiträge
- 165
thx nochmal
so schauts daweil aus
aber das mit die interval check ich noch immer nichtPHP-Code:if ($_POST['doSave'] == 'Speichern') {
foreach($_POST as $key => $value) {
$data[$key] = mysql_real_escape_string($value);
}
-
17.01.12 20:41 #12nicht interval sondern intval zusammen gesetzt aus Int(eger) und Val(ue).PHP-Code:
<?php
if($_POST['doSave'] == 'Speichern') {
// Filter POST data for harmful code (sanitize)
foreach($_POST as $key => $value) {
$data[$key] = mysql_real_escape_string($value);
}
mysql_query("UPDATE users SET
`user_name` = '".$data['name']."',
`adresse` = '".$data['adresse']."',
`ort` = '".$data['ort']."',
`plz` = '".$data['plz']."',
`tel` = '".$data['tel']."'
WHERE id = '".intval($_GET['id'])."'
");
$msg[] = "Ihre Daten wurden erfogreich geändert";
}
$rs_settings = mysql_query("select * from users where id='".intval($_GET['id'])."'");
?>
Lg H4ckHunt3r
Auf Danke klicken kostet nichts und weh tut es auch nicht ;)
Meine Homepage | Mein Projekt | Mein Clan
-
17.01.12 20:46 #13
- Registriert seit
- Jun 2011
- Ort
- Wiener Neustadt / Österreich
- Beiträge
- 165
oki danke dir ...
so ich hab jetzt feierabend ..
-
20.01.12 23:24 #14
- Registriert seit
- Jun 2011
- Ort
- Wiener Neustadt / Österreich
- Beiträge
- 165
eine frage hab ich noch ..
kann man denn mit include von auf einem anderes server liegen daten includen?
-
21.01.12 11:39 #15
- Registriert seit
- May 2006
- Ort
- There is no place like 127.0.0.1
- Beiträge
- 3.521
Grüße
--
Qualität des Codes wird in WTF's/Min gemessen: Je mehr, desto schlechter der Code ;-)
Ähnliche Themen
-
Keine Chance keine Umlaute kein Versand
Von braungraphix im Forum PHPAntworten: 4Letzter Beitrag: 19.09.05, 20:52 -
Outlook speichert keine unsichtbaren Formularfelder?
Von TheSmile im Forum Visual Basic 6.0Antworten: 0Letzter Beitrag: 22.04.05, 21:16 -
Wohin speichert die Session die Daten?
Von cmc-one im Forum PHPAntworten: 2Letzter Beitrag: 01.03.05, 15:35 -
[MSSQL Server 2000] Brauche ein Prog was Daten in DB speichert...
Von grillse im Forum Relationale DatenbanksystemeAntworten: 1Letzter Beitrag: 08.10.04, 17:17 -
Max speichert keine DivX codierten .avi-Dateien
Von Captain Benteen im Forum 3D Studio MaxAntworten: 13Letzter Beitrag: 30.08.02, 17:43



3Danke

Zitieren


Login






[PHP][Snippet] Array zu XML konvertieren