tropenberta: checkbox auslesen

hi leuts

möchte gerne ne checkbox mit php auf true and false auslesen.

  
$empf = "xyz.de";  
$betreff = "Hier steht Betreff.";  
  
  
$email = "$_POST[email]";  
$name = "$_POST[complete_name]";  
$city = "$_POST[city]";  
$phonenumber = "$_POST[phonenumber]";  
  
  
$form_cont = "Hier steht der Text. \n\n Formularinhalte aufrufen \n\n Name: $name \n City: $city  \n Email: $email \n Telefon: $phonenumber \n Newsletter :  ";  
$header = 'Content-type: text/plain; charset=UTF-8' . "\r\n";  
$header .= 'From:' . $name . '<' . $email . '>';  
  
mail($empf,$betreff,$form_cont,$header);  

das funktioniert wunderbar.

jetzt hab ich aber noch ne checkbox und wollte das so lösen :

  
...  
$newsletter = "$_POST[Eigenschaft2]";  
  
$form_cont = "Hier steht der Text. \n\n Formularinhalte aufrufen \n\n Name: $name \n City: $city  \n Email: $email \n Telefon: $phonenumber \n Newsletter : $newsletter ";  
...  

leider funktioniert das so nicht.
hat jemand vll nen tip wie ich ein true oder false herzaubere.

