[請益] $_GET可接值更新 , $_POST可接值不能更新

看板PHP作者 (阿仲)時間13年前 (2012/09/24 11:40), 編輯推噓1(1012)
留言13則, 6人參與, 最新討論串1/1
如題 , 我稍微敘述我的情況 有兩個頁面 , 送值及傳值 test.php , tests.php (這裡都用php比較順) ///////////// 假設有個表單 , mio.php 內存連資料庫的語法 , test.php 內容如下 : ///////////////////////// <form> <form action='tests.php' method='POST'> <table border='1'> <input type='text' name='t1'/> <?php //假設輸入值為andy?> <input type='text' name='t2'/> <?php //假設輸入值為sandy?> <input type='submit' value='送出'/> </table> </form> </form> ///////////////////////// tests.php 內容如下 : ///////////////////////// <?php include 'mio.php';//引入連資料庫檔案?> <?php $t1 = $_POST["t1"]; //假設接收值為 andy $t2 = $_POST["t2"]; //假設接收值為 sandy $sql = "update `test` set `test1`='$t1' , `test2`='$t2' where `id`='2' "; mysql_query($sql); ?> ///////////////////////// 資料表名稱為 test , 欄位為 id , test1, test2 id test1 test2 1 tx1 tc1 2 tx2 tc2 3 tx3 tc3 4 tx4 tc4 5 tx5 tc5 ///////////////////////// 更新資料庫後 於 id = 2 這筆資料應該為 : ////////////////// id test1 test2 2 andy sandy ////////////////// *******問題******* 但是不知什原因 , 於sql 語法接值的 '$t1' 居然失效 , ''單引號用途取消掉 , 所以導致sql無法更新成功 . 已確定$_POST['']; 有接到值 , 並且echo 出 . 但是我將test.html method改成GET方式 , `test1`='$t1' 就成功更新 . 先前擔心因為是字串的問題所以改成 `test1`='".$t1."' , 不過情況還是一樣 , 在上星期二時 都還沒問題 , 我有嘗試將防毒停用 , 上星期五測試突然可以 , 但今天又失敗 , 導致整個系統的POST值都無法更新 , 不知道是否在更新防毒軟體時, 剛好將PHP 的POST UPDATE 功能關閉 , 導致 '' 無法啟用 , 因為假如一般無啟用的狀態 , 我使用 $sql = "update `test` set `test1`=$t1 , `test2`=$t2 where `id`='2'"; mysql_query($sql); 是可以成功更新 , 但萬一我的值不是"andy" , 而是 "andy," 就沒辦法 , sql 會識別成 update test set test1=andy, , test2 = sandy where id=2; 這樣有兩個逗號 , 會更新失敗 . ******************* 不知道是否為php.ini 設定被關閉的問題 ? 拜託了 !! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.135.7.28 ※ 編輯: sktdeity 來自: 220.135.7.28 (09/24 11:42)

09/24 11:49, , 1F
把mysql_error()印出來看看
09/24 11:49, 1F

09/24 11:58, , 2F
同樓上,順便把 sql dump 出來看看
09/24 11:58, 2F

09/24 12:45, , 3F
mysql_error() 沒出現錯誤 !!
09/24 12:45, 3F

09/24 17:07, , 4F
過濾的問題先不提,sql 的變數改 '{$t1}'
09/24 17:07, 4F

09/24 18:04, , 5F
測試$_POST 有接收到值 , 更新也有跑 , 但資料庫沒變動 !
09/24 18:04, 5F

09/24 18:50, , 6F
建議SQL用prepared statements,這可以減少很多問題
09/24 18:50, 6F


09/25 09:26, , 8F
經昨天測試結果 , IE 可以正常更新 , GOOGLE 卻不行 !!
09/25 09:26, 8F

09/25 10:41, , 9F
如果都是 server 端的程式,那就跟 browser 無關
09/25 10:41, 9F

09/25 10:42, , 10F
你把 html 的部分用 雙引號包吧 (雖然應該沒差..)
09/25 10:42, 10F

09/25 11:27, , 11F
chrome有些神秘的毛病 非常整人 別人卻都說沒問題 >(=)
09/25 11:27, 11F

09/25 14:46, , 12F
我是不知道動到什程式 , html用雙引號也是 , google先前
09/25 14:46, 12F

09/25 14:47, , 13F
還正常說 , 結果一不正常還找不出原因 =.=
09/25 14:47, 13F
文章代碼(AID): #1GNzOZ2C (PHP)
文章代碼(AID): #1GNzOZ2C (PHP)