繁体   English   中英

停留在当前页面上的HTML表单操作

[英]HTML Form action that stays on the current page

我正在进行简报注册,用户输入电子邮件并单击表单提交按钮。 问题在于新闻通讯注册位于我的页脚中,该页脚显示在网站的每个页面上。 现在,我有action =“ newsletter.php”,它向我发送了一封电子邮件,其中包含他们用来注册的电子邮件。 我本可以有一个“ window.location =“”“,但我希望它返回到其来源页面(因为页脚本可以位于网站的任何页面上)。

现在,我想知道是否有一种方法可以使表单动作不为“ newsletter.php”,而是使php仅位于页脚文件中,以便他们甚至永远都不会离开他们所在的页面一个简单的window.alert可以让他们知道注册成功,并且无论他们在网站的哪个页面上,他们都可以继续做自己的工作。

在从Google获得想法并自行尝试之后,我尝试制作了一个javascript函数,其中包含所需的php,用于向我发送一封包含他们输入的电子邮件的电子邮件,但显然,每次网站的任何页面时,它都会向我发送一封空白电子邮件已加载。 我也尝试过执行“ isset”,但是问题是action =“”只是在isset可以检查是否在电子邮件中键入内容之前重新加载页面。

新闻通讯

   <?php
$field_emailInput = $_POST['emailInput'];

$mail_to = 'josh@cutephilosophy.com';
$subject = 'NEWSLETTER SUBSCRIBER';

$body_message .= 'This person subscribed for email updates: ';
$body_message .= 'E-Mail: '.$field_emailInput."\n";

$headers = 'From: '.$field_emailInput."\r\n";
$headers .= 'Reply-To: '.$field_emailInput."\r\n";

$mail_status = mail($mail_to, $subject, $body_message, $headers);

if ($mail_status) { ?>
    <script language="javascript" type="text/javascript">
        window.alert('You Are Now In The Loop!');
        //window.location = 'index.php';
        window.location ='history.back()';
    </script>
<?php
}
else { ?>
    <script language="javascript" type="text/javascript">
        alert('Something broke, email josh@cutephilosophy.com about the problem!');
        window.location = 'index.php';
    </script>
<?php
}
?>

您会注意到我在使用action =“ newsletter.php”方法时尝试了“ history.back()”,此方法有效,但是当显示window.alert时,您处于完整的白页,而不是最初的页面上,然后您被重定向回。

不能使用PHP_Self。 或在HTML中添加后退按钮,以允许他们单击返回到原来的位置。

使用php mail()发送电子邮件并将表单操作设置为

htmlspecialchars($_SERVER['REQUEST_URI'])

htmlspecialcharacters部分为表单增加了安全性,而server部分使您返回到同一页面。

暂无
暂无

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

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