ระบบ Login อยากสอบถามเกี่ยวกับระบบยืนยันการสมัครสมาชิกไปทางอีเมลล์ค่ะ
รบกวนช่วยหน่อยะนคะ
Date :
2011-05-10 06:57:13
By :
arnevcoze77
ไม่ใส่โค๊ดตัวอย่างมาให้ดูละครับ
Date :
2011-05-10 07:26:06
By :
lekphasert
อันนี้หน้าแบบฟอร์มค่ะ
Code (PHP)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>สมัครสมาชิก</title>
<meta http-equiv="Content-Type" content="text/html; charset=windows-874" /></head>
<body>
<h2 align="center">สมัครสมาชิก</h2>
<form method="post" action="confirm_register.php" >
<table align="center">
<tr><td>ชื่อ - นามสกุล</td><td><input type="text" name="name" /></td></tr>
<tr><td>อีเมล์</td><td><input type="text" name="email" /></td></tr>
<tr><td>ชื่อเข้าระบบ</td><td><input type="text" name="username" /></td></tr>
<tr><td>รหัสผ่าน</td><td><input type="password" name="password" /></td></tr>
<tr><td>ยืนยันรหัสผ่าน</td><td><input type="password" name="confirm_pass" /></td></tr>
<tr><td colspan="2" align="center"><input type="submit" value="สมัครสมาชิก" /> <input type="reset" value="ลบใหม่ทั้งหมด" /></td></tr>
</table>
</form>
<h4 align="center">* กรุณากรอกข้อมูลให้ครบ</h4>
</body>
</html>
อันนี้คือไฟล์เช็คการสมัครสมาชิกค่ะ
Code (PHP)
<?php
include("config.inc.php");//ดึงไฟล์ config ของค่าติดต่อฐานข้อมูลและฟังก์ชั่นมาใช้งานร่วมด้วย
if($name=="" || $email =="" ||$username=="" || $password =="" || $confirm_pass =="" ){//ตรวจสอบค่าที่รับมาจากฟอร์มว่าห้ามมีค่าว่างเปล่าส่งมา
echo "<table width=550 align=center>";
echo "<tr> <td align=center bgcolor=#EAECEA><br><b>กรุณากรอกข้อมูลให้ครบ</b><br>";
echo "<a href=javascript:history.back(); >กลับไปแก้ไข</a><br><br>";
echo "</td></tr>";
echo "</table>";
}else {//ตรวจว่าในระบบมี ชื่อผู้ใช้งานนี้อยู่ในระบบแล้วรึยัง
$SQL_check_user = "select username from $tbluser where username='$username'" ;
$result= mysql_query($SQL_check_user) ;
$numrow = mysql_num_rows($result) ;
if($numrow!=0) {
echo "<table width=550 align=center>";
echo "<tr> <td align=center bgcolor=#EAECEA><br>ชื่อผู้ใช้ <b><font color=red>$username</font> </b>นี้มีอยู่ในระบบแล้ว <br>";
echo "<a href=javascript:history.back(); >กลับไปแก้ไข</a>";
echo "</td></tr>";
echo "</table>";
exit() ;
}//ปิดการตรวจว่าในระบบมี ชื่อผู้ใช้งานนี้อยู่ในระบบแล้วรึยัง
else if (check_email($email)){//เช็ครูปแบบรูปของอีเมล์ โดยการนำฟังก์ชันก์เช็ครูปแบบอีเมล์ในไฟล์ config.inc.php มาใช้งาน
if($password<>$confirm_pass){//ตรวจสอบรหัสผ่านว่ากรอกยืนยันรหัสผ่านมาตรงกันหรือไม่
echo"<table width=550 align=center>";
echo "<tr> <td align=center bgcolor=#EAECEA><br><b>รหัสผ่านไม่ตรงกันแก้ไขใหม่ครับ</b><br>";
echo "<a href=javascript:history.back(); >กลับไปแก้ไข</a><br><br>";
echo "</td></tr>";
echo "</table>";
exit() ;
}//ปิดการตรวจสอบรหัสผ่านว่ากรอกยืนยันรหัสผ่านมาตรงกันหรือไม่
else {//เมื่อข้อมูลทั้งหมดถูกต้อง ทำการเพิ่มข้อมูลลงฐานข้อมูล
$date_register=date('l F d, Y');//วันเดือนปีที่สมัคร รูปแบบ Thursday April 07, 2005
$SQL_insert_member="insert into $tbluser (name, email, username, password, date, status) values ('$name', '$email', '$username', '$password', '$date_register', '0')";
mysql_db_query($db,$SQL_insert_member);
echo"<table width=550 align=center>";
echo"<tr> <td align=center bgcolor=#EAECEA><b>เพิ่มข้อมูลของคุณ <font color=red>$name</font> เรียบร้อยแล้วครับ</a></td></tr>";
echo"<tr> <td align=center><br>กรุณารอผู้ดูแลระบบ ตรวจสอบข้อมูลของคุณ <font color=red>$name</font><br>";
echo"หลังจากนั้นทางผู้ดูแลระบบได้<font color=red> Active </font>สถานะของคุณแล้ว จะดำเนินการ<br>";
echo"ติดต่อกลับทางอีเมล์ โดยให้คุณนำเอา้<font color=red> ชื่อเข้าระบบ และ รหัสผ่าน</font><br>";
echo"ที่คุณสมัครไว้ มาใช้เข้าระบบได้ทันที<br><br></td></tr>";
echo"<tr> <td align=center>";
echo "<font color=red><b>การส่งเมล์แจ้งเตือน Administrator</b></font><br>";
/////////////////////////////// ส่งเมล์แจ้งเตือน admin ผู้ดูแลระบบ /////////////////////////////////////////////////////////////////////
$html = "<html>";
$html .= "<head><title>สมาชิก</title></head>";
$html .= "<body>";
$html .= "<b>มีสมาชิกมาใหม่โปรดกรุณาตรวจข้อมูล</b><br>";
$html .= "ชื่อสมาชิก : $name<br>";
$html .= "ชื่อเข้าระบบ : $username<br>";
$html .= "รหัสผ่าน : $password<br>";
$html .= "อีเมล์ที่ใช้ในการสมัคร :$email<br>";
$html .= "วันที่สมัคร : $date_register<br>";
$html .= "สถานะ : รอตรวจสอบ<br>";
$html .= "</body>";
$html .= "</html>";
$boundary = uniqid("");
$header = "From: $email\n";
$header .= "Content-type: multipart/mixed; boundary=\"$boundary\"\n";
$body = "--$boundary\n";
$body .= "Content-type: text/html; charset=windows-874;\n";
$body .= "Content-disposition: inline;\n";
$body .= "Content-transfer-encoding: 8bit\n\n";
$body .= "$html\n"; //แทรกเนื้อหาแบบ HTML ไว้ตรงนี้
$body .= "--$boundary--\n";
if (mail($admin_mail, $subject_new_user, $body, $header)) {
//ส่งเมล์ได้
echo"ส่งอีเมล์แจ้งถึงผู้ดูแลระบบให้ตรวจสอบข้อมูลงของคุณ<font color=red> $name </font> เรียบร้อยแล้วครับ";
}
else {//ส่งเมล์ไม่ได้
echo "ส่งเมล์แจ้งข้อมูลถึงผู้ดูแลระบบไม่ได้";
}
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
echo"</td></tr>";
echo"<tr> <td align=center bgcolor=#EAECEA><a href=javascript:window.close();>ปิดหน้านี้</a></td></tr>";
echo"</table>";
mysql_close();//ปิดการเขื่อมต่อฐานข้อมูล
}//ปิดการเพิ่มข้อมูลลงฐานข้อมูล
}else{//รูปแบบอีเมล์ไม่ถูกต้อง
echo"<table width=550 align=center>";
echo"<tr> <td align=center bgcolor=#EAECEA><br><b>";
echo "รูปแบบ Email ที่คุณป้อนมารูปแบบ<font color=red><b>ไม่ถูกต้องครับ</b></font><br>";
echo "<a href=javascript:history.back(); >กลับไปแก้ไข</a>";
echo "<br><br></td></tr>";
echo"</table>";
exit() ;
}//ปิดการเช็ครูปแบบอีเมล์
}//จบ if
?>
อันนี้เป็นไฟล์ที่ให้ admin เปลี่ยนสถานะให้ active เองค่ะ กดเมื่อแอดมินกดยืนยันก้จะเปลี่ยนทันที แต่อยากเปลี่ยนให้ส่งเมลล์ไปให้คนที่สมัครสมาชิกกด พอกดแล้ว ก็จะเปลี่ยนสถานะอ่าค่ะ ต้องทำลิ้งค์ยังไง ให้ส่งไปที่เมลล์คนที่สมัครค่ะ
Date :
2011-05-10 08:05:59
By :
arnevcoze77
อันนี้เป็นไฟล์ที่ให้ admin เปลี่ยนสถานะให้ active เองค่ะ กดเมื่อแอดมินกดยืนยันก้จะเปลี่ยนทันที แต่อยากเปลี่ยนให้ส่งเมลล์ไปให้คนที่สมัครสมาชิกกด พอกดแล้ว ก็จะเปลี่ยนสถานะอ่าค่ะ ต้องทำลิ้งค์ยังไง ให้ส่งไปที่เมลล์คนที่สมัครค่ะ
Code (PHP)
<?php
ob_start(); //เปิดการใช้งาน output buffering
/* ส่วนนี้เป็นการป้องกันผู้ใช้เรียกไฟล์นี้โดยไม่ผ่านการล็อกอิน โดยถ้าผู้ใช้ยังไม่ได้ล็อกอิน
เราจะสั่ง redirect ไปยังไฟล์ index.php */
include ("../config.inc.php");
if (strcmp($admin_passwd, $adminarea) != 0) {
echo "<meta http-equiv=\"refresh\" content=\"0;URL=index.php\">";
}
?>
<html>
<head>
<title>ระบบจัดการสมาชิก</title><meta http-equiv="Content-Type" content="text/html; charset=windows-874"></head>
<body>
<br>
<table width="700" border="0" align="center" cellspacing="1">
<tr>
<td colspan="6"> <div align="center"><font color="#999999">| เพิ่มสมาชิก |
ส่งเมล์ถึงสมาชิก </font>| <a href="logout.php">ออกจากระบบ</a> | </div>
</td>
</tr>
</table>
<br>
<table width="700" border="0" align="center" cellspacing="1">
<tr>
<td width="58" bgcolor="#66CCFF"><div align="center"><strong>ลำดับ</strong></div></td>
<td width="218" bgcolor="#66CCFF"><div align="center"><strong>ชื่อสมาชิก</strong></div></td>
<td width="122" bgcolor="#66CCFF"><div align="center"><strong>ดูรายละเอียด</strong></div></td>
<td width="90" bgcolor="#66CCFF"><div align="center"><strong>แก้ไข</strong></div></td>
<td width="88" bgcolor="#66CCFF"><div align="center"><strong>ลบ</strong></div></td>
<td width="105" bgcolor="#66CCFF"><div align="center"><strong>สถานะ</strong></div></td>
</tr>
<?php
///////////// // คำสั่ง SQL ให้เลือกใช้งานตาราง ///////////////////////////////////////////////
$sql = "SELECT * FROM $tbluser";
if ( !$page )
$page = 1;
$prev_page = $page - 1;
$next_page = $page + 1;
$result = mysql_query( $sql );
$page_start = ( $per_page * $page) - $per_page;
$num_rows = mysql_num_rows( $result );
if ( $num_rows <= $per_page )
$num_pages = 1;
else if ( ( $num_rows % $per_page ) == 0 )
$num_pages = ( $num_rows / $per_page );
else
$num_pages = ( $num_rows / $per_page ) + 1;
$num_pages = ( int ) $num_pages;
if ( ( $page > $num_pages ) || ( $page < 0 ) )
print "จำนวน $page มากกว่า $num_pages";
/////////////// คำสั่ง SQL กำหนดลิมิต ให้แสดงผลต่อ 1 หน้า///////////////////////////////
$sql .= " LIMIT $page_start, $per_page";
$result = mysql_query( $sql );
//////////////////////// การ Update สถานะ ของ User และทำการส่งเมล์หา User คนนั้นๆ /////////////////
switch ($status){
case "Active";
$sql="Update $tbluser set status='0' WHERE id = '$id';";
mysql_db_query($db,$sql);
header("Location: $PHP_SELF");
$sql2 = "select*from $tbluser WHERE id = '$id';";
$result2 = mysql_query($sql2);
$to_member = mysql_result($result2,'','email');
$name = mysql_result($result2,'','name');
$message_inactive="สวัสดีครับคุณ $name \nสถานะของคุณตอนนี้คือ Inactive ไม่สามารถใช้งานระบบได้ชั่วคราว \nเนื่องจากมีสาเหตุบางประการ จึงทำให้คุณไม่สามารถเข้าไปใช้งานระบบตามปกติได้ \nกรุณาติดต่อกลับผู้ดูแลระบบโดยตรงได้ที่เว็บไซต์ $website ครับ \n\n\n จึงเรียนมาเพื่อทราบ\n $admin_sign_name \n $admin_mail";
mail($to_member,$subject_inactive_member,$message_inactive,"From: ". $admin_mail);
header("Location: $PHP_SELF");
break;
case "Inactive";
$sql="update $tbluser set status='1' WHERE id = '$id';";
mysql_db_query($db,$sql);
$sql2 = "select*from $tbluser WHERE id = '$id';";
$result2 = mysql_query($sql2);
$to_member = mysql_result($result2,'','email');
$name = mysql_result($result2,'','name');
$username = mysql_result($result2,'','username');
$password = mysql_result($result2,'','password');
$message_active="สวัสดีครับคุณ $name \nสถานะของคุณตอนนี้ได้ Active เรียบร้อยแล้ว \nคุณสามารถเข้าไปใช้งานระบบตามปกติ โดยที่รายละเอียดในการเข้าระบบของคุณคือ \nชื่อเข้าระบบ : $username \nรหัสผ่าน : $password \nได้ที่เว็บไซต์ $website ครับ \n\n\n ด้วยความนับถือ\n $admin_sign_name \n $admin_mail";
mail($to_member,$subject_active_member,$message_active,"From: ". $admin_mail);
header("Location: $PHP_SELF");
break;
}//จบ switch
///////////////////////////////////// จบการ Update สถานะ ของ User ////////////////////////////////////////////////////////////
////////////////////// นำข้อมูลออกมาแสดงผล ////////////////////////////////////////////////
while ( $rs = mysql_fetch_array( $result ) ) //นำค่าี่ที่ผ่านการคิวรี่จากตัวแปร $result มาทำการวนลูปเพื่อเอาค่าในแต่ละฟิลด์ออกมาโชว์แสดงผล
{
//ตรวจสอบถ้าค่าเท่ากับ 0 ก็กำหนดให้แสดงผลคำว่า Inactive หรือไม่ใช่ 0 ให้แสดงผลเท่ากับ Active
if($rs[status]==0){ $rs[status]="Inactive"; }else{ $rs[status]="Active"; }
echo"<tr>
<td align=center>$rs[id]</td>
<td>$rs[name]</td>
<td align=center>คลิ๊กดูรายละเอียด</td>
<td align=center>คลิ๊กแก้ไข</td>
<td align=center>คลิ๊กลบ</td>
<td align=center><a href=$PHP_SELF?id=$rs[id]&status=$rs[status]>$rs[status]</a></td>
</tr>";
}//จบ while
echo"</table>";
//////////////////////////////จบการนำข้อมูลออกมาแสดงผล /////////////////////////////////////////////////////
?>
<!- - แสดงผลจำนวนเรคคอร์ดของข้อมูล จำนวนหน้าและลิงค์หน้าต่อๆไป - - !>
<br><div align="center">รวมทั้งหมด <b><?php echo $num_rows; ?></b> เรคคอร์ด <b><?php echo $num_pages; ?></b> หน้า :
<?php
////////////////// สร้างปุ่มย้อนกลับ ///////////////////////////////
if ( $prev_page )
echo "<a href=\"$PHP_SELF?page=$prev_page\"><<กลับไป </a>";
////////////////// สร้างตัวเลขหน้า ////////////////////////////////
for ( $i=1; $i<=$num_pages; $i++ )
{
if ( $i != $page)
echo "[<a href=\"$PHP_SELF?page=$i\">$i</a>]";
else
echo " <b>$i</b> ";
}
/////////////////// สร้างปุ่มเดินหน้า /////////////////////////////////////
if ( $page != $num_pages )
echo "<a href=\"$PHP_SELF?page=$next_page\"> หน้าต่อไป >></a>";
////////////////// ปิดการเชื่อมต่อฐานข้อมูล ////////////////////////////
mysql_close();
?>
</div>
</body>
</html>
<?php ob_end_flush(); //ส่งข้อมูลที่อยู่ในบัฟเฟอร์ไปให้บราวเซอร์ ?>
Date :
2011-05-10 08:06:35
By :
arnevcoze77
ส่งอีเมล์
$strTo = $_POST["txtEmail"];
$strSubject = "Activate Member Account";
$strHeader = "Content-type: text/html; charset=windows-874\n"; // or UTF-8 //
$strHeader .= "From: [email protected] \nReply-To: [email protected] ";
$strMessage = "";
$strMessage .= "Welcome : ".$_POST["txtName"]."<br>";
$strMessage .= "=================================<br>";
$strMessage .= "Activate account click here.<br>";
$strMessage .= "https://www.thaicreate.com/activate.php?sid=".session_id()."&uid=".$Uid."<br>";
$strMessage .= "=================================<br>";
$strMessage .= "ThaiCreate.Com<br>";
$flgSend = mail($strTo,$strSubject,$strMessage,$strHeader);
การยืนยัน
$strSQL = "UPDATE member SET Active = 'Yes' WHERE SID = '".trim($_GET['sid'])."' AND UserID = '".trim($_GET['uid'])."' ";
$objQuery = mysql_query($strSQL);
Go to : PHP Member Register and Email Activation ยืนยันการสมัครสมาชิกทางอีเมล์
Date :
2011-05-25 14:44:33
By :
webmaster
Load balance : Server 05