PDA

View Full Version : سوال: كد login به صورت محدود كردن افراد براي ديدن اطلاعات خود



davidrobert
جمعه 24 شهریور 1391, 10:21 صبح
سلام من براي كد ورود كاربران به صورت محدود مشكل داشتيم و ميخواستيم كه كسي وارد پنل شخصي خودش ميشه فقط بتونه اطلاعات شخصي خودش رو ببيني و نتونه اطلاعات شخصي ديگه رو ببيني خيلي ممنون ميشيم كمك كنيد من رو و همچنين ميخواستيم كسي كه عضو سايت هستش بتونه فايلي رو از سايتم دانلود كني ولي نباشه نتونه خيلي ممنون ميشيم كمك كنيد من رو.

lordofphp
جمعه 24 شهریور 1391, 11:04 صبح
سلام
خوب هستین؟
باید اینطوری کوئری بگیرید

select * from users where (username='".$username."') AND (Password='".$password."');

بعد اطلاعات استخراج میکنی از پایگاه داده
کوئری بالا میگه اطلاعات ریکورد های فیلدهای یوزرز بگیره طوری که یوزرنیم و پسورد دریافتی برابر هر یوزر بود اطلاعات هر یوزر نمایش بده
اینطوری کاربر یک اطلاعات خودش میبینه کاربر 2 هم اطلاعات خودش و کاربر 3 هم اطلاعات خودش کلا همه اطلاعات مخصوص به خودشون می بینن
درپناه وراه حق موفق و موید باشید
یا حق

davidrobert
جمعه 24 شهریور 1391, 15:48 عصر
سلام و خسته نباشيد و ممنون كه سوال من رو جواب داديد من اين كار رو انجام داديم ولي جواب نگرفتيم من با برنامه Dreamwaver داريم طراحي مكنيم كه خودش كد ها رو ميسازي و كد لاگين هم خودش ميسازي من قسمت كوري لاقين ورداشتيم داديم كد رو به اين صورت
<?php
// *** Validate request to login to this site.
if (!isset($_SESSION)) {
session_start();
}

$loginFormAction = $_SERVER['PHP_SELF'];
if (isset($_GET['accesscheck'])) {
$_SESSION['PrevUrl'] = $_POST['accesscheck'];
}

if (isset($_POST['txtuser'])) {
$loginUsername=$_POST['txtuser'];
$password=$_POST['txtpass'];
$MM_fldUserAuthorization = "";
$MM_redirectLoginSuccess = "user.php";
$MM_redirectLoginFailed = "safhyeasle.php";
$MM_redirecttoReferrer = true;
mysql_select_db($database_sdvp, $sdvp);

$LoginRS__query=sprintf("SELECT * FROM userjoin WHERE username='$loginUsername' AND password='$password'",
get_magic_quotes_gpc() ? $loginUsername : addslashes($loginUsername), get_magic_quotes_gpc() ? $password : addslashes($password));

$LoginRS = mysql_query($LoginRS__query, $sdvp) or die(mysql_error());
$loginFoundUser = mysql_num_rows($LoginRS);
if ($loginFoundUser) {
$loginStrGroup = "";

//declare two session variables and assign them
$_SESSION['MM_Username'] = $loginUsername;
$_SESSION['MM_UserGroup'] = $loginStrGroup;

if (isset($_SESSION['PrevUrl']) && true) {
$MM_redirectLoginSuccess = $_SESSION['PrevUrl'];
}
header("Location: " . $MM_redirectLoginSuccess );
}
else {
header("Location: ". $MM_redirectLoginFailed );
}
}
?>
ولي جواب نگرفتيم از نظر رفتن به صفحه كاربران جواب گرفتيم ولي صفحه كاربران يه ركود ساختيم و فيلتريش رو گذاشتيم روي نام كاربري كه كسي با اين نام كاربري وارد شد اطلاعاتش رو نشون بده ولي هيچ اطلاعاتي به هم نشون نداد و قسمت كوري كدش هم همون طوري كه گفتيد گذاشتيم ولي هيچ اطلاعاتي رو نيورد ممنون ميشيم به صورت توليد كد برنامه دريو ويور به هم بگيد كه من وقتي لاگين رو ساختيم در صفحه كاربران چي رو انتخاب كنيم موگي ساختن ركود با دستورات خود دريو ويور كه باعث بيشه فقط همون اطلاعات رو كه ميخوام نشون بده وقت كاربري كه وارد صفحه شخصي خودش بيشه اطلاعات خودش رو ببينه من با دريو ويور 8 داريم كار مكنيم چون سيستيم با دريو ويور بالا ناسازگار اين گفتيم شايد توليد كدي كه دريو ويور 8 ميكني متفاوت باشي با برنامه هاي ديگه ممنون ميشيم من رو با دستورات خود دريور ويور كمك كنيد و بگيم من كدام ها رو هنگام ساختن ركور انتخاب كنيم كه كه وقتي من تو صفحه ورود نام كاربري رو مديم در صفحه كاربرنام همان اطلاعات كاربر رو ببنيم ممنون ميشيم من رو با دستورات كد دريو ويور كمك كنيد من براي ساختن كد لاگين به صورت محدود همه كار كرديم ولي هيچ جوري نتونستيم جواب بگريم ممنون ميشيم من رو كمك كنيد با دستورات خود دريو ويور كه بتونيم جواب بگريم خيلي ممنون ميشيم.
و اين هم دستورات كه در صفحه كاربران وارد كرديم كه خود دريو ويور ساختي هستش ولي هيچ چيز رو نيشون نميده.
<?php require_once('Connections/sdvp.php'); ?>
<?php
$colname_Recordset1 = "-1";
if (isset($_GET['username'])) {
$colname_Recordset1 = (get_magic_quotes_gpc()) ? $_POST['username'] : addslashes($_POST['password']);
}
mysql_select_db($database_sdvp, $sdvp);
$query_Recordset1 = "SELECT * FROM userjoin WHERE username = 'username' and password ='password'";
$Recordset1 = mysql_query($query_Recordset1, $sdvp) or die(mysql_error());
$row_Recordset1 = mysql_fetch_assoc($Recordset1);
$totalRows_Recordset1 = mysql_num_rows($Recordset1);
?><!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>Untitled Document</title>
</head>

