2011-07-23 52 views
0

对不起,如果这已经存在,但我无法在任何地方找到它。插入使用PHP显示为下载而不是执行

我试图从一个表格中插入信息到名为“instest”的数据库中名为“test”的表中。 “instest”表中的列是“firstName”,“lastName”和“age”。

问题是,每次点击提交按钮时,它会显示为下载(IE)或代码显示(Opera),而不是实际执行的代码。

下面是代码:

/* TestInsert.php */ 

<!DOCTYPE HTML> 
<html> 
<body> 
    <form action="Insert.php" method="post"> 
     Firstname: <input type="text" name="firstname" /> 
     Lastname: <input type="text" name="lastname" /> 
     Age: <input type="text" name="age" /> 
     <input type="submit" /> 
    </form> 
</body> 
</html> 
/* Insert.php */ 

<?php 

    $con = mysql_connect("localhost","[email protected]"); //No password 
    if (!$con) 
    { 
     die('Could not connect: ' . mysql_error()); 
    } 

    mysql_select_db("test", $con); 

    $sql="INSERT INTO instest (firstName, lastName, age) 
    VALUES 
    ('$_POST[firstname]','$_POST[lastname]','$_POST[age]')"; 

    if (!mysql_query($sql,$con)) 
    { 
     die('Error: ' . mysql_error()); 
    } 
    echo "1 record added"; 

    mysql_close($con) 
?> 
+0

还有一个开始'<?'? – fyr

回答

3

尝试添加value="submit"浏览器偏好适当的HTML

+0

它不会将它解释为PHP,因此无论是**不能**或它**都不是**。看到你有正确的扩展和标记,并假设你没有搞乱服务器设置,我会说你的服务器不支持它。 –

+0

服务器支持PHP。这是一个WAMP服务器。 “<?php”不会丢失。当我发布这个问题时,这是一个格式错误。 – Stylzs05

+0

如果它的波动比最有可能的还没有正确设置。 Apache运行?系统默认情况下是否启用了虚拟主机?你从本地主机打开它? –

0

看起来你只是忘记使用Insert.php打开PHP标签要么<?php<?(前者是最兼容,故而优选,版本) 。

+0

我编辑过。当我试图发布这个问题时,这是一个格式错误。 – Stylzs05

0

我觉得你有这样的错误:

$sql="INSERT INTO instest (firstName, lastName, age) 
VALUES 
('$_POST[firstname]','$_POST[lastname]','$_POST[age]')"; 

尝试将其更改为这样:

$sql="INSERT INTO instest (firstName, lastName, age) 
VALUES 
('". $_POST[firstname] ."','". $_POST[lastname] ."','". $_POST[age] ."')"; 

我知道你可以有“”(我个人认为它的糟糕做法和较慢)我认为你会遇到不断的问题与后var和如何PHP解释。

你应该打开error_reporting,因为它会反映这一点。

+0

另外,在向数据库插入数据时,不要转义发布的变量是非常糟糕的做法。 – iLLin