2013-12-09 52 views
1

我創建了一個名爲contact.htmlconnectivity.php的html文件。在contact.html裏面,我設置了form action="Conectivity.php"。但是,當我運行contact.html並單擊發送按鈕時,它應該將記錄保存在我的數據庫中,但是當我單擊該按鈕時,它只顯示connectivity.php中的全部代碼。PHP - 儲存在數據庫內的儲存記錄

這是我在connectivity.php代碼:

<?php 
define('DB_HOST', 'localhost'); 
define('DB_NAME', 'practice'); 
define('DB_USER','root'); 
define('DB_PASSWORD',''); 

$con=mysql_connect(DB_HOST,DB_USER,DB_PASSWORD) or die("Failed to connect to MySQL: " . mysql_error()); 
$db=mysql_select_db(DB_NAME,$con) or die("Failed to connect to MySQL: " . mysql_error()); 
$name = $_POST['name']; 
$email = $_POST['email']; 
$message = $_POST['message']; 

$query = "INSERT INTO contact (contactName,contactEmail,message)VALUES('$name','$email','$message')"; 
$result = mysql_query($query); 
if($result) 
{ 
    echo "Successfully updated database"; 
} 
else 
{ 
    die('Error: '.mysql_error($con)); 
} 
mysql_close($con); 
?> 
+1

您確實在運行本地Web服務器,還是直接在Web瀏覽器中打開HTML文件?看到完整的PHP代碼意味着你的PHP從未被執行過。 –

+1

**通過構建帶有外部變量的SQL語句,您將使自己面臨SQL注入攻擊。**另外,任何帶有單引號的輸入數據,如名稱「O'Malley」,都會炸燬您的SQL查詢。請了解使用參數化查詢(最好是使用PDO模塊)來保護您的Web應用程序。 http://bobby-tables.com/php有例子讓你開始,並且[這個問題](http://stackoverflow.com/questions/60174/how-can-i-prevent-sql-injection-in- php)有很多例子的細節。 –

+0

@MichaelBerkowski我已經安裝了xampp,並在phpMyAdmin中創建了一個數據庫 – JK9

回答

3

你說「這隻能說明我的內心connectivity.php整個代碼」 - 聽起來好像你沒有安裝一個Web服務器和看到PHP代碼,因爲它沒有執行你的腳本。您需要安裝Web服務器。

注意:如果您訪問像file:///foo/Connectivity.php這樣的文件,您也會遇到此問題 - 必須通過HTTP爲Web服務器執行PHP。您必須通過HTTP訪問該文件,如http://localhost/Connectivity.php或本地服務器名稱而不是本地主機。

請檢查您的拼寫。你的問題說,i set form action="conectivity.php"。您的文件名爲Connectivity.php - 請確認您在<form>標記中拼寫正確。

另外,don't use mysql_* - 使用MySQLi或PDO代替。你必須使用準備好的語句;您當前的代碼非常容易受到SQL注入攻擊。

+0

我確實安裝了一個名爲xampp的web服務器,但它仍然不起作用。 – JK9

+0

創建一個新頁面'test.php',並在其中放入以下代碼:'<?php echo「Foo」; ?>瀏覽到該頁面。如果您看到「Foo」以外的任何內容,則(1)您沒有正確訪問該頁面或(2)xampp未正確運行。 –

+0

我仍然可以看到整個代碼。如何正確訪問頁面,因爲我認爲xampp運行正常。可能是訪問問題? – JK9