ereg_replace mit Sonderzeichen äüö

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

  • ereg_replace mit Sonderzeichen äüö

    Hi @ all

    Ich habe folgendes Problem bzw. Frage.
    Warum werden bei Formular die Sonderzeichen äüö nicht beachtet?

    Ich habe hier den ersten code mit dem es nicht funktioniert:
    PHP-Code:
    <?php
    echo"<form action='test2.php'method=post>";
    $kperson2 ereg_replace('[äÄöÖüÜ [:alpha:]]',''$_POST['kperson']);
    echo
    "$kperson2
    <input type='text' name='kperson' size='30' value='
    $_POST[kperson]'>
    <input type='image' src='
    $_con[IMAGES]/ok_taste.gif' />
    </form>"
    ;
    ?>
    und hier den bei dem es funktioniert:

    PHP-Code:
    <?php
    $kperson 
    "ägül";
    $kperson2 ereg_replace('[äÄöÖüÜ [:alpha:]]',''$kperson);
    echo
    "$kperson2
    ?>
    Doch wieso funktioniert es nicht wenn ich die Daten über ein Formular übertrage?

    Ich habe bestimmt irgendwo einen Dummheitsfehler gemacht.

    :Heul:

  • #2
    PHP-Code:
    ...'test2.php'method=... 
    fehlendes leerzeichen?
    Kissolino.com

    Kommentar


    • #3
      Danke aber das ändert nichts am Problem.

      Kommentar


      • #4
        wo wird denn Deiner meinung nach das falsche ausgegeben? in dem Formularfeld oder vor dem formularfeld?
        Beantworte nie Threads mit mehr als 15 followups...
        Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

        Kommentar


        • #5
          Das Falsche wird bei $kperson2 ausgegeben die eingabe ist ja bei beiden ägül doch bei dem mit dem Formular ist $kperson2 = aü und bei dem anderen wo es auch richtig ist nichts.

          Kommentar


          • #6
            Kann mir denn keiner hier helfen?

            Ich finde einfach das Problem nicht in dem Code meiner ansicht nach müsste er funktionieren (In beiden fällen).

            bald werde ich noch

            Kommentar


            • #7
              Der Code im Browser sieht wie aus?
              Warum nicht preg_replace(); anstatt ereg_replace(); ?
              Warum bekommt method=post keine " bzw. ' bzw. Wo steht die Regel das die globale Vereinbarung nicht für dieses Attribut gilt?
              Was gibt ein
              PHP-Code:
              echo "<pre>";
              print_r($_POST);
              echo 
              "</pre>"
              in der test2.php aus?
              Wird das Formular überhaupt abgesendet?

              Strings generell überarbeiten....
              [color=blue]MfG Payne_of_Death[/color]

              [color=red]Manual(s):[/color] <-| PHP | MySQL | SELFHTML |->
              [color=red]Merke:[/color]
              [color=blue]Du brauchst das Rad nicht neu erfinden ! [/color]<-ForumSuche rettet Leben-> || <-Schau in den Codeschnippsels->

              Murphy`s Importanst LAWS
              Jede Lösung bringt nur neue Probleme
              Das Fluchen ist die einzige Sprache, die jeder Programmierer beherrscht.
              In jedem kleinen Problem steckt ein großes, das gern raus moechte.

              Kommentar


              • #8
                Der Code im Browser: (Nach dem Senden)

                <form action='test2.php' method='post'>äü
                <input type='text' name='kperson' size='30' value='ägül'>
                <input type='image' src='/ok_taste.gif' />

                Hier noch einmal der PHP code:

                PHP-Code:
                <?php
                echo"<form action='test2.php' method='post'>";
                $kperson2 ereg_replace('[äÄöÖüÜ [:alpha:]]',''$_POST['kperson']);
                echo
                "$kperson2
                <input type='text' name='kperson' size='30' value='
                $_POST[kperson]'>
                <input type='image' src='
                $_con[IMAGES]/ok_taste.gif' />
                </form>"
                ;
                ?>
                und print_r($_POST); gibt folgendes aus:

                Array
                (
                [kperson] => ägül
                [x] => 20
                [y] => 26
                )

                und warum ich nicht preg_replace verwende, soweit wie ich informiert bin verwendet man preg_replace um wörter in einem text zu erstezen und nicht zu überprüfen ob Buchsteben bzw. Wörter in einem text vorhanden sind.

                Kommentar


                • #9
                  Wo ist jetzt das Prob?
                  ägül übergibt das Formular durch den vordefinierten value Tag
                  Umlaute gibt es auch ?

                  ereg_replace:
                  ereg_replace -- Ersetzt einen regulären Ausdruck
                  Die Funktion preg_replace(), die eine zu Perl kompatible Syntax regulärer Ausdrücke verwendet, ist häufig die schnellere Alternative zu ereg_replace().
                  preg_replace:
                  preg_replace -- Sucht und ersetzt einen regulären Ausdruck
                  [color=blue]MfG Payne_of_Death[/color]

                  [color=red]Manual(s):[/color] <-| PHP | MySQL | SELFHTML |->
                  [color=red]Merke:[/color]
                  [color=blue]Du brauchst das Rad nicht neu erfinden ! [/color]<-ForumSuche rettet Leben-> || <-Schau in den Codeschnippsels->

                  Murphy`s Importanst LAWS
                  Jede Lösung bringt nur neue Probleme
                  Das Fluchen ist die einzige Sprache, die jeder Programmierer beherrscht.
                  In jedem kleinen Problem steckt ein großes, das gern raus moechte.

                  Kommentar


                  • #10
                    Das Problem ist das äü aus der ereg_replace Funktion ausgegeben wird obwohl sie garnicht ausgegeben werden dürfte.

                    genauer gesagt dieser Code macht mir sorgen (mit Formular):

                    PHP-Code:
                    $kperson2 ereg_replace('[äÄöÖüÜ [:alpha:]]',''$_POST['kperson']); 
                    denn wenn ich hier $_POST['kperson'] den wert "ägül" zuweise, erhalte ich in der Variable $kperson2 den wert "äü" obwohl diese Buchstaben ja normalerweise garnicht ausgeschlossen werden dürften da sie ja neben [:alpha:] deklariert sind.

                    das kommische ist ja nur das es so funktiniert (ohne Formular):

                    PHP-Code:
                    $kperson "ägül";
                    $kperson2 ereg_replace('[äÄöÖüÜ [:alpha:]]',''$kperson); 
                    hier ist $kperson2 nämlich richtig den es ist leer...

                    Ich weiss einfach nicht mehr weiter.
                    Zuletzt geändert von ; 31.12.2004, 17:17.

                    Kommentar


                    • #11
                      Salut

                      PHP-Code:
                      <?php
                      echo"<form action='test2.php' method='post'>";
                      $kperson2 ereg_replace('[äÄöÖüÜ [:alpha:]]',''$_POST['kperson']);
                      echo
                      "$kperson2
                      <input type='text' name='kperson' size='30' value='
                      $_POST[kperson]'>
                      <input type='image' src='
                      $_con[IMAGES]/ok_taste.gif' />
                      </form>"
                      ;
                      ?>
                      Wenn ich das richtig verstanden habe, dann wird die Var $kperson2 nicht korrekt ausgegeben. Ich frage mich aber wie dein Script die Var kennen sollte, denn du machst ja die Ausgabe bevor das Form an das Verarbeitungsscript geschickt wird.
                      Ohne Form funzt es wohl weil die Var direkt bekannt ist und nicht erst nach abschicken des Forms.
                      Baue folgende Zeilen:
                      PHP-Code:
                      $kperson2 ereg_replace('[äÄöÖüÜ [:alpha:]]',''$_POST['kperson']);
                      echo
                      "$kperson2 
                      mal in test2.php ein.
                      Hoffe das hilft.
                      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


                      • #12
                        PHP-Code:
                        <?php
                        echo"<form action='test2.php' method='post'>";
                        $kperson2 ereg_replace('[äÄöÖüÜ [:alpha:]]',''$_POST['kperson']);
                        echo
                        "$kperson2
                        <input type='text' name='kperson' size='30' value='
                        $_POST[kperson]'>
                        <input type='image' src='
                        $_con[IMAGES]/ok_taste.gif' />
                        </form>"
                        ;
                        ?>
                        Das alles ist die Datei test2.php.

                        Kommentar


                        • #13
                          Sorry dann habe ich das falsch verstanden.
                          Aber wenn man an Sylvester schon arbeiten muss, dann hoffe ich, dass du diesen Ausrutscher verzeihen kannst

                          Guten Rutsch

                          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


                          • #14
                            Wünsche ich dir auch und trink nicht so viel alkoholllllllllll.

                            Aber mein Problem im neuen Jahr nicht vergessen.

                            Kommentar


                            • #15
                              Danke für die guten Wünsche. Leider gibt es einen trockenen Sylvester mit OpenEnd-arbeiten bis früh morgens.
                              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

                              Lädt...
                              X