使用PHP插入显示为下载而不是执行


Insert using PHP shows up as a download instead of executing

对不起,如果这已经存在,但我找不到这个

我试图将信息从表单插入到一个名为"测试"的数据库中名为"测试"的表中。"instest"表中的列是"firstName"、"lastName"answers"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","root@localhost"); //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)
?>

尝试添加value="submit"浏览器首选的合适html

看起来您只是忘记使用<?php<?Insert.php中打开PHP标记(前者是最兼容的,因此是优选的版本)。

我想你有一个错误:

$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] ."')";

我知道你可以在"里面有变量(我个人认为这是不好的做法,速度更慢),我认为你会遇到不断的问题,post var和php如何解释它。

你应该打开error_reporting,因为它会反映这个