2016-12-13 59 views
0

我想將輸入字段內的文本發送到URL並觸發$ GET函數。php輸入發送到URL,格式不正確

<form action="" method="get"> 
URL:<input type="text" name="url" size="100px" placeholder="URL"/> 
<select name="url"> 
    <option value="<?php filter_var($_GET['url'],FILTER_VALIDATE_URL); ?>">testdomain1.de</option> 
    <option value="test2">testdomain2</option> 
    <option value="test3">testdomain</option> 
</select> 
<input type="submit" value="Send"/> 
</form> 

它的工作原理,但鏈接的格式不正確:

我想這一點:

http://127.0.0.1/title/index.php?url=http://www.tech.de/news/google-will-kein-eigenes-auto-mehr-bauen-10092492.html 

,但我得到這個

http://127.0.0.1/title/index.php?url=http%3A%2F%2F127.0.0.1%2Ftitle%2Findex.php%3Furl%3Dhttp%3A%2F%2Fwww.tech.de%2Fnews%2Fgoogle-will-kein-eigenes-auto-mehr-bauen-10092492.html&url=%3Cbr+%2F%3E%0D%0A%3Cb%3ENotice%3C%2Fb%3E%3A++Use+of+undefined+constant+url+-+assumed+%27url%27+in+%3Cb%3EC%3A%5Cxampp%5Chtdocs%5Ctitle%5Cindex.php%3C%2Fb%3E+on+line+%3Cb%3E22%3C%2Fb%3E%3Cbr+%2F%3E%0D%0A 

你能幫助我嗎?

確定我讀的意見,並改變這一點:

<?php filter_var($_GET['url'],FILTER_VALIDATE_URL); ?> 

,但它並沒有工作,也沒有辦法粘貼純文本的網址是什麼?

+0

您正在轉義URL上的特殊字符,請查看http://php.net/manual/en/filter.filters.validate.php以更好地清除URLs –

+0

'htmlspecialchars'轉義html字符,所以您可以這個結果。 – Aleksandar

+0

@Aleksandar他是如何獲得連接值,這是他當前頁面的url和結果。 – ASK

回答

0

有一種方法可以將純文本添加到網址中,但它不安全,因爲您不能使用消毒,如filter_varhtmlspecialchars

此外,$_GET['url']沒有設置之前提交表單,所以首先發送將導致錯誤。

這裏的選項是包含javascript來設置action的形式在keyup然後,當你按下提交時,你將被重定向到這個URL。如果這不是你想要的,請告訴我們你的腳本需要做什麼才能得到正確的答案。

+0

好吧謝謝! – chim