从PHP表单收到的电子邮件显示内容为“0”

时间:2017-07-10 20:36:49

标签: php string-concatenation

嘿所以这是我的第一个PHP联系表单。一切正常,我收到了电子邮件,但电子邮件的内容显示为“0”。

我的PHP代码是:

$content = $_POST['name'] + $_POST['message'];

name是表单元素的名称(person的名字),message是message元素的名称。当我执行print_r时,两者都显示在PHP数组中。

这是问题的电子邮件内容!我按照Udemy教程了解如何执行此操作并仔细检查了所有内容。任何人都可以帮助我吗?

感谢!!!!

3 个答案:

答案 0 :(得分:3)

在PHP中,您需要使用“。”为了合并字符串。 “+”代表JS

答案 1 :(得分:1)

正如其他人所说,“加号”不会连接字符串;改用“点”。

$content = $_POST['name'] . $_POST['message'];

此外,“加号”导致PHP解释器执行type coercion,这就是您的电子邮件字面上说“零”的原因。你已经设法将你的两个POST变量变成一个数字(虽然你肯定不是第一个这样做的人!)

答案 2 :(得分:0)

根据您提交的代码判断,您似乎正在尝试获取表单提交者的姓名及其消息,并将其合并为一个字符串,该字符串将放置在您的电子邮件正文中。< / p>

突出的主要问题是你如何尝试连接(组合)字符串。在PHP中,the concatination operation是句点(&#34;。&#34;)。使用您当前的代码时,它会尝试添加两个字符串,例如数字,这就是您在电子邮件正文中遇到 0 的原因。

让我们拿走您当前的代码,并应用该修复程序:

$content = $_POST['name'] . $_POST['message'];

其次,让我们看一下 $ content 变量的实际输出。我应该提交姓名&#34; Jon&#34;我的信息是&#34;你好,朋友!&#34;使用现在的代码,我们最终得到:

JonHello,Friends!  

为了解决这个问题,让我们添加冒号和空格来表示用户正在说这条消息:

$content = $_POST['name'] . ': ' . $_POST['message'];

现在,如果我们输出 $ content 变量,我们会看到:

Jon: Hello, Friends!

请记住,我们添加冒号和空格可以替换任何其他字符串。

例如,我们可以稍微修改我们的连接,为我们的文本添加一些风味,并让用户&#34;说&#34;她/他的名字:

$content = $_POST['name'] . 'says: "' . $_POST['message'] .'"';

输出时,此代码将产生:

Jon says: "Hello, friends!"

我希望有帮助,格兰德。如果您有任何其他问题,请与我们联系。