PDA

View Full Version : سوال: برنامه نویسان php!کمک کنید



lordofphp
یک شنبه 06 شهریور 1390, 14:13 عصر
با سلام ویژه خدمت به برنامه نویسان گرامی

باعرض پوزش بنده چندتا سوال داشتم

اول:

من دارم یک سیستم میسازم (مدارس) که هر فرد با وارد شدن اطلاعات خودش را در صفحه ای مثلا زیر ببیند

home.php

توجه هر فرد اطلاعات خود را (از طریق sql) در صفحه home.php ببیند باید چه کار کنم.

راستی برای طراحی از دریم ویور استفاده می کنم
لازم به ذکر که صحه پویا وبه مای اس کیو ال وصل می شه اما مشکل من اینه:
که کاربر x وقتی وارد میشه فرم x می بینه
و وقتی کاربرy وارد می شه فرم x می بینه
من می خواهم کاربر x اطلاعات خود ش تو صفحه home .php ببینه و کاربر y هم اطلاعات خودش در در صفه home.php ببینه
میشه کمک کنید

mehr1362
یک شنبه 06 شهریور 1390, 14:55 عصر
با سلام.
اول یک صفحه login بسازید که 'action='home.php باشد.
و داخل home.php به این شکل کویری بگیرید

$query=mysql_query("SELECT * FROM login where password='$password' and username='$username'");

lordofphp
یک شنبه 06 شهریور 1390, 15:05 عصر
بعد هر کی وارد بشه اطلاعات خودش می بینه و مشکل حله؟

mehr1362
یک شنبه 06 شهریور 1390, 15:12 عصر
فکر کنم اینجوری مشکل حل بشه با این کویری بهش میگی جایی کلیک کن که username , password همونیه که توی صفحه login وارد کرده پس باید مشکل حل بشه.

lordofphp
یک شنبه 06 شهریور 1390, 15:29 عصر
میشه یکم توضیح بدی صفحه home.php باید چطوری بسازم
یایه سورس بزاری
ممنون میشم

mehr1362
یک شنبه 06 شهریور 1390, 15:52 عصر
این یه کد خیلی ساده هستش ولی قابل فهم اگه جاییشو متوجه نشدی بگو
login.html

<form action="home.php" method="post">
<table>
<tr>
<td>نام کاربری:<input type="text" name="username" /></td>
</tr>
<tr>
<td>رمز عبور:<input type="password" name="password" /></td>
</tr>
<tr>
<td><input type="submit" value="ورود"/></td>
</tr>
</table>
</form>
home.php

include("dbConnect.php");
if(isset ($_REQUEST['username']) && ($_REQUEST['password']))
{
$username=$_REQUEST['username'];
$password=$_REQUEST['password'];
$passHash=md5($password);
$query=mysql_query("SELECT * FROM login where password='$passHash' and username='$username'");
$row=mysql_fetch_array($query);
echo $row['id']."&nbsp;".$row['email'];

}
dbConnect.php

$sql=mysql_connect("localhost","root","");
if(!$sql){
die("ERROR : " . mysql_error());
}
mysql_select_db("persons",$sql);

lordofphp
یک شنبه 06 شهریور 1390, 19:29 عصر
به نام خدا
فقط یه سوال من تو دیتابیس برای لوگین باید یه جدول جدا بسازم یا برای نمایش نمرات و اطلاعات کاربری مثل رمز عبور و نام کاربری رو تو یه جدول جا کنم

mehr1362
یک شنبه 06 شهریور 1390, 22:34 عصر
اگر اطلاعاتتون خیلی زیاد نیست همه رو داخل یه جدول بگذارید

mlf_mlv
دوشنبه 07 شهریور 1390, 04:57 صبح
البته دوستمون فقط راه حل رو گفت ها، عین این کد ها رو استفاده نکنید، اینها فقط مثالن.. مشکل امنیتی دارن

