2012-08-17 83 views
1

無論我在兩種情況下是否輸入bug id的值,php標記之間的代碼都顯示爲輸出。有人能幫我找出原因嗎? 代碼如下:將html表單值傳遞給php文件

html文件-------------------------------------- -----------------------

<!DOCTYPE html PUBLIC"-//W3C//DTD XHTML 1.0 Strict//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<title>Bug Report</title> 
<meta http-equiv="content-type" content="text/html; charset=utf-8" /> 
</head> 
<body> 
<h2>Bug Report</h2> 
<form action="test.php" method="post" > 
<p>Bug ID:<input type="text" name="bugid" size="20" /></p>  
<p><input type="submit" value="Record Bug" /></p> 
</form> 
</body> 
</html> 

php file ------------------ --------------------------------

<!DOCTYPE html PUBLIC"-//W3C//DTD XHTML 1.0 Strict//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<title>Record Bug</title> 
<meta http-equiv="content-type" content="text/html; charset=utf-8" /> 
</head> 
<body> 

<?php 
       $bugid=$_POST["bugid"]; 
       echo $bugid; 
if (empty($bugid)) 
    { 
      echo "<p>You must enter the Bug ID to record the bug.</p>"; 
    }  
else 
    { 
    echo"<p>good</p>";   
        } 
?> 


</body> 
</html> 
+1

你是說if和else條件都正在執行,還是你說實際的PHP代碼出現在頁面上? – j08691 2012-08-17 03:34:59

+0

輸出是:您必須輸入Bug ID才能記錄錯誤。 「;}其他{回聲」 好 「;}?> – xing 2012-08-17 03:36:43

+0

你的代碼是廣泛開放的sql-禁制令 – 2012-08-17 03:45:17

回答

1
  1. 檢查運行PHP是工作或沒有爲寫代碼<?php phpinfo(); ?>如果已經手動安裝了PHP的Apache和獲取問題嘗試wamp server

  2. 你的代碼是廣泛開放SQL的禁令,以確保安全使用


public function mysql_prep($value) { 
     $magic_quotes_active = get_magic_quotes_gpc(); 
     $new_enough_php = function_exists("mysql_real_escape_string"); // i.e. PHP >= v4.3.0 
     if($new_enough_php) { // PHP v4.3.0 or higher 
      // undo any magic quote effects so mysql_real_escape_string can do the work 
      if($magic_quotes_active) { $value = stripslashes($value); } 
      $value = mysql_real_escape_string($value); 
     } else { // before PHP v4.3.0 
      // if magic quotes aren't already on then add slashes manually 
      if(!$magic_quotes_active) { $value = addslashes($value); } 
      // if magic quotes are active, then the slashes already exist 
     } 
     return $value; 
    } 
2

如果您在輸出中獲得PHP代碼,那麼您的網絡服務器不會通過PHP解釋器運行該頁面/腳本。通常,這是因爲您已將代碼放入.html文件中,默認情況下,該文件不被視爲PHP。

將文件重命名爲whatever.php,或重新配置Web服務器以將.html文件作爲PHP腳本對待。

+0

我重命名了該文件,但仍然與上面的輸出相同 – xing 2012-08-17 03:40:26

+1

然後你應該檢查爲什麼你的web服務器根本不運行PHP腳本 – 2012-08-17 03:44:56

0

在你到服務器,該服務器支持PHP像XAMPP或WAMP和運行情況也文件的擴展名應該是.PHP

1

檢查PHP是否在你的機器運行與否。保存下面的代碼爲test.php的,並通過

<?php 

    phpinfo(); 

?> 
+0

我試過了,沒有顯示任何內容..空白頁 – xing 2012-08-17 03:44:04

+3

然後你有PHP的問題。 – j08691 2012-08-17 03:45:02