只要输入数据,PHP表单就会自动刷新

时间:2012-02-29 22:04:34

标签: php forms include page-refresh

我正在构建我的第一个PHP网站(无论如何都要尝试!),我正在尝试创建一个联系表单,其内容通过电子邮件提交给我。我有电子邮件部分,但我无法获取表单(“contact.php”)接受数据。只要在任何字段中输入字符,它就会自动刷新。这是相关的代码:

<div class="contactform">
<form name="contactform" method="post" action="contact-receiver.php">

<fieldset><legend><strong>Required Information</strong></legend>

First Name: <input type="text" name="firstName" size="35" maxlength="30"/>
Last Name: <input type="text" name="lastName" size="35" maxlength="30"/>
Email: <input type="text" name="emailAddress" size="60" maxlength="55"/>

</fieldset>

<input type="submit" value="Submit"/>
<input type="reset" value="Reset"/>

</form>
</div>

独立于网站的其他部分进行测试时,此工作正常。但是,这是上下文:

<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<link rel="stylesheet" type="text/css" href="styles.css" />
</head>
<body>

<?php include 'header.php'; ?>

<?php

$id = $_GET['id'];

switch($id)
{
    case 'main':
    include 'storeinfo.php';
    break;
    case 'shop':
    include 'inventory.php';
    break;
    case 'cart':
    include 'cart.php';
    break;
    case 'contact':
    include 'contact.php';
    break;
    default:
    include 'error.php';
}
?>

<?php include 'footer.php'; ?>

</body>
</html>

“contact.php”在显示为单独的页面时工作正常,但在作为包含文件访问时不接受任何输入。如果我尝试在任何字段中输入数据,则在键入第一个字符后页面会立即刷新,并且数据会丢失。

如果有人能指出我正确的方向,我会非常感激!

修改

禁用Javascript无效。为了确定,我清除了缓存并重新启动了浏览器(Firefox)。当我正在研究那个伏都教牧师时,这里是index.php的页面源代码?id = contact:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<title>Main</title>
<link rel="stylesheet" type="text/css" href="styles.css" />
</head>

<body>
<div>

<p><img src='headerimg.png' class='header'/></p><a href='index.php?id=main'>
<img src='mainbutton.png' class='nav1'</a><a href='index.php?id=shop'>
<img src='shopbutton.png' class='nav2'</a><a href='index.php?id=cart'>
<img src='cartbutton.png' class='nav2'</a><a href='index.php?id=contact'>
<img src='contactbutton.png' class='nav2'</a>

</div>

<div class="contactform">

<form name="contactform" method="post" action="contact-receiver.php">

<fieldset><legend><strong>Required Information</strong></legend>

First Name: <input type="text" name="firstName" size="35" maxlength="30"/>
Last Name: <input type="text" name="lastName" size="35" maxlength="30"/>
Email: <input type="text" name="emailAddress" size="60" maxlength="55"/>

</fieldset>

<input type="submit" value="Submit"/>
<input type="reset" value="Reset"/>

</form>

</div>  
<div id = "footer">

<p>&copy;2012</p>

</div>
</body>
</html>

1 个答案:

答案 0 :(得分:0)

这听起来像是与Javascript相关的问题。

检查并确保您没有包含任何尝试自动填充的脚本,因为配置错误可能会导致它在按键时发送请求,这会导致您提及的行为。

测试此功能的一种简单方法是在浏览器中禁用JavaScript并查看问题是否仍然存在。如果是这样,那就意味着你的计算机里有鬼魂,应该看到一个伏都教神父。如果问题仍然存在,则表示您网站上的某些JavaScript存在问题。

发布header.php的一些内容也会有所帮助。或者,您只需发布一次完整的HTML网页来源 - 也就是说,访问您的index.php?id=contact页面,点击查看来源,然后在此处显示。