amin1softco
دوشنبه 07 شهریور 1390, 10:00 صبح
والا کی پسورد رو همینجوری تو پایگاه ذخیره می کنه برای پسوردش فقط اول هر وقت یوزر ثبت نام کرد یک رشته تصادقی به طول دلخواه براش ایجاد کنید به اسم salt و بریزیدش تو پایگاه بعد با استفاده از توابع هش مثل sha1 یا md5 اونا رو هش کنیدمثلاً


$hash = md5(md5($salt).sha1($pass));
و بعد همینو در پایگاه ذخیره کنید و هر وقت یورز خواست لاگین کنه اگه یوزر نیم در پایگاه بود salt رو از پایگاه بخونید و پسوردش رو دوباره به همین روش هش کنید و مقایسه کنید برای امنیت بیشتر تعداد سطر هایی که در پایگاه برگشت داده می شه باید حتماً برابر 1 باشه نه بیشتر......

lordofphp
دوشنبه 07 شهریور 1390, 10:12 صبح
میشه درمورد امنیت بیشتر توضیح بدید من دارم این اسکریپت برای مدرسه میسازم البته تاحدودی باphp کار کردم و حتی الان هاست لینوکس و ویندوز می دهم
از نظرسرور امنیت بالا فقط در مرود امنیت بیشتر توضیح بدید

mehr1362
دوشنبه 07 شهریور 1390, 10:20 صبح
با سلام.
من بالای کد هم نوشتم که مثال خیلی ساده هست.میخواستم فقط روال کار رو ببینند.
اگر میخواین از لحاظ امنیتی روش کار کنید باید از session استفاده کنید.

lordofphp
دوشنبه 07 شهریور 1390, 13:25 عصر
خوب چطوری از سشن استفاده کنم
اگه میشه کد یا سورس بزارید

mehr1362
دوشنبه 07 شهریور 1390, 15:37 عصر
این کدی که ضمیمه کردم رو داخل همین انجمن دید
http://barnamenevis.org/showthread.php?200223-%D9%85%D8%B4%D9%83%D9%84-%D8%A8%D8%A7-session-%D8%A8%D8%B1%D8%A7%D9%8A-%D8%AA%D8%A7%D8%B2%D9%87-%D9%88%D8%A7%D8%B1%D8%AF
فقط به دیتا بیس وصلش کردموامیدوارم مشکلتون حل بشه

armsoftpc
دوشنبه 07 شهریور 1390, 18:59 عصر
به نام خدا
با سلام به همه ی دوستان
دوست عزیز lordofphp ، شما معلومه که خیلی مبتدی هستید!(البته ببخشید نظرم رو عرض می کنم)، شما کتاب php/mysql انتشارات نص رو بخون همه چی دستت می یاد. این کتاب یکی از کامل ترین کتب آموزش php است.:متفکر:
موفق باشید.

mlf_mlv
دوشنبه 07 شهریور 1390, 21:09 عصر
برای ذخیره تو دیتابیس همونطور که دوستمون گفت باید پسورد رو رمزگذاری غیر قابل برگشت کنی، حتی رمزگذاری برگشت پذیر بقیه ی اطلاعات هم خالی از لطف نیست، چون هم احتمال حمله هکر کم می شه، هم به فرض این که به پایگاه داده شما دسترسی پیدا کنه با یه مشت اطلاعات رمز شده رو به روه..
هیچ وقت اطلاعاتی که با $_POST یا $_GET گرفتی رو مستقیما تو کوری sql شرکت نده، شاید این اطلاعات کدهای مخرب باشن. اطلاعات رو هم از نظر طول و اندازه، هم نوع چک بکن. داخل یه فیلد عددی نباید اجازه ارسال اطلاعات رشته ای داده بشه. طول اطلاعات ارسالی باید با سایزی که توی پایگاه دادت براش اختصاص دادی همخونی داشته باشه. اگر توی دیتابیس 256 بایت فضا داری نباید بذاری کاربر 1024 بایت اطلاعات بفرسته.
و در کل حداقل ابتدایی ترین روش هک یعنی ورود ' رو امتحان کن!! اگر دیتابیست ارور داد بدون یه بچه دبستانی هم می تونه هکت کنه!!:لبخند: