+ Antworten
Seite 1 von 2 1 2 LetzteLetzte
Ergebnis 1 bis 10 von 17

Thema: Formular per PHP senden

  1. #1
    Neu an Board
    Registriert seit
    29.04.2011
    Beiträge
    33
    Bedankte sich
    6
    Erhielt 0 Danksagungen
    in 0 Beiträgen

    Standard Formular per PHP senden

    Hallo Community,

    ich bin verzweifelt :(
    Ich suche seit 2h im Internet nach einer Lösung und in meinem Script, doch ich finde nichts.

    Es geht darum, das ich ein Teilnahmeformular habe also:
    Vorname:
    Nachname:
    E-Mail:
    Teilnahme: ja / nein
    und zusaetzlich teilnehmer:

    So sieht mein Formular aus.

    Jetzt will ich dieses Formular an meine E-mail adresse senden, doch weiß nicht wie ich die Daten einbinden soll.
    Ich weiß zwar das es mit der Funktio mail() klappt, aber nicht wie das für mein Beispiel funktionieren sol.

    Bin da etwas sprachlos im moment und hoffe ihr könnt mir weiter helfen.

    vivil aka phil

  2. #2
    Neu an Board
    Registriert seit
    29.04.2011
    Beiträge
    33
    Bedankte sich
    6
    Erhielt 0 Danksagungen
    in 0 Beiträgen

    Standard

    meine html-datei
    HTML-Code:
    <form method="POST" action="formular2.php">
    		<p>
    			Füllen Sie bitte die leeren Felder aus.<br />
    			Ihre Daten werden dann per Mail an die Veranstalter geschickt,<br />
    			die Ihre Daten dann aufschreiben.
    		</p>
    	<table>
    		<tr>
    			<td>Vorname:</td>
    			<td><input type="text" name="vorname" maxlength="30" size="30"></td>
    		</tr>
    		<tr>
    			<td>Nachname:</td>
    			<td><input type="text" name="nachname" maxlength="30" size="30"></td>
    		</tr>
    		<tr>
    			<td>E-Mail:</td>
    			<td><input type="text" name="email" maxlength="30" size="30"></td>
    		</tr>
    		<tr>
    			<td>Teilnahme:</td>
    			<td>
    				ja<input type="radio" name="teilnahme" value="ja" maxlength="30">
    				nein<input type="radio" name="teilnahme" value="nein" maxlength="30">
    			</td>
    		</tr>
    		<tr>
    			<td>
    				Zusätzliche Teilnehmer: <br />
    				<textarea name="zusaetzlich" rows="10" cols="54"></textarea>
    			</td>
    		</tr>
    		<tr>
    			<td><input type="submit" name="abschicken" value="Teilnahme absenden"></td>
    		</tr>
    	</table>
    	</form>
    meine php-Datei:
    HTML-Code:
    <?php
    $mail_empfaenger = "wegener.philipp@web.de";
    $mail_absender = $_POST[email];
    $mail_teilnahme = $_POST[teilnahme];
    $betreff = "Teilnahme";
    $text = $_POST[zusaetzlich];
    
    if(isset($_POST[Abschicken]))
    	{
    		mail($mail_empfaenger, $betreff, $text,$mail_absender,$teilnahme);
    	}
    ?>
    Geändert von phil aka vivil (16.08.2011 um 12:12 Uhr)

  3. #3
    Moderator Avatar von Lacki
    Registriert seit
    27.04.2006
    Ort
    Direkt um die Ecke
    Beiträge
    8.739
    Bedankte sich
    337
    Erhielt 3.615 Danksagungen
    in 2.974 Beiträgen

    Standard

    Ohne irgendein Script von Dir kann man da aber auch wenig helfen, außer auf die vielen Tutorials dazu zu verweisen. Allerdings ist es gerade für Anfänger oft schwer, ein wirklich sicheres Script zu schreiben, oft werden dabei große Sicherheitslücken aufgerissen (weil Benutzereingaben nicht ausreichend geprüft werden). Deswegen der Tipp, nimm eine der zahlreichen Formularkomponenten.
    Wenn es wirklich etwas eigenes sein soll, geht es hier z. B. um die Einbindung eines Formulars in eine Komponente, dort findest Du auch noch viel mehr dazu.

  4. #4
    Neu an Board
    Registriert seit
    29.04.2011
    Beiträge
    33
    Bedankte sich
    6
    Erhielt 0 Danksagungen
    in 0 Beiträgen

    Standard

    Das Script steht bereits im Beitrag habe ich eben noch ergänzt.
    Mir ist eingefallen das man vllt den Server angeben muss also z.b. den strato server wohin die nachricht gesendet werden soll oder?

  5. #5
    Wohnt hier Avatar von Harmageddon
    Registriert seit
    04.03.2010
    Ort
    Heilbronn
    Beiträge
    2.126
    Bedankte sich
    138
    Erhielt 616 Danksagungen
    in 605 Beiträgen

    Standard

    Falls du die Formulareingabe wirklich ohne Überprüfung absenden möchtest, stimmt dein Code schon fast, bis auf die beiden letzten Parameter. Wie man einen Absender einträgt, steht hier. Und $teilnahme hat an dieser Stelle absolut nichts zu suchen. Wenn du außer dem Text noch was in die Nachricht schreiben willst, muss das trotzdem in denselben Parameter. Du benutzt also am besten eine Variable $text oder $nachricht, in die du die komplette Nachricht packst. Diese ist dann der dritte Parameter für die Mail-Funktion.
    Konnte ich helfen? "Danke" klicken kostet nichts und tut nicht weh.
    Problem gelöst? Ersten Post bearbeiten - Erweitert - Präfix: "Gelöst" - Danke!
    allergisch gegen grausame Rechtschreibung

  6. #6
    Moderator Avatar von Lacki
    Registriert seit
    27.04.2006
    Ort
    Direkt um die Ecke
    Beiträge
    8.739
    Bedankte sich
    337
    Erhielt 3.615 Danksagungen
    in 2.974 Beiträgen

    Standard

    Ja, und genau solch ein Code kann dann zum Spamversenden missbraucht werden.
    EDIT: Noch ein schönes Tut dazu.
    Geändert von Lacki (16.08.2011 um 14:25 Uhr)

  7. #7
    Neu an Board
    Registriert seit
    29.04.2011
    Beiträge
    33
    Bedankte sich
    6
    Erhielt 0 Danksagungen
    in 0 Beiträgen

    Standard

    Vielen dank für die Antworten.
    Nur mein Problem ist ich will mein Formular so wie es ist in meine Mail schreiben.

    Vorher habe ich das Problem so gelöst:

    Ich hatte ein Formular und sobald man auf den Button Teilnahme absenden drückte wurde die mailto:- Funktion aufgerufen
    und alles wurd z.B. per Outlook versendet.
    Das sah dann ungefährt so aus:
    vorname=diesunddas
    nachname=diesunddas
    email=diesunddas
    teilnahme=entweder stand dort ja oder nein, je nachdem was gedrückt wurde
    zusaetzliche teilnehmer:diesunddas

    so sa das dann in der Mail aus die man abschickte.
    Und so ähnlich will ich das jetzt auch machen nur mit PHP und das dann auf der neuen Seite kommt:
    Ihr Email wurde erfolgreich gesendet oder so ähnlich.

    Nur weiß ich nicht wie ich die parameter da einbinden muss :S

  8. #8
    Wohnt hier Avatar von Harmageddon
    Registriert seit
    04.03.2010
    Ort
    Heilbronn
    Beiträge
    2.126
    Bedankte sich
    138
    Erhielt 616 Danksagungen
    in 605 Beiträgen

    Standard

    Code:
    $text = "vorname=".$_POST['vorname']."<br />"
               ."nachname="..$_POST['nachname']."<br />"
               ."email=".$_POST['email']."<br />"
               ."teilnahme="..$_POST['teilnahme']."<br />";
    Das ist dann der dritte Parameter. Parameter 4 und 5 kannst du dann eigentlich weglassen, das ist auch sicherer (wenn auch unwesentlich). Funktionen wie htmlspecialcharssind dazu da, Formulareingaben zu entschärfen. Die Nachricht wird dadurch nicht verändert, wenn ein Benutzer wirklich nur normalen Text eingibt, aber wenn er anstatt des Vornamens etwas wie < s c r i p t >...</script> eingibt - nur ohne Leerzeichen, das Forum zensiert s_cript-tags schon automatisch - kann das schon ordentliche Schäden anrichten. Daher würde ich dir auf jeden Fall empfehlen, eine solche Funktion anzuwenden.
    Konnte ich helfen? "Danke" klicken kostet nichts und tut nicht weh.
    Problem gelöst? Ersten Post bearbeiten - Erweitert - Präfix: "Gelöst" - Danke!
    allergisch gegen grausame Rechtschreibung

  9. #9
    Neu an Board
    Registriert seit
    29.04.2011
    Beiträge
    33
    Bedankte sich
    6
    Erhielt 0 Danksagungen
    in 0 Beiträgen

    Standard

    HTML-Code:
    <?php
    $mail_empfaenger = "wegener.philipp@web.de";
    $mail_absender = $_POST['email'];
    $text = "vorname = ".$_POST['vorname']."<br />"
    		."nachname=".$_POST['nachname']."<br />"
    		."email=".$_POST['email']."<br />"
    		."teilnahme=".$_POST['teilnahme']."<br />";
    		
    if(isset$_POST[abschicken]))
    	{
    		mail($mail_empfaenger, $mail_absender, $text);
    	}
    ?>
    sooo würde dann die php-datei nun aussehen...

    nur leider bekomme ich weder ne mail noch eine richtige ausgabe :s
    die ausgabe sieht nachdem man auf den submit teilnahme abschicken geklickt hat so aus:

    " ."nachname=".$_POST['nachname']."
    " ."email=".$_POST['email']."
    " ."teilnahme=".$_POST['teilnahme']."
    "; if(isset $_POST[abschicken])) { mail($mail_empfaenger, $mail_absender, $text); } ?>

    Das steht dann im Browser i.wie komisch...

  10. #10
    Wohnt hier Avatar von Harmageddon
    Registriert seit
    04.03.2010
    Ort
    Heilbronn
    Beiträge
    2.126
    Bedankte sich
    138
    Erhielt 616 Danksagungen
    in 605 Beiträgen

    Standard

    Zum PHP-Code: Nach dem isset fehlt eine Klammer. Und du musst in deinem Formular natürlich auch alle Formularfelder inklusive der richtigen Namen haben (email, vorname, nachname, teilnahme(am besten als checkbox) und abschicken(als submit)).

    Hast du die Datei auf einem Webserver oder auf XAMPP als irgendwas.php abgespeichert? Oder versuchst du, eine PHP-Datei, die auf deinem Rechner liegt, ohne XAMPP auszuführen? Das geht nämlich nicht, da PHP-Dateien serverseitig ausgeführt werden müssen.
    Konnte ich helfen? "Danke" klicken kostet nichts und tut nicht weh.
    Problem gelöst? Ersten Post bearbeiten - Erweitert - Präfix: "Gelöst" - Danke!
    allergisch gegen grausame Rechtschreibung

+ Antworten
Seite 1 von 2 1 2 LetzteLetzte

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein