Online Formular

  • Guten Morgen,

    ich habe folgendes Problem:

    Ich soll für unsere Firma ein Online-Formular machen, mit dem unsere User uns diverse Probleme oder Sonstiges mitteilen können, eine Art Instandsetzungsauftrag per Mail-Formular so zu sagen.
    Nungut, ich hab mit PHP ungefähr soviel am Hut wie Frauen mit Fußball.. deshalb hab ich mir einfach mal ein paar Tutorials angeschaut und bin jetzt eigentlich auch so gut wie fertig, nur ein paar Kleinigkeiten fehlen mir noch. Vielleicht könnt ihr mir dabei ja weiterhelfen.
    Zuerst allerdings einmal der Code den ich verwendet habe.

    formular.htm enthält folgendes:

    senden.php enthält folgendes:


    Ok, mein erstes und größtes Problem ist es, dass ich einfach keine E-Mail zugesandt bekomme. Alles funktioniert, wie es sein soll, nur es kommt keine E-Mail an. Woran könnte das liegen?

    Mein zweites (kleines) Problem ist, dass das Bild über dem Formular extrem weit entfernt vom Rest der Seite ist, heißt also, es ist sehr viel Zwischenraum zwischen dem Bild und dem Formular.

    Und als Letztes habe ich noch eine Frage.
    Mein Cheffe hätte das gerne so, dass man aus dem Namensfeld ein Dropdown-Menü macht, dort seinen Namen aussucht und die restlichen Felder sich dann automatisch eintragen. Wenn ich also jetzt meinen Namen dort aussuche, soll sofort meine Telefon-Nummer, meine Abteilung, etc. dastehen. Meines Wissens ist dies nur mit einer Datenbank möglich, oder liege ich da falsch?

    Ok, also wenn jemand kurz Zeit hat, mir da ein wenig unter die Arme zu greifen, wäre das sehr nett. Ich wünsch euch noch einen schönen Tag.

    MfG

  • Moin!

    Ich habe leider im Augenblick nicht die Zeit, dir mit all deinen Problemem zu helfen, möchte aber schnell zu einem Abschnitt deines Posting etwas sagen. Wenn du mit den anderen Problemen nicht weiterkommst, dann kann ich dir da gerne morgen helfen.

    Zitat von st0ny


    Und als Letztes habe ich noch eine Frage.
    Mein Cheffe hätte das gerne so, dass man aus dem Namensfeld ein Dropdown-Menü macht, dort seinen Namen aussucht und die restlichen Felder sich dann automatisch eintragen. Wenn ich also jetzt meinen Namen dort aussuche, soll sofort meine Telefon-Nummer, meine Abteilung, etc. dastehen. Meines Wissens ist dies nur mit einer Datenbank möglich, oder liege ich da falsch?

    Schönen Gruß an deinen Chef, aber wenn es tatsächlich so sein soll, wie du es beschrieben hast, dann wird ihm der Datenschutz ganz schnell auf die Füsse steigen und ich fürchte daß da auch einige Abmahnanwälte gerne aufspringen.
    Da kannst so etwas machen, wenn der Kunde sich einloggen muß oder es sich um ein lokales Intranet handelt, wo nur ein überschaubarer Nutzerkreis zugriff auf die daten der anderen Nutzer hat. Auf deutsch: nur Innerhalb der Firma mit den Daten der Mitarbeiter - so sie dem zugestimmt haben.

    Alternative:
    Ihr führt eine Kundendatenbank und der Kunde muß sich mit seinem Paßwort in einem Kundenbereich anmelden. Dann kannst du in solch einem Formular seine Daten automatisch darstellen, was allerdings überflüssig ist, denn wenn er sich eingeloggt hat, dann weiß das PHP-Script ja um wen es sich handelt und muß die ganzen Daten nicht noch einmal abfragen.

    Technisch ist das ganze mit einer Datenbank oder auch nur einem Text-File realisierbar. Solch ein Text-File kann man jedem Textverarbeitungsprogramm, mit Excel, Outlook, Access, Word u.s.w. erstellt werden, man muß sich nur eine Gliederung ausdenken, die PHP dann anschließend auch versteht.

    Für die Darstellug in einer Dropdownliste mußt du dir die HTML-Seite vom PHP-Script erstellen lassen und die Daten dabei gleich einlesen. Ob du dann alle Daten in einem Javasript ablegst oder nur den jeweiligen Namen in die Dropdownfeld legst ist Geschmackssache - bei der ersten Variante erzeugst du auf jeden Fall eine sehr große HTML-Seite (viel Quelltext). Im zweiten Fall mußt du dir die Daten nach Anklicken des entsprechenden Dropdownfelds irgendwie holen, das kann man z.B. mit einem unsichtbaren Iframe machen, in dem ein PHP-Script gestartet wird, welches die Daten dann aus der Datenbank ausliest und anbietet. Mit Javascript werden die Daten dann aus dem Iframe geholt und in die richtigen Felder geschubst. Das jetzt detailiert zu erklären ist mir etwas zu aufwendig, zumal ja auch zunächst die Datenschutzfrage im Raum steht.

    Gruß aus der Marsch!

    Ronald

  • Guten Morgen,

    schonmal vielen Dank für die äußerst schnelle Antwort.
    Also das Thema, das Du angesprochen hast, hat sich nun erledigt, nachdem ich ihm deinen Post gezeigt habe. Vielen Dank dafür, ich glaube damit bleibt mir eine Menge Arbeit erspart. :)

    Ich werde heute noch versuchen, die anderen Probleme irgendwie geregelt zu bekommen. Wenn ich das noch schaffe, dann geb ich Dir hier noch einmal Bescheid, sollte heute nichts mehr von mir kommen, bin ich wohl auch nicht recht viel weitergekommen. Es würde mich in diesem Fall sehr freuen, wenn du Dir dann morgen ein wenig Zeit nehmen könntest, aber auch nur, wenn es wirklich in Ordnung ist.

    MfG

  • Guten Morgen,

    so leid es mir tut, aber man findet auch sonst kaum Möglichkeiten sich helfen zu lassen, deshalb bin ich nach wie vor so weit wie gestern. Ich bekomme immernoch keine E-Mail, der Rest funktioniert sonst einwandfrei. Kann sich das hier jemand erklären?

    MfG

  • Moin!

    Ich habe deine Quelltexte eben mal überarbeitet, so sollte es funktionieren.

    Zunächst dein Eingabeformular, da waren noch Fehler drinnen (was aber nicht die Ursache für das Nichtsenden der Mail war):
    formular.htm:


    Und nun das Auswerte- und Versendescript,m ich hab die eine HTML-Version gebastelt:
    senden.php:

    Ich hoffe du wirst daraus schlau,

    G.a.d.M.

    Ronald

  • Hallo Ronald,

    also erstmal vielen vielen Dank, es funktioniert nun alles einwandfrei und schön formatiert ist auch alles. Du hast mir da echt einen riesigen Gefallen damit getan, also noch ein dickes Dankeschön dafür.
    Was mich jetzt allerdings interessieren würde, ist, was ich denn falsch gemacht habe, oder weißte das auch nicht wirklich so genau? ;)
    Ok ich wünsch dir noch einen schönen Tag und ich kanns nur nochmal wiederholen: DAAAANKE! :)

    Mfg

  • Ich vermute mal, daß ein Fehler im PHP -> mail-function vorlag.
    Da der "automatische Email-Kill-Admin" deinen Quelltext aber übergemalt hat, kann ich das nicht genau sagen.

    Inwieweit die fehlenden (/)HTML, Body, pp - Tags eine Rolle spielen, bin ich mir auch nicht ganz sicher, das müßte man ggf. mal ausprobieren.

    Hauptsache es geht jetzt und wenn du mal wieder was vergleichbares machst, dann hast du ja nun eine Vorlage ;)

    G.a.d.M.

    Ronald

  • Hallo Ronald (u. Rest),

    also wieder mal bins ich, dieses Mal allerdings mit einem weitaus kleinerem Übel.
    Mein Cheffe is soweit zufrieden, alles bestens. Er möchte allerdings die Daten aus der E-Mail in eine Datenbank ziehen. Dazu meinte er, wäre es für ihn einfacher die eingetragenen Daten in Tags zu setzen.
    Also als Beispiel: Der User hat den Namen "Hans Wurscht" eingegeben.
    In der E-Mail die bei uns ankommt soll das ganze dann so aussehen:

    <Start Name>Hans Wurscht<End Name>

    Die Tags sollen also sichtbar bleiben. Ich hoffe man versteht ungefähr was ich meine und jemand nimmt sich vielleicht kurz ein paar Minuten.

    Auszug der senden.php

    Und zu guter Letzt würd ich doch noch gerne von dir wissen Ronald: für was zum Geier steht denn bitte G.a.d.M ? ;)

    MfG (das versteht wenigstens jeder :))

  • Moin!

    Ich vermmute mal, er will es in ein Access-Datenbank auf dem lokalen PC haben, ansonsten könnte mann die Daten ja gleich beim Versenden mit dem PHP-Script in einer Datenbank auf dem Server ablegen?

    Du kannst die Tags ganz einfach dazu screibenl, mußt nur die öffnende eckige Klammer gegen "&lt;" austauschen::

    Code
    <td>[b]Name:[/b]</td><td>&lt;Start Name>$name&lt;/End Name></td>


    sonst zeigt HTML das nicht an.

    Ich halte aber das Ablegen der Daten auf dem Server in einer Textdatei für besser - auch auf die kann man ja jederzeit zugreifen und die kann so vorformatiert sein, daß man die Daten gleich mit Office-Programmen (Word, Excel, pp.) weiter benutzen kann.

    Gruß aus der Marsch!

    Ronald

  • Hallo Ronald,

    ich danke dir (mal wieder) für die schnelle und hilfreiche Antwort, aber da hätt ich wohl auch selbst drauf kommen können. ;)
    Das Problem ist, dass auf unserem Webserver kein PHP o.ä. vorhanden ist und wir das deshalb auf die Webserver unserer User schalten möchten. Dann gibt es dort natürlich auch wieder Leute, die meinen, sich auszukennen und sobald sie was von einer Datenbank hören, sehen sie nur noch Rot. Heißt also, wir müssen darauf achten nicht allzu viel auf deren Server zu installieren und deshalb haben wir auf die Datenbank verzichtet.
    Mein Chef allerdings will das ganze in eine Datenbank packen (keine Access, sondern selbst programmiert) in der die User sehen können, wie es gerade mit der Bearbeitung aussieht, etc. und da meinte er, ist es für ihn einfacher, wenn ich das von Tags umschließe.

    Ok, also ich wünsch speziell Dir, aber auch allen anderen noch einen wunderschönen Tag. ;)

    G.a.d.s.S. (Gruß aus dem sonnigen Süden) ;)

  • Nein, genau deshalb müssen wir es ja auf den Webservern unserer User installieren und die wollen eben so wenig wie möglich.

    Ich weiß meine Texte sind manchmal ein wenig verwirrend. ;)

  • Ich würde mal in den Tarif eures Webspace reinschauen - vermutlich ist PHP integriert, muß nur aktiviert werden (ist z.B. bei 1&1 so). Das kann man dann u.U. per htaccess machen.
    Andernfalls sind es doch nur ein paar Euro im Monat, für ein vernünftigen Vertrag mit PHP - das sollte sich eine Firma doch leisten können.
    Die Daten und Scripte auf fremde Server zu packen halte ich für eine Firma für mutig, wer weiß, wer dort alles rumschnüffeln kann (Mitbewerber ??)

    G.a.d.M.

    Ronald

  • Also ich arbeitet hier noch nicht allzu lange, deshalb hab ich mich vor einigen Tagen mit unserem Hoster in Verbindung gesetzt und die meinten, dass aus Sicherheitsgründen (?) kein PHP und mySQL möglich wäre.

    Aber wenn ich die Dateien dann auf unseren Server packen würde, könnten doch auch jede Menge Leute draufschauen, sofern Ihnen der Link bekannt wäre.
    Oder meinst du jetzt was anderes?

    MfG

  • Du kannst die Datei in ein geschütztes Verzeichniss legen, dann kommt man nur mit dem richtigen Login und Paßwort dran (geht per htaccess).

    Die Aussage von dem Provider ist ein Witz - wenn der wirklich so etwas erzählt, dann ihr sollte dringend den Provider wechseln, weil es scheinbar ein Laie ist der keine Ahnung hat.
    Schau mal auf seine HP - ich wette mit dir, daß er für mehr Geld auch PHP, MySQL usw. anbietet.

    Problematisch sind allenfalls eigene CGIs - aber die braucht ihr ja gar nicht.

  • Hallo,

    es tut mir ja wirklich unendlich leid, aber ich hab schon wieder ein Problem. Wir benötigen noch einige Pflichtfelder in diesem Formular. Das habe ich jetzt eigentlich auch gemacht, nur bekomme ich immer folgenden Fehler:

    Parse error: syntax error, unexpected $end in /home/www/web52/html/senden.php on line 76

    Ich versteh leider nicht ganz warum und wieso, deswegen hoffe ich hier auf Hilfe.
    Die senden.php:

    Müsste doch theoretisch alles hinhauen oder nicht? Mir wäre es lieb, wenn mir jemand sagen könnte, was ich denn daran falsch gemacht habe, damit ich das vielleicht auch nachvollziehen kann.

    Achja und Ronald: Wir haben den Provider mittlerweile gewechselt, war anscheinend wirklich Mist dort. ;)

    Mfg

  • Sorry Leute aber ich bräuchte da echt dringend Hilfe, also wenn sich einer auch nur ein paar Minuten dafür nehmen kann, das wäre echt sowas von hilfreich.

    Mfg

  • Moi!
    Dein Fehler liegt 3x in den geöffneten und nicht wieder geschlossenen Klammern der If-Anweisungen für die error-text(e).

    Generell ist deine Lösung schlecht, da du die Variablen immer wieder überschreibst.

    Wenn du eine vernünftige Fehlerbearbeitung machen möchtest, dann solltest du die Fehlermeldung in das Eingabeformular mit einarbeiten und dieses im Fehlerfall erneut öffnen, damit die fehlenden Daten ergänzt werden können.

    Poste mir mal das HTML-Formular für de Eingabe, dann baue ich es dir schnell ein.

    G.a.d.M.

    Ronald

  • Oh tut mir sehr leid Ronald, aber ich war das Wochenende über auf einem Seminar und konnte deine Nachricht so nicht mehr lesen.
    Also hier ist das HTML-Formular:

    Also ich dank dir schon mal im Voraus, bin morgen wieder unterwegs in Chemnitz, kann also wieder spät werden bis ich hier vorbeischaue.
    Ok, machts gut, einen schönen Abend noch.

    MfG

  • Moin!

    Ich hab das jetzt einmal etwas anders gelöst.

    Wichtigste Änderung: statt der 'formular.html' rufst du bitte direkt 'senden.php" per link auf, das Script erkennt, daß es noch nichts zu tun hatte und stellt dann das leere Formular dar, so als hättest du 'formular.html' geöffnet.. Du kannst diese Datei auch beliebig umbenennen, es muß nur eine ~.php bleiben, also z.B. in 'kontakt.php'

    Datei senden.php:

    Die Datei formular.html (ist jetzt zu einem Template geworden):