gruß micha

  1. $email = $_POST["email"];

    probiers mal so, wenns dann immer noch nicht klappt, melde dich nochmal.

    1. vielen dank für deine antwort.

      ich glaube du hast mich bissl missverstanden.

      der obere teil funktioniert gut ( sind alles normale formular text felder ).

      dieser teil klappt nicht :

        
      ...  
      $newsletter = "$_POST[Eigenschaft2]";  
        
      $form_cont = "Hier steht der Text. \n\n Formularinhalte aufrufen \n\n Name: $name \n City: $city  \n Email: $email \n Telefon: $phonenumber \n Newsletter : $newsletter ";  
      ...  
      
      

      Eigenschaft2 ist eine checkbox. jetzt möchte ich in die variable $newsletter ein true oder false haben, je nachdem ob haken gesetzt wurde oder nicht.

      gruß  micha

      1. ich glaube du hast mich bissl missverstanden.

        Nein, missverstanden hast du was: Dein Code ist falsch und du solltest den ändern.
        Ein entsprechendes error_reporting hätte dir entsprechende Meldungen ausgegeben ;)

        1. Meine Herren,

          Dein Code ist falsch und du solltest den ändern.
          Ein entsprechendes error_reporting hätte dir entsprechende Meldungen ausgegeben ;)

          Wenn du dich hier raus beziehst:

          $email = "$_POST[email]";

          bist du im Unrecht.

          Ich bin neulich auf eine ähnliche Syntax hereingefallen:
          https://forum.selfhtml.org/?t=215050&m=1472210

          --
          Hey Girl,
          i wish you were asynchronous, so you'd give me a callback.
          1. Meine Herren,

            Dein Code ist falsch und du solltest den ändern.
            Ein entsprechendes error_reporting hätte dir entsprechende Meldungen ausgegeben ;)

            Wenn du dich hier raus beziehst:

            $email = "$_POST[email]";
            bist du im Unrecht.

            Aha ...

              
            <?php  
            $foo[bar] = 'enemy';  
            echo $foo[bar];  
            // etc  
            ?>  
            
            

            "This is wrong, but it works. The reason is that this code has an undefined constant (bar) rather than a string ('bar' - notice the quotes) ..."

            Was lese ich hier dann falsch?

            Ich bin neulich auf eine ähnliche Syntax hereingefallen:
            https://forum.selfhtml.org/?t=215050&m=1472210

            Was hat eine Syntax mit geschwungen Klammern mit der hier zu tun?

            1. Meine Herren,

              "This is wrong, but it works. The reason is that this code has an undefined constant (bar) rather than a string ('bar' - notice the quotes) ..."

              Was lese ich hier dann falsch?

              Du liest im falschen Kapitel.
              dedlfix hat das gerade nochmal wunderbar erklärt.

              --
              Hey Girl,
              i wish you were asynchronous, so you'd give me a callback.
              1. Du liest im falschen Kapitel.

                Ok, war zuweit oben ...
                Du hast natürlich recht.

                dedlfix hat das gerade nochmal wunderbar erklärt.

                Ich frag mich grad, wieso PHP da nicht endlich ne klare Syntax vorschreibst.
                Ich glaub, wenn ich nicht mit Perl angefangen und dann mit C/C++ weitergemacht hätte, würde ich unter PHP ziemlich wüst programmieren, da die Syntax schlampig programmieren ja praktisch unterstützt.
                Ist mir bisher nie bewusst gewesen, da ich einfach strukturiert programmiere.

      2. vielen dank für deine antwort.

        ich glaube du hast mich bissl missverstanden.

        der obere teil funktioniert gut ( sind alles normale formular text felder ).

        dieser teil klappt nicht :

        $newsletter = "$_POST[Eigenschaft2]";

        $form_cont = "Hier steht der Text. \n\n Formularinhalte aufrufen \n\n Name: $name \n City: $city  \n Email: $email \n Telefon: $phonenumber \n Newsletter : $newsletter ";

        
        >   
        > Eigenschaft2 ist eine checkbox. jetzt möchte ich in die variable $newsletter ein true oder false haben, je nachdem ob haken gesetzt wurde oder nicht.  
        >   
        > gruß  micha  
          
        Ahoi!  
          
        Falsch:  
        `$newsletter = "$_POST[Eigenschaft2]";`{:.language-php}  
          
        Richtig:  
        `$newsletter = $_POST["Eigenschaft2"];`{:.language-php}  
          
        cu
        
        1. Tach!

          Falsch:
          $newsletter = "$_POST[Eigenschaft2]";

          Nein! Das ist syntaktisch völlig korrekt. Es ist nur nicht sonderlich sinnvoll, eine Variable oder einen Array-Zugriff alleinig in einen String zu platzieren. (Das wurde aber alles schon in diesem Thread gesagt.)

          dedlfix.

          1. Nein! Das ist syntaktisch völlig korrekt.

            Ahoi,
            traurig! Aber nachdem "Pizzas" im Duden steht wundert mich gar nichts mehr.

            cu

            1. Meine Herren,

              Ahoi,
              traurig! Aber nachdem "Pizzas" im Duden steht wundert mich gar nichts mehr.

              Und seitdem der Duden einen Negativpreis vom Verein Deutsche Sprache verliehen bekommen hat, habe ich wieder Hoffnung.

              1. Hallo,

                Und seitdem der Duden einen Negativpreis vom Verein Deutsche Sprache verliehen bekommen hat, habe ich wieder Hoffnung.

                Der »Verein Deutsche Sprache« ist ein lächerliches Grüppchen von Leuten, die sich als Hüter der deutschen Sprache aufführen und selbst nur völlig verquaste Sätze herausbekommen. Sie erfinden peinliche Wörter wie »Weltnetz« und »Klapprechner«, die niemand benutzt, von ein paar Deutschnationalen abgesehen. Sucht man nach diesen Wörtern im Web, findet man bloß Presseartikel über den Windmühlenkampf des VDS.

                Zum Thema Lehnwörter ist das Sprachlog lesenswert.

                Mathias

                1. Meine Herren,

                  Der »Verein Deutsche Sprache« ist ein lächerliches Grüppchen von Leuten, die sich als Hüter der deutschen Sprache aufführen und selbst nur völlig verquaste Sätze herausbekommen.

                  Ehrlich gesagt ist der Negativpreis für den Duden erst die Schlagzeile, über die ich über den Verein erfahren habe. Und die Argumentation Soccer statt Fußball zu sagen, kann ich nachvollziehen. Klapprechner statt Notebook dagegen nicht, da geb ich dir recht. Es hängt wohl immer ein wenig vom Publikum ab. (Übrigens unterkringelt meine Rechtschreibkorrektur gerade "Klapprechner" aber nicht "Notebook").

                  Da fällt mir ein, ich hatte mal einen Deutschlehrer, der es vorzog statt Inlineskates Inliniengleiter zu verwenden.

            2. Hallo,

              traurig! Aber nachdem "Pizzas" im Duden steht wundert mich gar nichts mehr.

              Bitte? Sämtliche Fremd- und Lehnwörter werden im Deutschen nach deutschen Grammatikregeln flektiert und moviert. Das ist auch gut so. Sonst wäre der Plural von »Computer« »Computers«, Akkusativ Plural wäre nicht »den Computern« sondern »den Computers«, Genitiv Singular wäre »des Computer’s«. Und so weiter. Man kann sich vorstellen, wie verwirrend die Kommunikation hier im Forum abliefe, wenn sämtliche (zumindest aus dem Englischen stammende) technischen Fachausdrücke nach Regeln der englischen Sprache flektiert werden würden.

              Wenn du Italienisch (oder Latein) beherrscht und sämtliche Formen von »pizza« durchdeklinieren kannst, bitte sehr. Diejenigen, die kein Italienisch können, werden allerdings kein Wort verstehen. Da das Deutsche Lehnwörter aus unzähligen Sprachen aufgenommen hat, z.B. Englisch, Französisch, Latein und Griechisch, wirst du dabei schnell an Grenzen stoßen.

              Grüße,
              Mathias

              1. Moin,

                traurig! Aber nachdem "Pizzas" im Duden steht wundert mich gar nichts mehr.
                Bitte? Sämtliche Fremd- und Lehnwörter werden im Deutschen nach deutschen Grammatikregeln flektiert und moviert. Das ist auch gut so.

                ja, das ist in Ordnung. Aber die deutsche Sprache hat selbst einige verschiedene Varianten, wie der Plural eines Wortes gebildet wird. Die gebräuchlichsten sind das Anhängen von -e (Berg/Berge), -n (Fuge/Fugen), -er (meist mit Umlautung der Hauptsilbe, Huhn/Hühner). Es gibt noch ein paar mehr, etwa dass Singular- und Pluralform identisch sind (Zacken/Zacken, hier wird auf die Umlautung zu "Zäcken" verzichtet), ganz zu schweigen von den unzähligen Wörtern mit völlig irregulärer Pluralform.

                Man hat also eine große Auswahl, um auch bei Lehnwörtern die Pluralform (oder Deklinationsform) zu wählen bzw. festzulegen, die der originalsprachlichen Form am nächsten kommt. Meist wird das ja auch gemacht, so verzichtet man beim Plural von "Computer" zum Beispiel auf die sonst im Deutschen gebräuchliche Umlautung - oder hat jemand schon mal "Compüter" gelesen?

                Wenn du Italienisch (oder Latein) beherrscht und sämtliche Formen von »pizza« durchdeklinieren kannst, bitte sehr. Diejenigen, die kein Italienisch können, werden allerdings kein Wort verstehen.

                Das glaube ich nicht. Der Plural von "pizza" heißt im Italienischen "pizze". Das ist vielleicht nicht jedem Deutsch-Muttersprachler vertraut. Aber die Pluralform "Pizzen" ist seit über 30 Jahren verbreitet und üblich, sogar in der Werbung ("3 Tiefkühlpizzen zum Preis von 2"), wo ja sonst sehr phantasievoll mit Sprache und Schrift hantiert wird.

                Warum also kommt die Duden-Redaktion jetzt plötzlich daher und meint, es müsse "Pizzas" heißen? Das ist weder sinnvoll noch für mich nachvollziehbar. Es mag zahlreiche andere Beispiele geben, bei denen eine solche Simplifizierung eher nachvollziehbar ist.

                Da das Deutsche Lehnwörter aus unzähligen Sprachen aufgenommen hat, z.B. Englisch, Französisch, Latein und Griechisch, wirst du dabei schnell an Grenzen stoßen.

                Für mich selbst ist die wichtigste Regel bei der Verwendung von Lehn- und Fremdwörtern: Solange mir noch bewusst ist, dass es sich um ein Wort oder eine Floskel aus einer anderen Sprache handelt, wende ich auch die fremdsprachliche Schreibweise an und lasse das Wort undekliniert/unkonjugiert im Satz stehen: "Wenn das Ergebnis des security assessment vorliegt, sehen wir weiter."

                Schönes Wochenende,
                 Martin

                --
                F: Kennt jemand einen Automobilfilm?
                A: Der mit dem Golf tankt.
                Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(
                1. Tach!

                  Warum also kommt die Duden-Redaktion jetzt plötzlich daher und meint, es müsse "Pizzas" heißen?

                  Ich habe keinen aktuellen Duden und erst recht keine Reihe mit allen Auflagen. Aber ich habe in einem Surrogat-Buch namens "Die neue deutsche Rechtschreibung" aus dem Bertelsmannverlag von 1996 nachgeschaut und in einem DDR-Duden von 1984. In beiden waren als Pluralformen Pizzas und Pizzen angegeben. Ich gehe mal nicht davon aus, dass der "West"-Duden erst "jetzt plötzlich daherkommt" und diese Schreibweise "eingeführt" hat. Üblicherweise kommt ja auch erst dann ein Wort in den Duden, wenn es ausreichend verbreitet ist - ob man das Wort nun mag oder nicht.

                  dedlfix.

                2. Om nah hoo pez nyeetz, Der Martin!

                  Warum also kommt die Duden-Redaktion jetzt plötzlich daher und meint, es müsse "Pizzas" heißen? Das ist weder sinnvoll noch für mich nachvollziehbar. Es mag zahlreiche andere Beispiele geben, bei denen eine solche Simplifizierung eher nachvollziehbar ist.

                  Es gibt im deutschen im Prinzip 5 Pluralbildungen: -e, -er, -(e)n, -s, -- und nur sehr wenige Substantive, die auf -a enden http://sourceforge.net/projects/germandict/ findet in den ersten 400.000 Wörtern Zusammensetzungen mit

                  die Boa - Boas           [1s]
                  die Firma - Firmen            [1en]
                  die Domina - Dominas     [2s]
                  das Trauma - Traumata
                  die Gala - Galas         [3s]
                  das Drama - Dramen
                  die Saga - Sagas         [4s]
                  das Schema - Schemata
                  das Prisma - Prismen
                  die Skala - Skalen            [2en]
                  die Kamera - Kameras     [5s]
                  die Agenda - Agenden          [3en]
                  die Propaganda -
                  die Arena - Arenen            [4en]
                  die Fauna - Faunen            [5en]
                  die Liga - Ligen              [6en]
                  das Panorama - Panoramen
                  die Villa - Villen            [7en]
                  die Prosa -
                  das Thema - Themen
                  die Rikscha - Rikschas   [6s]
                  Jura -
                  das Klima - Klimas Klimata
                  das Dia - Dias
                  die Basilika - Basiliken      [8en]
                  die Madonna - Madonnen        [9en]
                  die Oma - Omas           [7s]
                  das Plasma - Plasmen
                  das Komma - Kommas Kommata
                  das Koma - Komas Komata
                  Yoga -
                  der Gorilla - Gorillas, das einzige männliche (?)
                  die Aura - Auren              [10en]
                  die Flora - Floren            [11en]
                  das Delta - Deltas Delten[8s] [12en]
                  das Paradigma - Paradigmen
                  das Thema - Themen Themata
                  das Trema - Tremas Tremata
                  die Gerbera - Gerberas   [9s]

                  Praktisch kommen nur -en und -s vor.

                  Sowohl Duden als auch Wiktonary erlauben für Pizza beide Pluralformen.

                  Matthias

                  --
                  Der Unterschied zwischen Java und JavaScript ist größer als der zwischen Ur und Ural.

                  1. Hallo,

                    Es gibt im deutschen im Prinzip 5 Pluralbildungen: -e, -er, -(e)n, -s, -- und nur sehr wenige Substantive, die auf -a enden

                    hier meinst du wohl: ... deren Plural auf -a endet? - Und das sind dann meist auch Lehnworte.
                    Denn Substantive, die (im Singular) auf -a enden, gibt's ja reichlich, wie du selbst auflistest.

                    die Boa - Boas           [1s]
                    die Firma - Firmen            [1en]
                    die Domina - Dominas     [2s]
                    das Trauma - Traumata
                    die Gala - Galas         [3s]
                    das Drama - Dramen

                    Nicht gezählt? Warum?

                    die Fauna - Faunen            [5en]

                    Ein Plural für Fauna? Was für einen Sinn ergibt das? Fauna ist ein Generikum ("die Tierwelt"), bei dem ein Plural IMO ebenso sinnlos ist wie etwa bei "Wärme" oder "Literatur".

                    die Basilika - Basiliken      [8en]

                    Moment! Basilika ist doch schon der Plural von Basilikum! ;-)

                    der Gorilla - Gorillas, das einzige männliche (?)

                    Nö. Pascha ist auch männlich. Meistens. ;-)

                    die Flora - Floren            [11en]

                    Siehe Kommentar zu Fauna.

                    das Delta - Deltas Delten[8s] [12en]

                    Delten?? Klingt sehr merkwürdig, wenn auch logisch. Ist mir noch nie bewusst untergekommen.

                    Ciao,
                     Martin

                    --
                    Wer morgens zerknittert aufsteht, hat den ganzen Tag Gelegenheit, sich zu entfalten.
                    Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(
                    1. Om nah hoo pez nyeetz, Der Martin!

                      Es gibt im deutschen […] nur sehr wenige Substantive, die auf -a enden
                      hier meinst du wohl: ... deren Plural auf -a endet? - Und das sind dann meist auch Lehnworte.

                      Nein, die Singular auf -a enden.

                      Denn Substantive, die (im Singular) auf -a enden, gibt's ja reichlich, wie du selbst auflistest.

                      Das sind wenige.

                      das Drama - Dramen
                      Nicht gezählt? Warum?

                      Pizza ist weiblich, deshalb.

                      die Fauna - Faunen
                      Ein Plural für Fauna? Was für einen Sinn ergibt das? Fauna ist ein Generikum ("die Tierwelt"), bei dem ein Plural IMO ebenso sinnlos ist wie etwa bei "Wärme" oder "Literatur".

                      Ja, bei manchen Angaben habe ich mich auf gewundert. Aber man kann ja die Fauna Australiens mit der Europas vergleichen.

                      der Gorilla - Gorillas, das einzige männliche (?)
                      Nö. Pascha ist auch männlich. Meistens. ;-)

                      Siehste.

                      Matthias

                      --
                      Der Unterschied zwischen Java und JavaScript ist größer als der zwischen Eins und Einsatzwagen.

                      1. Hallo,

                        Es gibt im deutschen […] nur sehr wenige Substantive, die auf -a enden
                        hier meinst du wohl: ... deren Plural auf -a endet? - Und das sind dann meist auch Lehnworte.
                        Nein, die Singular auf -a enden.
                        Denn Substantive, die (im Singular) auf -a enden, gibt's ja reichlich, wie du selbst auflistest.
                        Das sind wenige.

                        hm, dann haben wir unterschiedliche Auffassungen von "wenig".

                        das Drama - Dramen
                        Nicht gezählt? Warum?
                        Pizza ist weiblich, deshalb.

                        Jetzt wird mir überhaupt erst klar, dass du nur die weiblichen berücksichtigt hast. Warum sagst du das nicht? Auf das Genus habe ich bisher überhaupt nicht geachtet.
                        Vielleicht hättest du deine Liste nach Artikel sortieren sollen, damit man das Prinzip erkennt - und auch erkennt, dass es keine eindeutige Gesetzmäßigkeit für den Zusammenhang zwischen Genus und Pluralform gibt.

                        der Gorilla - Gorillas, das einzige männliche (?)
                        Nö. Pascha ist auch männlich. Meistens. ;-)
                        Siehste.

                        Womit deine Anmerkung "das einzig männliche", auch wenn sie mit einem Fragezeichen garniert war, hinfällig ist. Mehr wollte ich gar nicht sagen.

                        Ciao,
                         Martin

                        --
                        Wichtig ist, was hinten rauskommt.
                          (Helmut Kohl, 16 Jahre deutsche Bundesbirne)
                        Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(
                3. Hallo,

                  "pizze". Das ist vielleicht nicht jedem Deutsch-Muttersprachler vertraut.

                  Eher so gut wie niemandem.

                  Aber die Pluralform "Pizzen" ist seit über 30 Jahren verbreitet und üblich

                  Welche Daten liegen dir diesbezüglich vor? Und welche stützen, dass »Pizzas« nicht solange verbreitet und üblich ist?

                  Warum also kommt die Duden-Redaktion jetzt plötzlich daher und meint, es müsse "Pizzas" heißen?

                  Tut sie das? »Jetzt«? »Plötzlich«? Wann wurde »Pizzas« denn dem Duden hinzugefügt?

                  Im Übrigen: Die Duden-Redaktion »kommt nicht daher« und »meint, es müsse irgendwie heißen«. Die Duden-Redaktion bildet die verwendete Sprache ab – das sollte dir bekannt sein. Findet ein Wort Gebrauch und gehorcht zudem Regeln der Morphologie, so wandert es in den Duden. Das ist deskriptive, synchrone Sprachwissenschaft.

                  Mathias

                  1. Hi,

                    "pizze". Das ist vielleicht nicht jedem Deutsch-Muttersprachler vertraut.
                    Eher so gut wie niemandem.

                    naja, wer ab und zu "beim Italiener" essen geht, kommt nicht daran vorbei, irgendwann auch die italienische Fassung zu kennen.

                    Aber die Pluralform "Pizzen" ist seit über 30 Jahren verbreitet und üblich
                    Welche Daten liegen dir diesbezüglich vor?

                    Die Tatsache, dass ich die Pluralform "Pizzen" seit früher Jugend kenne, sie in meinem Umfeld in all den Jahren die einzig vorkommende war, und dass ich "Pizzas" erst gestern im Posting von bluedragon zum ersten Mal gelesen habe. Dieser eigene Eindruck genügt mir, auch wenn er subjektiv ist.

                    Und welche stützen, dass »Pizzas« nicht solange verbreitet und üblich ist?

                    Zumindest nicht bis zu mir vorgedrungen.

                    Warum also kommt die Duden-Redaktion jetzt plötzlich daher und meint, es müsse "Pizzas" heißen?
                    Tut sie das? »Jetzt«? »Plötzlich«?

                    Nein, vielleicht nicht. Es ist allerdings schade, dass du umgangssprachliche Redewendungen nicht als das erkennst, was sie sein möchten - zum Beispiel ein überspitzter Ausdruck der eigenen Wahrnehmung.

                    Im Übrigen: Die Duden-Redaktion »kommt nicht daher« und »meint, es müsse irgendwie heißen«. Die Duden-Redaktion bildet die verwendete Sprache ab – das sollte dir bekannt sein.

                    Ich habe eher den Eindruck, dass die Duden-Redaktion versucht, Sprache in bestimmte Richtungen zu lenken, indem die eine oder andere Wortform oder Schreibweise irgendwann als richtig oder bevorzugt dargestellt wird. Denn meistens ist es so, dass man "neue" Begriffe oder Schreibweisen im Duden zum ersten Mal liest und sich dann fragt: "Wie können die nur?!"

                    Ciao,
                     Martin

                    --
                    Lieber Hahn im Korb, als Tiger im Tank.
                    Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(
                    1. Hallo,

                      Ich habe eher den Eindruck, dass die Duden-Redaktion versucht, Sprache in bestimmte Richtungen zu lenken, indem die eine oder andere Wortform oder Schreibweise irgendwann als richtig oder bevorzugt dargestellt wird.

                      Wie kommst du auf diese Unterstellung und wie begründest du sie?

                      Mehrere gängige Wortformen wie Pizzas und Pizzen werden derzeit ohne Wertung nebeneinander gestellt. Wenn ein Wort oder eine Wortform ausstirbt, dann ist das eben so und der Duden gibt diese Entwicklung nachträglich wieder.

                      Natürlich lenkt der Duden die Sprache in eine bestimmte Richtung, auch wenn es nicht beabsichtigt ist: Er verstärkt nämlich den aktuellen bzw. im Zeitraum der Erstellung beobachteten Sprachgebrauch, indem er ihn wiedergibt. Das tun so ziemlich alle Wörterbücher, die synchron die Gegenwartssprache abdecken.

                      Doch letztlich ist der Duden eine deskriptive Veranstaltung und seine Arbeit steht in keinem Vergleich zu geplanten, normativen Sprachänderungen wie z.B. die von der bundesdeutschen Kultusministerkonferenz in Auftrag gegebene Rechtschreibreform.

                      Jedenfalls ist es unbegründet, der Duden-Redaktion eine geheime Agenda zu unterstellen, als würde insgeheim versucht, die Sprache zu beeinflussen.

                      Deine persönlichen Eindrücke und Wahrnehmungen seien dir ungenommen, aber man muss auch bei den linguistischen Fakten bleiben.

                      Mathias

                    2. @@Der Martin:

                      nuqneH

                      naja, wer ab und zu "beim Italiener" essen geht, kommt nicht daran vorbei, irgendwann auch die italienische Fassung zu kennen.

                      „Achso.“

                      Qapla'

                      --
                      „Talente finden Lösungen, Genies entdecken Probleme.“ (Hans Krailsheimer)
  2. hat jemand vll nen tip wie ich ein true oder false herzaubere.

    Achja, true und false sind keine Strings, du willst aber einen solchen ausgeben. Also prüfe, ob das Ergebniss true ist und zeige dann entsprechend einen String an z.B. so:

      
    if($POST['Eigenschaft2'] == true)  
         echo "Newsletter: ja";  
    
    

    BTW. Formulareingaben ungeprüft  im Script zu verarbeiten ist grob fahrlässig. Aber Spammer usw. wird es höllisch freuen, den Anwalt, der dich dann vertreten muss, auch, denn er wird an dir viel Geld verdienen.

    1. Tach!

      if($POST['Eigenschaft2'] == true)

      Wenn es wahr ist, dass $POST['Eigenschaft2'] wahr ist, dann ... Man muss das nicht so umständlich schreiben. Zudem sind Einträge in $_POST[] immer Strings. Keine Zahlen, keine booleschen Werte, nur Strings (oder Arrays wenn die Feldnamen [] enthalten). Man kann das so testen, wenn das value-Attribut einen Wert enthalt, den PHP zu true typecasten kann. Aber man bekommt auf diese Weise auch Notice-Meldungen wegen Zugriffen auf einen nicht vorhandenen $_POST-Eintrag, wenn die Checkbox nicht angehakt wurde.

      BTW. Formulareingaben ungeprüft  im Script zu verarbeiten ist grob fahrlässig. Aber Spammer usw. wird es höllisch freuen, den Anwalt, der dich dann vertreten muss, auch, denn er wird an dir viel Geld verdienen.

      Nur was in den Header gelangt, ist kritisch. Betreff und Body stellen kein Problem dar.

      dedlfix.

      1. Nur was in den Header gelangt, ist kritisch. Betreff und Body stellen kein Problem dar.

        Also für Buffer-Overflow o.ä. dürfte es ziemlich wurscht sein, wo da was reinkommt. IMO geht es ja nicht nur darum, Werte ist Script zu pushen sondern durch Manipulation Code auf den Server zu spielen und auszuführen.
        Keine Ahnung, wie der aktuelle Stand dazu ist, aber Prüfungen schaden nie ;)

        1. Meine Herren,

          Nur was in den Header gelangt, ist kritisch. Betreff und Body stellen kein Problem dar.

          Also für Buffer-Overflow o.ä. dürfte es ziemlich wurscht sein, wo da was reinkommt.

          PHP ist für Pufferüberläufe nicht anfällig. Es könnte aber andere beteiligte Programme, etwa C-Prgrogramme, geben, die Sicherheitslücken offenbaren. Die Frage ist dann, ob die Zuständigkeit für diese Sicherheitslücken wirklich bei PHP liegen, imho nicht.

          --

          Hey Girl,
          i wish you were asynchronous, so you'd give me a callback.
          1. Die Frage ist dann, ob die Zuständigkeit für diese Sicherheitslücken wirklich bei PHP liegen, imho nicht.

            Und das bedeutet,es ist völlig unnötig, sowas versuchen auszuschliessen, weills ja nicht deine Sache ist?
            Ein Argument, das ich nicht verstehe, was mir abernen grund zeigt, dass da draussen so viele Projekte mit so vielen Sicherheitslücken existieren.

            1. Meine Herren,

              Die Frage ist dann, ob die Zuständigkeit für diese Sicherheitslücken wirklich bei PHP liegen, imho nicht.

              Und das bedeutet,es ist völlig unnötig, sowas versuchen auszuschliessen, weills ja nicht deine Sache ist?

              Nein, das bedeutet, ich würde dazu tendieren, das Problem an der Wurzel zu packen und nicht irgendwo anders beheben.

              Ein Argument, das ich nicht verstehe, was mir abernen grund zeigt, dass da draussen so viele Projekte mit so vielen Sicherheitslücken existieren.

              Tut es das? Was hast du eigentlich für eine Aversion gegen mich?

              --
              Hey Girl,
              i wish you were asynchronous, so you'd give me a callback.
              1. Nein, das bedeutet, ich würde dazu tendieren, das Problem an der Wurzel zu packen und nicht irgendwo anders beheben.

                Also z.B. einen Bug in ner Fremdsoftware beheben? Wenn z.B. PHP ne Sicherheitslücke hat, versuche ich, mit dem Script diese zu umgehen, da ich nicht weiss, welche Version der Zielserver hat.
                Ich kann mich als Programmierer nicht drauf verlassen, dass das Zielsystem perfekt eingerichtet ist und keine Lücken aufweisst.

                Was hast du eigentlich für eine Aversion gegen mich?

                Da ich dich nicht kenne, kann ich sowas nicht haben. Wenn meine Schreibe sowas suggeriert, ist das nicht meine Absicht. Ich vermute, es liegt daran, dass beim Schreiben Dinge wie Mimik usw. nicht rüberkommen.

                1. Meine Herren,

                  Was hast du eigentlich für eine Aversion gegen mich?

                  Da ich dich nicht kenne, kann ich sowas nicht haben. Wenn meine Schreibe sowas suggeriert, ist das nicht meine Absicht. Ich vermute, es liegt daran, dass beim Schreiben Dinge wie Mimik usw. nicht rüberkommen.

                  Okay, das kann natürlich sein ;)

                  --
                  Hey Girl,
                  i wish you were asynchronous, so you'd give me a callback.
            2. Tach!

              Die Frage ist dann, ob die Zuständigkeit für diese Sicherheitslücken wirklich bei PHP liegen, imho nicht.
              Und das bedeutet,es ist völlig unnötig, sowas versuchen auszuschliessen, weills ja nicht deine Sache ist?

              Wenn es ein Pufferüberlaufproblem bei Strings in PHP gäbe, dann würde das vermutlich bereits bei der PHP-seitigen Befüllung des $_POST-Arrays zuschlagen. Da kannst du vorher nichts prüfen. Ich sehe auch keine Sinnhaftigkeit darin, mit Anwendercode prophylaktisch Problemen vorzubeugen, von denen gar nicht bekannt ist, ob sie überhaupt da sind und vor allem, auf welche Art sie funktionieren. Was willst du denn dann erlauben? Nur Leerstrings? Selbst dabei weißt du nichts vom eventuellen Problempotential, wenn dir der Code von PHP unbekannt ist oder du wissenstechnisch oder zeitlich gar nicht in der Lage bist, zu prüfen, was PHP mit deinem Code anstellt oder mit den zu verarbeitenden Daten anstellen könnte.

              dedlfix.

              1. Was willst du denn dann erlauben?

                Na z.B. brauche ich bei der Abfrage eine PLZ keinen String von 64kb zu akzeptieren.
                Alleine schon die Tatsache, dass solche Strings unnötig ressourcen brauchen, begrenze ich die schon. Der Buffer-Overflow war wohl ein schlechtes Beispiel, aber es gibt gute Gründe, Benutzereingaben zu prüfen.

                Als ich noch jung war, gabs mal Dinge wie SQL-Injection u.a., keine Ahnung, was da heute noch relevant ist.

                1. Tach!

                  Was willst du denn dann erlauben?
                  Na z.B. brauche ich bei der Abfrage eine PLZ keinen String von 64kb zu akzeptieren.
                  Alleine schon die Tatsache, dass solche Strings unnötig ressourcen brauchen, begrenze ich die schon.

                  Wenn der Wert einmal als PHP-String vorliegt, was bei $_POST definitiv der Fall ist, ist kein großer Blumentopf mehr zu gewinnen. Der Speicher ist bereits belegt. Neuer zusätzlicher Speicher wird erst belegt, wenn der Wert in einen anderen String eingefügt oder anderweitig verändert wird. Reine Variablenumkopierungen ohne weitere Änderungen verdoppeln den Speicherbedarf nicht, dafür sorgt das Copy-On-Change-Prinzip. Erst wenn Werte auseinanderlaufen, wird intern kopiert, ansonsten nur quasi referenziert.

                  Als ich noch jung war, gabs mal Dinge wie SQL-Injection u.a., keine Ahnung, was da heute noch relevant ist.

                  Nicht bei Email.

                  PHPs mail()-Funktion wurde vor langer Zeit (noch innerhalb der 4er Reihe) sicherer gemacht. $to und $subject schlucken gefahrlos alles, was man ihnen vorsetzt. Zeilenumbrüche werden entsorgt. Für $message gibt es sowieso keine Beschränkungen. Bleibt noch $additional_headers. Da man hier die einzelnen Zeilen mit CRLF getrennt übergeben muss, kann das natürlich auch ein Angreifer ausnutzen. Das ist ein Punkt, den man beachten muss. Wenn also Zeilenumbrüche in Werten für zum Beispiel die From-Zeile enthalten sind, dann ist da was faul. Vermutlich ist auch $additional_parameters anfällig. Das wird so selten benötigt, das muss man dann im Einzelfall betrachten.

                  (Gegen SQL-Injection (also, natürlich nur, wenn es um Datenbank und nicht um Email geht) hilft die kontextgerechte Behandlung von einzufügenden Werten. Prüfungen auf Länge oder bestimmten Inhalt sind für SQL-Injection nicht weiter relevant.)

                  dedlfix.

  3. Tach!

    $email = "$_POST[email]";
    $name = "$_POST[complete_name]";
    $city = "$_POST[city]";
    $phonenumber = "$_POST[phonenumber]";

    Warum machst du denn solche wenig sinnvollen Dinge? Werte umkopieren, weil dir einfache Variablen besser gefallen als Array-Zugriffe? Die Werte werden jedoch nur ein einziges Mal verwendet, also gibt es noch nicht mal eine Einsparung beim Variablennamentippen. Zudem steckt der gesamten Array-Zugriff in einem String, obwohl $_POST['foo'] ebenfalls ginge.

    $form_cont = "Hier steht der Text. \n\n Formularinhalte aufrufen \n\n Name: $name \n City: $city  \n Email: $email \n Telefon: $phonenumber \n Newsletter :  ";
    $header = 'Content-type: text/plain; charset=UTF-8' . "\r\n";
    $header .= 'From:' . $name . '<' . $email . '>';

    Und wenn ich die passenden Werte in $email/$_POST['email'] eintrage, dann kann ich deine Headerzeilen manipulieren und wunderbar Spam versenden. Die Umkopierenergie wäre hier sinnvoller eingesetzt, indem du prüfst, ob in diesem Wert Zeilenumbrüche (\r oder \n oder beides) stecken. Das ist ein Zeichen für einen Spamversuch und sollte mit Scriptabbruch beantwortet werden.

    jetzt hab ich aber noch ne checkbox und wollte das so lösen :
    hat jemand vll nen tip wie ich ein true oder false herzaubere.

    Checkboxen senden nur dann etwas, wenn sie angehakt sind. Ansonsten kommt nichts von ihnen. Prüfe auf An-/Abwesenheit, zum Beispiel mit empty($_POST['checkbox']).

    dedlfix.

  4. Erstens: nimm Dir die Kommentare von dedlfix wirklich zu Herzen. Es könnte Leben retten (naja, so schlimm vielleicht doch nicht).

    Abgesehen davon

    $email = "$_POST[email]";
    $name = "$_POST[complete_name]";

    etc.

    ... Du greifst mit Konstanten (email, complete_name) auf das Array _POST zu. Das funktioniert, weil PHP beim Nicht-Vorhandensein dieser Konstante den Konstantennamen in einen String umwandelt. Bei entsprechendem Error-reporting gibt es Dir aber einen Hinweis aus. Besser

    $email = $_POST["email"];
    $name = $_POST["complete_name"];

    $form_cont = "Hier steht der Text. \n\n Formularinhalte aufrufen \n\n Name: $name \n City: $city  \n Email: $email \n Telefon: $phonenumber \n Newsletter : $newsletter ";

    Es lebe: var_dump($_POST);
    Viel einfacher zum Debuggen.

    Ich vermute jetzt einfach mal, dass was am html code für das Formular falsch ist. ZEig den mal her.

    Cheers,
    Baba

    1. Tach!

      Abgesehen davon

      $email = "$_POST[email]";
      $name = "$_POST[complete_name]";
      etc.
      ... Du greifst mit Konstanten (email, complete_name) auf das Array _POST zu.

      Nein, macht er nicht. (Was und wie er es macht ist trotzdem wenig sinnvoll.) Syntaktisch ist das so in Ordnung. Die Regel für Anführungszeichen sind nicht einheitlich bei Array-Zugriffen innerhalb und außerhalb von ""-Strings. Siehe PHP-Handbuch-Kapitel zu den Strings.

      Es lebe: var_dump($_POST);
      Viel einfacher zum Debuggen.

      Gute Idee, das zeigt dann die An- und Abwesenheit eines Eintrags, in Abhängigkeit vom Häkchenstatus.

      dedlfix.

      1. Nein, macht er nicht. (Was und wie er es macht ist trotzdem wenig sinnvoll.) Syntaktisch ist das so in Ordnung.

        Oh. Ok. Sorry. Wusste ich nicht.

        Baba

    2. hi baba

      danke für deine worte.

      hier mal das html :

        
                        <form name="formular1" id="formular1" action="xyz/vali_send.php" method="post" target="_blank">  
        
                          <div class="form_text">Your name:</div>  
                          <input id="complete_name" name="complete_name" type="text" size="28" maxlength="150">  
        
                          <div class="form_text">E-mail:</div>  
                          <input id="email" name="email" type="text" size="28" maxlength="150" onclick="white();">  
        
                          <div class="form_text">Phone number:</div>  
                          <input id="phonenumber" name="phonenumber" type="text" size="28" maxlength="150">  
        
                          <div class="form_text">City:</div>  
                          <input id="city" name="city" type="text" size="28" maxlength="150">  
        
                          <input type="hidden" name="studiomail" value="xyz">  
                          <br>  
        
                          <input type="checkbox" onclick="white2();" name="Eigenschaft1" value="terms" style="float:left;"><div id="check1" class="check">I agree to the <a href="xyz" target="_self">Terms & conditions.</a></div> <br>  
        
                          <input type="checkbox"  name="Eigenschaft2" id="Eigenschaft2" value="newsletter" style="float:left;"> <div class="check">Send me newsletters and promotions.</div> <br>  
        
               <input id="submit1" class="button" onclick="validation1();validation2();good_send();" type="button" value="Sign me up">  
               <div id="thankyou">Thank you for join us!</div>  
       </form>  
      
      

      bitte nicht gleich wieder los schimpfen mit js validation. mir ist klar das das mist ist. wollte abfrage über php machen, aber mein Chef meinte ne js reicht dafür - da ich das schneller umsetzen konnte.

      gruß micha

      1. Hallo,

        <form name="formular1" id="formular1" action="xyz/vali_send.php" method="post" target="_blank">

        wofür hat das  Formular ein name-Attribut? Brauchst du das? Ich würde ja entweder beim form-Element nur name *oder* id setzen, und bei den input-Elementen auf id verzichten - es sei denn, du brauchst die IDs unbedingt. Um die Elementobjekte mit JS zu adressieren, brauchst du sie jedenfalls nicht, da reicht document.formname.inputname.
        Und das Öffnen der Ergebnisseite in einem neuen Fenster ist irgendwie unanständig.

        <input type="checkbox" onclick="white2();" name="Eigenschaft1" value="terms" style="float:left;"><div id="check1" class="check">I agree to the <a href="xyz" target="_self">Terms & conditions.</a></div> <br>

        Schlechtes Markup. Und das Floaten ist auch nicht sinnvoll.
        Lass die Checkbox ohne float laufen, und setze die Beschriftung dazu in ein label-Element. Dann muss man auch nciht mehr direkt auf die Checkbox zielen, sondern kann auch auf die Beschriftung klicken. Das div entfällt übrigens ersatzlos.
        Das '&' muss natürlich maskiert werden, also &amp;. Klar?
        Ach ja, wie die Kollegen schon erklärt haben: Wenn die Checkbox nicht markiert ist, wird der Parameter Eigenschaft1 einfach nicht mit übertragen; ist sie es doch, dann als Eigenschaft1=terms.

        <input type="checkbox" name="Eigenschaft2" id="Eigenschaft2" value="newsletter" style="float:left;"> <div class="check">Send me newsletters and promotions.</div> <br>

        Dito.

        <input id="submit1" class="button" onclick="validation1();validation2();good_send();" type="button" value="Sign me up">

        <div id="thankyou">Thank you for join us!</div>
        </form>

        
        >   
        > bitte nicht gleich wieder los schimpfen mit js validation.  
          
        Nein, nicht deswegen (eine zusätzliche serverseitige Prüfung muss natürlich trotzdem sein). Aber warum hängst du die Überprüfung als onclick-Handler an den Submit-Button? Die gehört als onsubmit-Handler ans form-Element. Dann greift sie nämlich auch, wenn man das Formular "normal" absendet, also durch Drücken der Enter-Taste, anstatt den Button zu klicken.  
        And, by the way: "Thank you for join\_ing\_ us".  
          
        Ciao,  
         Martin  
        
        -- 
        Lieber blau machen, als sich schwarz ärgern.  
        Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(
        
        1. Ergänzung

          […] Ich würde […] bei den input-Elementen auf id verzichten - es sei denn, du brauchst die IDs unbedingt.

          Lass die Checkbox ohne float laufen, und setze die Beschriftung dazu in ein label-Element. Dann muss man auch nciht mehr direkt auf die Checkbox zielen, sondern kann auch auf die Beschriftung klicken.

          Genau dann braucht man u.U. die ID im input-Element

          <label for="vorname">Vorname: </label><input id="vorname" type="text">

          <label>Vorname: <input type="text"></label>

          Die zweite Variante ist vorzuziehen. Die Beschriftungen sollten in der Nähe der input-Elemente platziert sein, sodass dies in den meisten Fällen auch möglich sein sollte.

          Matthias

          --
          Der Unterschied zwischen Java und JavaScript ist größer als der zwischen Ventil und Ventilator.

  5. hi leuts

    erstmal vielen dank an euch alle.

    muss jetzt erstmal das alles verarbeiten was ihr gepostet habt.

    dedlfix:
    werte umkopieren - ja ist doof von mir. ich tu mir noch voll schwer mit php. ich finde es dann irgendwie übersichtlicher. mehr unnötige schreibarbeit ist es defenetiv.
    das mit der headerzeile versteh ich nicht ganz. wie kann man da was manipulieren?

    gru0 micha

    1. Tach!

      das mit der headerzeile versteh ich nicht ganz. wie kann man da was manipulieren?

      Der mail()-Parameter $additional_headers verlangt vollständige Headerzeilen, und die mit CRLF getrennt. In deinem Fall bildest du die Zeile so:

      $header .= 'From:' . $name . '<' . $email . '>';

      Wenn dir nun zum Beispiel in $_POST['complete_name'] (= $name) jemand den Wert

      foo
      Bcc: Liste mit Adressen,

      schickt, dann sieht dein Header so aus:

      From:foo
      Bcc: Liste mit Adressen,<und noch die adresse aus $email>

      Und die Einträge in der Adressenliste bekommen nun von deinem Server den allerfeinsten Spam zugeschickt.

      Also solltest du prüfen, ob in den Werten für Name und Email, die du in die From-Zeile einfügen wolltest, Zeilenumbrüche drin sind. Und das besonders, wenn du nur einzeilige Eingabefelder vorgesehen hast. Du kannst dann das Script auf der Stelle beenden lassen (die() oder exit), denn in dem Fall brauchst auch du keine Mail zugestellt bekommen - es sei denn, du willst wirklich die Spamversuche sehen.

      Siehe auch http://wiki.selfhtml.org/wiki/Artikel:Kontextwechsel/erkennen_und_behandeln#E-Mail

      dedlfix.

      1. schönen guten morgen dedlfix.

        vielen dank für deine erklärung.
        verstehe zwar jetzt was du meinst, weis aber leider nicht wie ich das umsetzen kann, bzw
        muss mich da erstmal rein arbeiten. das werde ich dann mal am wochenende machen müssen.

        theoretisch könnte ich doch abfragen ob mehr als ein @ zeichen übergeben wurde, sprich bei 2 @ zeichen wird das script mit die() oder exit beendet.

        weis leider nicht wie ich auf zeielnumbrüche prüfen soll, bzw du meintest ich soll $email und $name auf zeilenumbrüche prüfen, was ich nicht verstehe ist, ich habe ein einzeiliges inputfeld, wenn jetzt jemand mehrere adressen reinschreibt trennt er doch nicht mit nem umbruch sondern mit nem leerzeichen oder ?

        gruß micha

        1. Tach!

          theoretisch könnte ich doch abfragen ob mehr als ein @ zeichen übergeben wurde, sprich bei 2 @ zeichen wird das script mit die() oder exit beendet.

          Zwei @ wären auch verkehrt, aber sie stören in der From-Zeile nicht - sicherheitstechnisch. Wichtiger sind die Zeilenumbrüche

          weis leider nicht wie ich auf zeielnumbrüche prüfen soll, bzw du meintest ich soll $email und $name auf zeilenumbrüche prüfen, was ich nicht verstehe ist, ich habe ein einzeiliges inputfeld, wenn jetzt jemand mehrere adressen reinschreibt trennt er doch nicht mit nem umbruch sondern mit nem leerzeichen oder ?

          Man braucht keinen Browser, um Formulardaten an ein Script zu senden. Wenn man sie direkt sendet, kann man alles mögliche mitschicken (und da hilft auch keine Javascript-Prüfung). Das heißt, selbst wenn du ein einzeiliges Eingabefeld oder ein Select, Radiobuttons oder Checkboxen mit vorgegebenenen Werten in dein Formular einbaust, kann man dir trotzdem alles mögliche und unmögliche schicken. Eine serverseitige Prüfung ist unverzichtbar.

          Auf Zeilenumbrüche zu prüfen ist nicht schwerer als auf andere Zeichen. Sie sind lediglich etwas anders zu notieren. Und du weißt bereits, dass sie als \r und \n geschrieben werden müssen. Die einfachste Prüfung wäre nun

          if (strpos($name, "\r") !== false and strpos($name, "\n") !== false)
            die();

          Du kannst auch in dem bereits verlinkten Kontextwechsel-Artikel fündig werden. Die dortige Funktion findet auch noch andere undruckbare Zeichen, die ebenfalls nichts in einem Namen oder einer Email verloren haben.

          dedlfix.