2012-12-27 152 views
1

你好我面對我的PHP的查詢問題,的JavaScript在PHP MySQL查詢

每當我使用的查詢類似下面寫的作品,但並找到BD

$txtx = "nope"; 
$query = "SELECT * FROM `users` WHERE `uname`='Shabi RoxX' AND `pass`='$txtx'"; 

一行當我使用寫「不」像這樣

$txtx = "<script>document.write(String.fromCharCode(110,111,112,101));</script>"; 
$query = "SELECT * FROM `users` WHERE `uname`='Shabi RoxX' AND `pass`='$txtx'"; 

此查詢找到0行,但是這兩個打印/呼應相同的字符串?怎麼了?

+0

據我所知,你不能直接傳遞一個javascript值,即使你傳遞一個字符串。 js代碼將在客戶端處理,而不是在服務器端處理。 – luchosrock

回答

1

你不能寫這樣的 -

JavaScript是東西,將在客戶端執行(瀏覽器)和PHP是一個服務器端腳本語言。而你正試圖在PHP中執行JS ......你不能!

$txtx = "<script>document.write(String.fromCharCode(110,111,112,101));</script>"; 
+0

如果我在字符串中使用十六進制代碼?它也將只爲客戶端執行? –

+0

@ShabiRoxX關鍵在於js代碼將在瀏覽器中執行,並且php代碼將在服務器端之前處理 - 整個頁面到達瀏覽器,那麼如何在服務器處理後獲得一個值它?對於這個解決方案,你應該嘗試ajax/jquery的方式。 – luchosrock

+0

好的謝謝你的回答。這個字符串呢? $ query =「SELECT * FROM'users' WHERE'uname' ='Shabi RoxX'AND'pass' ='n o p e'」; –

1

什麼是你想在這裏完成?你想解決什麼更大的問題?

它現在看起來的樣子,你想檢查一個Javascript中已知的密碼(在客戶端=瀏覽器上),使用PHP(在服務器上)。

雖然您可以使用PHP(在服務器上)編寫將在客戶端上執行的Javascript,但您無法以其他方式執行此操作。要從客戶端調用服務器端代碼,必須通過提交頁面或(最好)通過使用Javascript進行AJAX調用來發出POST或GET請求。

0

改用php的CHR函數。

$txtx = chr(110).chr(111).chr(112).chr(101); 
$query = "SELECT * FROM `users` WHERE `uname`='Shabi RoxX' AND `pass`='$txtx'"; 

我希望這會有所幫助。 謝謝