用PHP实现HTML表单行为
今天,我在用PHP和HTML编写一个简单表单时遇到了一个有趣的问题,我想不出一个快速修复方法 当用户在我的HTML页面上按submit时,我正在使用我编写的PHP脚本。为了在运行脚本后重新显示页面,我只需编写用PHP实现HTML表单行为,php,html,forms,Php,Html,Forms,今天,我在用PHP和HTML编写一个简单表单时遇到了一个有趣的问题,我想不出一个快速修复方法 当用户在我的HTML页面上按submit时,我正在使用我编写的PHP脚本。为了在运行脚本后重新显示页面,我只需编写 include "html_forms.html" 在PHP脚本的底部。首先,这似乎是一个糟糕的页面设计,因为它需要不断地完全重新显示,但我不知道如何规避这个问题 不过,这里我更关心的问题是,我试图在用户第一次使用PHP按下submit之前保存表单数据。为此,我修改了每个输入的值,如下
include "html_forms.html"
在PHP脚本的底部。首先,这似乎是一个糟糕的页面设计,因为它需要不断地完全重新显示,但我不知道如何规避这个问题
不过,这里我更关心的问题是,我试图在用户第一次使用PHP按下submit之前保存表单数据。为此,我修改了每个输入的值,如下所示(在HTML中):
value=”
但是,当网页第一次从HTML加载时(我猜它找不到要引用的PHP,因为还没有单击Submit按钮)在我第一次加载的页面输入框中,它会打印
。如果我先加载PHP,它不会有那个问题,但这种分裂让我对我要进行的总体设计产生疑问,尽管它可能会解决这个问题,但它似乎只会因为网页的简单性而起作用
我的主要问题是如何解决这个问题?我曾考虑过在第一次点击时清空html条目和其他技术,但我不确定这是否是最好的方法,因为制作特殊情况(尤其是第一次点击页面时)似乎是不好的形式
提前感谢大家的帮助,这是我在堆栈溢出问题上问的第一个问题,所以请告诉我是否有任何方法可以改进我的问题,并且不要对我太苛刻!我猜问题是,您加载页面
html\u forms.html
,然后将表单提交到类似process\u form.php的页面e> 。在process_form.php
中,您正在调用include'html_forms.php'
,它允许value='
,因为它位于php页面内
然而,当您重新加载html\u forms.html
时,它又回到了html文档的状态,因此您失去了PHP功能,因此,value='
被转换为value='
——html将完全忽略您的PHP
简短回答:使用PHP扩展。将html\u forms.html
重命名为html\u forms.PHP
,您可以使用所需的所有PHP魔法。基本上,问题在于您的web服务器不通过PHP解释器解析.html文件。您有两个选择:
如果使用Apache,则可以将.htaccess配置为具有以下行:
AddHandler php5 script.html
您可以将.html文件重命名为.php文件
然而,这两个选项都是糟糕的设计:您应该只允许用户与您的PHP脚本交互,并在需要时使用底层html作为模板。您看过任何PHP\form教程吗?
在.html
文档上不起作用。请尝试将html\u forms.html
更改为html\u forms.PHP
.html
将不起作用仅呈现html。.php
将呈现html和/或phpit都可以工作,只是通过php解析所有.html文件并非开箱即用(我这样做了)。唯一的问题是,为什么?为什么会遇到麻烦(和高安全风险)使用.html作为.php?很好,这是一个额外的安全层。因此,你建议我在我设置的框架内找到一个解决方案:html作为模板,php由html调用?不必担心。我明白你的建议。我现在将努力修改它,使网页从.php运行,我可能会只需将.html文件扔进垃圾箱,因为它将变得不必要。谢谢你的帮助!
value = "<?php echo $website; ?>