ERLEDIGT
NEIN
NEIN
ANTWORTEN
6
6
ZUGRIFFE
601
601
EMPFEHLEN
-
Hallo,
ich benutze ein Mailformular welches aber leider die Nachricht als array verschickt.
Was dann so aussieht:
Array
(
[Nombre] => Michael
[Mensaje] => Test
[Empresa] => Design
[Domicilio] =>
[Telefono] =>
[E-Mail] =>
)
Ich möchte es aber so haben:
Nombre: Michael
Mensaje Test
Empresa Design
usw.
Das script:
Des weiteren würde ich gerne an den Sender (Ja ich weiss um die Nachteile) eine Bestätigungsmail schicken.PHP-Code:<?php
define ('MAILTO', "meine@mail.com"); // Empfänger hier eintragen
define ('MAILFROM', "Interconsulting"); // ggfls. Absender hier eintragen
define ('CHARSET', "ISO-8859-15"); // Zeichenkodierung ggfls. anpassen
$Pflichtfelder = array('Nombre', 'Mensaje', 'Empresa', 'Domicilio', 'E-Mail'); // ggfls. weitere Pflichtfelder angeben
$AddHeader = 'Content-Type: text/plain; charset='.CHARSET;
if(MAILFROM) $AddHeader .= chr(13).chr(10).'From: '.MAILFROM;
if($Formular_abgeschickt = !empty($_POST)) {
$Formular_leer = true; set_magic_quotes_runtime(0);
$_POST = array_map('Formular_Daten', $_POST);
}
function Formular_Daten($val) {
global $Formular_leer;
if(is_array($val)) return array_map('Formular_Daten', $val);
if(get_magic_quotes_gpc()) $val = stripslashes($val);
if($val = trim($val)) $Formular_leer = false;
return $val;
}
function Formular_Pflichtfelder() {
global $Pflichtfelder;
$Fehler = '';
foreach ($Pflichtfelder as $Feld) {
$key = str_replace(' ','_',$Feld);
if(!(isset($_POST[$key]) && trim($_POST[$key]))) {
if($Fehler) $Fehler .= '<br />';
$Fehler .= 'Por favor escriba su "' . $Feld . '".';
}
}
return $Fehler;
}
function Formular_neu($log='.htPOSTdata.txt') {
if(file_exists($log) && is_readable($log)
&& file_get_contents($log) == print_r($_POST,true))
return false;
if($handle=@fopen($log, 'w')) {
fwrite($handle, print_r($_POST,true)); fclose($handle);
}
return true;
}
function Formular_Check() {
global $Formular_leer;
if($Formular_leer) $Fehler = 'Por favor complete el formulario!';
elseif(!$Fehler = Formular_Pflichtfelder()) {
if(!Formular_neu()) $Fehler = 'Nachricht war bereits verschickt.';
}
return $Fehler;
}
function Formular_Eingabe($Feldname, $def='') {
if(!empty($_POST[$Feldname])) echo htmlspecialchars($_POST[$Feldname]);
else echo $def;
}
?>
Vielen Dank für jede Hilfe, MichaelGeändert von madesign (10.09.10 um 13:52 Uhr)
-
10.09.10 00:26 #2
Mit foreach() über das Array iterieren, dabei Wert und Schlüssel mitnehmen und ausgeben...
Code php:1 2 3 4 5 6 7 8
<?php $array = array('foo' => 'bar', 'katz' => 'maus'); foreach($array as $key => $value) { echo "{$key}: {$value}"; } ?>
Die E-Mailadresse des Senders hast du ja, wie man eine Mail abschickt, sollte dir dein Formmailer zeigen und dann musst du nur noch den Teil einmal kopieren und MAILTO durch die E-Mailadresse des Senders ersetzen... Und natürlich den Inhalt den du senden möchtest.KIDS Kinderbetreuungsdienst
Xing
"When you play the game of thrones, you win or you die. There is no middle ground."
by Cersei Lannister in "A Game Of Thrones"
-
Hello Felix,
vielen, vielen Dank für die Anleitung. Ich denke damit bekomm ich es hin.
Saludos, Michael
-
Hallo,
nicht so ganz.
Ich ab es jetzt so erstellt:
Aber egal wo ich es einfüge ich bekomme eine Fehlermeldung wenn ich das Script teste.PHP-Code:$mail_content = array('Nombre' => 'Nombre', 'Empresa' => 'Empresa', 'Domicilio' => 'Domicilio', 'Telefono' => 'Telefono', 'E-Mail' => 'E-Mail', 'Mensaje' => 'Mensaje');
foreach($array as $key => $value)
{
echo "{$key}: {$value}";
}
Ich hab auch die einzelnen Felder mit Absatz formatiert aber die Fehlermeldung kommt schon beim Array.
Liebe Grüsse, Michael
-
10.09.10 10:43 #5
Die Fehlermeldung an sich wäre dann noch interessant...
Und so wie du es aufgebaut hast, macht es leider keinen Sinn.
Du musst dich an das Array des Formulars wenden.KIDS Kinderbetreuungsdienst
Xing
"When you play the game of thrones, you win or you die. There is no middle ground."
by Cersei Lannister in "A Game Of Thrones"
-
Hallo Felix,
irgendwie scheint ja das Array beim abschicken generiert zu werden. (Ich mein nicht das array der Pflichtfelder). Insofern weiss ich nicht wo ich ansetzen muss.
Die Fehlermeldung lautete Warning: Invalid argument supplied for foreach()
Saludos, Michael
-
Ich hab es jetzt mal so probiert:
Aber jetzt kommt eine Fehlermeldung das das Formular nicht ausgefüllt ist auch wenn alle Felder ausgefüllt sind.PHP-Code:<?php
define ('MAILTO', "michael.anlauf@googlemail.com"); // Empfänger hier eintragen
define ('MAILFROM', "Interconsulting"); // ggfls. Absender hier eintragen
define ('CHARSET', "ISO-8859-15"); // Zeichenkodierung ggfls. anpassen
$Pflichtfelder = array('Nombre', 'Mensaje', 'Empresa', 'Domicilio', 'E-Mail'); // ggfls. weitere Pflichtfelder angeben
$AddHeader = 'Content-Type: text/plain; charset='.CHARSET;
if(MAILFROM) $AddHeader .= chr(13).chr(10).'From: '.MAILFROM;
$nachricht = '
[Nombre] => '.$_POST['Nombre'].'
[Empesa] => '.$_POST['Empresa'].'
[Domicilio] => '.$_POST['Domicilio'].'
[Telefono] => '.$_POST['Telefono'].'
[E-Mail] => '.$_POST['E-Mail'].'
[Nachricht] => '.$_POST['Nachricht'];
$_POST = array_map('Formular_Daten', $_POST);
if($Formular_abgeschickt = !empty($_POST)) {
$Formular_leer = true; set_magic_quotes_runtime(0);
}
function Formular_Daten($val) {
global $Formular_leer;
if(is_array($val)) return array_map('Formular_Daten', $val);
if(get_magic_quotes_gpc()) $val = stripslashes($val);
if($val = trim($val)) $Formular_leer = false;
return $val;
}
function Formular_Pflichtfelder() {
global $Pflichtfelder;
$Fehler = '';
foreach ($Pflichtfelder as $Feld) {
$key = str_replace(' ','_',$Feld);
if(!(isset($_POST[$key]) && trim($_POST[$key]))) {
if($Fehler) $Fehler .= '<br />';
$Fehler .= 'Por favor escriba su "' . $Feld . '".';
}
}
return $Fehler;
}
function Formular_neu($log='.htPOSTdata.txt') {
if(file_exists($log) && is_readable($log)
&& file_get_contents($log) == print_r($_POST,true))
return false;
if($handle=@fopen($log, 'w')) {
fwrite($handle, print_r($_POST,true)); fclose($handle);
}
return true;
}
function Formular_Check() {
global $Formular_leer;
if($Formular_leer) $Fehler = 'Por favor complete el formulario!';
elseif(!$Fehler = Formular_Pflichtfelder()) {
if(!Formular_neu()) $Fehler = 'Nachricht war bereits verschickt.';
}
return $Fehler;
}
function Formular_Eingabe($Feldname, $def='') {
if(!empty($_POST[$Feldname])) echo htmlspecialchars($_POST[$Feldname]);
else echo $def;
}
?>
Formular...
<?php
if($Formular_abgeschickt) {
if($Formular_Fehler = Formular_Check())
echo '<p class="Meldung" id="Fehler">',$Formular_Fehler,'</p>';
elseif(@mail(MAILTO, "Nachricht", $nachricht , $AddHeader))
echo '<p class="Meldung" id="OK">Su formulario ha sido enviado.</p>';
else echo '<p class="Meldung" id="Fehler">Cuando se envía el mensaje ha producido un error!</p>';
}
?>
Was mach ich falsch?
Saludos, Michael
Ähnliche Themen
-
Form Mailer unschön
Von xkoy im Forum CSSAntworten: 13Letzter Beitrag: 28.11.08, 16:33 -
bestätigungsmail senden
Von creativeheadz im Forum PHPAntworten: 7Letzter Beitrag: 02.06.05, 00:15 -
Form Mailer
Von mtk-flo im Forum CGI, Perl, Python, Ruby, Power ShellAntworten: 1Letzter Beitrag: 02.02.05, 09:21 -
Flash und PHP Form-Mailer
Von Heiko im Forum Flash PlattformAntworten: 7Letzter Beitrag: 16.09.04, 22:18 -
Form Mailer mit cgi?
Von CantNo im Forum CGI, Perl, Python, Ruby, Power ShellAntworten: 3Letzter Beitrag: 30.11.02, 18:52





Zitieren

Login






[PHP][Snippet] Array zu XML konvertieren