是否有方法请求值​页面上的所有输入,而不必在PHP中逐个调用

  • 本文关键字:不必 PHP 调用 请求 有方法 是否 php
  • 更新时间 :
  • 英文 :


我需要请求页面的所有输入,然后通过电子邮件发送。。。但是,有很多方法可以在不创建太多变量的情况下调用每个人吗?

Obs:因为我是php的初学者,如果你能给我举一个例子,我将不胜感激。

这是我正在使用的代码:

<?php
require  'email/PHPMailerAutoload.php';
$recipient = $_POST['emailFor'];
$sender = $_POST['senderEmail'];
$message = $_POST['message'];

//I mean this part:
$results_SRV_AA_A10Name = $_POST['result-SRV-AA-A10-name'];
$results_SRV_AA_A10Email = $_POST['result-SRV-AA-A10-email'];
$results_SRV_AA_A10Tel = $_POST['result-SRV-AA-A10-tel'];
$results_SRV_AA_A11 = $_POST['result-SRV-AA-A11'];
$results_SRV_AA_A12 = $_POST['result-SRV-AA-A12'];
$results_SRV_AA_A13 = $_POST['result-SRV-AA-A13'];
etc....
$mail = new PHPMailer;
$mail ->isSMTP();
$mail ->Host = '***********';
$mail ->SMTPAuth = true;
$mail ->Username = '*************';
$mail ->Password = '*************';
$mail ->SMTPSecure = 'ssl';
$mail ->Port = 465;
$mail->addReplyTo($sender);
$mail ->setFrom('**********', 'Stack Overflow');
$mail ->addAddress($recipient);
$mail->Subject = "$sender send you this";
$mail ->isHTML(true);
$mail ->CharSet = 'UTF-8';
$mail ->Body .="
$AllVariables
";
if(!$mail ->send()){
echo "Erro no envio do e-mail, tente em instantes<br>";
echo $mail ->ErrorInfo;
} else {
echo "
<html>
<head>
<title>Mensagem enviada</title>
<script>alert('Enviada com sucesso');</script>
<meta http-equiv='refresh' content='1; index.html'>
</head>
<body></body>
</html>
";
}

如果您只想将所有$_POST值转储为换行的值:

$post = implode("n", $_POST);
$mail->Body .= "n{$post}n";
// eg:
// John Doe
// john.doe@email.com
// 555-5555
// ...

如果您也希望包含字段名称:

foreach ($_POST as $key => $value) {
$mail->Body .= "{$key}: {$value}n";
}
// eg:
// result-SRV-AA-A10-name: John Doe
// result-SRV-AA-A10-email: john.doe@email.com
// result-SRV-AA-A10-tel: 555-5555
// ...

当然,不要忘记对用户提供的数据进行消毒/转义。

您只需使用此函数即可完成以下操作:

extract($_POST);

之后,关联数组中的键将成为变量!还有一点,字段名称使用_而不是-。

最新更新