2011-07-23 90 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