作者bingoton (忍不住一起唱 好聽~)
看板PHP
標題[請益] firefox vs IE 資料寫入資料庫問題
時間Wed Jun 11 15:59:17 2008
請問
為什麼我在IE填寫問卷可以將資料寫入資料庫,
但是在firefox卻無法寫入呢?
是否要有設定上的問題?
還是我本身程式碼要做修正呢?
謝謝!
sorry~
補上一些遇到的問題,
我測試結果,發現參數傳遞是ok的
另外也能夠從資料庫裡頭拿出資料顯示在網頁上,
所以就是寫入資料庫的地方有問題,
以下是我的程式碼片段:
echo $_SESSION['bbb'];//測式結果確實為 0
if($_SESSION['bbb']==0) // 自己加的判斷式
{
if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "fill_form"))
{
$bbb=1;
echo $bbb; //這裡就echo 不出來
$insertSQL = sprintf("INSERT INTO questionnaire (mt_id, name, email, Area, School_name, q03, q04, q04etc, q05, q06, q07_a, q07_b, q07_c, q07_d, q07_e, q08, q08etc, q09, q09yes, q10, q11, q12, q13a, q13b, q13c, q14_a, q14_b, q14_c, bbb) VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)",
GetSQLValueString($_SESSION['mt_id'], "text"),
GetSQLValueString($_POST['who_are_name'], "text"),
GetSQLValueString($_POST['who_are_email'], "text"),
GetSQLValueString($_POST['who_are_u3'], "text"),
GetSQLValueString($_POST['who_are_u34'], "text"),
GetSQLValueString($_POST['q03'], "int"),
GetSQLValueString($_POST['q04'], "int"),
GetSQLValueString($_POST['q04etc'], "text"),
GetSQLValueString($_POST['q05'], "text"),
GetSQLValueString($_POST['q06'], "int"),
GetSQLValueString($_POST['q07_a'], "int"),
GetSQLValueString($_POST['q07_b'], "text"),
GetSQLValueString($_POST['q07_c'], "text"),
GetSQLValueString($_POST['q07_d'], "int"),
GetSQLValueString($_POST['q07_e'], "int"),
GetSQLValueString($_POST['q08'], "int"),
GetSQLValueString($_POST['q08etc'], "text"),
GetSQLValueString($_POST['q09'], "int"),
GetSQLValueString($_POST['q09yes'], "text"),
GetSQLValueString($_POST['q10'], "int"),
GetSQLValueString($_POST['q11'], "int"),
GetSQLValueString($_POST['q12'], "int"),
GetSQLValueString($_POST['q13a'], "int"),
GetSQLValueString($_POST['q13b'], "int"),
GetSQLValueString($_POST['q13c'], "int"),
GetSQLValueString($_POST['q14_a'], "text"),
GetSQLValueString($_POST['q14_b'], "text"),
GetSQLValueString($_POST['q14_c'], "text"),
GetSQLValueString($bbb, "text"));
mysql_select_db($database_intel, $intel);
$Result1 = mysql_query($insertSQL, $intel) or die(mysql_error());
$insertGoTo = "test2.php";
if (isset($_SERVER['QUERY_STRING'])) {
$insertGoTo .= (strpos($insertGoTo, '?')) ? "&" : "?";
$insertGoTo .= $_SERVER['QUERY_STRING'];
}
header(sprintf("Location: %s", $insertGoTo));
}
}
最後的結果是沒有寫入資料庫
但若把判斷式拿掉
變成
if($_SESSION['bbb']==0) // 自己加的判斷式
{
$bbb=1;
echo $bbb;//這邊就echo 得出來
$insertSQL = sprintf("INSERT INTO questionnaire (mt_id, name, email, Area, School_name, q03, q04, q04etc, q05, q06, q07_a, q07_b, q07_c, q07_d, q07_e, q08, q08etc, q09, q09yes, q10, q11, q12, q13a, q13b, q13c, q14_a, q14_b, q14_c, bbb) VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)",
GetSQLValueString($_SESSION['mt_id'], "text"),
GetSQLValueString($_POST['who_are_name'], "text"),
GetSQLValueString($_POST['who_are_email'], "text"),
GetSQLValueString($_POST['who_are_u3'], "text"),
GetSQLValueString($_POST['who_are_u34'], "text"),
GetSQLValueString($_POST['q03'], "int"),
GetSQLValueString($_POST['q04'], "int"),
GetSQLValueString($_POST['q04etc'], "text"),
GetSQLValueString($_POST['q05'], "text"),
GetSQLValueString($_POST['q06'], "int"),
GetSQLValueString($_POST['q07_a'], "int"),
GetSQLValueString($_POST['q07_b'], "text"),
GetSQLValueString($_POST['q07_c'], "text"),
GetSQLValueString($_POST['q07_d'], "int"),
GetSQLValueString($_POST['q07_e'], "int"),
GetSQLValueString($_POST['q08'], "int"),
GetSQLValueString($_POST['q08etc'], "text"),
GetSQLValueString($_POST['q09'], "int"),
GetSQLValueString($_POST['q09yes'], "text"),
GetSQLValueString($_POST['q10'], "int"),
GetSQLValueString($_POST['q11'], "int"),
GetSQLValueString($_POST['q12'], "int"),
GetSQLValueString($_POST['q13a'], "int"),
GetSQLValueString($_POST['q13b'], "int"),
GetSQLValueString($_POST['q13c'], "int"),
GetSQLValueString($_POST['q14_a'], "text"),
GetSQLValueString($_POST['q14_b'], "text"),
GetSQLValueString($_POST['q14_c'], "text"),
GetSQLValueString($bbb, "text"));
mysql_select_db($database_intel, $intel);
$Result1 = mysql_query($insertSQL, $intel) or die(mysql_error());
$insertGoTo = "test2.php";
if (isset($_SERVER['QUERY_STRING'])) {
$insertGoTo .= (strpos($insertGoTo, '?')) ? "&" : "?";
$insertGoTo .= $_SERVER['QUERY_STRING'];
}
header(sprintf("Location: %s", $insertGoTo));
}
則有寫入動作,但值都為NULL
以上是我想請問,所遇到的問題,
謝謝!
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.122.193.222
→ kylekai:什麼都沒寫清楚, 是要其他人問神嗎?... 06/11 17:12
※ 編輯: bingoton 來自: 140.122.193.222 (06/11 17:33)
推 del680202:剛剛問媽祖 他給我笑龜 說你六根不清靜 所以上不去 06/11 17:34
※ 編輯: bingoton 來自: 140.122.193.222 (06/11 17:40)
→ del680202:或許 你在判斷式那邊就不過關了 你要不要先檢查你判斷式 06/11 17:41
→ del680202:$_POST["MM_insert"] 東西對不對 06/11 17:42
→ bingoton:嗯嗯 或許是這邊出了錯 好我試試看 謝謝:) 06/11 17:46
→ bingoton:還是不行...為什麼IE可以 firefox就不行呢 ~"~ 06/11 18:12
推 JoeHorn:瀏覽器的差異不會影響程式碼,有問題的是你的 javascript 06/11 19:04
推 Anching:$_POST["MM_insert"]真的是"fill_form", 06/11 19:04
→ Anching:不是"fill form"? 06/11 19:05
→ bingoton:但我把java的程式碼全部去掉 還是一樣問題 ~"~ 06/12 17:04