ตรวจสอบ user ซ้ำ jquery ajax check username exists ตรวจได้แต่ก็สมัครได้ทำไงดีครับ

เริ่มโดย vanavat, 04 พฤศจิกายน 2012, 15:15:57

หัวข้อก่อนหน้า - หัวข้อถัดไป

0 สมาชิก และ 1 ผู้มาเยือน กำลังดูหัวข้อนี้

vanavat

<?
session_start();
include'config.inc.php';
include'function.php';
?>
<?php
include "config.inc.php";

$query "select * from tb_seo WHERE id=1";
$result mysql_query($query);
$dbarr mysql_fetch_array($result) ;

?>

<?php
//กำหนดชื่อ host/username/password/databasename ก่อน
mysql_connect('localhost','vanavat1_na','159357') or die(mysql_error());
mysql_select_db('vanavat1_na') or die(mysql_error());
//ajax process
if (isset($_GET['userExists'])){
$user mysql_real_escape_string($_POST['user']);
$r mysql_query("SELECT 1 FROM member WHERE user='$user'");
echo mysql_num_rows($r)?'yes':'no';
exit(0);
}

?>

<!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>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title><?php echo "$dbarr[t_tt]"?></title>
<META content="<?php echo "$dbarr[t_de]"?>" name=description>
<META content="<?php echo "$dbarr[t_ke]"?>" name=Keywords>
<link rel="stylesheet" type="text/css" href="css.css" />
<script type="text/javascript" src="http://code.jquery.com/jquery-latest.js"></script>
<script type="text/javascript">
//<![CDATA[
$(function(){

  $('#username-input').keyup(function(e){
var user = $.trim($(this).val());
if (user.length > 0){
$.ajax({
url: '?userExists',
type: 'POST',
dataType: 'html',
data: $(this).serialize(),
success: function(data){
if (data.indexOf('yes') != -1){
                                            $('#user-status').html('ไม่สามารถใช้ชื่อนี้ได้');
} else {
                                            $('#user-status').html('สามารถใช้ชื่อนี้ได้');
}
}
});
}
e.preventDefault();
});

});
//]]>
</script>
<script language="javascript">
function IsNumeric(sText,obj)
{
var ValidChars = "0123456789.";
   var IsNumber=true;
   var Char;
   for (i = 0; i < sText.length && IsNumber == true; i  )
      {
      Char = sText.charAt(i);
      if (ValidChars.indexOf(Char) == -1)
         {
         IsNumber = false;
         }
      }
    if(IsNumber==false){
alert("Only numberic value");
obj.value=sText.substr(0,sText.length-1);
}
   }
</script>
<script language="javaScript">
function Checkemails(str){
      var Email=/^([a-zA-Z0-9] )@([a-zA-Z0-9] ).([a-zA-Z0-9]{2,5})$/
     if(!document.getElementById(str).value.match(emails)){
           alert('รูปแบบ Email ไม่ถูกต้อง');
           document.getElementById(str).focus();
           return false;
     }
}
</script>
<script type="text/javascript">
function autoTab(obj){
/* กำหนดรูปแบบข้อความโดยให้ _ แทนค่าอะไรก็ได้ แล้วตามด้วยเครื่องหมาย
หรือสัญลักษณ์ที่ใช้แบ่ง เช่นกำหนดเป็น  รูปแบบเลขที่บัตรประชาชน
4-2215-54125-6-12 ก็สามารถกำหนดเป็น  _-____-_____-_-__
รูปแบบเบอร์โทรศัพท์ 08-4521-6521 กำหนดเป็น __-____-____
หรือกำหนดเวลาเช่น 12:45:30 กำหนดเป็น __:__:__
ตัวอย่างข้างล่างเป็นการกำหนดรูปแบบเลขบัตรประชาชน
*/
var pattern=new String("___-____-___"); // กำหนดรูปแบบในนี้
var pattern_ex=new String("-"); // กำหนดสัญลักษณ์หรือเครื่องหมายที่ใช้แบ่งในนี้
var returnText=new String("");
var obj_l=obj.value.length;
var obj_l2=obj_l-1;
for(i=0;i<pattern.length;i  ){
if(obj_l2==i && pattern.charAt(i 1)==pattern_ex){
returnText =obj.value pattern_ex;
obj.value=returnText;
}
}
if(obj_l>=pattern.length){
obj.value=obj.value.substr(0,pattern.length);
}
}
</script>

