tobsp: mysql - adam und eva

hallo zusammen,

ich habe ein kontaktformular. die daten was eingetragen werden, bekomme ich per mail zu gesendet.

ich möchte jetzt:
1. dass ich die daten weiterhin via mail erhalte
2. dass diese in eine datenbank eingetragen werden
3. auf einer anderen seite angezeigt werden

da ich keinerlei erfahrung mt mysql etc habe, wäre ich über hilfe sehr erfreut und dankbar

vielen dank

mfg tobsp

  1. Hallo,

    da ich keinerlei erfahrung mt mysql etc habe, wäre ich über hilfe sehr erfreut und dankbar

    ich empfehle Dir, die dafür zuständige Erweiterung mysqli zu nutzen. Denk daran, die Daten, die Du über die Formulareingabe erhältst, jeweils kontextspezifisch zu behandeln:

    1. dass ich die daten weiterhin via mail erhalte

    Hier hast Du einen Mail-Kontext,

    1. dass diese in eine datenbank eingetragen werden

    hier einen SQL-Kontext

    1. auf einer anderen seite angezeigt werden

    und hier einen HTML-Kontext. Für spezifischere Hilfe stelle bitte spezifischere Fragen.

    Freundliche Grüße

    Vinzenz

    1. mittlerweile weiß ich wie man eine verbindung zur datenbank erstellt. habe ich gerade getestet und funktioniert auch.

      aber welche befehle ich wie setzen muß, davon habe ich keine ahnung.
      auch welche angaben ich in der tabelle in der datenbank machen muss sind mir schleierhaft.

      hier der code des kontaktformulares:

      <?php
      session_start();
      include "inc/kopf.php.inc";
      include "inc/menu.php.inc";
      $name="";
      $email="";
      $eintrag="";
      $meldung="";

      if (isset($_POST["sicherheitscode"])) {
      if(isset($_SESSION['captcha_spam']) AND $_POST["sicherheitscode"] == $_SESSION['captcha_spam']){

      unset($_SESSION['captcha_spam']);

      $name=addslashes(htmlspecialchars(trim($_POST["name"])));
      $email=addslashes(htmlspecialchars(trim($_POST["email"])));
      $eintrag=addslashes(htmlspecialchars(trim($_POST["eintrag"])));
      $eintrag=ereg_replace("(\r\n|\n|\r)","<br>",$eintrag);
      if($name=="") {
      $meldung="<p>Bitte auf jeden Fall einen Namen eintragen.</p>\n";
      $name=$_POST["name"];
      $email=$_POST["email"];
      $eintrag=$_POST["eintrag"];
      }
      elseif (($email=="") OR (!ereg('[1]+(.[_a-zA-Z0-9-]+)*@[a-zA-Z0-9-]+(.[a-zA-Z0-9-]+)*(.([a-zA-Z]){2,4})$', $email))) {
      $meldung="<p>Bitte eine gültige eMail-Adresse hinterlegen.</p>\n";
      $name=$_POST["name"];
      $email=$_POST["email"];
      $eintrag=$_POST["eintrag"];
      }
      elseif ($eintrag=="") {
      $meldung="<p>Bitte auf jeden Fall eine Nachricht verfassen.</p>\n";
      $name=$_POST["name"];
      $email=$_POST["email"];
      $eintrag=$_POST["eintrag"];
      }
      else
      {

      $meldung="<p>Nachricht wurde versandt!</p>\n";

      $subject="Kontakt durch 123";
      $mailcontent="Es wurde eine neue Nachricht über das Kontaktformular verschickt:\n\n";
      $mailcontent.="Name: ".$name."\n\n";
      $mailcontent.="eMail: ".$email."\n\n";
      $mailcontent.="Eintrag: \n".$eintrag."\n\n";
      $mailcontent=ereg_replace("(<br>)","\n",$mailcontent);
      $mailcontent=str_replace("&quot;",""",$mailcontent);
      $mailcontent=str_replace("&amp;","&",$mailcontent);
      $mailcontent=str_replace("&lt;","<",$mailcontent);
      $mailcontent=str_replace("&gt;",">",$mailcontent);
      $from_address="From: "".$name."" <".$email.">\n";
      mail("123@123.de",$subject,$mailcontent,$from_address);

      $name="";
      $email="";
      $eintrag="";
      }

      }else{
      $meldung="<p>Der Sicherheitscode war falsch!</p>\n";
      $name=$_POST["name"];
      $email=$_POST["email"];
      $eintrag=$_POST["eintrag"];
      }

      }
      echo "<div id="box1">\n";
      echo "<p><b><font size="+2">Kontakt</font></b></p>\n";
      if ($meldung != "") {echo $meldung;}
      echo "<center>\n";
      echo "<form name="kontaktform" action="kontakt.php" method="POST">\n";
      echo "<table width="10">\n";
      echo "<tr>\n";
      echo "<td align="left" colspan="2">Alle Felder sind Pflichtfelder.</td>\n";
      echo "</tr>\n";
      echo "<tr><td colspan="2">&nbsp;</td></tr>";
      echo "<tr>\n";
      echo "<td align="left">Name:</td><td align="left"><input name="name" type="text" id="name" size="70" maxlength="50" class="eingabe"";
      echo " value="".$name.""";
      echo "></td>\n";
      echo "</tr>\n";
      echo "<tr>\n";
      echo "<td align="left">eMail:</td><td align="left"><input name="email" type="text" id="email" size="70" maxlength="50" class="eingabe"";
      echo " value="".$email.""";
      echo "></td>\n";
      echo "</tr>\n";

      echo "<tr>\n";
      echo "<td align="left" valign="top">Nachricht:</td><td align="left"><textarea name="eintrag" cols="70" rows="7" id="eintrag" class="eingabe">".$eintrag."</textarea></td>\n";
      echo "</tr>\n";
      echo "<tr><td colspan="2">&nbsp;</td></tr>";

      //eingefügt aus www.stoppt-den-spam.info
      echo "<tr>\n";
      echo "<td align="left"><img src="captcha/captcha.php" border="0" title="Sicherheitscode"></td>\n";
      echo "<td align="right">Sicherheitscode vom Bild: <input type="text" name="sicherheitscode" size="5"></td>\n";
      echo "</tr>\n";
      //hier ende des einfügens
      echo "<tr><td colspan="2">&nbsp;</td></tr>";
      echo "</table>\n";
      echo "<input name="formposten" type="submit" value="Abschicken" class="button" onclick="this.value='Bitte warten...';this.enabled=false;"></center><br>\n";
      echo "</form>\n";
      echo "</center>\n";
      include "aktualisierung.php";
      echo "</div>\n";

      include "inc/ende.php.inc";
      ?>


      1. _a-zA-Z0-9- ↩︎

      1. Hi,

        mittlerweile weiß ich wie man eine verbindung zur datenbank erstellt. habe ich gerade getestet und funktioniert auch.

        aber welche befehle ich wie setzen muß, davon habe ich keine ahnung.
        auch welche angaben ich in der tabelle in der datenbank machen muss sind mir schleierhaft.

        Na dann schnapp dir ein Anfaenger-Tutorial (und das PHP-Handbuch natuerlich), und fange an, es durchzuarbeiten.

        http://tut.php-quake.net/de/mysql.html

        hier der code des kontaktformulares:

        Ueberfluessig.

        MfG ChrisB

        --
        „This is the author's opinion, not necessarily that of Starbucks.“
        1. Na dann schnapp dir ein Anfaenger-Tutorial (und das PHP-Handbuch natuerlich), und fange an, es durchzuarbeiten.

          http://tut.php-quake.net/de/mysql.html

          so wenn ich mir dass so durchlese, dann bin ich aber bei meinem problem immer noch nicht schlauer.
          dort steht wie ich die verbindung aufbau, ein tabelle erstelle, die tabelle fülle (alles in der datenbank selbst) und wie ich es aufrufen kann.

          ich möchte aber dass die daten die eingegeben werden in die datenbank gelangen, darüber steht aber nix dort.

          1. Hi,

            ich möchte aber dass die daten die eingegeben werden in die datenbank gelangen, darüber steht aber nix dort.

            Na dann schau ins Handbuch der Datenbank, oder such dir ein Tutorial, das explizit darauf eingeht.

            MfG ChrisB

            --
            „This is the author's opinion, not necessarily that of Starbucks.“
          2. hi,

            dort steht wie ich die verbindung aufbau, ein tabelle erstelle, die tabelle fülle (alles in der datenbank selbst) und wie ich es aufrufen kann.

            Alles das, was du benötigst, um dein Ziel zu erreichen.

            ich möchte aber dass die daten die eingegeben werden in die datenbank gelangen, darüber steht aber nix dort.

            Du musst ja erstmal deine Datenbank aufbauen, Felder anlegen und ggf. Normalisieren.

            Dann musst du dein Kontakt-Formular ja nur um die Funktion erweitern, die eingegebenen Daten des Users nach dem Mail-Versand noch in die Datenbank zu schreiben.

            http://www.phpbuddy.eu/tutorials-und-workshops/13-mysqli-erweiterung-php-5.html

            Und eine Seite erstellen, in der alle Einträge angezeigt werden.

            http://www.phpbuddy.eu/tutorials-und-workshops/13-mysqli-erweiterung-php-5.html?start=3

            Und ein wenig eigeninitiative mitbringen.

            mfg

            --
            „Wenn du nicht bereit bist, dafür zu sterben, dann streiche das Wort »Freiheit« aus deinem Vokabular.“ -- Malcolm X
            I Have a Dream
            1. Hallo

              Dann musst du dein Kontakt-Formular ja nur um die Funktion erweitern, die eingegebenen Daten des Users nach dem Mail-Versand noch in die Datenbank zu schreiben.

              Ich würde die Reihenfolge genau anders herum ansetzen. Das würde die Möglichkeit eröffnen, in der Email den Erfolg/Misserfolg des Eintrags in der DB zu vermerken. zudem könnte man so in der Email ebenfalls einen speziellen Link zu einem Formular zum Nachtragen der Daten anbieten. Und ......, naja, halt Ideen, was man aus dieser (oder einer anderen, auf die reagiert gehört) Situation machen kann. ;-)

              Tschö, Auge

              --
              Die deutschen Interessen werden am Liechtenstein verteidigt.
              Veranstaltungsdatenbank Vdb 0.2
              1. hi,

                Ich würde die Reihenfolge genau anders herum ansetzen. Das würde die Möglichkeit eröffnen, in der Email den Erfolg/Misserfolg des Eintrags in der DB zu vermerken. zudem könnte man so in der Email ebenfalls einen speziellen Link zu einem Formular zum Nachtragen der Daten anbieten. Und ......, naja, halt Ideen, was man aus dieser (oder einer anderen, auf die reagiert gehört) Situation machen kann. ;-)

                Wir wollen ja auf dem Teppich bleiben. Kommt Zeit kommen komplexe Programme ;)

                mfg

                --
                „Wenn du nicht bereit bist, dafür zu sterben, dann streiche das Wort »Freiheit« aus deinem Vokabular.“ -- Malcolm X
                I Have a Dream
                1. so mittlerweile funktioniert das script.

                  verbindung zur datenbank besteht, und daten werden auch eingetragen. daten auslesen funktioniert auch.

                  einziges problem:
                  sobald jemand unvollständig das formular ausfüllt und abschickt erhält die datenbank den eintrag. wie kann ich´s einstellen dass nur an die datenbank was gesendet wird wenn alle felder ausgefüllt sind (wie bei der email, da klappt es ja)?

                  mfg tobi

                  1. Hallo

                    sobald jemand unvollständig das formular ausfüllt und abschickt erhält die datenbank den eintrag. wie kann ich´s einstellen dass nur an die datenbank was gesendet wird wenn alle felder ausgefüllt sind (wie bei der email, da klappt es ja)?

                    Es ist deine Aufgabe als Programmierer, festzulegen, was wann zu passieren unter zu unterbleiben hat. Du musst bei der Auswertung und Überprüfung der Eingabewerte Bedingungen formulieren, die eindeutig festlegen, bei welchen (evtl. fehlenden) Eingaben dies oder jenes geschieht.

                    Tschö, Auge

                    --
                    Die deutschen Interessen werden am Liechtenstein verteidigt.
                    Veranstaltungsdatenbank Vdb 0.2
                    1. Hallo

                      ... zu passieren unter zu unterbleiben ...

                      Natürlich heißt es "oder zu" anstatt "unter zu".

                      Tschö, Auge

                      --
                      Die deutschen Interessen werden am Liechtenstein verteidigt.
                      Veranstaltungsdatenbank Vdb 0.2
                  2. hi,

                    sobald jemand unvollständig das formular ausfüllt und abschickt erhält die datenbank den eintrag. wie kann ich´s einstellen dass nur an die datenbank was gesendet wird wenn alle felder ausgefüllt sind (wie bei der email, da klappt es ja)?

                    Dann versuche doch mal nach zuvollziehen, weshalb dass Feld „eMail“ leer nicht abgesendet werden kann.
                    Du kannst auch das stück Code, dass die eMail-Eingabe überwacht, hier posten.

                    http://de.php.net/empty

                    mfg

                    --
                    „Wenn du nicht bereit bist, dafür zu sterben, dann streiche das Wort »Freiheit« aus deinem Vokabular.“ -- Malcolm X
                    I Have a Dream