Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用PHP实现HTML表单行为_Php_Html_Forms - Fatal编程技术网

用PHP实现HTML表单行为

用PHP实现HTML表单行为,php,html,forms,Php,Html,Forms,今天,我在用PHP和HTML编写一个简单表单时遇到了一个有趣的问题,我想不出一个快速修复方法 当用户在我的HTML页面上按submit时,我正在使用我编写的PHP脚本。为了在运行脚本后重新显示页面,我只需编写 include "html_forms.html" 在PHP脚本的底部。首先,这似乎是一个糟糕的页面设计,因为它需要不断地完全重新显示,但我不知道如何规避这个问题 不过,这里我更关心的问题是,我试图在用户第一次使用PHP按下submit之前保存表单数据。为此,我修改了每个输入的值,如下

今天,我在用PHP和HTML编写一个简单表单时遇到了一个有趣的问题,我想不出一个快速修复方法

当用户在我的HTML页面上按submit时,我正在使用我编写的PHP脚本。为了在运行脚本后重新显示页面,我只需编写

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; ?>