<script language="javascript">
function fncSubmit()
{
if(document.register.user.value == "")
{
alert('กรุณากรอก Username (ชื่อสำหรับการเข้าสู่ระบบสมาชิก)');
document.register.user.focus();
return false;

if(document.register.pwd.value == "")
{
alert('กรุณากรอก Password (รหัสผ่านสำหรับเข้าสู่ระบบสมาชิก)');
document.register.pwd.focus();       
return false;

if(document.register.name.value == "")
{
alert('กรุณากรอก ชื่อ-นามสกุลด้วยค่ะ');
document.register.name.focus();       
return false;

if(document.register.emails.value == "")
{
alert('กรุณากรอก Email ที่สามารถติดต่อได้ด้วยค่ะ');
document.register.emails.focus();       
return false;

if(document.register.mobile.value == "")
{
alert('กรุณากรอก เบอร์โทรติดต่อ กรณีไม่มีให้ใส่ -');
document.register.mobile.focus();       
return false;

if(document.register.address.value == "")
{
alert('กรุณากรอก ที่อยู่ด้วยค่ะ');
document.register.address.focus();       
return false;

document.register.submit();
}
</script>

<style type="text/css" media="screen">
body {font-family: Helvetica, Arial, sans-serif; color:#333;}
.Circular {
font-weight: normal;
font-style: normal;
line-height:normal;
font-family: 'CircularRegular', sans-serif;
}
body,td,th {
font-size: 12px;
}
.style1 {color: #FF0000}
.style2 {
font-size: 18px;
font-weight: bold;
color: #B31115;
}
</style>

<style type="text/css">
<!--
.style3 {font-size: 36px}
-->
</style>
</head>

<body>
<table width="90%" border="0" align="center" cellpadding="0" cellspacing="0" class="body">
  <tr>
    <td><table width="100%" border="0" align="center" cellpadding="0" cellspacing="0">
      <tr>
        <td width="760" valign="top"><div align="center"><? include'header.php';?></div></td>
        </tr>
    </table><table width="100%" border="0" cellspacing="0" cellpadding="0">
  <tr>
    <td><? include'topmenu.php';?></td>
  </tr>
</table>
     
<table width="100%" border="0" cellpadding="0" cellspacing="0">
  <tr>
    <td width="70%"><form name="register" action="signup2.php" method="post" onSubmit="JavaScript:return fncSubmit();">
        <table width="700" border="0" cellpadding="5" cellspacing="5" bordercolor="#CCCCCC" class="adminbox">
  <tr>
    <td>&nbsp;</td>
    <td><strong>ข้อมูลสำหรับเข้าสู่ระบบของเว็บไซค์</strong></td>
  </tr>
  <tr>
 
    <td width="16%" valign="top"><div align="right">Username :</div></td>
    <td width="84%"><form id="regis" action="?post" method="post">
<input type="text" id="username-input" name="user" value="" />
                <span id="user-status"></span><span style="color:#000;"><span style="font-size: 14px; "><font face="tahoma, geneva, sans-serif"></font></span></span></h1>
      </td>
  </tr>
  <tr>
    <td valign="top"><div align="right">Password :</div></td>
    <td><input name="pwd" type="password" class="fromregister" value="" size="30" /><span style="color:#000;"><span style="font-size: 14px; "><font face="tahoma, geneva, sans-serif">(รหัสผ่านของคุณ)</font></span></span></h1>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td><span style="color: #ff0000;"><strong>ข้อมูลส่วนบุคคล ( ต้องกรอกให้ครบ และ ต้องเป็นข้อมูลจริงเท่านั้น )</span></strong></td>
  </tr>
  <tr>
    <td valign="top"><div align="right">ชื่อ - นามสกุล :</div></td>
    <td><input name="name"  type="text" size="40" maxlength="255" class="fromregister"><span style="color:#000;"><span style="font-size: 14px; "><font face="tahoma, geneva, sans-serif">(กรุณากรอกเป็นภาษาไทยเท่านั้น)</font></span></span></h1>


  </tr>
  <tr>
    <td valign="top"><div align="right">email :</div></td>
<td><input name="emails" onchange="Checkemail('emails');" type="text" size="40" maxlength="255" class="fromregister"><span style="color:#000;"><span style="font-size: 14px; "><font face="tahoma, geneva, sans-serif">(ห้ามปล่อยว่าง)</font></span></span></h1>
      </td>
  </tr>
  <tr>
    <td valign="top"><div align="right">เบอร์โทร :</div></td>
    <td><input name="mobile" onkeyup="autoTab(this)" type="text"onKeyUp="IsNumeric(this.value,this)" size="40" maxlength="255" class="fromregister"><span style="color:#000;"><span style="font-size: 14px; "><font face="tahoma, geneva, sans-serif">(ห้ามปล่อยว่าง)</font></span></span></h1>
           <tr>
    <td valign="top"><div align="right">ที่อยู่ :</div></td>
    <td><textarea name="address" cols="100" rows="10" class="fromregister2"></textarea><p>
&nbsp;</p><span style="color:#f00;"><span style="font-size: 14px; "><font face="tahoma, geneva, sans-serif">ที่อยู่ที่ต้องการรับสินค้า</font></span></span></p>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td><input type="image" name="Submit" value="สมัครสมาชิก" src="images/register.png"></form></td>
</tr>
</table>

                         

</form>  </td>
    <td width="30%"><img src="images/imgregister.png" width="300" height="500" /></td>
  </tr>
</table>




มันสามารถตรวจสอบได้แล้วว่าซ้ำหรือไม่ แต่มันก็ยังกดผ่านไปได้อยู่ดี ตอนนี้คิดว่าถ้าทำเป็นปุ่ม แล้ว "hidden"  พอได้มั้ยครับแบบว่าถ้าชื่อไม่ซ้ำปุ่มจะกดได้ ถ้าทำได้ต้องทำแบบไหนครับแนะนำทีครับ

[direct=http://www.sesonshopping.com]รองเท้าผ้าใบผู้หญิง [/direct][direct=http://www.9manup.com]เสื้อแฟชั่นผู้ชาย[/direct][direct=http://www.sesonshopping.com]รองเท้าเกาหลี[/direct][direct=http://www.sesonshopping.com]รองเท้าผ้าใบผู้หญิง[/direct]

goldxp

หน้า signup2.php

ก่อน insert ให้มีการตรวจสอบคล้ายๆ กันครับ

$user = mysql_real_escape_string($_POST['user']);
$r = mysql_query("SELECT 1 FROM member WHERE user='$user'");
if (mysql_num_rows($r)){     
      die('The username is already used.');
}
mysql_query('insert into ...');
[direct=http://web-programming-bookmark.blogspot.com/p/blog-page.html]รับแก้ไขเว็บ[/direct]

Jellopy


success: function(data){
if (data.indexOf('yes') != -1){
                                            $('#user-status').html('ไม่สามารถใช้ชื่อนี้ได้');
                                            $(input[type=submit]).attr('disabled','disabled')
} else {
                                            $('#user-status').html('สามารถใช้ชื่อนี้ได้');
                                            $(input[type=submit]).removeAttr('disabled')
}
}

:wanwan004:

ball6847

ต้องตรวจสอบก่อน insert เท่านั้นครับ ถึงจะเป็นวิธีที่ถูกต้อง
การป้องกันแค่ในฝั่ง client มันกันได้แค่ผู้ใช้งานทั่วไปเท่านั้นคับ
We use Ubuntu.

[direct=http://ng-seo.sourcelab.xyz/]AngularJS SEO Experimental[/direct]

vanavat

อ้างถึงจาก: goldxp ใน 04 พฤศจิกายน 2012, 16:20:13
หน้า signup2.php

ก่อน insert ให้มีการตรวจสอบคล้ายๆ กันครับ

$user = mysql_real_escape_string($_POST['user']);
$r = mysql_query("SELECT 1 FROM member WHERE user='$user'");
if (mysql_num_rows($r)){     
      die('The username is already used.');
}
mysql_query('insert into ...');

ขอบคุณมากครับได้แล้วตามนี้เลยครับ
[direct=http://www.sesonshopping.com]รองเท้าผ้าใบผู้หญิง [/direct][direct=http://www.9manup.com]เสื้อแฟชั่นผู้ชาย[/direct][direct=http://www.sesonshopping.com]รองเท้าเกาหลี[/direct][direct=http://www.sesonshopping.com]รองเท้าผ้าใบผู้หญิง[/direct]