Sicherheit des Skripts

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • #16
    So, nun habe ich den Auslöser des Problems gefunden. Es liegt an dem Formular (warum auch immer).

    Wenn ich das Formular so aufrufe:

    Code:
    echo "<form action='/contents/pweintrag.php' method='post' enctype='multipart/form-data'>";
    und im Browser die Datei direkt aufrufe, gibt er mir die Umlautnamen aus.

    Wenn ich allerdings so da dran gehe:

    Code:
    echo "<form action='index.php?ziel=pweintrag' method='post' enctype='multipart/form-data'>";
    und die Seite an sich aufrufe und über die Navigation der Seite die Datei aufrufe tut er es nicht mehr.

    Nun verstehe ich allerdings nicht warum? Bei Namen ohne Umlaute ist es egal. Die funktionieren in beiden Versionen des Aufrufs.

    Kann mir das jemand erklären ?


    Danke !
    Gruß

    Michael

    Kommentar


    • #17
      Hat keiner ne Idee warum das so ist??? Ich seh den Fehler einfach nicht und bin auf Euch angewiesen. Kommt, lasst mich nicht hängen!

      Gruß

      Michael

      Kommentar


      • #18
        Na dann schau dir doch mal den header an den der Server dir sendet.

        Firefox "Live HTTP headers" z.B
        gruss Chris

        [color=blue]Derjenige, der sagt: "Es geht nicht", soll den nicht stoeren, der's gerade tut."[/color]

        Kommentar


        • #19
          Ich gehe mal davon aus, das Du diesen Teil des Headers meinst.

          ...
          Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
          ...

          Ich vermute mal, dass er den ersten passenden, sprich ISO-8859-1, benutzt und dadurch nie zur Anwendung von utf-8 kommt.
          Nur habe ich jetzt das Problem wie kriege ich es hin, dass utf-8 vorne steht. Muss ja irgendwo Serverseitig einzustellen sein. Nur wo und wie ?

          Hier der Header der Clientseitig raus geht:

          Code:
          <!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">
          <head>
          <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
          <meta name="keywords" content="<?= $keywords[$akt] ?>" />
          <meta name="description" content="<?= $descriptions[$akt] ?>"  />
          <meta http-equiv="content-language" content="de" />
          <meta name="Revisit-after" content="30"  />
          <meta name="Robots" content="index, follow" />
          <title><?= $titles[$akt] ?></title>
          <link rel="Stylesheet" type="text/css" href="css/format.css"  />
          Da steht ja nur der utf-8 drin.
          Gruß

          Michael

          Kommentar


          • #20
            Setz doch mal in einer .htaccess Datei

            AddCharset utf-8 .css .html .xhtml .php
            gruss Chris

            [color=blue]Derjenige, der sagt: "Es geht nicht", soll den nicht stoeren, der's gerade tut."[/color]

            Kommentar


            • #21
              Ich hab ne .htaccess erstellt. Gar nicht so einfach unter Windows. Ging nur mit tricksen über ne online-Datei. Die habe ich umbenannt und dann auf die lokale Seite kopiert und wieder zurückbenannt.
              btw, gibts da was einfacheres unter Win?


              Ergebnis ist, dass das keinen Effekt bringt. Hier der Mitschnitt des Headers:


              User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.8.1.12) Gecko/20080201 Firefox/2.0.0.12
              Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
              Accept-Language: de-de,de;q=0.8,en-us;q=0.5,en;q=0.3
              Accept-Encoding: gzip,deflate
              Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
              Keep-Alive: 300
              Connection: keep-alive
              Cookie: PHPSESSID=3c9faffac2acbe9056832a644121e5bf

              Was kann ich noch tun ? Die .htaccess liegt sowohl im Root der Site als auch im Pfad des Skripts.
              Gruß

              Michael

              Kommentar


              • #22
                Schreib mal irgendeinen Müll in die .htaccess...

                Gibt das einen 500 Fehler aus oder passiert gar nichts?
                gruss Chris

                [color=blue]Derjenige, der sagt: "Es geht nicht", soll den nicht stoeren, der's gerade tut."[/color]

                Kommentar


                • #23
                  Dann gibts einen Fehler 500.
                  Gruß

                  Michael

                  Kommentar


                  • #24
                    Vielleicht noch am anfang deines Scripts

                    PHP-Code:
                    header('content-type: text/html; charset=utf-8'); 
                    setzen ?
                    gruss Chris

                    [color=blue]Derjenige, der sagt: "Es geht nicht", soll den nicht stoeren, der's gerade tut."[/color]

                    Kommentar


                    • #25
                      Dann kriege ich nen Fehler, das der Header bereits gesendet wurde.
                      Gruß

                      Michael

                      Kommentar


                      • #26
                        Deshalb am anfang (nicht der anfang deines Formulars).
                        gruss Chris

                        [color=blue]Derjenige, der sagt: "Es geht nicht", soll den nicht stoeren, der's gerade tut."[/color]

                        Kommentar


                        • #27
                          Ich hab ne .htaccess erstellt. Gar nicht so einfach unter Windows. Ging nur mit tricksen über ne online-Datei. Die habe ich umbenannt und dann auf die lokale Seite kopiert und wieder zurückbenannt.
                          Auf ner Windows Kiste geht es auch über die Konsole. Nur der Explorer kann keine solchen Dateien anlegen. Ne htaccess.txt nach .htaccess umbenennen geht mit der Konsole aber relativ einfach

                          Gruss

                          tobi
                          Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

                          [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
                          Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

                          Kommentar


                          • #28
                            Stimmt, so kann man das mit der .htaccess natürlich auch machen. Manchmal ist das Gute doch so Nahe.

                            Selbst wenn ich den Header ganz am Anfang absetze bringt das keine Änderung.
                            Gruß

                            Michael

                            Kommentar


                            • #29
                              PHP-Code:
                              mysql_query("SET CHARACTER SET utf8"); 
                              Das hast du natürlich auch gesetzt, wie weiter oben beschrieben?
                              Vor deinem Query.
                              gruss Chris

                              [color=blue]Derjenige, der sagt: "Es geht nicht", soll den nicht stoeren, der's gerade tut."[/color]

                              Kommentar


                              • #30
                                Ja, und die .htaccess ist auch noch da.
                                Der Name mit den Umlauten drin steht richtig in der DB.

                                PHP-Code:
                                <?php
                                //Passwortabfrage für Terminänderungen

                                echo "<div id='inhalt'>";

                                if(isset(
                                $_POST["absenden"]))
                                {
                                 if((
                                $_POST['name'] != "") AND ($_POST['passwort'] != ""))
                                 {
                                   
                                // Verbinden mit der Datenbank
                                  
                                require_once($root "/functions/db_connection.php");
                                  
                                $result mysql_query("SET CHARACTER SET utf8");
                                  if(!
                                $result)
                                  {
                                   die(
                                'Ungültige Abfrage: ' mysql_error());
                                  }
                                  
                                  
                                //Prüfen ob eingegebene Daten korrekt sind 
                                  
                                $query "SELECT name, passwort FROM pws WHERE name = '" mysql_real_escape_string($_POST['name']) . "'";
                                  
                                $result mysql_query($query);
                                  if(!
                                $result)
                                  {
                                   die(
                                'Ungültige Abfrage: ' mysql_error());
                                  }
                                  while(
                                $row mysql_fetch_assoc($result))
                                  {
                                   if (
                                md5($_POST['passwort']) == $row['passwort'])
                                   {
                                    
                                $_SESSION['name'] = $row['name'];
                                    
                                $_SESSION['passwort'] = $row['passwort'];
                                    
                                $_SESSION['id'] = session_id();
                                    echo 
                                "<meta http-equiv='Refresh' content='0; URL=index.php?ziel=eintragen&PHPSESSID=" $_SESSION['id'] . "' />";  
                                   }  
                                   else 
                                   {
                                    echo 
                                "<p><fehler>Benutzername und/oder Passwort falsch. Bitte Eingaben prüfen !</fehler><p>";
                                   }
                                  }
                                 }
                                 else 
                                 {
                                  echo 
                                "<p><fehler>Kein Benutzername und/oder Passwort eingetragen. Bitte eingeben.</fehler><p>";
                                 }

                                //Eingabeformular erzeugen
                                echo "<form action='index.php?ziel=pweintrag' method='post' enctype='multipart/form-data'>"
                                echo 
                                "<label for='vorname'>Benutzername: </label>";
                                echo 
                                "<input type='text' name='name' id='name'><br /><br />"
                                echo 
                                "<label for='passwort'>Passwort: </label>";
                                echo 
                                "<input type='password' name='passwort' id='passwort'><br /><br />"
                                echo 
                                "<input type='submit' name='absenden' value='Einloggen' />";
                                echo 
                                "</form>";
                                echo 
                                "</div>";
                                ?>
                                Gruß

                                Michael

                                Kommentar

                                Lädt...
                                X