| مشرف
تاريخ الانتساب: 12-12-2008 المكان: قاهرة المعز - مصر ارض الكنانة السن: 22
مشاركات: 1,127
مستوى السمعة : 3 | رد : ربط موقع بمنتدى اي بي و في بي -1-
قبل ما ابدا ،،، ده رابط لفورم انفجن IPS
وده رابط لفورم VB
هنحتاج نعرف كذه حاجة الاول
اول نقطة : الجداول اللي هنحتاجها في قاعدة البيانات
النقطة التانية : نظام التشفير
بالنسبة للجداول :
1. IPS
members_converge and members
وده تركيب الجدولين كود PHP: IPS : members_converge
`converge_id` int(10) NOT NULL auto_increment, `converge_email` varchar(250) NOT NULL default '', `converge_joined` int(10) NOT NULL default '0', `converge_pass_hash` varchar(32) NOT NULL default '', `converge_pass_salt` varchar(5) NOT NULL default '', `pss` text NOT NULL, PRIMARY KEY (`converge_id`), KEY `converge_email` (`converge_email`)
IPS : members
`id` mediumint(8) NOT NULL default '0', `name` varchar(255) NOT NULL default '', `mgroup` smallint(3) NOT NULL default '0', `email` varchar(150) NOT NULL default '', `joined` int(10) NOT NULL default '0', `ip_address` varchar(16) NOT NULL default '', `posts` mediumint(7) default '0', `title` varchar(64) default NULL, `allow_admin_mails` tinyint(1) default NULL, `time_offset` varchar(10) default NULL, `hide_email` varchar(8) default NULL, `email_pm` tinyint(1) default '1', `email_full` tinyint(1) default NULL, `skin` smallint(5) default NULL, `warn_level` int(10) default NULL, `warn_lastwarn` int(10) NOT NULL default '0', `language` varchar(32) default NULL, `last_post` int(10) default NULL, `restrict_post` varchar(100) NOT NULL default '0', `view_sigs` tinyint(1) default '1', `view_img` tinyint(1) default '1', `view_avs` tinyint(1) default '1', `view_pop` tinyint(1) default '1', `bday_day` int(2) default NULL, `bday_month` int(2) default NULL, `bday_year` int(4) default NULL, `new_msg` tinyint(2) default '0', `msg_total` smallint(5) default '0', `show_popup` tinyint(1) default '0', `misc` varchar(128) default NULL, `last_visit` int(10) default '0', `last_activity` int(10) default '0', `dst_in_use` tinyint(1) default '0', `view_prefs` varchar(64) default '-1&-1', `coppa_user` tinyint(1) default '0', `mod_posts` varchar(100) NOT NULL default '0', `auto_track` varchar(50) default '0', `temp_ban` varchar(100) default '0', `sub_end` int(10) NOT NULL default '0', `login_anonymous` char(3) NOT NULL default '0&0', `ignored_users` text, `mgroup_others` varchar(255) NOT NULL default '', `org_perm_id` varchar(255) NOT NULL default '', `member_login_key` varchar(32) NOT NULL default '', `member_login_key_expire` int(10) NOT NULL default '0', `subs_pkg_chosen` smallint(3) NOT NULL default '0', `has_blog` tinyint(1) NOT NULL default '0', `has_gallery` tinyint(1) NOT NULL default '0', `members_markers` text, `members_editor_choice` char(3) NOT NULL default 'std', `members_auto_dst` tinyint(1) NOT NULL default '1', `members_display_name` varchar(255) NOT NULL default '', `members_created_remote` tinyint(1) NOT NULL default '0', `members_cache` mediumtext, `members_disable_pm` int(1) NOT NULL default '0', `members_l_display_name` varchar(255) NOT NULL default '0', `members_l_username` varchar(255) NOT NULL default '0', `failed_logins` text, `failed_login_count` smallint(3) NOT NULL default '0', `members_profile_views` int(10) unsigned NOT NULL default '0', `gallery_perms` varchar(10) NOT NULL default '1:1:1', `thanks_point` int(11) default '0', `post_color` varchar(250) default NULL, `post_font` varchar(250) default NULL, `post_fsize` varchar(250) default NULL, `post_bold` varchar(250) default NULL, `post_underline` varchar(250) default NULL, `post_align` varchar(250) default NULL, PRIMARY KEY (`id`), KEY `members_l_display_name` (`members_l_display_name`), KEY `members_l_username` (`members_l_username`), KEY `mgroup` (`mgroup`), KEY `bday_day` (`bday_day`), KEY `bday_month` (`bday_month`)
اما بالنسبة للفي بي فمحتاجين فقط جدول user كود PHP: `userid` int(10) unsigned NOT NULL auto_increment, `usergroupid` smallint(5) unsigned NOT NULL default '0', `membergroupids` varchar(250) NOT NULL default '', `displaygroupid` smallint(5) unsigned NOT NULL default '0', `username` varchar(100) NOT NULL default '', `password` varchar(32) NOT NULL default '', `passworddate` date NOT NULL default '0000-00-00', `email` varchar(100) NOT NULL default '', `styleid` smallint(5) unsigned NOT NULL default '0', `parentemail` varchar(50) NOT NULL default '', `homepage` varchar(100) NOT NULL default '', `icq` varchar(20) NOT NULL default '', `aim` varchar(20) NOT NULL default '', `yahoo` varchar(32) NOT NULL default '', `msn` varchar(100) NOT NULL default '', `skype` varchar(32) NOT NULL default '', `showvbcode` smallint(5) unsigned NOT NULL default '0', `showbirthday` smallint(5) unsigned NOT NULL default '2', `usertitle` varchar(250) NOT NULL default '', `customtitle` smallint(6) NOT NULL default '0', `joindate` int(10) unsigned NOT NULL default '0', `daysprune` smallint(6) NOT NULL default '0', `lastvisit` int(10) unsigned NOT NULL default '0', `lastactivity` int(10) unsigned NOT NULL default '0', `lastpost` int(10) unsigned NOT NULL default '0', `lastpostid` int(10) unsigned NOT NULL default '0', `posts` int(10) unsigned NOT NULL default '0', `reputation` int(11) NOT NULL default '10', `reputationlevelid` int(10) unsigned NOT NULL default '1', `timezoneoffset` varchar(4) NOT NULL default '', `pmpopup` smallint(6) NOT NULL default '0', `avatarid` smallint(6) NOT NULL default '0', `avatarrevision` int(10) unsigned NOT NULL default '0', `profilepicrevision` int(10) unsigned NOT NULL default '0', `sigpicrevision` int(10) unsigned NOT NULL default '0', `options` int(10) unsigned NOT NULL default '15', `birthday` varchar(10) NOT NULL default '', `birthday_search` date NOT NULL default '0000-00-00', `maxposts` smallint(6) NOT NULL default '-1', `startofweek` smallint(6) NOT NULL default '1', `ipaddress` varchar(15) NOT NULL default '', `referrerid` int(10) unsigned NOT NULL default '0', `languageid` smallint(5) unsigned NOT NULL default '0', `emailstamp` int(10) unsigned NOT NULL default '0', `threadedmode` smallint(5) unsigned NOT NULL default '0', `autosubscribe` smallint(6) NOT NULL default '-1', `pmtotal` smallint(5) unsigned NOT NULL default '0', `pmunread` smallint(5) unsigned NOT NULL default '0', `salt` char(3) NOT NULL default '', `ipoints` int(10) unsigned NOT NULL default '0', `infractions` int(10) unsigned NOT NULL default '0', `warnings` int(10) unsigned NOT NULL default '0', `infractiongroupids` varchar(255) NOT NULL default '', `infractiongroupid` smallint(5) unsigned NOT NULL default '0', `adminoptions` int(10) unsigned NOT NULL default '0', `ppicount` int(10) NOT NULL default '0', `pppcount` int(10) NOT NULL default '0', `showcybstats` tinyint(1) NOT NULL default '1', `ncode_imageresizer_mode` enum('none','enlarge','samewindow','newwindow') default NULL, `ncode_imageresizer_maxwidth` smallint(5) unsigned default NULL, `ncode_imageresizer_maxheight` smallint(5) unsigned default NULL, `blog_hasblog` tinyint(3) unsigned NOT NULL default '0', `blog_lastblogactivity` int(10) unsigned NOT NULL default '0', `blog_lastblogvisit` int(10) unsigned NOT NULL default '0', `profilevisits` int(10) unsigned NOT NULL default '0', `friendcount` int(10) unsigned NOT NULL default '0', `friendreqcount` int(10) unsigned NOT NULL default '0', `vmunreadcount` int(10) unsigned NOT NULL default '0', `vmmoderatedcount` int(10) unsigned NOT NULL default '0', `socgroupinvitecount` int(10) unsigned NOT NULL default '0', `socgroupreqcount` int(10) unsigned NOT NULL default '0', `pcunreadcount` int(10) unsigned NOT NULL default '0', `pcmoderatedcount` int(10) unsigned NOT NULL default '0', `gmmoderatedcount` int(10) unsigned NOT NULL default '0', PRIMARY KEY (`userid`), KEY `usergroupid` (`usergroupid`), KEY `username` (`username`), KEY `birthday` (`birthday`,`showbirthday`), KEY `birthday_search` (`birthday_search`), KEY `posts` (`posts`), KEY `lastactivity` (`lastactivity`), KEY `referrerid` (`referrerid`)
***************************
التشفير ،، بالنسبة لانفجن IPS كود PHP: $passhash = md5(md5($converge_pass_salt) . md5(trim($pass)));
وبالنسبة للفي بي كود PHP: $passhash = md5(md5(trim($pass)) . $converge_pass_salt);
********************************************
الاول هنعمل نموذج لوج ان بسيط نجرب بيه كود هتمل: <!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>Login example by Dr. Mustafa Ali</title>
</head>
<body>
<form method="post" action="login.php">
Username : <input type="text" name="LogIn"/><br/>
Password : <input type="password" name="PassWord"/><br/>
Type : <select name="Type">
<option value="IPS">IPS</option>
<option value="VB">VB</option>
</select>
<input type="submit" value="Login"/>
</form>
</body>
</html> ************************************
بالنسبة لملف البي اتش بي login.php كود PHP: <?php if(!isset($_POST['Type']) || !isset($_POST['LogIn']) || !isset($_POST['PassWord'])) exit("Fill all fields first!"); $username = mysql_escape_string(strtolower($_POST['LogIn'])); $password = mysql_escape_string($_POST['PassWord']); if($_POST['Type'] == "VB") { $user = "user"; $sql = "SELECT DISTINCT $user.password, $user.salt FROM user WHERE $user.username = '$username'"; } elseif($_POST['Type'] == "IPS") { $members = "ibf_members"; $members_converge = "ibf_members_converge"; $sql = "SELECT DISTINCT $members_converge.converge_pass_hash, $members_converge.converge_pass_salt FROM $members LEFT JOIN $members_converge ON $members.id = $members_converge.converge_id WHERE $members.members_l_username = '$username'"; } else exit("Invalid input!"); if($mysqli = new mysqli("localhost","root","","main")) { if($result = $mysqli->query($sql)) { if($result->num_rows > 0) { if($user_row = $result->fetch_array(MYSQLI_ASSOC)) { if($_POST['Type'] == "VB") { if(get_passhash_VB($password, $user_row['salt']) == $user_row['password']) echo "Valid Login"; else echo "Wrong password!"; } elseif($_POST['Type'] == "IPS") { if(get_passhash_IPB($password, $user_row['converge_pass_salt']) == $user_row['converge_pass_hash']) echo "Valid Login"; else echo "Wrong password!"; } else //no need to this line as invalid input checked in line 15 exit("Invalid Input"); } else echo "Error fetching rows!"; } else echo "Username not found!"; } else echo "error executing SQL"; } else exit("Error connecting to mysql server or selecting DB"); function get_passhash_IPB($pass, $converge_pass_salt) { $passhash = md5(md5($converge_pass_salt) . md5(trim($pass))); return $passhash; }
function get_passhash_VB($pass, $converge_pass_salt) { $passhash = md5(md5(trim($pass)) . $converge_pass_salt); return $passhash; } ?> اتمنى يكون الشرح والمثال واضح ان شاء الله
قام بآخر تعديل Cappuccino يوم 11-04-2009 في 03:55 PM |