台灣最大程式設計社群網站
線上人數
783
 
會員總數:245151
討論主題:189055
歡迎您免費加入會員
討論區列表 >> PHP >> 請問下面語法哪裡錯了
[]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
請問下面語法哪裡錯了
價值 : 0 QP  點閱數:1084 回應數:11

樓主

緊急求救
門外漢
0 0
0 0
發送站內信

text1的內容為字串 請問下面語法哪裡錯了
我都找不到資料

$sql="select * from tea where tea_name=' $HTTP_POST_VARS[text1]; '";

本篇文章發表於2002-12-05 12:12
別忘捐VP感謝幫助你的人 新手會員瞧一瞧
1樓
回應

kiwi
檢舉此回應
如果Database 是用MySql,字串要用LIKE
tea_name like ' $HTTP_POST_VARS[text1]
本篇文章回覆於2002-12-05 13:26
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
回應

z~~~~~
檢舉此回應
您說都找不到資料是指?

試試
$sql="select * from tea where tea_name = '$HTTP_POST_VARS[text1]'";
您多了個";"在sql裡了.

不過我是建議把$HTTP...的這個環境變數先指定成另一個變數應該會比較好,感覺上會不會比較清晰一點??
如果register_global有開就直接寫成$text1,就更方便了
本篇文章回覆於2002-12-05 13:39
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
3樓
作者回應

緊急求救
檢舉此回應
不行ㄟ
$sql="select * from tea where tea_name like '$HTTP_POST_VARS[text1]; '";

不過 好奇怪說
應該不是這樣才對
我所指的字串是  該資料欄位格式varvhar  不好意思 可能表達不好
本篇文章回覆於2002-12-05 13:40
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
4樓
作者回應

緊急求救
檢舉此回應
register_global  打開會不會有安全上問題說....

因為好早就想打開了 ...只是怕會出問題
本篇文章回覆於2002-12-05 13:42
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
5樓
回應

小白
捐贈 VP 給 Marcus 檢舉此回應
register_global開了即是開了全局變數漏洞出來
因為在PHP查詢所有變數皆是直接輸入要查詢的東西
即上述的 $HTTP_POST_VARS[text1] 可寫成 $text1
但只要駭客在網址上加上參數,如
http://127.0.0.1/default.php3?text1=1&hack=I'm%20hacking%20you
這樣,你要的text1查詢到,而hack變數也被創建了。
駭客們若知道你的SQL是$sql,
只要在網址後加上SQL語法,豈不是把全部東西都刪了嗎!
http://127.0.0.1/default.php3?sql=delete+*+from+tea

因此強烈建議關掉register_global。
本篇文章回覆於2002-12-05 13:50
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
6樓
作者回應

緊急求救
檢舉此回應
明白了  謝謝小白
本篇文章回覆於2002-12-05 14:05
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
7樓
回應

z~~~~~
檢舉此回應
$sql="select * from tea where tea_name like '$HTTP_POST_VARS[text1]; '";

請把 [text1]; <-這個分號刪掉.
這個分號是在mysql裡才用的.若是用在php網頁時,就不加了.

register_global是應該關掉...只是練習時比較懶... :p
本篇文章回覆於2002-12-05 14:10
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
8樓
作者回應

緊急求救
檢舉此回應
感謝感謝...
再請教一個問題..

如果 要分程兩個table 一個是教師 另一個是學生...如下
tea                     stud
----------------------------------
tea_no                stud_no
tea_id                 stud_id
tea_pwd              stud_pwd

我要做一個帳號密碼驗證的程式
sql 要如何寫

或者 我必須成
tea                     stud
----------------------------------
user_no                user_no
user_id                 user_id
user_pwd              user_pwd

這樣較好勒..
本篇文章回覆於2002-12-05 14:46
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
9樓
回應

z~~~~~
檢舉此回應
呃...以您自己喜歡的方式
不過,能區分出來是比較好,因為方便管理及辨識囉!
當彼此又有關聯性或需要用到group by的語法時....
誰是誰的學生啦...
欄位設的清楚也是很重要的!
本篇文章回覆於2002-12-05 16:48
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
10樓
作者回應

緊急求救
檢舉此回應
謝謝你們 
不過 我是想透過 網頁表單輸入帳號密碼
網頁的使用者有 老師與學生
因為建在不同的table
所以當我在判斷 帳好密碼時
sql 語法  該如何下呢.
本篇文章回覆於2002-12-05 18:11
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
11樓
回應

june3838
檢舉此回應
個人建議不用把學生跟老師的table分開,而是做成一個,然後再加一個欄位判斷是否為學生or老師即可
本篇文章回覆於2002-12-05 18:58
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   
1

回覆
如要回應,請先登入.