因為全棋同學的系統需求,雖然會員機制並不難,他一定也很快就學會了,而我還是寫此教學來引導他,幫助他系統擴展的更快,相信他的系統在未來也一定會很有用的! 而這個教學主要是說明session應用在會員機制上,而教學的程式碼還是有些地方有沒有考慮的很周詳,安全上還是會有瑕疵,希望大家見諒。
(1) 首頁 - 登入頁面 (index.php)
<!-- 設定網頁編碼為UTF-8 -->
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<form name="form" method="post" action="connect.php">
帳號:<input type="text" name="id" /> <br>
密碼:<input type="password" name="pw" /> <br>
<input type="submit" name="button" value="登入" />
<a href="register.php">申請帳號</a>
</form>
(2) php連結MySQL資料庫語法(mysql_connect.inc.php)
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<?php
//資料庫設定
//資料庫位置
$db_server = "localhost";
//資料庫名稱
$db_name = "mydb";
//資料庫管理者帳號
$db_user = "root";
//資料庫管理者密碼
$db_passwd = "1234";
//對資料庫連線
if(!@mysql_connect($db_server, $db_user, $db_passwd))
die("無法對資料庫連線");
//資料庫連線採UTF8
mysql_query("SET NAMES utf8");
//選擇資料庫
if(!@mysql_select_db($db_name))
die("無法使用資料庫");
?>
(3) 會員ID、PW與MySQL資料庫作認證(connect.php)
<?php session_start(); ?>
<!--上方語法為啟用session,此語法要放在網頁最前方-->
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<?php
//連接資料庫
//只要此頁面上有用到連接MySQL就要include它
include("mysql_connect.inc.php");
$id = $_POST['id'];
$pw = $_POST['pw'];
//搜尋資料庫資料
$sql = "SELECT * FROM member_table where username = '$id'";
$result = mysql_query($sql);
$row = @mysql_fetch_row($result);
//判斷帳號與密碼是否為空白
//以及MySQL資料庫裡是否有這個會員
if($id != null && $pw != null && $row[1] == $id && $row[2] == $pw)
{
//將帳號寫入session,方便驗證使用者身份
$_SESSION['username'] = $id;
echo '登入成功!';
echo '<meta http-equiv=REFRESH CONTENT=1;url=member.php>';
}
else
{
echo '登入失敗!';
echo '<meta http-equiv=REFRESH CONTENT=1;url=index.php>';
}
?>
(4) 會員登入成功後 頁面 - 此頁面有「新增」、「修改」、「刪除」與「登出」的連結
並且會顯示出所有會員資料(member.php)
<?php session_start(); ?>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<?php
include("mysql_connect.inc.php");
echo '<a href="logout.php">登出</a> <br><br>';
//此判斷為判定觀看此頁有沒有權限
//說不定是路人或不相關的使用者
//因此要給予排除
if($_SESSION['username'] != null)
{
echo '<a href="register.php">新增</a> ';
echo '<a href="update.php">修改</a> ';
echo '<a href="delete.php">刪除</a> <br><br>';
//將資料庫裡的所有會員資料顯示在畫面上
$sql = "SELECT * FROM member_table";
$result = mysql_query($sql);
while($row = mysql_fetch_row($result))
{
echo "$row[0] - 名字(帳號):$row[1], " .
"電話:$row[3], 地址:$row[4], 備註:$row[5]<br>";
}
}
else
{
echo '您無權限觀看此頁面!';
echo '<meta http-equiv=REFRESH CONTENT=2;url=index.php>';
}
?>
(5) 登出 - 洗掉登入使用者之session(logout.php)
<?php session_start(); ?>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<?php
//將session清空
unset($_SESSION['username']);
echo '登出中......';
echo '<meta http-equiv=REFRESH CONTENT=1;url=index.php>';
?>
(6) 加入(註冊)會員 - 「填寫」會員資料 (register.php)
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<form name="form" method="post" action="register_finish.php">
帳號:<input type="text" name="id" /> <br>
密碼:<input type="password" name="pw" /> <br>
再一次輸入密碼:<input type="password" name="pw2" /> <br>
電話:<input type="text" name="telephone" /> <br>
地址:<input type="text" name="address" /> <br>
備註:<textarea name="other" cols="45" rows="5"></textarea> <br>
<input type="submit" name="button" value="確定" />
</form>
(7) 加入(註冊)會員 - 「新增」會員資料進MySQL資料庫 (register_finish.php)
<?php session_start(); ?>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<?php
include("mysql_connect.inc.php");
$id = $_POST['id'];
$pw = $_POST['pw'];
$pw2 = $_POST['pw2'];
$telephone = $_POST['telephone'];
$address = $_POST['address'];
$other = $_POST['other'];
//判斷帳號密碼是否為空值
//確認密碼輸入的正確性
if($id != null && $pw != null && $pw2 != null && $pw == $pw2)
{
//新增資料進資料庫語法
$sql = "insert into member_table (username, password, telephone, address, other) values ('$id', '$pw', '$telephone', '$address', '$other')";
if(mysql_query($sql))
{
echo '新增成功!';
echo '<meta http-equiv=REFRESH CONTENT=2;url=index.php>';
}
else
{
echo '新增失敗!';
echo '<meta http-equiv=REFRESH CONTENT=2;url=index.php>';
}
}
else
{
echo '您無權限觀看此頁面!';
echo '<meta http-equiv=REFRESH CONTENT=2;url=index.php>';
}
?>
(8) 修改會員資料 - 「填寫」要修改之會員資料(update.php)
<?php session_start(); ?>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<?php
include("mysql_connect.inc.php");
if($_SESSION['username'] != null)
{
//將$_SESSION['username']丟給$id
//這樣在下SQL語法時才可以給搜尋的值
$id = $_SESSION['username'];
//若以下$id直接用$_SESSION['username']將無法使用
$sql = "SELECT * FROM member_table where username='$id'";
$result = mysql_query($sql);
$row = mysql_fetch_row($result);
echo "<form name=\"form\" method=\"post\" action=\"update_finish.php\">";
echo "帳號:<input type=\"text\" name=\"id\" value=\"$row[1]\" />(此項目無法修改) <br>";
echo "密碼:<input type=\"password\" name=\"pw\" value=\"$row[2]\" /> <br>";
echo "再一次輸入密碼:<input type=\"password\" name=\"pw2\" value=\"$row[2]\" /> <br>";
echo "電話:<input type=\"text\" name=\"telephone\" value=\"$row[3]\" /> <br>";
echo "地址:<input type=\"text\" name=\"address\" value=\"$row[4]\" /> <br>";
echo "備註:<textarea name=\"other\" cols=\"45\" rows=\"5\">$row[5]</textarea> <br>";
echo "<input type=\"submit\" name=\"button\" value=\"確定\" />";
echo "</form>";
}
else
{
echo '您無權限觀看此頁面!';
echo '<meta http-equiv=REFRESH CONTENT=2;url=index.php>';
}
?>
(9) 修改會員資料 - 「更新」要修改之會員資料進MySQL資料庫(update_finish.php)
<?php session_start(); ?>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<?php
include("mysql_connect.inc.php");
$id = $_POST['id'];
$pw = $_POST['pw'];
$pw2 = $_POST['pw2'];
$telephone = $_POST['telephone'];
$address = $_POST['address'];
$other = $_POST['other'];
//紅色字體為判斷密碼是否填寫正確
if($_SESSION['username'] != null && $pw != null && $pw2 != null && $pw == $pw2)
{
$id = $_SESSION['username'];
//更新資料庫資料語法
$sql = "update member_table set password=$pw, telephone=$telephone, address=$address, other=$other where username='$id'";
if(mysql_query($sql))
{
echo '修改成功!';
echo '<meta http-equiv=REFRESH CONTENT=2;url=member.php>';
}
else
{
echo '修改失敗!';
echo '<meta http-equiv=REFRESH CONTENT=2;url=member.php>';
}
}
else
{
echo '您無權限觀看此頁面!';
echo '<meta http-equiv=REFRESH CONTENT=2;url=index.php>';
}
?>
(10) 刪除會員資料 - 「填寫」要刪除之會員帳號(delete.php)
<?php session_start(); ?>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<?php
if($_SESSION['username'] != null)
{
echo "<form name=\"form\" method=\"post\" action=\"delete_finish.php\">";
echo "要刪除的帳號:<input type=\"text\" name=\"id\" /> <br>";
echo "<input type=\"submit\" name=\"button\" value=\"刪除\" />";
echo "</form>";
}
else
{
echo '您無權限觀看此頁面!';
echo '<meta http-equiv=REFRESH CONTENT=2;url=index.php>';
}
?>
(11) 刪除會員資料 - 對MySQL資料庫進行「刪除」會員資料(delete_finish.php)
<?php session_start(); ?>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<?php
include("mysql_connect.inc.php");
$id = $_POST['id'];
if($_SESSION['username'] != null)
{
//刪除資料庫資料語法
$sql = "delete from member_table where username='$id'";
if(mysql_query($sql))
{
echo '刪除成功!';
echo '<meta http-equiv=REFRESH CONTENT=2;url=member.php>';
}
else
{
echo '刪除失敗!';
echo '<meta http-equiv=REFRESH CONTENT=2;url=member.php>';
}
}
else
{
echo '您無權限觀看此頁面!';
echo '<meta http-equiv=REFRESH CONTENT=2;url=index.php>';
}
?>
以上若有錯誤,也請各位告知或糾正,謝謝~~~!
本來程式碼要加上實際顯示出來的圖片作介紹的,但因為真的花太多時間了,只好作罷!!!

