|
|
|
สร้าง user ที่ตามด้วยรหัสที่ auto ไปเรื่อยๆ จะถามเรื่อง ส้ราง usename ที่ขึ้นต้น ด้วย abc |
|
|
|
|
|
|
|
Code (PHP)
<?
function id_auto($table,$field,$start_id)
{
$sql="select ".$field." from ".$table." order by ".$field." desc";
$query=mysql_query($sql);
$num = mysql_num_rows($query);
if($num <=0){$id=$start_id;}else{$id=mysql_result($query,0,$field); $id++;}
return $id;
mysql_close();
}
$table = " mytable"; // ตาราง
$field = "myfield"; // ฟิวด์ id หรือ ฟิวด์ที่ต้องการ
$start_id = "abc00001"; // ค่าเริ่มต้น
$id = id_auto($table,$field,$start_id);
echo $id;
?>
|
|
|
|
|
Date :
2010-06-21 15:48:27 |
By :
heng |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ผมลืมบอกไปด้วยนะรับว่า มันต้องเก็บ user และ password ด้วย ตอนนี้ผมเขียน generate password เสร็จแล้วครับ จาก code ด้านบนที่ให้มา ผมก็งงมากเลย เพราะไม่รู้ว่าจะเอามารวมกับ codeที่ผมเขียน ยังไง
ขออธิบายงานทั้งหมดเลยนะครับเพื่อว่าจะได้เข้าใจและอนาคตอาจมีคนเข้ามาดู อิอิ
database ที่มี คือ ตาราง student
id_student
fname
lname
จะเพิ่ม ตาราง studen_authens
ีusername
password
ดังนั้นผมก็ไม่อยากเข้าไปแก้ไขตารางเก่า ก็เลย สร้างตารางขึ้นมา 1 ตารางชื่อ studen_authens
id_student เป็นแบบ integer auto_increment (มันคือ ตาราง student)
ีusername varvhar
password varvhar
ตรงนี้แหละที่ผมต้องการสร้าง username และ password โดยวิธีการ ให้ id_student มันมี prefix คือ abc และต่อด้วย ตัวเลขที่ auto ไปเรื่อยๆ อยากให้เป็นแบบนี้ abc1
abc มันอาจจะหมายถึง group ที่เด็กนักเรียนคนนี้อยู่ และ 1 หมายถึงว่า นักเรียนคนนี้ ลงทะเบียนเป็นที่ 1
อันนี้ code ที่ผมแกะๆมานะครับ
genuser.php มันคือหน้า html
<!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></title>
<link href="css/stylegen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="layer03_holder">
<div id="center">
<form id="form1" name="form1" method="post" action="gen.php" enctype="multipart/form-data">
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td align="right">Length:</td>
<td align="left">
<select name="passlength">
<option value="5" selected="selected">5</option>
<option value="6">6</option>
<option value="7">7</option>
<option value="8">8</option>
<option value="9">9</option>
<option value="10">10</option>
</select>
</td>
<td align="right">Strength:</td>
<td align="left">
<select name="passstrength">
<option value="1" selected="selected">Easy</option>
<option value="2">Normal</option>
<option value="3">Hard</option>
</select>
</td>
<td >
<input name="student_id" type="hidden" value="<?=$result["sid"]?>" />
<input name="student_fname" type="hidden" value="<?=$result["FirstName"]?>" />
<input name="student_lname" type="hidden" value="<?=$result["LastName"]?>" />
<input name="staff" type="hidden" value="<?=ucfirst($_SESSION["Staff_RealName"]);?>" />
<input name="create_date" type="hidden" value="<?=date("d F Y h:i:s a");?>" />
</td>
<td align="right">
</td>
<td align="right">
<label >
<input type="submit" name="submitBtn" id="button"value="Ganerate User&Pass" />
</label>
</td>
</tr>
</table>
</form>
</div>
</div>
</body>
</html>
ผลที่ได้
gen.php
<?PHP
//รับค่าจากการกดปุ่ม
$length=$_POST['passlength'];
$level=$_POST['passstrength'];
//แสดงผลการสร้าง password
if (isset($_POST['submitBtn'])){
echo "<table><tr><td><font size='12'>Generated password:</td><td><font size='12'>".generatePassword($length,$level)."</font></td></tr></table>";
}
function generatePassword($length=6,$level=2){
list($usec, $sec) = explode(' ', microtime());
srand((float) $sec + ((float) $usec * 100000));
$validchars[1] = "0123456789abcdfghjkmnpqrstvwxyz";
$validchars[2] = "0123456789abcdfghjkmnpqrstvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
$validchars[3] = "0123456789_!@#$%&*()-=+/abcdfghjkmnpqrstvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_!@#$%&*()-=+/";
$password = "";
$counter = 0;
while ($counter < $length) {
$actChar = substr($validchars[$level], rand(0, strlen($validchars[$level])-1), 1);
// All character must be different
if (!strstr($password, $actChar)) {
$password .= $actChar;
$counter++;
}
}
return $password;
}
?>
|
|
|
|
|
Date :
2010-06-21 16:15:54 |
By :
chon2008 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
หาคนช่วยคิดหน่อยนะครับ
|
|
|
|
|
Date :
2010-06-22 09:38:17 |
By :
chon2008 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ขอบคุณครับ แก้ปัญหาได้แล้วครับ ก็สร้างไปตามการ gen แต่ถ้าอยากดูว่าคนที่เท่าไร ก็เอาค่า id ที่รันออโต้ มาแสดงแทน อาจจะ งง นะครับ เพราะผมก็มาทำงานต่อระบบที่เขาสร้างไว้แบบ งงๆ อยู่แล้ว ผมก็เลย งง เข้าไปกันใหญ่
ฮ่าๆ สงสัยไม่นานระบบต้องเน่าแน่ๆ
|
|
|
|
|
Date :
2010-06-25 10:57:54 |
By :
chon2008 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 04
|