PDA

View Full Version : سوال: پسورد گذاری در php



viiictor
چهارشنبه 13 فروردین 1393, 23:43 عصر
با سلام خدمت برنامه نویسان عزیز

من روی یک بخش از سایت که دارای یک فایل به اسم upload.php هست میخوام پسورد بزارم ! و در php مبتدی به حساب میام !!!


<?php
$user = $_POST['user'];
$pass = $_POST['pass'];

if($user == "test"
&& $pass == "test")
{
include("upload.php");

}
else
{
if(isset($_POST))
{?>
<center>
<form method="POST" action="index.php">
User <input type="text" name="user"></input><br/>
Pass <input type="password" name="pass"></input><br/>
<input type="submit" name="submit" value="Go"></input>
</form>
</center>
<?}
}
?>


این رو داخل صفحه ای به اسم index.php نوشتم که بعد از وارد کردن یوزر نیم و پسورد فایل upload.php اینکلود بشه!

اما اینطوری اگه کسی بدونه اسم فایلی که قراره بهش هدایت بشه upload.php هست بدون یوزر پس میتونه وارد صفحه بشه !

آیا راهی هست که بتونم صفحه upload.php رو داخل صفحه index.php به صورت iframe و بعد از وارد کردن یوزر پس نمایش بدم ؟

یا راه دیگری که بدون یوزر پس کسی وارد upload.php نتونه بشه !

thacker
پنج شنبه 14 فروردین 1393, 00:01 صبح
در ابتدای این صفحه باید چک کنید که آیا کسی که وارد این صفحه شده از طریق فرم ورود اقدام کرده یا خیر. در صورتی که جواب خیر بود به صفحه دیگری انتقال داده شود.

[younes]
پنج شنبه 14 فروردین 1393, 00:13 صبح
نظر شخصی=>شما باید در ابتدای صفحه ی upload.php یه پروسه ی تشخیص هویت در نظر بگیری که سطح دسترسی کاربر رو تشخیص بده بعد صفحه رو در اختیارش بزاره

viiictor
پنج شنبه 14 فروردین 1393, 01:37 صبح
در ابتدای این صفحه باید چک کنید که آیا کسی که وارد این صفحه شده از طریق فرم ورود اقدام کرده یا خیر. در صورتی که جواب خیر بود به صفحه دیگری انتقال داده شود.

با سلام و تشکر از شما
در صورت امکان کدی که این بررسی رو انجام میده رو برام قرار بدید (همونطور که عرض کردم در php مبتدی هستم)

thacker
پنج شنبه 14 فروردین 1393, 05:24 صبح
برای مثال در صفحه ورود ، زمانی که کاربر اطلاعات رو به درستی وارد کرد یک سشن با مقدار مشخص ایجاد میکنید.

$_SESSION['user']=$username
سپس کاربر رو به صفحه آپلود منتقل میکنید.

header ("Location: ulpoad.php");

در صفحه آپلود هم باید چک کنید که سشن مربوط به کاربر موجود هست یا خیر و اگه سشن موجود نبود کاربر رو به صفحه ورود هدایت کنید.

if ( isset($_SESSION['user']) ) {

/// Upload.Php

} else {

header ("Location: login.php");

}

viiictor
پنج شنبه 14 فروردین 1393, 13:43 عصر
با سلام و تشکر از شما


<?php
$user = $_POST['user'];
$pass = $_POST['pass'];



if($user == "test"
&& $pass == "test")
{
$_SESSION['user']=$user
header ("Location: ulpoad.php");
}
else
{
if(isset($_POST))
{?>
<center>
<form method="POST" action="index.php">
User <input type="text" name="user"></input><br/>
Pass <input type="password" name="pass"></input><br/>
<input type="submit" name="submit" value="Go"></input>
</form>
</center>
<?}
}
?>

این رو هم اول فایل آپلود قرار دادم :




if ( isset($_SESSION['user']) ) {

/// Upload.Php

} else {

header ("Location: index.php");

}


من کد هایی که دادید رو داخل if در index.php قرار دادم

و پد بررسی سشن رو هم داخل فایل upload.php اما ایندکس به صورت صفحه سفید میاد و آپلود هم معمولی باز میشه بعد از گذاشتن کد سشن!

[younes]
پنج شنبه 14 فروردین 1393, 16:04 عصر
شما باید پیش از این که از سشن ها استفاده کنی باید اون رو شروع کنی

با استفاده از تابع سشن استارت

viiictor
پنج شنبه 14 فروردین 1393, 16:12 عصر
ممنون

ممکنه کد هایی که بتونم ازش جواب بگیرم رو برام بزارید ؟

