PDA

View Full Version : ايراد در Login



mehdi4467
شنبه 15 آبان 1389, 09:56 صبح
سلام
من براي Login به شكل زير عمل كرده ام.

ابتدا در صفحه ورود كاربر پس از ورود Username و Password با استفاده از خط زير اطلاعات را مي گيرم.


if(isset($_POST['send_login']))
{
login_true(get_param($_POST, "user"), get_param($_POST, "pass"));
}
تابع login_true به شكل زير است.


function login_true($user, $pass)
{
global $db;
if(validate_user($user, md5($pass)))
{
$login_result = $db->sql_query("SELECT * FROM `billing_user` WHERE `user_user`='$user' AND `user_pass`='".md5($pass)."'");
$show_result_in_array = $db->sql_fetcharray($login_result);
create_session("SUB_USER", $show_result_in_array["user_user"]);
create_session("SUB_USER_ID", $show_result_in_array["user_id"]);
redirector("desktop/index.php");
}
else
{
$GLOBALS['msg'] = send_error("نام کاربري يا رمز عبور اشتباه مي باشد");
}
}
?>

همانطور كه ميبينيد اگر كاربر اطلاعات را وارد كند بايد به صفحه desktop/index.php برود .

در صفحه desktop/index.php هم اينطور نوشته ام:


if(isset($_SESSION['SUB_USER'])) {
كدهاي ...
}
else
{
redirector("../index.php");
}

يعني اگر كسي وارد نشده بود برود به صفحه اول. ولي الان هركاري مي كنم نمي توانم وارد شوم.
نكته جالب اينجاست كه روي localhost ايرادي ندارد.

mehdi4467
شنبه 15 آبان 1389, 20:37 عصر
سلام
کسی می تونه کمک کنه؟

funpatogh
شنبه 15 آبان 1389, 21:02 عصر
این get_param چیه؟:متفکر:


if(isset($_POST['send_login']))
{
echo $_POST['user']." ".$_POST['pass'];
login_true(get_param($_POST, "user"), get_param($_POST, "pass"));
}

ببین اصلا چیزی پست میشه؟

mehdi4467
شنبه 15 آبان 1389, 21:42 عصر
این get_param چیه؟:متفکر:


if(isset($_POST['send_login']))
{
echo $_POST['user']." ".$_POST['pass'];
login_true(get_param($_POST, "user"), get_param($_POST, "pass"));
}
ببین اصلا چیزی پست میشه؟

سلام
فکر نمی کنم مشکل از این باشه.
سلام
من الان در یک هاست مجانی تست کردم اونجا هم مشکلی نداشت. من فکر می کنم هرچی باشه برمیگرده به سرور. آیا می دونید مشکل از کجاست؟

این سایتیه که مشکل داره:
myplc.ir

و اینهم سایت مجانی که مشکلی نداره:

http://www.myplc.300mb.us

funpatogh
شنبه 15 آبان 1389, 21:42 عصر
توی php 5 که من استفاده میکنم همچین تابعی وجود نداره get_param
جای این خط


login_true(get_param($_POST, "user"), get_param($_POST, "pass"));

بنویسید


login_true($_POST['user'],$_POST['pass']);
ببینید مشکل حل می شود

mehdi4467
شنبه 15 آبان 1389, 22:00 عصر
توی php 5 که من استفاده میکنم همچین تابعی وجود نداره get_param
جای این خط


login_true(get_param($_POST, "user"), get_param($_POST, "pass"));
بنویسید


login_true($_POST['user'],$_POST['pass']);
ببینید مشکل حل می شود

این کار رو کردم ولی مشکل حل نشد.
ضمن اینکه تابع get_param رو من خودم در فایل function.php به صورت زیر تعریف کرده ام:


function get_param($mod, $name)
{
return $mod[$name];
}

alonemm
یک شنبه 16 آبان 1389, 10:02 صبح
دوست من اگه کد شما خطایی نمیده شاید نمیتونه به صفحه مورد نظر هدایت بشه و از


redirector("../index.php");


باشه که توی هاست شما این تابع در فایل php.ini غیر فعال هست.
یک تست کن بعد از درست بودن نام کاربری و رمز عبور مثل یک متنی رو چاپ کن بین کدت کار میکنه.
فکر کنم از تابعی که گفتم باشه.

mehdi4467
سه شنبه 18 آبان 1389, 22:32 عصر
دوست من اگه کد شما خطایی نمیده شاید نمیتونه به صفحه مورد نظر هدایت بشه و از


redirector("../index.php");

باشه که توی هاست شما این تابع در فایل php.ini غیر فعال هست.
یک تست کن بعد از درست بودن نام کاربری و رمز عبور مثل یک متنی رو چاپ کن بین کدت کار میکنه.
فکر کنم از تابعی که گفتم باشه.

ممنون
تست کردم از همین مورد بود. حالا باید چکار کنم؟

funpatogh
چهارشنبه 19 آبان 1389, 01:21 صبح
این redirector از توابع php هست؟
جاش از

header("location: ../index.php");
استفاده کنید ببین حل میشه

xoogle.ir
چهارشنبه 19 آبان 1389, 08:20 صبح
از تابع header استفاده کنید فرمت صحیحش برای انتقال این هست :



header('location: ../index.php');
exit;