Dynamisch generierte Textfelder mit php ausgeben!?!

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

  • Soderle. Hab ein bisschen rumgebastelt. Es kommt jetzt zumindest mal der Teil von der Mail Adresse vor dem "@" an Danke schonmal dafür.

    Ein anderes Problem ist die Session ID. Die ist ja in der Adresszeile für jeden ersichtlich.
    Gibt es da eine Möglichkeit, dass du unterbinden?
    Mit $_POST?
    oder session.use_only_cookies??

    Kommentar


    • Dann klappt es jetzt so wie gewünscht?
      Die ist ja in der Adresszeile für jeden ersichtlich.
      Nicht für jeden, sondern nur für den der den Request abgesetzt hat. Mit Cookies könntest du die Übertragung der Session ID ebenfalls sicherstellen. Wobei du als Fallback die Übertragung via URL trotzdem haben solltest, da der User Cookies deaktiviert haben könnte.

      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


      • Ich habe bei
        PHP-Code:
        echo '<hr><strong><a href="'.$_SERVER['PHP_SELF'].'?mail&'.'.strip_tags(SID).">Senden</a></strong><hr>'
        das strip_tags(SID) rausgenommen. Oder würde das zu Komplikationen führen.

        Es klappt jetzt auf jeden Fall schonmal
        Leider ist mir immer noch nicht klar, wieso er die spitzen Klammern von alleine setzt. Setze ich jetzt spitze Klammern um die mailadresse (im Quellcode) dann bringt er wieder die Syntax Fehlermeldung "<<>>" etc.
        Und warum er nicht die ganze email Adresse als Absender anzeigt weiß ich auch nicht

        Noch eine Frage:
        Falls ein User eine falsche Eingabe macht oder sich vertippt, kann er ja im Browser zurückgehen und die Eingaben ändern. Diese werden aber nicht übernommen, sondern die als erstes eingegebenen Daten bleiben in der Sesseion erhalten. Er muss dann quasi wieder ein neues Browserfenster öffnen. Weißt du, was ich meine?

        Kommentar


        • PHP-Code:
          echo '<hr><strong><a href="'.$_SERVER['PHP_SELF'].'?mail&'.'.strip_tags(SID).">Senden</a></strong><hr>'
          So hättest du eh den String '.strip_tags(SID)' angehängt, was du kaum haben wolltest
          PHP-Code:
          echo '<hr><strong><a href="'.$_SERVER['PHP_SELF'].'?mail&'.strip_tags(SID).'">Senden</a></strong><hr>'
          wäre schonmal besser. Wenn du die Session ID so übergeben wolltest wundert es mich eh warum du auf gewissen Session Inhalte zugreifen konntest...

          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


          • Original geschrieben von timmey883


            Noch eine Frage:
            Falls ein User eine falsche Eingabe macht oder sich vertippt, kann er ja im Browser zurückgehen und die Eingaben ändern. Diese werden aber nicht übernommen, sondern die als erstes eingegebenen Daten bleiben in der Sesseion erhalten. Er muss dann quasi wieder ein neues Browserfenster öffnen. Weißt du, was ich meine?
            Hast du da eine Lösung parat??

            Nochmal Danke für die tolle Hilfe

            Kommentar


            • Der User gibt seine Daten ein --> verschickt das Form --> Daten werden in Session gespeichert --> der User klickt den Zurück-Button --> er ändert Eingaben --> verschickt das Form erneut --> geänderte Daten werden in der Session gespeichert (aber nur die geänderten, den Rest kannst du belassen)
              Er muss dann quasi wieder ein neues Browserfenster öffnen. Weißt du, was ich meine?
              Kurze Antwort: Nein verstehe ich nicht. Wieso ein neues Browserfenster?
              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


              • Das funktioniert aber nicht ganz.
                Falls eine falsche Email Adresse eingegeben wird, wird dies angezeigt. Ein Absenden der .php ist dann nicht möglich. Der User wird aufgefordert, die Eingabe zu überprüfen.
                Kehrt der User nun über den zurück-button zurück und gibt eine korrekte Email Adresse ein, kann er dann zwar das .php als mail schicken, als Absender wird aber immernoch die zuvor eingegebene, ungültige email Adresse angezeigt.

                Hab´s grad nochmal durch eine Ausgabe der From Session überprüft: Die erste Eingabe bleibt erhalten.
                Zuletzt geändert von timmey883; 07.03.2008, 09:56.

                Kommentar


                • Hab´s grad nochmal durch eine Ausgabe der From Session überprüft: Die erste Eingabe bleibt erhalten.
                  Und darum habe ich gesagt
                  geänderte Daten werden in der Session gespeichert (aber nur die geänderten, den Rest kannst du belassen)
                  Vergleiche die neuen Werte mit den in der Session gespeicherten Werten. Bei Unterschieden trägst du die neuen Werte in die Session ein, bei gleichen Werte lässt du die Session sein...
                  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


                  • Ok, wie gesagt... Neuer Wert wird eingegeben, alter Wert bleibt immer in der Session erhalten.

                    Wie schreibe ich denn nun die neuen, geänderten Werte wieder in die Session?


                    Könnte ich beim zurückgehen auch die Session leeren oder löschen?

                    Kommentar


                    • Wie schreibe ich denn nun die neuen, geänderten Werte wieder in die Session?
                      Genau gleich wie du die alten bereits zugewiesen hast
                      PHP-Code:
                      $_SESSION['DerName'] = $wert
                      Könnte ich beim zurückgehen auch die Session leeren oder löschen?
                      Wenn du den Client dazu bringst einen Request an den Server abzusetzen wenn du den Back-Button klickst dann schon. Sonst nicht, weil ein Back im Borwser die Seite nicht neu aufruft, sondern aus dem Cache liest.
                      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


                      • Guten Morgen

                        jetzt hab ich ne Zeit lang an der Sache rumgebastelt. Ist aber nix gescheites rausgekommen.

                        "Wenn du den Client dazu bringst einen Request an den Server abzusetzen wenn du den Back-Button klickst dann schon."

                        Wie bringe ich den denn dazu?

                        Kommentar


                        • Wie bringe ich den denn dazu?
                          Gut zureden
                          Ansonsten wüsste ich nix wie du den Client beim Zurückgehen zu einem Request an den Server zwingen könntest
                          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


                          • Dann kommen wir nochmal dazu zurück, wie man die Daten erneut in die SESSION schreibt.
                            Wie mache ich das denn genau?
                            Also die Emailadresse soll wieder neu in die Session geschrieben werden. Du kennst die Problematik ja noch

                            Wäre dann auch die letzte Frage

                            Und noch was anderes: Ich möchte vermeiden, nach dem email Senden das Form mit "exit()" zu schließen. Wenn die mail verschickt wurde, erscheint dann in der .php folgender text:
                            PHP-Code:
                            mail($to,$subject,$_SESSION['mailContent'],$_SESSION['from']);
                            echo 
                            "<font color='#000000'>
                            Vielen Dank.<br>Ihre Daten wurden erfolgreich gesendet.<br>
                            Sie k&ouml;nnen das Formular jetzt schlie&szlig;en.</font>"
                            ;echo '<hr><strong><a href="" onClick="window.close();">
                            Formular schlie&szlig;en</a><p>'

                            }

                            Die mail wurde erfolgreich gesendet.
                            Nun steht aber am Ende der Seite: "Email Adresse ungültig, bitte überprüfen sie ihre Eingaben" Das könnte natürlich zu Irritationen führen. Hier mal der Code zum Prüfen der Eingaben:

                            PHP-Code:
                            if(ereg("[a-zA-Z]",$_POST['anfTel']))
                            {
                            echo 
                            "<font color=#FF0000>Ungültige Telefonnummer!<br>Bitte überprüfen Sie ihre Eingabe.</font>";
                            }else{
                            if(
                            ereg("[a-zA-Z]",$_POST['userTel']))
                            {
                            echo 
                            "<font color=#FF0000>Ungültige Telefonnummer!<br>Bitte überprüfen Sie ihre Eingabe.";
                            }else{    
                            if (
                            $anfMail preg_match("/[\.a-zA-Z0-9_-]+@[a-zA-Z0-9]{2,}\.[a-z]{2,4}$/i",$anfMail)){
                            echo 
                            '<hr><strong><a href="'.$_SERVER['PHP_SELF'].'?mail">Senden</a></strong><hr>';
                            }
                            if(!
                            $anfMail){
                            echo 
                            "<font color=#FF0000>Ung&uuml;ltige Email-Adresse!<br>Bitte überprüfen Sie ihre Eingabe.</font>";
                            }
                            }

                            Zuletzt geändert von timmey883; 10.03.2008, 10:32.

                            Kommentar


                            • Also die Emailadresse soll wieder neu in die Session geschrieben werden. Du kennst die Problematik ja noch
                              Dann musst du zuerst prüfen ob sich die Email Adresse geändert hat. Wenn also der gesendete Wert nicht mit dem in der Session gespeicherten Wert übereinstimmt, dann schreibst du den neuen Wert in die Session Variable.
                              Ich möchte vermeiden, nach dem email Senden das Form mit "exit()" zu schließen
                              Die Aufgabe von exit ist es nicht ein Fenster zu schliessen (kann es auch gar nicht). Sondern es dient dazu die weitere Abarbeitung von PHP Code zu unterbinden!
                              Nun steht aber am Ende der Seite: "Email Adresse ungültig, bitte überprüfen sie ihre Eingaben"
                              Dann musst du also mal den Wert von $anfMail prüfen (var_dump() kann helfen)
                              Ich würde das nicht über ein if sondern ein else machen
                              PHP-Code:
                              if ($anfMail preg_match("/[.a-zA-Z0-9_-]+@[a-zA-Z0-9]{2,}.[a-z]{2,4}$/i",$anfMail)){
                                echo 
                              '<hr><strong><a href="'.$_SERVER['PHP_SELF'].'?mail">Senden</a></strong><hr>';
                              }else{
                                echo 
                              "<font color=#FF0000>Ung&uuml;ltige Email-Adresse!<br>Bitte überprüfen Sie ihre Eingabe.</font>";

                              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


                              • OffTopic:
                                Übrigens ist der eMail-RegExp totaler Käse!
                                [FONT="Helvetica"]twitter.com/unset[/FONT]

                                Shitstorm Podcast – Wöchentliches Auskotzen

                                Kommentar

                                Lädt...
                                X