|
|
|
คือผมทำระบบสมัครสมาชิกเข้าฐานข้อมูล....ได้แล้วแต่จะทำ Security Code |
|
|
|
|
|
|
|
คือผมทำระบบสมัคสมาชิกเข้าฐานข้อมูลได้แล้วแต่จะทำ Security Code เพิ่มคือให้กรอกแล้วตรวจสอบว่าถูกหรือไม่กันพวก Spam อะไรประมานนั้นแต่พอทำหมดเรียบร้อยแล้ว พอสมัคดันขึ้นว่า ข้อมูลไม่ครบโปรดกลับไปแก้ไข มันยังไงช่วยตรวจสอบให้ทีคับ
*ถ้าไม่ได้เพิ่ม Security Code มันใช้งานได้ปกติคับ
*อันนี้เป็นไฟล์หลักหน้าสมัคร
<?php
session_start();
function passwdgen( $len ) {
$code = "abcdefghijkmnpqrstuvwxy123456789";
srand((double)microtime()*1000000);
for($i=0; $i < $len; $i++) {
$password .= $code[rand()%strlen($code)];
}
return $password;
}
$_SESSION['ses_code'] = passwdgen(5);
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>สมัคไอดีเข้าเล่นเกมส์</title>
<meta http-equiv="Content-Type" content="text/html; charset=windows-874">
<script language="JavaScript" type="text/JavaScript">
<!--
function MM_reloadPage(init) { //reloads the window if Nav4 resized
if (init==true) with (navigator) {if ((appName=="Netscape")&&(parseInt(appVersion)==4)) {
document.MM_pgW=innerWidth; document.MM_pgH=innerHeight; onresize=MM_reloadPage; }}
else if (innerWidth!=document.MM_pgW || innerHeight!=document.MM_pgH) location.reload();
}
MM_reloadPage(true);
//-->
</script>
</head>
<body bgcolor="#FFFFFF" text="#000000">
<form name="form1" method="post" action="registerC.php">
<p align="left"><strong>กรุณากรอกข้อมูลที่เป็นความจริงเพื่อประโยชน์ของท่าน</strong> <br>
<br>
USER :
<input name="user2" type="text" size="25">
<font color="#FF0000">*ใช้ตัวอักษร A-Z,1-0</font><br>
<br>
PASS :
<input name="p12" type="password" size="25">
<font color="#FF0000">* ควรจะมี 6 หลักขึ้นไป</font> </p>
<p align="left">REPASS :
<input name="p22" type="password" size="25">
<font color="#FF0000">* ยืนยัน Pass เดิม</font><br>
<br>
SEX :
<select name="select">
<option value="M">ชาย</option>
<option value="F">หญิง</option>
</select>
<br>
<br>
E-mail :
<input name="email2" type="text" size="40">
<br>
<br>
Security Code :
<input type="text" name="code" size=8>
<img src=imagettf.php><br>
<br>
<input type="submit" name="Submit3" value="สมัครสมาชิก">
<input type="Reset" name="Submit22" value="เริ่มใหม่">
</p>
</form>
</body>
</html>
* อันนี้ไฟล์ที่เช็คเข้า SQL
* // check securtiy คือที่ผมใส่เพิ่มลงไป
<?
@session_start();
$user="xxxxx";
$pass="xxxxxx";
$db="xxxxx"; // แก้คนเดียว
$tdb = "login";
$host = "xxxxx";
mysql_connect($host,$user,$pass) or die(mysql_error());
mysql_select_db($db) or die(mysql_error());
#INSERT INTO `login` (`account_id`, `userid`, `user_pass`, `sex`, `email`) VALUES ('1', 's1', 'p1', 'S','[email protected]');
$referer = getenv( "HTTP_REFERER" ); //Referer
$host = $_SERVER['HTTP_HOST']; //URL ของไซต์นี้
$host = str_replace( "www." , "" , strtolower( $host ) );
if(!eregi($host , $referer)) { exit(); };
$user = trim($_POST['user']);
$p1 = trim($_POST['p1']);
$p2 = trim($_POST['p2']);
$sex = trim($_POST['sex']);
$email = trim($_POST['email']);
if ($user && $p1 && $p2 && $email) {
//check password
if ( $p1 == '' ) {
echo "<font color=red>กรุณากรอกรหัสผ่าน</font>"; exit();
} else if ( strlen( $p1 ) < 6 ) {
echo "<font color=red>รหัสผ่านต้องไม่น้อยกว่า 6 หลัก</font>"; exit();
} else if ( $p1 != $p2 ) {
echo "<font color=red>รหัสผ่านไม่เหมือนกัน</font>"; exit();
} ;
// check securtiy
if (trim($_POST['code']) != ($_SESSION['ses_code']) ) {
echo "<b>Security Code ไม่ถูกต้อง!</b>";
exit;
}
//end pass
$CheckUser = mysql_query("select * from $tdb where userid='$user' ") or die (mysql_error());
if ($CheckUser && mysql_num_rows($CheckUser) > 0) {
echo "User <font color=red> <b> $user </b> มีในระบบแล้ว </font> โปรดกลับไปแก้ไข <a href=javascript:history.go(-1)>กลับไป</a>";
exit();
}
$CheckEmail = mysql_query("select * from $tdb where email='$email' ") or die (mysql_error());
if ($CheckEmail && mysql_num_rows($CheckEmail) > 0) {
echo "Email <font color=red> <b> $email </b> มีในระบบแล้ว </font> โปรดกลับไปแก้ไข <a href=javascript:history.go(-1)>กลับไป</a>";
exit();
}
$iQ = mysql_query("INSERT INTO `login` (`account_id`, `userid`, `user_pass`, `sex`, `email`) VALUES ('', '$user', '$p1', '$sex','$email');") or die (mysql_error());
if ($iQ == true) { echo "ลงทะเบียนเรียบร้อย Login เข้าสู่ระบบได้เลย"; } else { echo "ไม่สามารถบันทึกลงฐานข้อมูลได้"; }
} else { echo "ข้อมูลไม่ครบ โปรดกลับไปแก้ไข <a href=javascript:history.go(-1)>กลับไป</a>"; }
?>
Tag : - - - -
|
|
|
|
|
|
Date :
2009-10-02 19:40:09 |
By :
yuklai |
View :
1915 |
Reply :
9 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Code (PHP)
if ($user && $p1 && $p2 && $email) {
แก้เป็น
Code (PHP)
if (!(isset($user) && isset($p1) && isset($p2) && isset($email))) {
หรือ
if (!($user=="" && $p1=="" && $p2=="" && $email=="") {
|
|
|
|
|
Date :
2009-10-02 20:28:19 |
By :
xbeginner01 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
อันนี้ไม่ได้คับขึ้นเหมือนเดิมข้อมูลไม่ครบ
if (!(isset($user) && isset($p1) && isset($p2) && isset($email))) {
ส่วนนี้ขึ้นว่า
Parse error: syntax error, unexpected '{' in /home/devilsl/domains/devilsl-ro.com/public_html/register/registerC.php on line 29
แถวที่ 29 ก็อันนี้คับ
if (!($user=="" && $p1=="" && $p2=="" && $email=="") {
|
|
|
|
|
Date :
2009-10-03 14:43:26 |
By :
yuklai |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (!($user=="" && $p1=="" && $p2=="" && $email=="") {
แก้เป็น
if (!($user=="" && $p1=="" && $p2=="" && $email=="")) { //โทษที ลืมวงเล็บปิดอีกอัน
Code (PHP)
$user = trim($_POST['user']);
$p1 = trim($_POST['p1']);
$p2 = trim($_POST['p2']);
$sex = trim($_POST['sex']);
$email = trim($_POST['email']);
ค่าที่รับ POST มาไม่ตรงกับ page แรกนิครับ
$user = trim($_POST['user2']);
$p1 = trim($_POST['p12']);
$p2 = trim($_POST['p22']);
$sex = trim($_POST['select']);
$email = trim($_POST['email2']);
อันนี้การบ้านเปล่าเนี่ยเปลี่ยนแต่ตัวแปรระวังจะโดนเข้าให้น่ะ :>
|
|
|
|
|
Date :
2009-10-03 15:46:03 |
By :
xbeginner01 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ไม่ได้เหมือนเดิมนะคับ งง ตายแล้วคับลูกพี่
|
|
|
|
|
Date :
2009-10-03 17:11:56 |
By :
yuklai |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
งั้นทดลองเอาแบบง่ายๆเลย
ใส่โค้ดนี้ก่อนเงื่อนไข if(....
echo "USER: $user <br/>";
echo " P1: $p1 <br/>";
echo "P2: $p2 <br/>";
echo "sex: $sex <br/>";
echo "email: $email <br/>";
เช็คดูก่อนเลยว่าค่าเข้ามาตามที่กรอกจริงเปล่า
|
|
|
|
|
Date :
2009-10-03 17:22:38 |
By :
xbeginner01 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
คราวนี้ขึ้นว่า
USER:
P1:
P2:
sex:
email:
ข้อมูลไม่ครบ โปรดกลับไปแก้ไข กลับไป
แล้ว CODE ผมล่ะหายไปไหนเกี่ยวอะไรกันรึป่าว หรือเป็นเพราะ CODE ที่เพิ่มไป กรอกไม่ถูกหรือยังไง
|
|
|
|
|
Date :
2009-10-03 23:59:57 |
By :
yuklai |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ที่ผมให้ echo ไปอ่ะครับเพื่อเช็คว่าค่าทั้งหมดมันได้ค่าไรกันแน่สรุปคือไม่มีค่า ผมคิดว่าตอนรับค่าจาก POST มาผิดพลาด
จากส่วนหนึ่งของโพสแรก
Code (PHP)
$user = trim($_POST['user']);
$p1 = trim($_POST['p1']);
$p2 = trim($_POST['p2']);
$sex = trim($_POST['sex']);
$email = trim($_POST['email']);
นี้ก็แก้ให้แมทกับหน้าหลัก
Code (PHP)
$user = trim($_POST['user2']);
$p1 = trim($_POST['p12']);
$p2 = trim($_POST['p22']);
$sex = trim($_POST['select']);
$email = trim($_POST['email2']);
ลองเช็ค $_POST['xxx'] พวกนี้ดูใหม่น่ะครับว่าได้ค่ามาที่ต้องการเปล่า หรือลองเอา trim ออกดูแล้วทดสอบดู
ตอนนี้ที่เห็นผิดพลาดก็มีแค่ตรงนี้แหล่ะ มองไม่เห็นที่อื่นแล้ว ตอนนี้ไม่เกี่ยวกับเงื่อนไข if แล้วครับ
|
|
|
|
|
Date :
2009-10-04 02:38:27 |
By :
xbeginner01 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
อ่าคับผมลองตัด trim ออกแล้วใช้งานได้เลยคับ ไม่มีปัญหาแล้วคับ ขอบคุณเป็นอย่างสูงคับผม
|
|
|
|
|
Date :
2009-10-04 09:57:54 |
By :
yuklai |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 05
|