Autor Zpráva
Adolf Komárek
Profil *
Ahoj, mám jednoduchý html formulář.

<form action="mail.php" method="POST">
<p>Name</p> <input type="text" name="name">
<p>Email</p> <input type="text" name="email">
<p>Phone</p> <input type="text" name="phone">

<p>Message</p><textarea name="message" rows="6" cols="25"></textarea><br />
<input type="submit" value="Send"><input type="reset" value="Clear">
</form>

Skrze PHP posílám jednoduchou rekapitulaci na e-mail. Chtěl bych současně s touto rekapitulací vygenerovat XML, které by to poslalo v příloze e-mailu. Nějak se nedaří. Pomohl by někdo?

<?php
$name = $_POST['name'];
$email = $_POST['email'];
$phone = $_POST['phone'];
$message = $_POST['message'];
$formcontent=" From: $name \n Phone: $phone \n Call Back: $call \n Website: $website \n Priority: $priority \n Type: $type \n Message: $message";
$recipient = "**************";
$subject = "Contact Form";
$mailheader = "From: $email \r\n";

$doc = new DOMDocument('1.0', 'UTF-8');
$doc->formatOutput = true;

$xmlRoot = $doc->createElement("xml");
$xmlRoot = $doc->appendChild($xmlRoot);
$root = $doc->createElement('OrderDetails');
$root = $doc->appendChild($root);

$ele1 = $doc->createElement('name');
$ele1->nodeValue=$name;
$root->appendChild($ele1);

$xml->saveXML("");

$mail->addStringAttachment($xml->asXML(), "xml.xml");

mail($recipient, $subject, $formcontent, $mailheader) or die("Error!");
echo "Thank You!" . " -" . "<a href='form.html' style='text-decoration:none;color:#ff0099;'> Return Home</a>";
?>

Díky!
Keeehi
Profil
Proměnná $mail neexistuje (nikde jí v tom kódu nepřiřazuješ žádný objekt). Navíc metoda addStringAttachment je z PHPmailer třídy a tedy nejde přímo použít s nativní funkcí mail. Jak nainstalovat balíček PHPmailer a jak poslat s ním email se dozvíš hned v readme projektu. github.com/PHPMailer/PHPMailer
N71
Profil *
Kód vypadá slepený z různých nesouvisejících zdrojů a prozrazuje na tebe, že se vůbec neorientuješ v objektových základech PHP, zpracování dat z formulářů a bezpečnosti vůbec. Bylo by lepší sáhnout po nějaké literatuře než vůbec začneš něco tvořit.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0