Problem mit Arrays im Mail-Script :/
FeatureD
- html
- php
Hi! Ich habe folgendes Problem: Ich mache gerade ein Bewerbungsformular, welches unter anderem ein Feld für Links enthält (Standardmäßiges Input-Feld). Dieses wird per POST an mein Script weitergegeben. Die Links werden im Input-Feld mit ";" getrennt um sie mit explode ganz einfach zerlegen zu können. Da Explode den Output aber in Arrays speichert, habe ich nun Probleme dabei, es im Text der E-Mail einzubauen. Dachte dabei an eine foreach-schleife (Link 1: ;Link 2:; etc..). Unten findet ihr den Code. Die betreffende Stelle habe ich hier mit "×" eingegrenzt! Für weitere Fragen bin ich gerne da 😀
<?php
$clipcount = 1;
$headers = "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
$headers .= "From: Application\r\n";
$message = "
<html>
<head>
</head>
<body>
<h1>Greetings, Recruiter</h1><br>
<p>A new user just applied to join! Below, you will find the applicants data!</p>
<br>
<p>First name: ".$fname."<br>
Applying as: ".$applyingas."<br>
Age: ".$appage."<br>
Nickname: ".$nickname."<br>
Discord Name: ".$disc."<br>
Steam-Profile: <a href='".$steam."'>Click me!</a><br>
Clip: <a href='".$clips."'>Click me!</a><br>".×foreach($clipssep as $link){echo 'Clip '.$clipcount.': <a href="'.$link.'">Click me!</a>';$clipcount++;}×."
</p>
<b>Application Script © 2018</b>
</body>
</html>
";
mail('$email1, $email2, $email3', '[RC]'.$applyingas.' application!'.$fname.' aka. '.$nickname.' applied to join!',$message,$headers);
?>
Tach!
Dachte dabei an eine foreach-schleife (Link 1: ;Link 2:; etc..). Unten findet ihr den Code. Die betreffende Stelle habe ich hier mit "×" eingegrenzt!
foreach ist keine Funktion, die ein Ergebnis liefert, sondern ein eigenständiges Statement. Wenn du es funktional machen möchtest, brauchst du array_reduce(). Mit foreach müsstest du die Erstellung von $message an der Stelle erstmal beenden, dann mit foreach die Teile anstückeln und anschließend den Rest hinzufügen.
dedlfix.
anschließend den Rest hinzufügen.
wieder mit $message .= ?
Tach!
anschließend den Rest hinzufügen.
mit wieder mit $message .= ?
Ja, so funktioniert das Anhängen an vorhandene Strings.
dedlfix.
Kannst du mir von dem vorhin erwähnten ein kurzes Beispiel machen? Wäre dir sehr dankbar 😀
Tach!
Kannst du mir von dem vorhin erwähnten ein kurzes Beispiel machen? Wäre dir sehr dankbar 😀
$things = ['bar','qux'];
$message = 'foo';
foreach ($things as $thing) {
$message .= $thing;
}
$message .= 'baz';
dedlfix.
Hallo
anschließend den Rest hinzufügen.
wieder mit $message .= ?
Ja, beispielsweise so.
Man könnte die Teile der HTML-Ausgabe auch als Arrayelemente anlegen und zu guter Letzt mit join
aneinanderfügen oder noch andere Wege gehen, aber die Stringverkettung mit .=
, wie du sie einsetzt, ist gut.
Tschö, Auge
Wow, gewusst wie, geht's doch 😛
Danke vielmals euch beiden!
Moin,
noch ein paar Kleinigkeiten:
$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
Das bedeutet, dass du keine Alternative in reinem Text anbietest. Das ist nicht clever.
$headers .= "From: Application\r\n";
Was sagen denn die Emailprogramme deiner Empfänger zu dieser Absenderangabe?
$message = " <html> <head> </head> <body> <h1>Greetings, Recruiter</h1><br> <p>A new user just applied to join! Below, you will find the applicants data!</p> <br> <p>First name: ".$fname."<br> Applying as: ".$applyingas."<br> Age: ".$appage."<br> Nickname: ".$nickname."<br> Discord Name: ".$disc."<br> Steam-Profile: <a href='".$steam."'>Click me!</a><br> Clip: <a href='".$clips."'>Click me!</a><br>".×foreach($clipssep as $link){echo 'Clip '.$clipcount.': <a href="'.$link.'">Click me!</a>';$clipcount++;}×." </p> <b>Application Script © 2018</b> </body> </html> ";
<br>
zwischen </h1>
und <p>
sowie </p>
und <p>
verloren?mail('$email1, $email2, $email3', '[RC]'.$applyingas.' application!'.$fname.' aka. '.$nickname.' applied to join!',$message,$headers);
'$email1, $email2, $email3'
erscheint mir keine sinnvolle Empfängeradresse zu sein -- es ist sicherlich noch nicht einmal gültig. Und der Betreff wirkt auch, als sei er nicht in den entsprechenden Kontext gebracht worden. Ich empfehle die Konsultation der PHP-Dokumentation der mail-Funktion.
Viele Grüße
Robert