2014-06-27 24 views
1

我在MySQL數據庫中存儲了一個URL。 (http://example.com/page.php?ex='$_GET[ex]')當我檢索它來創建動態鏈接時,它會給我http://example.com/page.php?ex=%27.$_GET[ex].%27,當然不起作用。

我似乎無法能夠得到(抱歉不得不使用它!)的$_GET變量。

確切的說,細胞包含...

Submit Risk Assessment<button><a href="risksearch.php?ex='.$_GET[ex].'">Create/Edit</a></button> 
+2

不要在數據庫中存儲文字PHP源代碼!用佔位符存儲文本,然後插入。最簡單的例子是['sprintf'](http://php.net/sprintf)。 – deceze

+0

嗯... sprintf不完全是我以後...我認爲這將是有用的鏈接存儲在它自己和檢索。這很難解釋......我基本上有一個待辦事項清單,但只有少數項目可以鏈接到其他表格。我試圖將其作爲文本和鏈接存儲在數據庫中。沒有$ _GET變量就能正常工作。這是可以做到的嗎? – ash

+0

我可能需要在數據庫中添加另一個字段,並使用sprintf單獨調用它。恥辱,因爲70個任務中只有3個。 – ash

回答

0

不回答這個問題,但我的解決方案是在數據庫中爲url創建一個單獨的字段。然後,我用deceze的sprintf的建議,它完美的作品。

if(!empty($row[buttonlink])){ 
     $ex = $_GET[ex]; 
     $rawlink = $row[buttonlink]; 

     $format = '<button><a href="%s?ex=%s">Create/Edit</a></button>'; 
     $buttonlink = sprintf($format, $rawlink, $ex); 
} 

只有少量的按鈕可以做,它們都可以標記爲「創建/編輯」。我可以添加另一個字段以將標籤也稱爲sprintf。

0

看來,串已被用urlencode編碼

你真的應該解碼URL編碼字符串

$a = urldecode('http://example.com/page.php?ex=%27.$_GET[ex].%27'); 
echo $a; 
// print the url 
+0

感謝Philippe T.我在同一領域有其他文字可能(出於設計原因)將其分割到自己的領域 - 我已經完成並使用了deceze的衝刺建議。 – ash