PHP Mail mit for each?

01/23/2018 22:54 theyam#1
Moin,

ich bastel mir gerade ein Formular, welches die Einträge via php an meine E-Mail Adresse sendet.

Im Formular kann man dank folgendem Code mehrere Textboxen einfügen:
[Only registered and activated users can see links. Click Here To Register...]

Code:
<?php 
if(isset($_POST['submit'])){
    $to = "[Only registered and activated users can see links. Click Here To Register...]"; // this is your Email address
    $from = "[Only registered and activated users can see links. Click Here To Register...]"; // this is the sender's Email address
    $subject = "PHP Mail";
 $message = $_POST['textbox1'] . " " . $_POST['textbox2'];
    // Always set content-type when sending HTML email
$headers = "MIME-Version: 1.0" . "\r\n";
$headers .= "Content-type:text/html;charset=UTF-8" . "\r\n";

// More headers
$headers .= 'From: <[Only registered and activated users can see links. Click Here To Register...]>' . "\r\n";

mail($to,$subject,$message,$headers);
    echo "Mail sent!";
    // You can also use header('Location: thank_you.php'); to redirect to another page.
    }
?>
An der Stelle $message möchte ich jetzt natürlich nicht alle möglichen Textboxen abfragen. Kann man hier eine for each Abfrage einfügen?

Ich hoffe ihr könnt mir helfen - DANKE!
01/23/2018 23:51 False#2
Quote:
Originally Posted by theyam View Post
Moin,

ich bastel mir gerade ein Formular, welches die Einträge via php an meine E-Mail Adresse sendet.

Im Formular kann man dank folgendem Code mehrere Textboxen einfügen:
[Only registered and activated users can see links. Click Here To Register...]

Code:
<?php 
if(isset($_POST['submit'])){
    $to = "[Only registered and activated users can see links. Click Here To Register...]"; // this is your Email address
    $from = "[Only registered and activated users can see links. Click Here To Register...]"; // this is the sender's Email address
    $subject = "PHP Mail";
 $message = $_POST['textbox1'] . " " . $_POST['textbox2'];
    // Always set content-type when sending HTML email
$headers = "MIME-Version: 1.0" . "\r\n";
$headers .= "Content-type:text/html;charset=UTF-8" . "\r\n";

// More headers
$headers .= 'From: <[Only registered and activated users can see links. Click Here To Register...]>' . "\r\n";

mail($to,$subject,$message,$headers);
    echo "Mail sent!";
    // You can also use header('Location: thank_you.php'); to redirect to another page.
    }
?>
An der Stelle $message möchte ich jetzt natürlich nicht alle möglichen Textboxen abfragen. Kann man hier eine for each Abfrage einfügen?

Ich hoffe ihr könnt mir helfen - DANKE!
Willst du mit den Textboxen einen Text einfügen ? Wenn ja wieso ?
Nimm einfach eine textarea => [Only registered and activated users can see links. Click Here To Register...]
01/24/2018 00:16 theyam#3
Quote:
Originally Posted by .ƒaℓsє. View Post
Willst du mit den Textboxen einen Text einfügen ? Wenn ja wieso ?
Nimm einfach eine textarea => [Only registered and activated users can see links. Click Here To Register...]
nochmal kurz erklärt:

Ich suche eine Möglichkeit, um in einem Formular beliebig viele Textareas/Textboxen einzufügen.
Diese Texte sollen dann per Mail an mich gesendet werden.

Mein Problem/Frage ist: Muss ich unter $message alle Textareas abfragen?
Also: $_POST['textbox1'] . "\r\n" . $_POST['textbox2'] . "\r\n" . $_POST['textbox3'] .. usw. (So würden ja dann z.b. eine leer Zeile übergeben werden, wenn textbox3 nicht ausgefüllt wurde)

Ich suche quasi nach einer for each Abfrage welche jede Textarea die hinzugefügt wurde auch unter $message einfügt.

Gibt es diese Möglichkeit?

Hoffe man kann verstehen was ich will.

Vielen Dank für deine Hilfe!!
01/24/2018 00:58 False#4
Quote:
Originally Posted by theyam View Post
nochmal kurz erklärt:

Ich suche eine Möglichkeit, um in einem Formular beliebig viele Textareas/Textboxen einzufügen.
Diese Texte sollen dann per Mail an mich gesendet werden.

Mein Problem/Frage ist: Muss ich unter $message alle Textareas abfragen?
Also: $_POST['textbox1'] . "\r\n" . $_POST['textbox2'] . "\r\n" . $_POST['textbox3'] .. usw. (So würden ja dann z.b. eine leer Zeile übergeben werden, wenn textbox3 nicht ausgefüllt wurde)

Ich suche quasi nach einer for each Abfrage welche jede Textarea die hinzugefügt wurde auch unter $message einfügt.

Gibt es diese Möglichkeit?

Hoffe man kann verstehen was ich will.