<body>
<table border="1">
<tr>
<td>id</td>
<td>name</td>
<td>family</td>
<td>sex</td>
<td>age</td>
<td>emial</td>
<td>username</td>
<td>password</td>
</tr>
<?php do { ?>
<tr>
<td><?php echo $row_Recordset1['id']; ?></td>
<td><?php echo $row_Recordset1['name']; ?></td>
<td><?php echo $row_Recordset1['family']; ?></td>
<td><?php echo $row_Recordset1['sex']; ?></td>
<td><?php echo $row_Recordset1['age']; ?></td>
<td><?php echo $row_Recordset1['emial']; ?></td>
<td><?php echo $row_Recordset1['username']; ?></td>
<td><?php echo $row_Recordset1['password']; ?></td>
</tr>
<?php } while ($row_Recordset1 = mysql_fetch_assoc($Recordset1)); ?>
</table>
</body>
</html>
<?php
mysql_free_result($Recordset1);
?>
با تشكر و خسته نباشيد.

lordofphp
جمعه 24 شهریور 1391, 16:19 عصر
به نام خدا
سلام دوست عزیز خودت بنویس
آماتور کار نکن
اول یوزرنیم و پس ورد از کاربر میگیری بعد با کوئری که گفتم چک می کنی بعد اطلاعات از پایگاه داده با استفاده از کوئری میکشی بیرون بعد یوزنریم تو متغییر سشن قرار میدی می کنی مثلا:


@$username=$_POST['username'];
@$password=$_POST['password'];
mysql_query("SET NAMES 'utf8'");
mysql_query("SET CHARACTER SET 'utf8'");
mysql_query("SET SESSION collation_connection = 'utf8_persian_ci'");
$result=mysql_query("Select * From client Where (username='".$username."') AND (password='".$password."') ");
if(!$result)
die(mysql_error());
while($data=mysql_fetch_assoc($result)){
$_SESSION['valid_user']=$username;
header('Location: home.php');// میگه انتقال بده به صفحه هوم( )
بعد تو صفحه home ما باید اول چک کنیم طرف لاگین کرده یا نه
if(!isset($_SESSION['valid_user'])){
die('هنوز وارد نشده اید')
بعد تو صفحه پنل اطلاعات بکش بیرون مثلا $data['name'];
البته کدهای وایل باید بنویسی مثل بالا
البته این کار امنیتش خیلی خوب نیس باید از روش رمزنگاری استفاده کنی

درپناه و راه حق موفق و موید باشی
یا علی

davidrobert
شنبه 25 شهریور 1391, 11:38 صبح
سلام ممنون بابت كمكي تون چون خوديم هيچ جور جواب نميگرفتيم با كد نوشتن و با خطا مواجع ميشوديم بخاطر همين مجبور بوديم از كد هاي خودش استفاده كنيم.

s.mhb71
چهارشنبه 22 مرداد 1393, 20:00 عصر
با سلام
من دارم یه سایت مدرسه طراحی میکنم و یه کد نوشتم که هر دانش آموز وقتی وارد پرتال خودش میشه بتونه نمرات مربوط به خودش ببینه ولی متاسفانه کدم کار نمیکنه خواهش میکنم راهنماییم کنید نیاز فوری دارم .اینم کدش :








<table width="277" height="30" border="1" align="center">
<tr>
<th width="59" height="24">نمره</th>
<th width="59">نام درس</th>
<th width="137">کد درس</th></tr>
<?php
$id=$_SESSION['n'];
mysql_connect("localhost","root","");
mysql_query("set names 'utf8'");
mysql_select_db("dbclass");
$sq=mysql_query("select * from student s , course c, register r where r.cno=c.cno and r.stno=s.stno and s.stno='$id' ")or die (mysql_error());
while($row=mysql_fetch_assoc($sq)){
echo "<tr><td>$row[grade]</td><td>$row[cname]</td><td>$row[cno]</td></tr>";
}
?>
</table

s.mhb71
پنج شنبه 23 مرداد 1393, 09:20 صبح
کسی نمیتونه راهنماییم کنه؟
باید یه تاپیک دیگه بزنم؟

s.mhb71
پنج شنبه 23 مرداد 1393, 18:56 عصر
یعنی توی این سایت با این همه کاربر متخصص یک نفر نمیتونه جواب منو بده؟

mokhtasatxyz
پنج شنبه 23 مرداد 1393, 20:47 عصر
سلام
مختصر مطالبی دراین باره نوشته بودم
متوجه نشدید خصوصی اطلاع دهید
http://barnamenevis.org/showthread.php?459106-نمایش-اطلاعات-یوزر-ها-در-PHP&p=2054926#post2054926