0

我有一个表格供用户填写信息,我想知道如果用户重定向回页面,如何保留以前输入的信息。

所以,我有两个文件,

  • 表单.html
  • 验证.php

form.html

<form id="regForm" action="index.php?validate" method="post" onsubmit="return regValidation();" >

<tr>
  <td width="150px" >First Name: <font color="red">*</font> </td>
  <td><input type="text" name="firstNameField" id="firstNameField" value/ ></td>
</tr>

在 下validate.php,我使用 $_SESSION 存储了信息:

<?php
    session_start();

    $_SESSION['first'] = $_POST['firstNameField'];
?>

但是当我尝试如下填充firstNameField$_SESSION['first']

<td><input type="text" name="firstNameField" id="firstNameField" value="<?php echo isset($_SESSION['first']) ? $_SESSION['first'] : NULL; ?>" /></td>

该字段将被替换为<?php echo isset($_SESSION['first']) ? $_SESSION['first'] : NULL; ?>

有人可以告诉我为什么以及如何正确修复它吗?

谢谢。

4

4 回答 4

0

将文件名更改为,form.php而不是form.html让 Apache 知道在该文件中解析 PHP。

或者,您可以修改.htaccess文件并添加如下一行:

AddType application/x-httpd-php .html

这告诉 Apache 使用 PHP 渲染所有以 HTML 结尾的文件。

于 2012-11-08T02:12:21.097 回答
0

为什么要通过两个文件来使这变得复杂?

只要有一个。

由于 $_POST 中没有任何内容,因此第一次填充 nowt。随后该变量将具有适当的值。

这将为您将来节省很多心痛,因为您不需要保持两个文件同步。

它还消除了使用会话的复杂性。

于 2012-11-08T02:23:54.137 回答
0

默认情况下,任何文件扩展名为 .html 的文件都不会被解析,因此会暴露<?php $yourCode->exposed = true; ?>

如果重命名同一个文件,将其文件扩展名从 .html 更改为 .php,那么 <?php echo 'HelloWorld'; ?>将被解析,最终结果是HelloWorld

这个默认行为可以被 Tim 上面描述的覆盖

于 2012-11-08T02:28:08.660 回答
0

将文件名更改为 form.php 而不是 form.html,就像 php 标记一样

或添加 .html 处理程序

于 2012-11-08T03:44:53.560 回答