[請益] 使用者的登入及註冊

看板PHP作者 (破曉)時間18年前 (2006/08/25 00:20), 編輯推噓4(402)
留言6則, 3人參與, 最新討論串1/2 (看更多)
下面是有關使用者帳號管理的問題 不管怎麼輸入 就是沒有資料寫到資料表裡面... 然後再判斷是否為新使用者也怪怪的... 拜託大家幫我看看吧 >< ------------------------------------------------------------------- db_func.php: <? function db_query($SQLStr) {return mysql_query($SQLStr);} function db_num_rows($res) {return mysql_num_rows($res);} function db_fetch_array($res) {return mysql_fetch_array($res);} function db_fetch_object($res) {return mysql_fetch_object($res);} function db_data_seek($res,$num){return mysql_data_seek($res,$num);} function db_insert_id($res) {return mysql_insert_id($res);} ?> db_.conn.php <? $DB_HOST ="localhost"; $DB_LOGIN ="toktok"; $DB_PASSWARD ="XXXXXX"; $DB_NAME ="flag"; $conn = mysql_connect($DB_HOST, $DB_LOGIN, $DB_PASSWARD); mysql_select_db($DB_NAME); ?> index.php: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "" rel="nofollow">http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=big5"> <title>首頁</title> </head> <body> <form name="form1" method="post" action="login_process.php"> <table width="349" cellspacing="1" cellpadding="0" bgcolor="#006699" align="center"> <tr bgcolor="8BC1CD"> <td colspan="2" align="center"> 請輸入您的E-MAIL 進入網路相簿管理介面 </td> </tr> <tr bgcolor="#FFFFFF"> <td colspan="2"></td> </tr> <tr bgcolor="#E3F0F4"> <td align="center" width="96" nowrap>E-MAIL位址:</td> <td align="left"> <input type="text" name="usermail" size="25" maxlength="50"> </td> </tr> <tr bgcolor="#FFFFFF"> <td align="center" width="96" nowrap>E-MAIL密碼:</td> <td align="left"> <input type="password" name="mailpass" size="25" maxlength="24"> </td> </tr> <tr bgcolor="#E3F0F4"> <td align="center" colspan="2" hetght="29"> <input type="submit" class="box01" value="確認登入"> <input type="reset" class="box01" value="重新輸入"> </td> </tr> <input type="hidden" name="b_id" value="<?=$b_id?>"> <tr bgcolor="#8BC1CD"> <td colspan="2">&nbsp;</td> </tr> </table> </form> login_process.php: <? session_start(); ?> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "" rel="nofollow">http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=big5"> <title>登入處理</title> </head> <body> <? include("db_conn.php"); include("db_func.php"); $SQLStr = "SELECT * FROM buyer WHERE b_mail = '$usermail'"; $res = db_query($SQLStr); if(db_num_rows($res)>0) //若使用者以登入 { $row = db_fetch_array($res); $b_id = $row['b_id']; if ($row['b_pass']== $mailpass) //若使用者密碼正確 { //將 b_id 註冊為session session_register("b_id"); //將使用者導引至管理介面 echo "<script>"; echo "alert(\"歡迎您再回來\");"; echo "location.href=\"photolist.php\";"; echo "</script>"; // END } else // 若使用者密碼錯誤 { // 將使用者導回登入介面 echo "<script>"; echo "alert(\"密碼錯誤\");"; echo "location.href=\"index.php\";"; echo "</script>"; // END } } else //若使用者尚未登入過 { //將該使用者 E-MAIL 及密碼寫入資料庫 $SQLStr = "INSERT INTO buyer (b_id, b_mail, b_pass, b_cool) VALUES('','$usermail', '$mailpass', '0')"; db_query($SQLStr); // END // 取出該使用者之編號 B_ID $SQLStr = "SELECT b_id FROM buyer WHERE b_mail = '$usermail'"; $res = db_query($SQLStr); $row = db_fetch_array($res); $b_id = $row[0]; // END session_register("b_id"); echo "<script>"; echo "alert(\"以將您資料收入資料庫\");"; echo "location.href=\"photolist.php\";"; echo "</script>"; } ?> </body> </html> -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.117.195.204

08/25 01:58, , 1F
說實話.完全不想看code. 請愛用 debug
08/25 01:58, 1F

08/25 02:00, , 2F
mysql_error(); print_r($_POST); echo $SQL; 自己找吧
08/25 02:00, 2F

08/25 13:05, , 3F
稍微看了一下,我想問題還是在 $_POST、$_SESSION 之類的吧
08/25 13:05, 3F

08/25 13:10, , 4F
說真的,PHP建議用 $_ 開頭的 super global 變數來取值
08/25 13:10, 4F

08/25 13:10, , 5F
已經很久了,為什麼還常常發現有人會遇到這樣的問題呢?
08/25 13:10, 5F

08/25 18:29, , 6F
嗯嗯~ 謝謝大家~~ 問題有解決了~~^^
08/25 18:29, 6F
文章代碼(AID): #14xT7hvs (PHP)
文章代碼(AID): #14xT7hvs (PHP)