یعنی این کد رو اول هر دو فایل اضافه کنم تمومه ؟


session_start();

viiictor
پنج شنبه 14 فروردین 1393, 16:25 عصر
این کد در هر دو فایل قبل از $_SESSION ها قرار دادم اما تغییری ایجاد نشد

thacker
پنج شنبه 14 فروردین 1393, 17:27 عصر
صفحه اصلی باید به این صورت باشد :

<?php
session_start();
if(isset($_POST))
{
$user = $_POST['user'];
$pass = $_POST['pass'];

if($user == "test" && $pass == "test")
{
$_SESSION['user']=$user
header ("Location: ulpoad.php");
}
} else {
?>
<center>
<form method="POST" action="index.php">
User <input type="text" name="user"></input>
Pass <input type="password" name="pass"></input>
<input type="submit" name="submit" value="Go"></input>
</form>
</center>
<?php
}
?>

viiictor
پنج شنبه 14 فروردین 1393, 18:57 عصر
عینا همین کدی که دادید رو در فایل index.php کپی کردم :

http://iranian-group.ir/up/

هنوز صفحه سفیده و فیلد های یوزر پس نمیاد

thacker
پنج شنبه 14 فروردین 1393, 19:17 عصر
<?php
session_start();
if(isset($_POST['submit']))
{
$user = $_POST['user'];
$pass = $_POST['pass'];

if($user == "test" && $pass == "test")
{
$_SESSION['user']=$user;
header ("Location: ulpoad.php");
}
} else {
?>
<center>
<form method="POST" action="">
User <input type="text" name="user"></input>
Pass <input type="password" name="pass"></input>
<input type="submit" name="submit" value="Go"></input>
</form>
</center>
<?php
}
?>

hamedarian2009
پنج شنبه 14 فروردین 1393, 19:24 عصر
عینا همین کدی که دادید رو در فایل index.php کپی کردم :

http://iranian-group.ir/up/

هنوز صفحه سفیده و فیلد های یوزر پس نمیاد
این کد دارای synatax error هست اینطوری که من میگم تغییرش بدین
خط 3 باید اینجوری باشه
if(isset($_POST['submit']))
خط 11 باید آخر دستور سمی کالن گزاشته بشه
$_SESSION['user']=$user;

Mohammadsgh
پنج شنبه 14 فروردین 1393, 21:24 عصر
اگر امکانش هست سورس کدتون رو بزارید بررسی شه

viiictor
جمعه 15 فروردین 1393, 01:12 صبح
اگر امکانش هست سورس کدتون رو بزارید بررسی شه

دوست خوبم سورس در پست اول موجود هست !

viiictor
جمعه 15 فروردین 1393, 01:23 صبح
اگر ممکن هست کدی که در فایل مقصد باید قرار بدم برای بررسی وارد شدن کاربر رو هم بگید

thacker
جمعه 15 فروردین 1393, 01:25 صبح
if ( isset($_SESSION['user']) ) {
/// کدهای مربوط به صفحه
} else { header ("Location: index.php"); }

viiictor
جمعه 15 فروردین 1393, 01:27 صبح
<?php
session_start();
if(isset($_POST['submit']))
{
$user = $_POST['user'];
$pass = $_POST['pass'];

if($user == "test" && $pass == "test")
{
$_SESSION['user']=$user;
header ("Location: ulpoad.php");
}
} else {
?>
<center>
<form method="POST" action="">
User <input type="text" name="user"></input>
Pass <input type="password" name="pass"></input>
<input type="submit" name="submit" value="Go"></input>
</form>
</center>
<?php
}
?>



این کد دارای synatax error هست اینطوری که من میگم تغییرش بدین
خط 3 باید اینجوری باشه
if(isset($_POST['submit']))
خط 11 باید آخر دستور سمی کالن گزاشته بشه
$_SESSION['user']=$user;

ممنون ازتون دوستان مشکل سفید بودن درست شد الان بعد از یوزر و پس وارد upload.php میشه
فقط اگه بفرمائید چطوری در فایل بعدی سشن ها رو برای لاگین بودن کاربر برسی کنم ممنون میشم :ایکس

viiictor
جمعه 15 فروردین 1393, 01:36 صبح
if ( isset($_SESSION['user']) ) {
/// کدهای مربوط به صفحه
} else { header ("Location: index.php"); }



اقا من همینطور که گفتین + Session_start(); رو گذاشتم اول صفحه

و اخر اخر صفحه هم
} else { header ("Location: index.php"); }
گذاشتم
اما باز صفحه سفید میشه

اینم بگم فایل کلی کد php و html داره ! اخر صفحه هم با html تموم میشه !