您寫的可以註冊帳號 輸入號密碼後 但卻不能登入耶.. 板主知道什麼原因嗎
您可以試著到資料庫裡看看帳號密碼是否一致,若還是不行,可能就要重新檢試程式碼了!! 我也有一次是登不進去,結果是帳密不一致。 謝謝您觀看這篇文章^^!!
謝謝版主分享
^^!!
很感謝這篇的說明~~~對我幫助很大 至於未啥不能登入 if($id != null && $pw != null && $row[1] == $id && $row[2] ==$pw 我把row[1]-->row[0] row[2]-->row[1] 就行了
謝謝您^^!! 可能是資料庫不同,所以用法也不同!! 我的row[0]為no、row[1]為username、row[2]為password. 所以才要用row[1]與row[2],但也謝謝您的告知^^!!
經過測試 登入以後沒問題 可能我編碼問題吧 登出前面會出現 ?的符號 update的部分沒辦法使用 改住址電話 甚至密碼 都出現更新失敗 還有 如果用任何的帳號 都有權限 刪除某帳號的資訊....(驗證的部分可能要追加) 不過很感謝熱心的大大提供 最後再提供一個 就是寫入資料庫的欄位 原本第一張圖片是顯示要建置name 不過 程式裡面對應的欄位應該是username才對~ (發現的一點 希望能夠幫助到)
這個小範例提供給各位,而權限的部份就要自行去修改成自己所要的了! 謝謝您^^!
沒啦 是我打錯了 圖沒錯 是username XD
呵呵^^!!
不好意思 請問帳號部份能使用中文嘛@@
這個我也沒有試過,您可能要自己試試看囉^^!!
不好意思 在undate的部份我怎麼試都無法成功 一直更新失敗 在這個部份能不能講解一下呢? 還有很感謝你提供的這個範例 對我的學習珍的很有幫助
可以說一下無法update成功有沒有什麼訊息,或是提供的一些資訊,好讓我可以幫您解決^^!
我的update.php可以成功的讀出資料庫的資料 但是當我修改完資料按下送出後 在update_finish.php的判斷下都顯示修改失敗 回資料庫檢查也發現資料沒有修改進去 我的update.php與update_finish.php都照著你的範例去打的 資料庫也跟範例設的一樣 感謝你的幫助
您可以檢視一下SQL語法有無錯誤,像是您database的Table名稱或是欄位有沒有和MySQL裡的相對應,因為您在下SQL語法入資料庫時出現沒有辦法更新^^!!
我已經再三檢查過了 可是還是一樣 甚至連整個程式碼都複製貼上還是沒辦法成功 是不是還有其他可能呢??
連資料庫的帳號密碼可以連接到資料庫嗎? 還是資料庫的欄位@@! 其實我也想不太到是什麼問題了 >"< 真是有點抱歉......
updata.php 的功能不能用... 網主修一修吧.... 我想不是我的問題.... 我試了很多次.... 網主你自己試一試updata.php 可不可以運作.....
有沒有可能資料庫裡有兩個同樣的username,因為我之前試是可以的 >"< 現在比較沒有時間去試了,所以......很抱歉! 還是可以提供一下您沒有辦法updata的情況...
我把 $id = $_POST['id']; $pw = $_POST['pw']; $pw2 = $_POST['pw2']; $telephone = $_POST['telephone']; $address = $_POST['address']; $other = $_POST['other'];這幾行刪掉 再把更新資料庫語法的password=$pw改成password='{$_POST['pw']}'(以此類推) 就可以用了 我也不知道為什麼
謝謝你!!! 沒有幫助到你,我感到非常的抱歉 >"<
第一個帳號創建之後可修改 刪除, 並沒有像樓上所說的更改語法, 因為理論上兩種都是一樣的, 但我出現的問題是僅能註冊一次帳號, 無論登入或登出都無法新增, 真摸不著頭緒= =..
@@!!
原來是NO欄位忘了換auto_increment 換了之後全部正常執行 程式無更動
呵呵,其實這個是寫來教我朋友的,這個範例還有很多bug,或是不符合邏輯的,所以有問題的話,也請各位見諒了^^"
可以登入!! 但是在登入前的登入訊息前面多出一行--不知道下面這行是什麼原因?? Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at C:\AppServ\www\LOG2.php:3) in C:\AppServ\www\LOG2.php on line 3
沒遇過>"< 我也不知道如何幫您解決,真是抱歉^^"
老是無法對資料庫連線 該怎麼解決
您的資料庫也是架在localhost嗎!? 或是您可以提供更多的資訊好讓我得知要如何解決^^! 謝謝~~!
不好意思~請問一下喔! 修改會員後我只想顯是那個會員的資料該怎麼做?
下個判斷式就ok囉^^!
最近正在研究會員系統的寫法~ 您分享的 流程 & 設計 很清楚~ 謝謝~ ================================ 另外"無法對資料庫連線" 那位~ 可能是 localhost 的密碼設不一樣喔~ 檢查一下 mysql_connect.inc.php 那個檔案 改成自己的密碼
^^!! 有幫助到您真的很高興,謝謝!! 就您說的沒有錯,mysql_connect.inc.php要改成自己的密碼!!
我剛剛看了一下更新那一頁 你的這一段>> //更新資料庫資料語法 $sql = "update member_table set password=$pw, telephone=$telephone, address=$address, other=$other where username='$id'"; 再更新 新變數 的時候 都沒有加單引號喔 ' $變數 ' $sql = "update member_table set password='$pw', telephone='$telephone', address='$address', other='$other' where username='$id'"; 所以才會出錯喔
謝謝您的糾正^^! 可能要等一些時候再把文章給改正,現在都比較沒有空閒的時間去改它!! 但真的很謝謝您!!!
東西寫的還不錯 我拷貝一下就能用了 但我要建議你~~~ 東西寫得太散了 只要幾支程式就可以.不然你以後維護會很累~~~ 登入/登出一隻 主功能選單一隻 查詢/刪除會員一支 修改/新增會員 一支 像連結資料/跟資料存取的弄成一隻 .最好是class 那麼你維護會很簡單的 基本上.你已經很棒了~~~ http://easysoft.twelife.com 速達軟件,免費會計,進銷存,POS,庫存系統軟體
謝謝您,這是一個很棒的建議^^!!
馬上就學 馬上可以用 非常謝謝
^^
無法便用,無法資料庫連線~~
看一下ip,帳密有沒有一樣!!
Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at register_finish.php:1) in register_finish.php on line 1 Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at register_finish.php:1) in register_finish.php on line 1 無法便用
我沒有遇到過這個問題!! 所以也不敢亂回答您! 還有,session_start()這個function要放在程式碼的最上方,要不然會出錯,不知道是不是這個問題,我也不清楚>"< Sorry,沒有幫助到您!
謝謝教學, 成功制做了SESSION 的LOGIN, 接下來很多東西都會順利制作了, 支教發更多教學
謝謝您^^!
你的是因為UTF8 的BOM, 說明: http://en.wikipedia.org/wiki/Byte_order_mark (英文) 解決方法: 不要用記事本去寫UTF8 PHP, 改用其它如DREAMWEAVER 或NOTEPAD++ 等等就可以 ^^
聽您這麼一說,我好像也曾經因為用不同的編輯器編完,就發生這種情形的,使用PSPad就不會了^^!! 真是感謝您的解決方法了^^
可以了 MYSQL導入碼是什麼?
不好意思,我也不知道什麼是MySQL導入碼......>"< 可以詳述嗎? 謝謝您~!
老手有機會修改一下這個學習資料吧 ! 其實這篇進步空間還非常很大, 只是本人不是老手, 期盼老手釋出您的優秀源碼供大家參考 ...
呵呵! 我也不是老手,希望有更棒更有效率的寫法^^!
感謝樓主喔, 我找了很久才找到這麼有用的會員系統, 另外如果是使用big5連線的話, 中文的帳號是可以註冊和登入的(已測試) 如果是增加其他資料(例: 電郵) 就先在MySQL增加資料表, 再到註冊、資料修改等加入剛剛增加的資料填寫位&其他數值就可以了
謝謝您的告知!! 感謝您~~^^!
改成 會比較好喔0.0 因為妳是用UTF-8編碼(上網找到的) 可是我現在不會出現 session_start(); 錯誤 但是就是登不進去呢 PHP設定問題嗎?
我的php沒有特別設定,我是使用Appserv的預設設定!! 抱歉,沒有幫您解決到問題>"<
`NO` 欄位要 AUTO_INCREMENT
謝謝您的告知!! 這樣才可以自動產生編號^^!
update_finish: $sql = "update member set password='$pw', telephone='$telephone', address='$address', other='$other' where username='$id'"; 將$pw,$telephone…這些加上單引號'' 就可以更新成功了
哇,我好像漏掉了這些單引號了,謝謝您的提醒~~! 感恩^^!
我希望樓主可以修改好才發帖,發現很多bug ,我還是用Dreamweaver 才好 此外,session_start()是php 的其元件,是要放在網頁的最上,請各位注意!
關於「session_start()」我在註解方面有提及! 這篇只是簡易的教學,讓入門的人可以了解如何去coding,但bug的確還很多,也謝謝您的建議!!
請問 該怎麼連MYSQL? 設定好欄位之後?
您指的連MySQL是用phpMyAdmin連,還是用php的語法連!? 若是php語法連的話,在第一至第三步驟上的程式碼就有連結到MySQL並抓取資料了~~^^!
*****
*****
*****
*****
*****
*****
*****
*****
感謝你的範例教學, 很實用
有幫助到您,我也很高興^^! 謝謝~~
你好 我想請教個問題 我想做一個登入的功能 我把上面的程式碼都放入以後測試登入結果出現 echo '登入失敗!' 我在想是不是資料庫沒弄好? 請教一下資料庫的檔案應該存在哪一個地方呢?
連結資料庫主要是以下這個檔案「mysql_connect.inc.php」!
哈囉 版主 可不可以留msn給我 有問題想請教..
就我的電子信箱,在右邊側欄可以看到^^!
為什麼 index.php那個 是亂碼 = = """ �b���G �K�X�G �ӽбb�� 像這個!!
您可能要看看是不是網頁的編碼問題!? 這樣我也很難說是哪裡錯了! 抱歉,沒辦法解決您的問題~
我沒辦法 登入, 我的 member.php 裡 $_SESSION['username'] 的值是空白 ==> if ($_SESSION['username'] != null) 請問我的問題出在哪裡 ?
嗯............不好意思,我看不太出來您寫的意思是什麼!? 有確定是空白的值嗎? 還資料庫沒有抓到資料!?!?
*****
*****
回40樓 可以參考24樓的解答 用記事本編輯的話把 UTF-8 改成 Big5 也行
謝謝您^^!
您好 我帳號申請可以順利申請 並且在登入時會順利出現登入成功 可是當我登入成功後進入'member.php' 卻一直無法順利擷取到username 也就是"if ($_SESSION['username'] != null)" 的結果一直為False 想請問這問題可能出現在哪
把$_SESSION['username']顯示出來看看是什麼東西,然後再找可能的問題吧^^!
我有嘗試用echo $_SESSION['username']; 不過沒有出現任何訊息 所以我才覺得是沒有抓擷取到資料
回版主: 我不知道做了什麼竟然可以順利登入了!! 真是讓我好不解... 不過我有一個小問題~~ 就是no設定成"auto_increment" 它NO是不是只會一直增加 不會去判斷NO是否有因為帳號被刪除而空出來的空缺 如果想要做此判斷 不知道要如何修改? 不知道我的問題是否描述的清楚?
先恭喜您可以登入了^^! 我也不知道原因...XD auto_increment不會自動判斷空出來的值,它只會累加,至於解決的方法......我也很想知道...XD 很不好意思,好像都沒辦法解決您的問題......>"< 抱歉
無法註冊會員, 已經確定數據庫已連接 請問是什麼問題呢?
webpage有出現什麼訊息嗎?
出現"新增失敗!"的訊息
您在新增資料的webpage顯示要寫入資料庫的資料看能不能顯示的出來,找出您的資料沒有錯,接著在找看看連MySQL的語言有沒有錯誤的試試!!
註冊會員資料填寫完怎麼傳回資料庫的user欄位裡面(變新增)
不太了解您的意思!?!?
就是田完註冊會員的資料後那些檔案要怎麼傳回資料庫裡面 資料庫裡原本有user資料表(有帳號.密碼...) 那是放會員的資料 將新註冊的會員資料傳回去資料庫的user資料表裡
文章教學在「(7) 加入(註冊)會員 - 「新增」會員資料進MySQL資料庫 (register_finish.php)」這裡就有新增進資料表了吧! 不知道有沒有回答到您要的資訊>"<
請問站長,我每次只要新註冊一個會員,在MySQL的database裏面就會出現兩筆新的資料,請問該怎麼解決?
您要去看您的程式碼是否新增了兩次,因為您這麼說,我也不知道要怎麼解決XD
以及在update_finish的php裏面 if(mysql_query($sql)) 這邊老是判斷不過,請問問題大概是出在什麼地方?
看sql語法有沒有錯誤!
有錯誤訊息 Notice: A session had already been started - ignoring session_start() in C:\Program Files\Apache Group\Apache2\htdocs\adam\register_finish.php on line 1 新增失敗!
您可能找一下session的問題,這樣我也沒辦法解決......XD 是第一行就error了嗎!? 看一下是否出在session_start().
你的更新會員資料存在bug,應該是說不夠人性化 修改會員資料時,若會員其他都修改,只有電話不修改,但會員還是需要再次的輸入電話 應該用幾個判斷來判斷會員是否有填值,若沒填值則就用原值才對
謝謝您的指導,這個功能漏掉了XD
不客氣,我也是參考你的在做自己需要的功能,你寫的很容易懂~~
謝謝您^^!
想問一下 要如何將 帳號存入 session值 傳到每一頁去 讓每一個頁面可以 去判斷此人是否已經登入 不用再次登入?
您說的這個方法以上的文章應該是都有的,您可能要再仔細看看!!
如果重複新增帳號會怎麼樣-_-
太久沒動了,我也不知道會怎麼樣! 可以自行判斷,再改寫吧~~!
寫的功能很完善… 感謝分享~~
謝謝您的支持^^!
版主請問一下這種寫法有辦法寫成pear的方式嗎?
XD 我也不知道耶......... 我懂的也不是很多,所以不好意思了>"<
為什麼是亂碼??
是編碼問題嗎!?
請問你會陽春的公告系統嗎?
沒寫過......XD
請問一下 我申請帳號密碼那邊 資料庫密碼的地方都是空白的 其他帳號電話那些都有 這是什麼問題?
會是變數沒有傳進去嗎? 這只是猜測啦XD
好像是耶 我不知道要怎麼解決....
您先用echo把這個變數給顯示出來,先不要寫入資料庫,看看顯示出來的value是什麼!? 若是空白的,再去看看程式碼裡面的步驟到底哪個部份出了問題^^!
請問要怎樣才能註冊中文帳號啊
XD 這個我也沒有研究耶...... 您可能要去找其他的資料了~
妳的資料可以連線到我的網址嘛?可不可以嗎?
我不太清楚您問我的意思是什麼!?
不好意思 想請問一下 我在本地主機測試可以註冊 註冊完也可以登入 可是我把它複製到我們學校的FTP空間以後 就沒辦法登入 註冊 一直顯示 Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at /data/y96/s9611310/www/register_finish.php:4) in /data/y96/s9611310/www/register_finish.php on line 4 Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /data/y96/s9611310/www/register_finish.php:4) in /data/y96/s9611310/www/register_finish.php on line 4 無法對資料庫連線 是不是哪邊程式碼要修改 確定帳號密碼都正確 我找不到問題出在哪ˊˋ
session_start() <-- 前面有其他東西嗎? 而且這個Warning怎麼出現了兩次! 以及您連的資料庫是哪裡的,有開放對外的ip連線嗎?
session_start() <-- 前面有其他東西嗎? 是指程式碼裡面嗎? 好像沒有耶@@" 就照著你的教學去操作 在本地測試成功登入 但到FTP就不行了 我連的資料庫是MyDB 我把原本電腦裡的PHP檔全部複製到FTP空間 是不是因為上傳到FTP所以哪邊要修改@@? 請問對外的IP連線要怎麼設定 剛開始接觸這個很多東西都還不太熟悉 不過你的教學簡單明瞭 謝謝你囉!!!對我這新手幫助很多^^
您的php複製到FTP上,但程式碼裡所連線到的資料庫要設定您MySQL所在的電腦位址! 通常MySQL預設只能給localhost,也就是自己電腦連自己。您的php在您的電腦可以登入,是因為您的Apache與MySQL架在同一台電腦。若Apache(Web server)與您的MySQL為不同電腦,那MySQL就要設定可以給這台Apache的電腦ip位址連,http://dreamtails.pixnet.net/blog/post/22185485 我這篇有寫如何允許其他的ip來連mysql,開啟dos,輸入mysql,接著在輸入您的管理者帳密,接著就下要開啟的ip指令!! 希望有幫助到您!
我輸入mysql後顯示 'mysql' 不是內部或外部命令、可執行的程式或批次檔。 怎麼會這樣0.0
要不然就要至您MySQL的bin目錄下去下這個指令,也就是下'mysql'前面再加上mysql的所在位置,如:'C:\\MySQL\bin\mysql'
Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at C:\wamp\www\login\connect.php:4) in C:\wamp\www\login\connect.php on line 4 Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at C:\wamp\www\login\connect.php:4) in C:\wamp\www\login\connect.php on line 4 登入成功! 後自動跳到這邊 Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at C:\wamp\www\login\member.php:4) in C:\wamp\www\login\member.php on line 4 Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at C:\wamp\www\login\member.php:4) in C:\wamp\www\login\member.php on line 4 登出 您無權限觀看此頁面! 請問這樣算成功了嗎
不算成功吧......XD
用會員登入出現 Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at C:\AppServ\www\login.php:10) in C:\AppServ\www\login.php on line 10 登入失敗 然後就自己跳到登入失敗連結的頁面
<?php session_start(); ?>前不可以有任何字元出現! 若是使用UTF-8的話,可以試試PSPad, UltraEdit, Notepad++......等軟體試試看<?php session_start(); ?>前面有沒有多餘的字元^^! 祝您成功~~!
一測試網頁的時候直接出現登入失敗 然後就跳到登入失敗連結ㄉ網頁ㄌ
您要不要用echo顯示您的session值是什麼,這樣可以幫助您debug......因為這樣我也搞不清楚要如何處理^^"
*****
*****
*****
*****
*****
*****
哈哈,書上的範例我弄好久弄不好, 您的網頁一試就成功了XDD 然後上面會出現 header already sent 的問題是因為 header 的重複送出, 如果網頁最開頭不是 PHP 的話必須要加個 否則一旦轉頁的時候就會有兩個 header,就會錯誤~ 當然直接第一行寫 session_start(); 也是 OK 的~
ob_start(); 我沒有使用過耶,謝謝您又讓大家了解了更多的東西^^
應該是 ob_start();
謝謝^^!
我也一直都登入失敗= = if($id != null && $pw != null && $row[1] == $id && $row[2] == $pw) 這段我看不懂>< 請問前面id是一開始的登入帳號方塊?pw是一開始的登入密碼方塊? 那後面的row[1]== $id . row[2]== $pw 這2個是什麼意思?? $result = mysql_query($sql); $row = @mysql_fetch_row($result); 這2行又是什麼意思?? 請解說一下~謝謝
用echo將$id, $pw, $row[2]就可以知道了! 2是指database裡的table欄位三(column 3) $result = mysql_query($sql); $row = @mysql_fetch_row($result); 這兩列是對database取值!
請問一下我剛剛用了您的php測試一下 發現你的修改會員資料這項功能,修改之後按確定會修改失敗,不會成功@@ 請問是您的php語法有錯嗎@@?此外還有NO(自動排號)也沒有效果@@應該不會是我的問題吧@@? 請幫解除疑惑一下~謝謝
XD 太久沒動了,我也忘了為什麼會這樣了,抱歉......
剛剛看到樓上大大回應說no的問題 在MySQL 的no欄位 附加那邊 加個 auto_increment 好像是這回事 可是當我附加之後按儲存會出現 錯誤 SQL 語法: ALTER TABLE `member_table` CHANGE `no` `no` INT( 6 ) NOT NULL AUTO_INCREMENT MySQL 傳回: #1075 - Incorrect table definition; there can be only one auto column and it must be defined as a key 請問有解決的辦法嗎??
您給no 一個初始值看是否可以!?
你是說資料庫no欄位附加旁邊的預設值嗎?? 我設過了還是錯誤耶>< 請問有解決辦法嗎@@?
找到方法了 原來要把no欄位設為主索引就可以使用了!!
恭喜你^^
這個好像會有重複登入的問題喔
*****
*****
請ㄋ幫助我 小弟期中考 要考 一個系統 跟這很類似 不過比這簡單很多 只需要 版面(帳號 密碼 登入 會員新增) 不必刪除 修改.... 程式只要 新增會員後 系統儲存 登入後 看到一張圖片 或文章 就好了 幫助我 謝謝^^
請問第3點中 $sql = "SELECT * FROM member_table where username = '$id'"; "SELECT * FROM member_table where username = '$id"這個要怎麼改才能有效 謝謝~
請問版主:我的問題根#47一樣 可以在解是明白一點嗎? 謝謝
感謝版主提供這些入門基本程式, 超好用, 功能小修改後, 測試都沒問題, 可以套用到我要的功能裡了... 真是謝啦!
很棒!! 你的東西 找了很多的php書 很多到session就不講了 不然就是交代得很模糊 看了你的文章 又更有概念跟印象 謝謝你囉
如果想讓不同帳號登入不同的頁面 應該要怎樣做?
請問我顯示登入成功以後 卻會馬上跳出 您無權限觀看此頁面! 怎麼會這樣呢
謝謝分享 很詳細
很棒的東西!!!!!! 成功登入, 但在 member page 例出了所有的 Member, 如何才可只例出當前用戶資料 ???
我猜很多人會登入失敗的原因出在這一行 $row[1] == $id && $row[2] == $pw 因為作者資料庫裡的username是第二個欄位所以用row[1] 如果你建資料庫第一個是username第二個是password那就要把程式碼改成 $row[0] == $id && $row[1] == $pw
謝謝您的分享^^
我個個唔可以登入呀,註冊左話:成功,登入就:失敗 - -"
推一個大讚 很多人不願分享程式碼,就一直用嘴吧操作php,對剛入門的新生真的還是不知如何下手,感謝分享.我覺的大陸對岸這方面很願意分享,我有問題google時有用的詳細的資訊很多是對岸提供的,,熱情分享程式碼,學習才會快也知道自己問題是卡在哪個部分,才可以做修正.謝謝版主
謝謝您^^
*****
*****
謝謝版主的分享~讓我輕鬆完成了會員註冊的功能 :)
專題需要做會員機制 因為板主熱心分享 我從晚上十點用到現在就架好一個站了
有幫助到您就好囉^^
新增失敗! 請問哪出問題了
是不是連線到MySQL那篇的語法出了什麼問題呢?
急問一下,是關於的登入的 我發現登入時如果帳號和密碼是用數字的話就可以登入,例如我用111作帳號,111作密碼就可以正常登入,但是若果用英文作帳號或密碼的話,例如以abc作帳號或密碼都不能正常登入,用英文和數字混合亦不能,不知哪出問題了,望有解答,謝謝
微求php程式設計師,從小案到大案都有,有興趣接案賺錢的人,請跟我聯絡吧!不止是賺錢,也是一種挑戰,也是邊做邊學,一邊賺錢,一邊創立自已的事業,細節詳談:mitnick2004@hotmail.com 阿宏
謝謝板大提供這麼強大的資源 但是我試了很久 不知道為什麼除了index.php和register.php之外 其他頁面都是一片白... ((可以和板大要msn或FB嗎?))
我想問你有沒有~~ PHP 上載圖 的教學 ?
你好 我是用MySQL Workbench做我的資料庫的,我想請問我的資料庫應該儲存在那種?因為我登入失敗,我又不知道錯左那裡喔
//新增資料進資料庫語法 $sql = "insert into member_table (username, password, email, telephone) values ('$id', '$pw', '$email', '$telephone')"; if(mysql_query($sql)) { echo '新增成功!'; echo ''; } else { echo '新增失敗!'; echo ''; } } else { echo '您無權限觀看此頁面!'; echo ''; } 為什麼會是新增失敗?
看的霧煞煞= =
會顯示登入失敗耶!!
請問為何我登入帳密後 顯示登入失敗 我資料庫也有建立 可是目前登入就顯示登入失敗 改怎解決 需要程式碼 給你看嗎 及SQL 碼 謝謝
我的問題跟樓上的一樣, 很想你可以解答 不過也謝謝你提供這個source