tutorials.de Buch-Aktion 05/2012
Seite 1 von 2 12 LetzteLetzte
ERLEDIGT
NEIN
ANTWORTEN
15
ZUGRIFFE
558
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    latinum_1982 latinum_1982 ist offline Mitglied Gold
    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
    "Ã********Ã****Ã?&Acirc"

    so schaut mein code aus

    PHP-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&auml;ndert";
     }

    $rs_settings mysql_query("select * from users where id='$_GET[id]'"); 

    ?>
    und hier das formular

    PHP-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>
    hab schon einiges ausprobiert aber aber die lösung noch nicht gefunden
    vielleicht könnt ihr mir ja weiter helfen

    LG aus österreich
     

  2. #2
    Avatar von H4ckHunt3r
    H4ckHunt3r H4ckHunt3r ist offline Mitglied Silber
    Registriert seit
    Aug 2011
    Ort
    Ennepetal (NRW)
    Beiträge
    66
    Liegt vermutlich an der filter methode...


    Achja.. das isn scherz oder?

    PHP-Code:
    $rs_settings mysql_query("select * from users where id='$_GET[id]'"); 
    Eine ungefilterte GET Variable in einem SQL Query?o0
     
    Lg H4ckHunt3r
    Auf Danke klicken kostet nichts und weh tut es auch nicht ;)
    Meine Homepage | Mein Projekt | Mein Clan

  3. #3
    latinum_1982 latinum_1982 ist offline Mitglied Gold
    Registriert seit
    Jun 2011
    Ort
    Wiener Neustadt / Österreich
    Beiträge
    165
    wieso soll das denn ein scherz sein?
     

  4. #4
    Avatar von H4ckHunt3r
    H4ckHunt3r H4ckHunt3r ist offline Mitglied Silber
    Registriert seit
    Aug 2011
    Ort
    Ennepetal (NRW)
    Beiträge
    66
    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

  5. #5
    latinum_1982 latinum_1982 ist offline Mitglied Gold
    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
     

  6. #6
    Avatar von H4ckHunt3r
    H4ckHunt3r H4ckHunt3r ist offline Mitglied Silber
    Registriert seit
    Aug 2011
    Ort
    Ennepetal (NRW)
    Beiträge
    66
    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

  7. #7
    latinum_1982 latinum_1982 ist offline Mitglied Gold
    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
     

  8. #8
    Avatar von H4ckHunt3r
    H4ckHunt3r H4ckHunt3r ist offline Mitglied Silber
    Registriert seit
    Aug 2011
    Ort
    Ennepetal (NRW)
    Beiträge
    66
    ä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.php
    latinum_1982 bedankt sich. 
    Lg H4ckHunt3r
    Auf Danke klicken kostet nichts und weh tut es auch nicht ;)
    Meine Homepage | Mein Projekt | Mein Clan

  9. #9
    latinum_1982 latinum_1982 ist offline Mitglied Gold
    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&auml;ndert";
     }

    $rs_settings mysql_query("select * from users where id='$_GET[id]'"); 

    ?>
     

  10. #10
    Avatar von H4ckHunt3r
    H4ckHunt3r H4ckHunt3r ist offline Mitglied Silber
    Registriert seit
    Aug 2011
    Ort
    Ennepetal (NRW)
    Beiträge
    66
    Zitat Zitat von H4ckHunt3r
    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.php
    Und die POST variablen musst du nur einmal filtern.
    Du filterst diese zwei mal.
    Einmal oben in der Schleife und einmal darunter im Query


    achja und das
    PHP-Code:
    isset($_POST['doSave']) && 
    ist unnötig, da wenn
    PHP-Code:
    $_POST['doSave'] == 'Speichern' 
    wahr ist, muss doSave ja zwangsläufig gesetzt sein
    Geändert von H4ckHunt3r (17.01.12 um 20:26 Uhr)
    latinum_1982 bedankt sich. 
    Lg H4ckHunt3r
    Auf Danke klicken kostet nichts und weh tut es auch nicht ;)
    Meine Homepage | Mein Projekt | Mein Clan

  11. #11
    latinum_1982 latinum_1982 ist offline Mitglied Gold
    Registriert seit
    Jun 2011
    Ort
    Wiener Neustadt / Österreich
    Beiträge
    165
    thx nochmal

    so schauts daweil aus

    PHP-Code:
    if ($_POST['doSave'] == 'Speichern') {
      
    foreach(
    $_POST as $key => $value) {
        
    $data[$key] = mysql_real_escape_string($value);


    aber das mit die interval check ich noch immer nicht
     

  12. #12
    Avatar von H4ckHunt3r
    H4ckHunt3r H4ckHunt3r ist offline Mitglied Silber
    Registriert seit
    Aug 2011
    Ort
    Ennepetal (NRW)
    Beiträge
    66
    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&auml;ndert";
     }

    $rs_settings mysql_query("select * from users where id='".intval($_GET['id'])."'"); 

    ?>
    nicht interval sondern intval zusammen gesetzt aus Int(eger) und Val(ue).
    latinum_1982 bedankt sich. 
    Lg H4ckHunt3r
    Auf Danke klicken kostet nichts und weh tut es auch nicht ;)
    Meine Homepage | Mein Projekt | Mein Clan

  13. #13
    latinum_1982 latinum_1982 ist offline Mitglied Gold
    Registriert seit
    Jun 2011
    Ort
    Wiener Neustadt / Österreich
    Beiträge
    165
    oki danke dir ...

    so ich hab jetzt feierabend ..
     

  14. #14
    latinum_1982 latinum_1982 ist offline Mitglied Gold
    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?
     

  15. #15
    Avatar von saftmeister
    saftmeister saftmeister ist offline Der Saft sei mit dir
    tutorials.de Premium-User
    Registriert seit
    May 2006
    Ort
    There is no place like 127.0.0.1
    Beiträge
    3.521
    Zitat Zitat von latinum_1982 Beitrag anzeigen
    kann man denn mit include von auf einem anderes server liegen daten includen?
    Jein, hängt davon ab, ob allow_url_fopen in der php.ini auf true (oder 1) steht. Grundsätzlich ist davon aber abzuraten. Denn damit könntest du dir Code einschleusen, den du überhaupt nicht ausführen willst.
     
    Grüße
    --
    Qualität des Codes wird in WTF's/Min gemessen: Je mehr, desto schlechter der Code ;-)

Ähnliche Themen

  1. Keine Chance keine Umlaute kein Versand
    Von braungraphix im Forum PHP
    Antworten: 4
    Letzter Beitrag: 19.09.05, 20:52
  2. Outlook speichert keine unsichtbaren Formularfelder?
    Von TheSmile im Forum Visual Basic 6.0
    Antworten: 0
    Letzter Beitrag: 22.04.05, 21:16
  3. Wohin speichert die Session die Daten?
    Von cmc-one im Forum PHP
    Antworten: 2
    Letzter Beitrag: 01.03.05, 15:35
  4. [MSSQL Server 2000] Brauche ein Prog was Daten in DB speichert...
    Von grillse im Forum Relationale Datenbanksysteme
    Antworten: 1
    Letzter Beitrag: 08.10.04, 17:17
  5. Max speichert keine DivX codierten .avi-Dateien
    Von Captain Benteen im Forum 3D Studio Max
    Antworten: 13
    Letzter Beitrag: 30.08.02, 17:43