PDA

View Full Version : سوال: تغيير در سطح دسترسي!فوري



marjane_abi
سه شنبه 22 تیر 1389, 14:57 عصر
سلام
اگه ممكنه راهنماييم كنيد كه توي كد زير چه شرطي و يا چه تغييري رو اعمال كنم تا وقتي كه كاربر لوگين مي شه ، اگه به نام admin بود تشخيص داده بشه و منوي اضافه تري رو نمايش بده و اگر هر كابر ديگه اي بود اتفاق خاصي نيفته و همين صفحه نمايش داده بشه



<?php
// writer.php Is the Interface for Writers to Manage Their Stories

include_once('include_fns.php');

if (!check_auth_user())
{
login_form();
}
else
{
$handle = db_connect();

$writer = get_writer_record($_SESSION['auth_user']);

echo '<p>Welcome, '.$writer['full_name'];
echo ' (<a href="logout.php">Logout</a>) (<a href="index.php">Menu</a>) (<a href="../">Public Site</a>) </p>';
echo '<p>';

$query = 'select * from stories where writer = \''.
$_SESSION['auth_user'].'\' order by created desc';
$result = $handle->query($query);

echo 'Your stories: ';
echo $result->num_rows;
echo ' (<a href="story.php">Add new</a>)';
echo '</p><br /><br />';

if ($result->num_rows)
{
echo '<table>';
echo '<tr><th>Headline</th><th>Page</th>';
echo '<th>Created</th><th>Last modified</th></tr>';
while ($stories = $result->fetch_assoc())
{
echo '<tr><td>';
echo $stories['headline'];
echo '</td><td>';
echo $stories['page'];
echo '</td><td>';
echo date('M d, H:i', $stories['created']);
echo '</td><td>';
echo date('M d, H:i', $stories['modified']);
echo '</td><td>';
if ($stories['published'])
{
echo '[Published '.date('M d, H:i', $stories['published']).']';
}
else
{
echo '[<a href="story.php?story='.$stories['id'].'">edit</a>] ';
echo '[<a href="delete_story.php?story='.$stories['id'].'">delete</a>] ';
}
echo '[<a href="keywords.php?story='.$stories['id'].'">keywords</a>]';
echo '</td></tr>';
}
echo '</table>';
}
}
?>

rezahastam
سه شنبه 22 تیر 1389, 15:13 عصر
کارت با یه if را میفته همین

if($username == "admin") {
code
} else {
code2
}

بحای code چیزائی که میخوای واسه ادمین نمایش بدی رو بزار
code2 هم برای یوزر عادی

funpatogh
چهارشنبه 23 تیر 1389, 01:13 صبح
شما توی جدول user که برای کاربر ها درست کردی باید یک فیلد هم بگزاری برای permission
مثلا اسم فیلد رو بگزار permission و توش 3 تا مقدار باید باشه
برای مدیر بزار 1 و برای همکار بزار 2 برای کاربر هادی هم بزار 3
وقتی چک میکینی که کاربر وجود دارد یا نه اگه وجود داشت مقدار permission هم بگیر بعد یک if بزار و چک کن
بگو اگه == 1 بود یک سشن درست کنه به اسم permission با مقدار Admin اگر 2 بود یک سشن درست کنه به نام Permission با مقدار moderator
و اگر 3 بود که سشن درست کنه به نام permission با مقدار user
حالا توی برنامه ات هر کجا که دوست داری چیز خاصی رو به کاربر خاصی نشون بدی سشن رو چک میکینی و با if بخشی رو نمایش میدهی و یا نمی دهی
مثلا میگی اگر session['permission']=='moderator' بود فقط میتونه 3 لینک اول بخش مدیریت رو ببینه

marjane_abi
چهارشنبه 23 تیر 1389, 11:13 صبح
ممنون از دوستاني كه جوابم و دادن
و يه سوال ديگه
جدولي دارم كه بايد فيلد شمارنده بهش اضافه كنم
اين فيلد بايد به صورت auto increment باشه اما my sql بهم اجازه تعريف اين ويژگي رو براي فيلد شمارنده نميده و پيغام زير رو بهم ميده
پرس و جوي SQL:

ALTER TABLE `writers` CHANGE `id` `id` BIGINT( 20 ) NOT NULL AUTO_INCREMENT

پيغام MySQL :مستندات
#1075 - Incorrect table definition; there can be only one auto column and it must be defined as a key
توي اين جدول هيچ فيلد ديگه اي ندارم كه اين ويژگي رو داشته باشه
به نظرتون مشكل چيه
:متفکر:

Reza1607
چهارشنبه 23 تیر 1389, 11:27 صبح
فکر کنم که به خاطر فیلد کلیدت باشه البته فکر می کنم
برای من هم این مشکل پیش اومد اونم 3 - 4 بار ولی هردفعه یه کارایی کردم که یادم رفت چیجوری این مشکل حل شد

marjane_abi
چهارشنبه 23 تیر 1389, 11:56 صبح
آخه همه جوره امتحان كردم ولي جواب نداد!:گریه: