سیستم عضو گیری ساد

reza11_2005

Member
با سلام من یک سیستم عضو گیری ساده می خوام که از قبیل
نام ناانوادگی سن تاریخ تواد هدف آدرس نام پدر شماره شنتسنامه ادرس تفلن ایمیل و.... ههیزی را بهش اضافه کنم
خواهش می کنم
با تشکر
 

shnoit

Well-Known Member
من یه آموزشی قبلا از سایت 1p30 ذخیره کردم، ولی این چیزایی که شما ذکر کردین رو همه نداره، باید خودتون ویرایش کنین :wink:
خواستین بگین تا براتون آموزشو بزارم :neutral:
 

reza11_2005

Member
با سلام
با تشکر
می توانید برایمن این اموزش را بگذارید
متشکر می شوم
 

shnoit

Well-Known Member
آموزش ساخت سیستم عضو گیری ساده

مرحله 1 :
ساخت query.sql برای Query گرفتن از DB بکار میره و ...

PHP:
CREATE TABLE `users` (
  `id` int(5) NOT NULL auto_increment,
  `username` varchar(30) NOT NULL,
  `password` varchar(255) NOT NULL,
  `email` varchar(50) NOT NULL,
  `location` varchar(50) NOT NULL,
  `aim` varchar(30) NOT NULL,
  `msn` varchar(30) default NULL,
  `gtalk` varchar(30) NOT NULL,
  `ip` varchar(30) NOT NULL,
  `signup` varchar(30) NOT NULL,
  `membergroup` varchar(30) NOT NULL,
  `bio` varchar(400) NOT NULL,
  PRIMARY KEY  (`id`)
);

CREATE TABLE `permissions` (
mg_id INT(10) NOT NULL AUTO_INCREMENT,
mg_name VARCHAR(50) NOT NULL,
editprofile INT(1) NOT NULL,
viewprofile INT(1) NOT NULL,
admin INT(1) NOT NULL,
moderate INT(1) NOT NULL,
PRIMARY KEY (`mg_id`)
);

INSERT INTO `permissions` 
(`mg_id`, `mg_name`, `editprofile`, `viewprofile`, `admin`, `moderate`) VALUES 
(1, 'user', 1, 1, 0, 0),
(2, 'admin', 1, 1, 1, 1),
(3, 'guest', 0, 0, 0, 0);

مرحله 2 :
ساخت index.php صفحه اصلی و فرم این اسکریپت که فایل ارتباط دهنده سیستم با DB که همون Config.php هست در این فایل اینکلود یا شامل شده .

PHP:
<?php

// اینکلود کردن فایل ارتباط دیتابیس
include ('config.php');

//ست کردن ورودی به همراه هدایت آنها.
$nav = $_GET['action'];
secure($nav);

//سوئیچ کردن به قسمت های مختلف سیستم.
switch($nav)

    {
        case "login":
            include('login.php');
        break;
        
        case "logout":
            include ('logout.php');
            break;
            
        case "editprofile":
            include ('editprofile.php');
            break;    
            
        case "memberlist":
            include ('memberlist.php');
            break;
            
        case "register":
            include ('register.php');
            break;    
            
            
    
    
        default:
            include ('default.php');
            break;
    }

?>

مرحله 3 :
ساخت config.php برای ارتباط اسکریپت با SQL یا Data Base سایت.

PHP:
<?php
ob_start();
//استفاده از کوکی ها در تمام صفحات

//اینکلود کردن برخی از توابع اضافی کاربردی
include('functions.php');
//*********************************************//
//طول نگهداری آخرین بازدید در کوکی و ذخیره سازی نام کاربری - بصورت 1 هفته تنظیم است
$cookieTime = time()+7*86400;
//***********************************************//
//حالت
define('SALT', 'kiukhithere'); //نمونه k483hl2948hHe73

//مسیر index.php دنبال نکردن به همراه اسلش
//Eg, اگر سایت شما به اینصورت نصب شده این اسکریپت http://site.domian/script/index.php - آدرستون اینطوری میشه http://site.domain/script
$siteurl = "http://localhost/isustest"; 

//نام سایت شما .  <title>
$sitename = "نام سایت شما";

//گروه عضویت بصورت پیش فرض.
$defaultmembergroup = "user";

//اطلاعات دیتا بیس
$db_user = 'root';
$db_pass = '';
$db_host = 'localhost';
$db_database = 'isustest';
//**********************************************//