Vielen Dank für deine Hilfe!!
Ja die gibt es, aber du hast meine Frage nicht beantwortet.
Wieso willst du mehrere Inputs nehmen ?

Naja für dein foreach musst du an die Input Elemente als Name einfach z.b. textbox[] nehmen.
Dann bekommst du bei $_POST['textbox'] ein Array aus alles Inputs, dieses Array kannst du ganz normal in einer foreach Schleife nutzen.
01/24/2018 01:56 Syc#5
#moved
01/24/2018 19:40 theyam#6
Quote:
Originally Posted by .ƒaℓsє. View Post
Ja die gibt es, aber du hast meine Frage nicht beantwortet.
Wieso willst du mehrere Inputs nehmen ?

Naja für dein foreach musst du an die Input Elemente als Name einfach z.b. textbox[] nehmen.
Dann bekommst du bei $_POST['textbox'] ein Array aus alles Inputs, dieses Array kannst du ganz normal in einer foreach Schleife nutzen.

[Only registered and activated users can see links. Click Here To Register...]


Ich benötige quasi so ein Formular. Man schreibt eine Tätigkeit und die dazu benötigte Zeit rein. Hier müsste man die Möglichkeit haben, mehrere Tätigkeiten hinzuzufügen und diese dann per Mail an Person x zu senden.
01/24/2018 19:58 False#7
Quote:
Originally Posted by theyam View Post
[Only registered and activated users can see links. Click Here To Register...]


Ich benötige quasi so ein Formular. Man schreibt eine Tätigkeit und die dazu benötigte Zeit rein. Hier müsste man die Möglichkeit haben, mehrere Tätigkeiten hinzuzufügen und diese dann per Mail an Person x zu senden.
Okay das macht dann ja schon mehr Sinn :P
Kannst du wie schon erwähnt so lösen das du ein [] an den namen hängst (bei allen inputs) und somit im PHP ein Array bekommst.
01/24/2018 20:23 theyam#8
Quote:
Originally Posted by .ƒaℓsє. View Post
Okay das macht dann ja schon mehr Sinn :P
Kannst du wie schon erwähnt so lösen das du ein [] an den namen hängst (bei allen inputs) und somit im PHP ein Array bekommst.
Vielen Dank! Das hat mir schon mal sehr geholfen :).
Leider bekomme ich die foreach Schleife nicht hin:

Code:
	
$textbox = $_POST['textbox'];
$time = $_POST['time']; 
$message = foreach ($textbox as $taetigkeit){."Tätigkeit1: ".$taetigkeit  . ". Benötigte Zeit: ". $time ."\n\n" };
Ich wäre dir sehr dankbar, wenn du mir hierbei noch helfen könntest! :confused:
01/24/2018 20:53 Mikesch01#9
Das funktioniert so auch nicht.
PHP Code:
$textbox $_POST['textbox'];
$time $_POST['time']; 
$message "";
foreach (
$textbox as $taetigkeit){
 
$message .= "Tätigkeit1: ".$taetigkeit.". Benötigte Zeit: ".$time."\n\n";

01/24/2018 21:28 theyam#10
Quote:
Originally Posted by Mikesch01 View Post
Das funktioniert so auch nicht.
PHP Code:
$textbox $_POST['textbox'];
$time $_POST['time']; 
$message "";
foreach (
$textbox as $taetigkeit){
 
$message .= "Tätigkeit1: ".$taetigkeit.". Benötigte Zeit: ".$time."\n\n";

Super, vielen Dank! Tätigkeit funktioniert. Bei $time wird leider Array ausgegeben. Muss man $time in der foreach Schleife auch einer variable zuweisen?
01/24/2018 21:42 False#11
Quote:
Originally Posted by theyam View Post
Super, vielen Dank! Tätigkeit funktioniert. Bei $time wird leider Array ausgegeben. Muss man $time in der foreach Schleife auch einer variable zuweisen?
Solltest dir mal anschauen was genau ein Array ist und wie man debuggt, dann könntest du das Problem leicht lösen.
Du musst natürlich dann $time[$key] machen = $key ist der index aus dem array.
Wie du den in einer foreach Schleife bekommst findest du hier [Only registered and activated users can see links. Click Here To Register...] (ein wenig musst du selber erarbeiten :D)
01/24/2018 22:26 theyam#12
Quote:
Originally Posted by .ƒaℓsє. View Post
Solltest dir mal anschauen was genau ein Array ist und wie man debuggt, dann könntest du das Problem leicht lösen.
Du musst natürlich dann $time[$key] machen = $key ist der index aus dem array.
Wie du den in einer foreach Schleife bekommst findest du hier [Only registered and activated users can see links. Click Here To Register...] (ein wenig musst du selber erarbeiten :D)
Hast ja recht. Learning by doing ist immer noch die beste Methode.
Ich habe es hinbekommen:
Code:
foreach (array_combine($textbox, $times) as $taetigkeit => $time)
Vielen Dank euch beiden!!