หลายคนคงเคยใช้ ระบบ CMS ในการทำเว็บไซต์ ซึ่ง อาจจะเป็น nuke, joomla, xoop
เมื่อเวลาเปลี่ยนระบบ จากอันหนึ่งไปใช้อีกอัน ก็จะพบกับปัญหา เกี่ยวกับสมาชิก
ซึ่งแต่ละอันก็จะมีโครงสร้างฐานข้อมูลไม่เหมือนกัน หากมีข้อมูลสมาชิกมาก ก็ไม่อยากยุ่งยาก
ในการเปลี่ยน พอดี ผมได้มีโอกาศเปลี่ยน ก็เลยเขียนสคริ๊ปนี้ขึ้นมา โดยการโอนฐานข้อมูลสมาชิก
ของ DRUPAL มาเป็น MAXSITE ใครต้องการอะไรเพิ่มเติมก็สามารถปรับเปลี่ยนได้ครับ
<?
### Transfer Members from Drupal to Maxsite
// แก้ไขข้อมูลด้านล่างนี้
$dbHOST="localhost";
$dbUSER="user";
$dbPASS="password";
$Drupal_dbNAME=""; // ฐานข้อมูล Drupal
$Maxsite_dbNAME=""; // ฐานข้อมูล Maxsite
$yourcode = ""; // รหัสนำหน้าหมายเลขสมาชิกของคุณ เช่น ip00001 , abc00005 ต้องเหมือนกับ member/config.inc.php
#################################
$LINK=mysql_connect($dbHOST,$dbUSER,$dbPASS) or die("ไม่สามารถติดต่อฐานข้อมูลได้");
mysql_select_db($Drupal_dbNAME) or die ("ไม่สามารถติดต่อแฟ้มข้อมูลได้");
# เปิดไฟล์ Member
$SQL="Select * from users order by uid";
$result=mysql_query($SQL);
// ต้อง CHMOD ฟล์ usertemp.txt เป็น 777
$fp = fopen("usertemp.txt", "w");
while ($row=mysql_fetch_array($result)) {
$user=trim($row["name"]);
if (!preg_match ("/^[0-9a-zA-Z_]{3,20}$/",$user))
{
echo "<font color="#FF0000">$user</font><br />";
continue;
}
$password=trim($row["pass"]);
$email=trim($row["mail"]);
$signature=trim($row["signature"]);
$signature=str_replace("|"," ",$signature);
$signup=trim($row["created"]);
$access=trim($row["access"]);
$member_pic=trim($row["picture"]);
$New=$user."|".$password."|".$email."|".$signature."|".$signup."|".$access."|".$member_pic."n";
fwrite($fp, $New);
}
fclose($fp);
mysql_select_db($Maxsite_dbNAME) or die ("ไม่สามารถติดต่อแฟ้มข้อมูลได้");
$sql = "select * from member order by id desc" ;
$result = mysql_query($sql) ;
$num_result = mysql_num_rows($result) ;
$dbarr = mysql_fetch_row($result) ;
$member_db = $dbarr[0] ; // นำค่า id มาเพิ่มให้กับค่ารหัสสมาชิกครั้งละ1
$tline=file("usertemp.txt");
for ($t=0;$t < sizeof($tline);$t++)
{
$tmpdata=explode("|",$tline[$t]);
$user = trim($tmpdata[0]);
$password = trim($tmpdata[1]);
$email = trim($tmpdata[2]);
$signature = trim($tmpdata[3]);
$signup = trim($tmpdata[4]);
$access = trim($tmpdata[5]);
$member_pic = trim($tmpdata[6]);
## ตัดคำว่า sites/default/files/pictures/ ออกจากชื่อภาพ
if (!empty($member_pic))
{
$member_pic=str_replace("sites/default/files/pictures/","",$member_pic);
}
##กรณีมี user อยู่แล้วป้องกันซ้ำ ให้เอา มาร์คออก
/*
$SQL2="select * from member where user=''$user'' ";
$result2 = mysql_query($SQL2);
if (mysql_num_rows($result2)!=0) {
echo "<br><font face=''Arial'' size=''4'' color=''#FF0000''>$user มีอยู่แล้ว</font><br>";
continue;
}
*/
//$member_db = mysql_insert_id()+1 ; // นำค่า id มาเพิ่มให้กับค่ารหัสสมาชิกครั้งละ1
$member_db++;
if($member_db>=100)
{
$member_in = "0$member_db" ;
}
else
{
if($member_db >=10)
{
$member_in = "00$member_db" ;
}
else {
$member_in = "000$member_db" ;
}
}
$member_id = "$yourcode$member_in" ;
echo "<br /><font face=''Arial'' size=''3''>".$user."</font><br>";
$addnew="insert into member(member_id,user,password,email,signature,signup,access,member_pic) values (''$member_id'',''$user'',''$password'',''$email'',''$signature'',$signup,$access,''$member_pic'')";
//echo $addnew;
mysql_query ($addnew);
}
mysql_close($LINK);
?>
<center><font face="Arial" size="4" color="#0000FF"> Transfer Users Completed</font></center> tranusers_drupal.zip ขนาด 1.7 kb.
ดาวน์โหลดที่นี่
- คะแนนโหวต 5 /5 ดาว
- 1
- 2
- 3
- 4
- 5
คะแนนโหวต : 5 / 5 ดาว (จากจำนวนโหวต 5 โหวต)
เข้าชม : 2184 ดาวน์โหลด
346
|