繁体   English   中英

如何让我的$ _Post工作

[英]How do I get my $_Post to work

我试图让我的网站每次有人发消息时提交电子邮件(现在我正在努力让我的变量工作......)。 这是一个学习过程,所以我就是为了这一切,只是想自学。 然而,没有像$_post$_get这样的GLOBAL php命令正在运行。 我甚至尝试了不同的方法但无济于事。

<?php
$person = $_Post['pName'];
echo "before";
echo $person;
echo "after";
echo $_Get['pName'];
?>

但这从未提交任何内容。 我的表单有method="post"action="TestSend.php" 是的,文件名也是TestSend.php。 此外,在我点击我的网站上的“提交”后,php DOES在浏览器中显示“之前”。

如果您想自己测试一下,请访问我的网站www.turnedbrigade.com。
最后一个问题,我需要带有我的php文件的html标签和body标签吗?

这是html编码。

<form action="TestSend.php" method="post">
Name: <input name="pName" type="text" placeholder="Name"/>
Email: <input name="pEmail" placeholder="Email"/><br/>
Message: <br/><textarea name="pMessage" rows="8" cols="60" placeholder="Message"></textarea><br/>
<input type="submit"/>              
</form>

编辑:

<?php
$from =  $_POST['pName'];
$email = $_POST['pEmail'];
$subject = "Forums";
$message = $_POST['pMessage'];
mail("email will go here", $subject, $message, $from);
?>

对于这个电子邮件的一部分,我的页面只是空白,我从来没有收到过任何帖子。

HTML

HTML http://img716.imageshack.us/img716/6872/c7a3.png PHP

腓

$_POST$_GET是正确的变量名,它们是superglobals系列的一部分。 Php区分大小写,所以你真的需要使用大写字母,所以改变

$person = $_POST['pName'];

echo $_GET['pName'];

试试$_GET$_POST 不确定你在哪里看到他们没有资本化......

并回答你的另一个问题,如果你不打算渲染页面(在浏览器中显示),但只做一些数据库通信,发送电子邮件等...你不需要任何HTML。 但是,您将在浏览器中显示的所有页面(表单,“谢谢”页面等)都需要具有适当的HTML结构。 你在其中使用PHP并不重要,它们最终仍然以HTML格式呈现。

您可能会注意到,即使没有正确的HTML结构,页面也可能正常工作(因此没有doctype,没有html,head,body ......),但是不要使用它。 除了是一种可怕的做法,它实际上是你的浏览器为你处理坏的HTML,你永远不应该依赖它。 了解如何编写正确的HTML(有数百万个教程),并正确使用它。

UPDATE

对于您的最新更新,页面为空白是正常的 - 您没有输出任何内容。 尝试更改邮件行:

mail("email will go here", $subject, $message, $from);

这样的事情:

if (mail("email will go here", $subject, $message, $from)) {
    echo 'Yay! Email sent!';
}
else {
    echo 'There is an error somewhere, email not sent!';
}

你会发现代码工作正常。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM