مثلا مي خوايم يك سري امكانات به كاربران وارد شده بديم. يا يك سري از صفحات يا بخش هايي از سايت فقط براي كاربران وارد شده در دسترس باشند.
Printable View
مثلا مي خوايم يك سري امكانات به كاربران وارد شده بديم. يا يك سري از صفحات يا بخش هايي از سايت فقط براي كاربران وارد شده در دسترس باشند.
آقا تو رو خدا كمكم كنين. من با يه شركت قرارداد بستم قرار شد 10 ، 15 روزه كار registering سايت رو تحويل بدم. كمكم كنين ، من فقط تونستم صفحه ثبت نام كاربر رو درست كنم و با كد login داگتگ هم مشكل دارم صفحه سفيد مي ده.
من فقط مي خوام وقتي كاربر لاگين شد اسمش و بالاي صفحه داشته باشم . بعد از لاگين شدن بتونه وارد يكسري از صفحات بشه كه اگه لاگين نشه نتونه يا اجازه ورود نداشته باشه.
خواهشا كمكم كنيد كارم خيلي گيره.
كسي نبود...........
نمي دونم امروز تو فروم چه خبره هيشكي پيداش نيست. انگاري همه امروز تعطيل كردن. شانس مارو ببين
عجب بابا نمیدونم چرا تا پستت رو دیدم خندم گرفت آخه چطور کارو دادن به شما
راستش من برنامه نویس نیستم برا همین زیاد اینورا پست نمیزنم ولی حالا چون کارت گیره و کسی نیست یه چیزایی میگم
شما بایداز سیژن استفاده کنی وقتی کاربر لوگین میکنه سیژنش رو true قرار بده
حالا تویه هر صفحه خط اولش سیژن کاربرا رو چک کن اگه true بودن اجازه بده صفحه رو ببینن اگر هم نه هدر کن به یه صفحه اررور
ببينيد من php رو يك ماهه شروع كردم . و طراحي وب سايت رو 6 ماهه.
تويه 5 ماهه گذشته با سمت سرور كاري نداشتم فقط با جاوااسكريپت و style و html و تم و كلا سمت مشتري كار كردم.
الان هم مي خوام با php سيستم عضوگيري رو راه اندازي كنم.
حالا اونا هم يه قلطي كردن به من كار دادن .
و در ضمن مي دونم بايد از سيژن استفاده كنم. بهتره تاپيك رو از اول بخوني تا بفهمي مشكل من چيه . اگه تونستي كمكم كن.
بازم خواستي بخندي بخند مشكلي نيست
ببخشید منظورم خنده اونطوری نبود ببخشید اگه ناراحت شدی سوتفاهم شد
اما در مورد قسمت دوم باید بگم که شما یه سوال تو پست 72 کردی منم جواب دادم نمیشه که 8 صفحه رو از اول بخونم برایه یه سوال نمیشه همینجا بگب مشکلش چیه
ببينيد اين سورس كد منه
نمي دونم مشكلش چيه در ظاهر كه مشكلي نداره ولي وقتي submit رو مي زني صفحه سفيد مي ده سينتاكس هاي query رو هم غلط مي نويسي حتي error هم نمي ده.کد:http://forum.p30world.com/showpost.php?p=2470261&postcount=68
صفحات include شده هيچ مشكلي ندارن.
نبود؟:45:
مثل اينكه دير وقته!:9:
ببین من یکم دستکاریش کردم تا لوکال خودم تست کنم اینکلوداتو غیر فعال کردم و به دیتابیس خودم وصلش کردم شرطش رو هم عوض کردم تغییرام مشخصن بالاشون نوشتم الان برایه من کار میکنه بازم ببخشید پریدم وسط همونطور که گفتم طراح نیستم دیدم کارت لنگه گفتم یه چیزی بگم فکر نکنین لالم :46::31:
[php]<?php // login page
session_start();
if(isset($_POST['submit'])){
# include "../config.inc.php";
# include F_ROOT."inc/db_tables.php";
# include F_ROOT."inc/db_connect.php";
#وصل شدن به بانک اطلاعاتی من در لوکال هاستم و انتخاب دیتابیس مربوط به یوزر ها
mysql_connect("localhost", "root") or die(mysql_error());
mysql_select_db("memmbers");
########
// حذف بک اسلشهایی که به صورت خودکار توسط Magic Quotes به اطلاعات ارسال شده افزوده شده اند
function UnEscape($string) {
if (get_magic_quotes_gpc()) {
return stripslashes($string);
} else {
return $string;
}
}
$errors = array();
$min_length = 4;
$max_length = 20;
$meta = "";
// اجرای اسکرپت ثبت نام در صورتی که اطلاعات با متد پست به صفحه ارسال شده باشند
#if($_SERVER['REQUEST_METHOD'] == "POST") {
# $username = UnEscape($_POST['username']);
#$password = UnEscape($_POST['password']);
// وارد کردن اطلاعات کاربر در صورتی که اطلاعات معتبر باشند
if(empty($errors)) {
// اسکیپ کردن داده های وارد شده توسط کاربر
# $username = mysql_real_escape_string(htmlentities($username);
# $password = mysql_real_escape_string($password);
// به دست آوردن تعداد سطرهایی که نام کاربری مشابه نام کاربری انتخاب شده کاربر دارند
#$query = mysql_query("SELECT password FROM `users` WHERE username = '$username'");
# if (mysql_num_rows($query) == 1){
# list($storedPassWord) = mysql_fetch_row($query);
# }else{
# $errors[] = "کاربري با اين نام موجود نيست!";
# }
# این قسمت رو من اضافه کردم برایه چک کردن با بانک اطلاعات خودم
$sql = "SELECT `password` FROM `users` WHERE `username` = '$username'";
$result = mysql_query($sql) or die(mysql_error());
if(mysql_num_rows($result) == 1)
{
//چک کردن پسورد در ضمن من پسورد ها رو md5 نکردم
if($password == mysql_result($result,0))
{
// ثبت سشن و ارسال کاربر به صفحه اصلي
$_SESSION['userInfo'] = $username;
$_SESSION['userPInfo'] = $password;
mysql_close();
// انتقال به صفحه اصلي
// بايد نام سايت خود را به جاي سايت زير بنويسيد
$meta = '<meta http-equiv="Refresh" content="2; url=http://www.site.com/index.php">';
} else {
// قطع عمليات در صورت متفاوت بودن پسورد وارد شده و پسورد اصلي
$errors[] = "رمز عبور اشتباه است!";
exit();
}
}
}
}
?>
<!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" />
<?php print $meta; ?>
<title>صفحه ورود کاربران</title>
<style type="text/css">
body { direction:rtl; }
form, table { width: 300px; margin:0px auto;}
td { text-align:center; }
th { text-align:right; }
</style>
</head>
<body>
<form action="1index.php" method="post">
<?php
if(!empty($errors)) {
echo "<ul>";
foreach($errors as $error) {
echo "<li>$error</li> \n";
}
echo "</ul>";
} elseif (@$_SESSION['userInfo']) {
echo "<h3>ورود شما با موفقیت انجام شد.</h3>";
}
else {
?>
<table border="0">
<tr>
<th>نام کاربری :</th>
<td><input type="text" name="username" /></td>
</tr>
<tr>
<th>کلمه عبور :</th>
<td><input type="password" name="password" /></td>
</tr>
<tr>
<td colspan="2"><input type="submit" name="submit" value="submit" /></td>
</tr>
</table>
<?php
}
?>
</form>
</body>
</html>[/php]
بابا ايول دمت گرم.
گل مايي
عالي بود كار كرد .
مثلا براي سيژن چجوري timeout قرار بم. اينجوري كه كاربر تا ابد لاگين مي مونه. مشكل امنيتي هم داه. مثلا اگه 10 دقيقه كاربر غير فعال بود سيژن پاك بشه. و دوباره درخواست لاگين كنه.
چجوري لاگ آوت كنم؟
ببین تو صفحه ای که صحت رمز ورودی رو چک میکنه (همین که صفحه قبل دستکاریش کردم ) اگه نام کاربری و اینچیزاش درست بود یه سیژن اینطوری تعریف کن
[PHP]$_SESSION['LogedIn'] = true; [/PHP]
حال اول تمامی صفحاتی که میخوای فقط کاربرایه وارد شده ببینن اینطوری چک کن که سیژن کاربرمعتبره یانه
[PHP]if($_SESSION['LogedIn'] !== true)
{
header("location:../permissionerror.html");
exit();
} [/PHP]
که درصورت true نبودن اون سیژن کاربر رو به یه صفحه دیگه منتقل میکنه
چجوري لاگ آوت كنم؟
چجوري براي سيژن چجوري timeout قرار بم. اينجوري كه كاربر تا ابد لاگين مي مونه. مشكل امنيتي هم داه. مثلا اگه 10 دقيقه كاربر غير فعال بود سيژن پاك بشه. و دوباره درخواست لاگين كنه.