//ارتباط با دیتا بیس
$connect = mysql_connect("$db_host","$db_user","$db_pass");

if (!$connect ) echo 'There was an error connecting to the database';

mysql_select_db("$db_database");


// رفتن و ذخیره سازی در اطلاعات کوکی.
$u1 = secure($_COOKIE['username']);
$p1 = secure($_COOKIE['password']);

//چک کردن و لاگین شدن.
$logged = mysql_query("SELECT * FROM users WHERE username = '$u1' AND password = '$p1'");

$logged = mysql_fetch_array($logged, MYSQL_ASSOC);

//عوض کردن نام برخی از فیلد ها $logged['variables'] .
$uId = $logged['id'];
$uName = $logged['username'];
$uEmail = $logged['email'];
$uMsn = $logged['msn'];
$uIp = $logged['ip'];
$uSignup = $logged['signup'];
$uLevel = $logged['level'];
$uGtalk = $logged['gtalk'];
$uMsn = $logged['msn'];
$uAim = $logged['aim'];
$uLocation = $logged['location'];
$uBio = $logged['bio'];
$uGroup = $logged['gid'];
$uMembergroup = $logged['membergroup'];

//اگر کاربری عضو نیود یا لاگین نکرده بود اون رو به عنوان مهمان خطاب کن
if (!$uName) {

$uName = guest;
$uMembergroup = guest;

}
//رفتن به ارجاع و مرتب سازی اون.
$permquery1 = mysql_query("SELECT * FROM `permissions` WHERE mg_name = '$uMembergroup' ");
$userCan = mysql_fetch_assoc($permquery1);

$action = secure($_GET['action']);
$sa = secure($_GET['sa']);
$ssa = secure($_GET['ssa']);

?>

مرحله 4 :
ساخت functions.php برای اضافه کردن چندین تابع که در مرحله 3 در فایل معرفی و اینکلود شد . این توابع کمک میکنه تا عملیات انجام بشه و صدا زده شه . برای اینکه از توابع و نوع داده ای آن سر در بیارید آموزش علی جان گاگ به گام با PHP رو مطالعه کنید !

PHP:
<?php

function secure($string) {

$string = strip_tags($string);

$string = htmlspecialchars($string);

$string = trim($string);

$string = stripslashes($string);

$string = mysql_real_escape_string($string);

return $string;

}


function isEmail($email) {


$regex = "/^([0-9a-zA-Z]([-.\w]*[0-9a-zA-Z])*@([0-9a-zA-Z][-\w]*[0-9a-zA-Z]\.)+[a-zA-Z]{2,9})$/"; 

    if ( preg_match($regex, $email )) {

    return true;

    }

else {

return false;

}

}



?>

مرحله 5 :
ساخت login.php برای ورود کاربر به سیستم !

PHP:
<?php
    
    if ($uId) {
    
    //اگر لاگین شد نیازی نیست برگرده خود به خود به صفحه اصلی برو
    header ( "Location: $siteurl/index.php");
    
    } else {

    
    if (!isset($_POST['login'])) {
    
    //نمایش در فرم و متهد لاگین کردن 
    
    echo '<form method="post" action="index.php?action=login">

    <b>Username:</b><input type="text" name="username"><br />
    <b>Password:</b><input type="password" name="password"><br />
    
    <input type="submit" name="login" value="Login">
</form>';

} else {
    
    
    //ورودی ها
    $username = secure($_POST['username']);
    $password = secure($_POST['password']);
    
    //ساخت خطا فیلد خالی
    if (!$username | !$password) {
    
    echo 'You left a field empty';
    
    } else {
    
    //کنترل نام کاربری و خطا
    $user = mysql_query("SELECT * FROM `users` WHERE username = '$username'");
    
    if( ($usez = mysql_num_rows($user) ) == 0)
                    {
                        echo 'user doesnt exist';
                    } else {
    //چک کردن پسورد در دیتا
$encpass = sha1( SALT . $password );

//جست و جو یا پیدا کردن کاربر
$superquery = mysql_query("SELECT * FROM `users` WHERE username = '$username' AND password = '$encpass'");


if (mysql_num_rows($superquery) == 1){

    //اگر کاربر پیدا شد در کوکی ست شود
    
    setcookie("username", $username, $cookieTime);
    setcookie("password", $encpass, $cookieTime);
    
    echo 'Success, you are now logged in.';
    
    }else{
    
    echo 'Failure';
    
}
}
}
}
}


    
    ?>

