2012-07-09 71 views
1

所以基本上它會進入並在數據庫中找到與我輸入的單詞相匹配的單詞,並吐出可用的回覆,但它可以處理所有這些其他垃圾。PHP Mysql爲什麼要這樣做? Android

http://i.imgur.com/Lh7iZ.png

這是我的PHP代碼

<?php 
    // Connect to database 
    mysql_connect("*****", "***", "****"); 
    mysql_select_db("***"); 

    // If something is received 
    if($_POST) 
    { 
     if($_POST['action'] == "ask") 
     { 
      // Filter it to prevent SQL injections 
      $text = mysql_real_escape_string($_POST['stringdata']); 

      // Search it on the database 
      $q = mysql_query("SELECT `reply` FROM `poka` WHERE `word` = '$text' ORDER BY RAND()"); 

      // Show result 
      if($r = mysql_fetch_assoc($q)) 
       echo $r['reply']; 
      else 
       echo "Cannot find a reply"; 
     } 
     elseif($_POST['action'] == "teach") 
     { 
      // Filter it to prevent SQL injections 
      $word = mysql_real_escape_string($_POST['word']); 
      $answer = mysql_real_escape_string($_POST['answer']); 

      // Insert it to the database 
      if(mysql_query("INSERT INTO `poka` VALUES(NULL, '$word', '$answer')")) 
       echo "ok"; 
      else 
       echo "fail"; 
     } 
    } 
?> 
+0

爲什麼它吐出其他的東西?你看過這張照片嗎?它應該只吐出單詞「嘿」而不是其他的東西 – 2012-07-09 13:07:41

+0

你可以檢查實際存儲在數據庫中的內容嗎? – raina77ow 2012-07-09 13:09:14

+0

是的,它是一個MYSQL數據庫。 – 2012-07-09 13:09:31

回答

4

您的託管公司會自動將谷歌(?)Analytics(分析)代碼發送的每一頁。與他們交談。

0

您可以嘗試以下更改,只是爲了確保您沒有破壞任何字符串。

echo $r['reply']; 

echo "{$r['reply']}"; 

是否行爲相同的方式呢?

雖然,上面的答案可能是原因。

這裏是the PHP documentation on how to use arrays in echos一個例子:

// You can also use arrays 
$baz = array("value" => "foo"); 

echo "this is {$baz['value']} !"; // this is foo ! 
+0

這甚至沒有迴應任何東西 – 2012-07-09 13:16:03

+0

奇怪的是,它真的應該!查看我的源代碼的翻譯答案。 :-) – 2012-07-09 13:22:49

0

如果你想確切瞭解,頭部到http://www.apachefriends.org/en/index.html和振作精神XAMPP的副本。

有了它,您可以快速設置MYSQL數據庫的本地副本。從當前主機遷移數據庫數據以複製已有的設置。

然後在您的PHP中,將其更改爲指向新的本地數據庫(位於'localhost')並查看是否得到相同的結果。

我的懷疑是每個人都elses :)