اشتباهم کجا بوده ؟

thacker
جمعه 15 فروردین 1393, 01:41 صبح
تاپیک شماره 17 رو مشاهده کنید دوست عزیز

viiictor
جمعه 15 فروردین 1393, 01:44 صبح
117588

این هردو فایل هست که ضمیمه کردم

فایل ایندکس یوزر پس رو میخواد و اگه درست باشه اپلود رو باز میکنه
((اما اگه غلط باشه باز سفید میشه !!!))

فایل آپلود هم میخوام توش سشن بررسی بشه که یوزر وارد شده یا همینطوری اومده !

نفهمیدم باید کجای فایل قرار بدم

thacker
جمعه 15 فروردین 1393, 02:02 صبح
ضمیمه شد ...

viiictor
جمعه 15 فروردین 1393, 02:08 صبح
خیلی ممنون بابت زحمتی که کشیدید

اما فایل upload سفید میاد

چه یوزر پس زده باشیم که مستقیم وارد شیم

thacker
جمعه 15 فروردین 1393, 02:20 صبح
روی لوکال به درستی کار میکنه ...
فکر کنم به خاطر تنظیمات هاستتون این مشکل وجود داره ...
بعضی از قسمت ها که با <? شروع شده رو با <?php تعویض کنید و بخش هایی که مثل Else و If نوشته شده اند رو با حروف کوچک ویرایش کنید ... if و else ... احتمالا درست میشه.

thacker
جمعه 15 فروردین 1393, 02:23 صبح
بجای = هم از echo استفاده کنید. یا اینکه تگ های کوتاه رو بگید براتون روی هاست فعال کنند.
short_open_tag = on

viiictor
جمعه 15 فروردین 1393, 03:16 صبح
روی لوکال به درستی کار میکنه ...
فکر کنم به خاطر تنظیمات هاستتون این مشکل وجود داره ...
بعضی از قسمت ها که با <? شروع شده رو با <?php تعویض کنید و بخش هایی که مثل Else و If نوشته شده اند رو با حروف کوچک ویرایش کنید ... if و else ... احتمالا درست میشه.

تمام مساوی ها رو با echo جایگزین کنم یعنی :O


بجای = هم از echo استفاده کنید. یا اینکه تگ های کوتاه رو بگید براتون روی هاست فعال کنند.
short_open_tag = on

اگه دقت کنین فایل اپلود خودش دارای پسورد بود
خوبم کار میکرد تا هاستینگ ورژن php سرورش رو Update کرد
هرچی میگم بعد از اپدیت شما این اتفاق افتاده میگه نه مربوط به کدنویسی هست !
به هر حال خیلی خیلی ممنونم دوست عزیز

viiictor
جمعه 15 فروردین 1393, 03:19 صبح
شما الان روی لوکال تست کردی upload.php بدون یوزر پس نمیومد بالا ؟ با یوزر پس سفید نمیشد ؟

thacker
جمعه 15 فروردین 1393, 03:33 صبح
بدون یوزر پس میومد ، اما ادیتش کردم که دایرکت بشه به صفحه اصلی ... وقتی یوزر پس رو وارد کنید صفحه آپلود باز میشه.
اگه هم یوزر پس رو اشتباه وارد کنید بجای صفحه سفید پیام خطا میده.

thacker
جمعه 15 فروردین 1393, 03:36 صبح
ببخشید فراموش کردم توی صفحه آپلود session_start(); رو بزارم

viiictor
جمعه 15 فروردین 1393, 12:08 عصر
اول صفحه بعد از تگ شروع پی اچ پی بزارمش درسته ؟

viiictor
جمعه 15 فروردین 1393, 12:08 عصر
خیلی خیلی هم ممنونم واسه زحمتی که کشیدین
به هاستینگ گفتم شرت تگ رو روشن کنه !
شما ببخشید که زحمتتون دادم

viiictor
جمعه 15 فروردین 1393, 12:15 عصر
سشن استارت رو قبل از کدی که گذاشته بودین گذاشتم ممنون درست شد
فقط اینکه اگه بدون یوزر پس ادرس upload.php باز بشه صفحه سفید میاد اگه یوزر پس باشه اپلود به درستی میاد که همین برای من عالیه و ریدایرکت شدن چندان اهمیتی نداره
خیلی زحمت کشیدین

***BiDaK***
جمعه 15 فروردین 1393, 12:58 عصر
ابتدای صفحه ی upload.php بعد از session_start چک کنید که سشن وجود داره یا نه تا اگر وجود نداشت ریدایرکت شه به یک صفحه ی دیگه:

if (!isset($_SESSION['x'])){ header('location: login.php');}