مرحله 6 :
ساخت register.php برای ثبت کاربر یا عضویت کاربر

PHP:
<?php

//اگر لاگین کرده بود . نیازی نیست پیغام عضو شوید بدی و یا اینکه ردایرکت کنی !
if ($logged['id']) {
    
    header ( "Location: $siteurl/index.php");
    
    } else {
    
    // یا اینکه وقتی مهمان هستند به آن ها پیغام عضو شوید بده..
    
    //فرم ثبت رو نمایش بده!
    if (!$_POST['submit']){
    
echo "    <form action='index.php?action=register' method='POST'>
<p><b>Username:</b> <input type='text' name='username' /></p>
<p><b>Password:</b> <input type='password' name='password' /></p>
<p><b>Repeat Password:</b> <input type='password' name='cpassword'></p>
<p><b>Email:</b> <input type='text' name='email' /></p>
<input type='submit' name='submit' value='Register' />
</form> ";
    } else {
    
    //یا اینکه نوع ورودی مشخص و وارد شود
    $username = secure($_POST['username']);
    $password = secure($_POST['password']);
    $cpassword = secure($_POST['cpassword']);
    $email = secure($_POST['email']);
    
    //آیپی هم نمایش بده
    $ip = secure($_SERVER['REMOTE_ADDR']);
    
    //ساعت ثبت نام را نمایش بده
    $signup = time();
    
    //هر کدوم از فیلد های زیر خالی بود اعلام خطا کن
    if(!$username | !$password | !$cpassword | !$email){
    
    echo 'You must fill out all fields';
    
    } else {
    
    //اگه کلمه های عبور مثل هم نبودن برای تایید اعلام خطا کن
    if ($password != $cpassword) {
    
    echo 'The passwords do not match';
    
    }else{
    
    //اگه ایمیل دارای اشکالات دستوری بود اعلام خطا کن
    if (!isEmail($email)) {
    
    echo 'You didn\'t enter a valid email address';
    
    }else{
    //نام کاربری انتخاب شده قبلا ثبت شده لطفا از نام کاربری دیگری استفاده شود
    $username_test = mysql_query("SELECT * FROM `users` WHERE username = '$username'");
    
    if (mysql_num_rows($username_test) == 1){
    
    echo 'That username is already in use, please select a different one';
    
    }else{
    
    

    //روکش کردن کلمه عبور
    $encpass = sha1( SALT . $password );
    
    //درج اطلاعات کاربر در دیتا بیس
    $add = "INSERT INTO `users` VALUES ('', '$username', '$encpass', '$email', '', '','','', '$ip', '$signup', 'user','')";
    
    //وقتی درج شد ثبت بده
    if ( mysql_query($add) ){
    
    //صدا کردن اطلاعات کاربر
    echo 'Success, you are now registered<br />';
    echo 'You can now login using the following information<br /><br />';
    echo "Username: <b>$username</b><br />";
    echo "Password: <b>$password</b><br />";
    
    } else {
    
    echo 'Error, user not added';
    
    }
    }
    }
    }
    }
    }
    }
    
    
    
    
?>

مرحله 7 :
ساخت logout.php برای خروج کاربر

PHP:
<?php

//وقتی از کانفیگ استفاده نکرد به صورت دستی از کوکی بگیر
ob_start();

//پایه ای بر پاک شدن فایل های قبلی در زمان های قبل در کوکی و خروج همیشگی از نام کاربری از بروزر شما
setcookie ("username", "", time() - 3600);
setcookie ("password", "", time() - 3600);

echo 'You are now logged out';

//شما باید درج کنید و ردایرکت شید
// header ( "Location: $siteurl/index.php");

?>

مرحله 8 :
ساخت editprofile.php برای ویرایش اطلاعات کاربری

PHP:
<?php

