PHP表单提交,然后检查url以显示相应的内容
PHP form submit then check url to display corresponding content
我正在尝试创建一个表单来注册发送到确切目标(我们的邮件服务)的电子邮件订阅。最初希望表单使用ajax jquery,并在提交时将表单更改为成功消息或错误(取决于结果)。了解到ajax表单提交不能在原始域SOURCE 之外完成
问题:
试图让此表单提交并将数据附加到主页url,以在加载时显示不同的内容。有三种状态
- 如果GET为空,则加载表单
- 如果GET注册=错误,则加载错误消息和表单
- 如果GET注册=成功,则加载成功消息
<?php
if (empty($_GET)) {
echo'
<form action="emailhost.net/subscribe.aspx" name="subscribeForm" method="post" class="forms" id="form">
<input type="hidden" name="thx" value="example.com/?signup=success" />
<input type="hidden" name="err" value="example.com/?signup=error" />
<input type="text" name="Full Name" placeholder="Name" />
<input type="text" name="Email Address" placeholder="Email Address" />
<input type="submit" />
</form>'
;}
if(isset($_GET["signup"]) && trim($_GET["signup"]) == "error"){
echo '
<p>There was an error. Please try again</p>
<form action="emailhost.net/subscribe.aspx" name="subscribeForm" method="post" class="forms" id="form">
<input type="hidden" name="thx" value="example.com/?signup=success" />
<input type="hidden" name="err" value="example.com/?signup=error" />
<input type="text" name="Full Name" placeholder="Name" />
<input type="text" name="Email Address" placeholder="Email Address" />
<input type="submit" />
</form>'
;}
if(isset($_GET["signup"]) && trim($_GET["signup"]) == 'success'){
echo'
<p>Thank you for signing up!</p>'
;}?>
隐藏的输入被发送到我们的电子邮件主机,根据错误或成功,主机选择正确的值发送回。
目前这不起作用。我从这里得到了php代码
正确的方法是使用PHP作为您和客户端之间的某种代理(您从客户端收集表单数据,代表他们将其提交给第三方服务器,并检索结果)。
<?php
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
$postdata = http_build_query(
$_POST, /* or wherever else you collected the data from */
);
$opts = [
'http'=> [
'method' => 'POST',
'header' => 'Content-type: application/x-www-form-urlencoded',
'content' => $postdata,
]
];
$context = stream_context_create($opts);
$result = file_get_contents('http://emailhost.net/subscribe.aspx', false, $context);
if ($result) {
echo "<h1>Success!</h1>";
} else {
echo "<h1>ohnoes...</h1>";
}
} else {
?>
<form action="myscript.php" name="subscribeForm" method="post" class="forms" id="form">
<input type="hidden" name="thx" value="example.com/?signup=success" />
<input type="hidden" name="err" value="example.com/?signup=error" />
<input type="text" name="Full Name" placeholder="Name" />
<input type="text" name="Email Address" placeholder="Email Address" />
<input type="submit" />
</form>
<?php
}
相关文章:
- 表单提交没有'如果为空,则不会显示错误消息
- 显示带有表单提交的单击事件的 toastR
- 提交后如何递增和显示表单数量
- 在表单提交后显示模态,直到加载下一页为止..不适用于狩猎
- 在表单提交后显示消息的方法
- 元素未显示在iOS表单提交中
- 在表单提交之前,save()内部的方法调用显示模板的返回
- 当我以带有编辑和删除按钮的表单提交时,显示所有值
- 如果出现错误,请在表单提交中显示图像
- 在表单提交时显示错误
- 防止在 Jquery 表单提交时加载页面,但“无”显示按钮
- 使用jQuery切换根据选中的复选框隐藏/显示表单提交按钮 - 如何设置默认关闭的提交按钮
- 表单提交未显示 JavaScript 输出
- 值通过表单提交,然后即使在提交并显示值之后,也会以表单显示已提交的值
- 如何防止页面在表单提交时重新加载,并显示一个小文本说“已成功注册”
- 向用户显示表单提交成功与否
- 在新选项卡或窗口显示表单提交的结果
- 显示表单提交表单后的成功弹出框
- PHP-使用放大弹出菜单显示表单提交后的消息
- 使用AJAX显示表单提交结果