2012-02-12 81 views
0

如何使用在文本框中輸入的變量來搜索TinySong api?我嘗試使用一些變量,但無濟於事。這是我試過的:使用變量進行PHP搜索

<?php 
if(isset($_POST['submit'])) { 
echo ' ', htmlspecialchars($_POST['something']); 
} 
?> 

<?php 


require_once 'tinysong.php'; 

$api_key = 'MY API KEY'; 

$query = '$something '; 


$tinysong = new Tinysong($api_key); 


$result = $tinysong 
      ->search($query) 
      ->execute(); 


echo "<pre>"; 
print_r($result); 
echo "</pre>"; 
?> 

我不明白爲什麼文本框的值沒有被查詢。我有什麼要改變它的工作?謝謝

+0

我假設你改變了「MY_API_KEY?」 – 2012-02-12 14:11:01

+0

Yea,LOL Im jst不知道爲什麼頂端代碼不適用於查詢。 – 2012-02-12 14:11:41

回答

0

您沒有變數$something。您有$_POST['something'],但除非register_globals處於打開狀態(不應該是),否則您從未填充過$something。因此您無需查詢。

$query = $_POST['something']; 

順便說一句,您也在這裏使用了單引號,這不會導致變量被內插。雙引號需要插值:

// This would have needed double quotes if it wasn't incorrect anyway... 
$query = '$something '; 

$query = "$something "; 
+0

謝謝!有效 – 2012-02-12 14:16:13

3

假設你已經禁用了register_globals(我希望你有!),你需要使用$_POST["something"]而不是$something

另外,爲什麼'$something' - PHP中的單引號意味着字符串的內容不會被解析。你不能從內部引用變量。你不能只是做線沿線的東西:

$tinysong->search($_POST["something"])->execute(); 

如果你使用'$something',該字符串的內容將是"$something" - 我推測是不是你想要的。