//چک کردن و نمایش پروفایل به همراه ارسال ویرایش
if ($userCan['editprofile']) {
//دو امنیتی بودن تشخیص ادمین یا مهمان یا کاربر از گروه کاربری
if ($uId) {

//اگر ثبت شد نمایش بده پروفایل را.
if(!$_POST['update']) { 

?>

<form method="post">
<table width="50%">
<tr><td>Location: <input type="text" size="25" maxlength="25" name="location" value="<?php echo "$uLocation"; ?>" </td></tr>
<tr><td>MSN Messenger: <input type="text" size="25" maxlength="25" name="msn" value="<?php echo "$uMsn"; ?>" </td></tr>
<tr><td>AOL Messenger: <input type="text" size="25" maxlength="25" name="aim" value="<?php echo "$uAim"; ?>" </td></tr>
<tr><td>GTalk: <input type="text" size="25" maxlength="25" name="gtalk" value="<?php echo "$uGtalk"; ?>" </td></tr>
<tr><td>Email: <input type="text" size="25" maxlength="25" name="email" value="<?php echo "$uEmail"; ?>" </td></tr>
<tr><td></td></tr>
<tr><td>Bio: <textarea cols="40" rows="10" name="bio"> <?php echo "$uBio"; ?> </textarea></td></tr>

<tr><td><input type="submit" name="update" value="update"></td></tr>
</table>

</form>

<?php

}
//یا اینکه ثبت کن...
else
{
//گرفتن اطلاعات از فرم ها برای انجمن.
$location = secure($_POST['location']);
$msn = secure($_POST['msn']);
$aim = secure($_POST['aim']);
$gtalk = secure($_POST['gtalk']);
$email = secure($_POST['email']);
$bio = secure($_POST['bio']);

echo 'Your profile has been updated';

//کوئری به روز گردد
$update = mysql_query("UPDATE users SET email = '$email', msn = '$msn', aim = '$aim', gtalk = '$gtalk', location = '$location', bio = '$bio' WHERE username = '$uName'");

}
}
else
{
echo 'login';
}
} else {

echo 'You cannot edit your profile';

}

?>

مرحله 9 :
ساخت memberlist.php برای نمایش لیست اعضاء

PHP:
<?php

//ارجاع شدن برای دیدن و نمایش پروفایل کاربر
if($userCan['viewprofile']) {

//اگر یوزری انتخاب شد  پروفایلش رو نمایش بده..
if(!$_GET[user]) {
//انتخاب تمام کاربران
$getuser = mysql_query("SELECT * FROM users ORDER BY id ASC");

// از نام و لینک و دیگر پروفایل
while ($user = mysql_fetch_array($getuser)) {

echo "<a href='index.php?action=memberlist&user=$user[username]'>$user[username]</a><br />";

}

}
else
{
//موقع ورود نمایش پروفایل.
$secureduser = secure($_GET[user]);

//پیدا کردن کاربر از دیتا بیس
$getuser = mysql_query("SELECT * FROM users WHERE username='$secureduser'");
$usernum = mysql_num_rows($getuser);
//همچین کاربری یافت نشد...
if ($usernum == 0) {

echo 'User not found';

}
//اگر کاربر یافت شد..
else
{
//نمایش بده پروفایلش را
$profile = mysql_fetch_array($getuser);

echo "<b>$profile[username]'s profile</b><br /><br />
        MSN Messenger:<i> $profile[msn]</i><br />
        AOL Messenger:<i> $profile[aim]</i><br />
        GTalk:<i> $profile[gtalk]</i><br />
        Location:<i> $profile[location]</i><br />
        Email:<i> $profile[email]</i><br />
        Bio: <i> $profile[bio] </i><br />
        ";
    

}
}
} else {

echo 'You don\'t have permission to view this feature';
}
?>

مرحله 10 :
ساخت default.php . صفحه دیفالت این اسکریپت

PHP:
<?php



echo "Welcome to $sitename $uName <br /><br />";
if($uId) {
echo "<b>Site Links</b><br /><br />";
if($userCan['viewprofile']) 
echo "<a href='$siteurl/index.php?action=memberlist'>View Memberlist</a><br /><br /><br />";


echo "<b>User Links</b><br />";

echo "<a href='$siteurl/index.php?action=logout'>Logout</a><br />";

if($userCan['editprofile'])
echo "<a href='$siteurl/index.php?action=editprofile'>Edit Profile</a><br />";
} else {

echo "    <a href='$siteurl/index.php?action=login'>Login</a><br />
        <a href='$siteurl/index.php?action=register'>Register</a><br /> ";
        }

?>

تمام شد :wink:
فایلهای مربوط به هر مرحله را با نام ذکر شده ذخیره کن، و همه فایلها رو در یه فولدر کنار هم قرار بده. :)

منبع :
انجمن 1p30.com ، نویسینده مقاله: eh3an ، که قبلا" پابرجا بود! :-?
موفق باشین:rose:
 

جدیدترین ارسال ها

بالا