PDA

View Full Version : مشكل در Login



hessam abjam
پنج شنبه 11 شهریور 1389, 17:40 عصر
سلام من مي خواهم بدانم چرا اين كد Login كه براي سايتم نوشتم كار نمي كند نام كاربري و رمز درست است ولي باز هم وارد نمي شود كمكم كنيد ممنون ميشم
متن كد:

<?php
// connecting to database
mysql_connect("localhost", "root");
mysql_select_db("karyabi");
// configing mysql to read and write in UTF-4
mysql_query("SET CHARACTER SET utf8");
mysql_query("SET SESSION collation_connection = 'utf8_unicode_ci'");
// start caching page before sending
ob_start();

// defing consts
// define("NEW_ITEM", -1);


if($_POST['btnlogin'])
{
#Import data into variables
$user=$_POST['txtuser'];
$pass=$_POST['txtpass'];

#No empty text
if(($user=="") or ($pass==""))
{
die("نام كاربري يا گذرواژه را صحيح وارد كنيد");
}

#To protect SQL Injunction
$user=stripslashes($user);
$pass=stripslashes($pass);
$user=mysql_real_escape_string($user);
$pass=mysql_real_escape_string($pass);

#Query
$sql="select * from manager where 'pass'='$pass' and 'user'='$user'";
$res=mysql_query($sql);
$num=mysql_num_rows($res);

#Check user name and password
if($num==1)
{
session_register("user");
session_register("pass");
header("Location:Manage.php");
}
else
{
header("Location:Login.php");
}
}
ob_end_flush();

sama01
پنج شنبه 11 شهریور 1389, 17:54 عصر
1.
به چشم ما رحم کن و کدهات رو بین تگ‌ها php قرار بده. (کل برنامه را انتخاب کن و از نوار ادیتور، php رو انتخاب کن تا برنامه‌ات خوانا بشه.)

2.
مشکلت چی هست؟

3.
چرا session را start نکردی؟

AbiriAmir
پنج شنبه 11 شهریور 1389, 18:49 عصر
سلام من مي خواهم بدانم چرا اين كد Login كه براي سايتم نوشتم كار نمي كند نام كاربري و رمز درست است ولي باز هم وارد نمي شود كمكم كنيد ممنون ميشم




متن كد:


<?php
// connecting to database
mysql_connect("localhost", "root");
mysql_select_db("karyabi");
// configing mysql to read and write in UTF-4
mysql_query("SET CHARACTER SET utf8");
mysql_query("SET SESSION collation_connection = 'utf8_unicode_ci'");
// start caching page before sending
ob_start();


// defing consts
// define("NEW_ITEM", -1);



if($_POST['btnlogin'])
{
#Import data into variables
$user=$_POST['txtuser'];
$pass=$_POST['txtpass'];


#No empty text
if(($user=="") or ($pass==""))
{
die("نام كاربري يا گذرواژه را صحيح وارد كنيد");
}


#To protect SQL Injunction
$user=stripslashes($user);
$pass=stripslashes($pass);
$user=mysql_real_escape_string($user);
$pass=mysql_real_escape_string($pass);


#Query
$sql="select * from manager where 'pass'='$pass' and 'user'='$user'";
$res=mysql_query($sql);
$num=mysql_num_rows($res);


//C#‎‎‎heck user name and password


if($num==1)
{
session_register("user");
session_register("pass");
header("Location:Manage.php");
}
else
{
header("Location:Login.php");
}
}
ob_end_flush();



اول اینکه همونطور که گفتن سشن رو استارت نکردین
دوم اینکه روش لاگینتون مشکل امنیتی داره
پسورد رو نباید تو کوئریتون چک کنید
سوم اینکه خب اطلاعاتتون رو تو سشن وارد نکردین


کد اصلاح شده:

<?php

session_start();

// connecting to database
mysql_connect("localhost", "root");
mysql_select_db("karyabi");
// configing mysql to read and write in UTF-4
mysql_query("SET CHARACTER SET utf8");
mysql_query("SET SESSION collation_connection = 'utf8_unicode_ci'");
// start caching page before sending
ob_start();

// defing consts
// define("NEW_ITEM", -1);


if($_POST['btnlogin'])
{
#Import data into variables
$user=$_POST['txtuser'];
$pass=$_POST['txtpass'];

#No empty text
if(($user=="") or ($pass==""))
{
die("نام كاربري يا گذرواژه را صحيح وارد كنيد");
}

#To protect SQL Injunction
$user=stripslashes($user);
$pass=stripslashes($pass);
$user=mysql_real_escape_string($user);
$pass=mysql_real_escape_string($pass);

#Query
$sql="select * from manager where 'user'='$user'";

$res=mysql_query($sql);

$a = mysql_fetch_array($res);

$num=mysql_num_rows($res);

//C#‎‎‎heck user name and password
if($num==1 && a['pass'] == $pass)
{
//session_register("user");
//session_register("pass");
$_SESSION['user'] == $user;
$_SESSION['pass'] == $pass;
header("Location:Manage.php");
}
else
{
header("Location:Login.php");
}
}
ob_end_flush();


و مورد آخر:
اگه مشکلتون حل شد تشکر یادتون نره :لبخند:

hessam abjam
پنج شنبه 11 شهریور 1389, 19:51 عصر
مهندس ممنون از راهنماييت اما هنوز همون جوريه!!!:ناراحت:

sama01
پنج شنبه 11 شهریور 1389, 21:35 عصر
همون جوریه یعنی چی؟
مشکل دقیقا چیه؟
شما چه طوری لاگین بودن رو چک می‌کنی؟

صورت مساله هنوز روشن نیست.

(هنوز کدهای پست اول رو درست نکردی‌ها!!!)

hessam abjam
جمعه 12 شهریور 1389, 13:39 عصر
وقتي من كد رو اجرا مي كنم هيچ جا نمي ره انگار كه هيچ كدي درونش نوشته نشده مشكل من اينه

sama01
جمعه 12 شهریور 1389, 19:21 عصر
خوب شما یه کاری کن.
در نقاط مهم برنامه، یک رشته‌ای را echo کن که در زمان اجرا ببینیم برنامه تا کجا پیش می‌ره.
این یک تکنیک ساده و سریع برای بررسی روند اجرای برنامه است.
همچنین error_reporting را موقتا روی E_ALL تنظیم کنید تا تمام تمام خطاهای احتمالی برنامه را نمایش دهد.

دوست عزیز لطف کنید کدهاتون رو در تگ php بگذارید که خوانا شود. کار 5 ثانیه هم نیست.

hessam abjam
شنبه 13 شهریور 1389, 12:12 عصر
شايد عجيب باشد اما مشكل اينجاست كه دكمه اي عمل Login را انجام مي دهد كار نمي كند كد ايراد ندارد ايراد از دكمه اي است كه درآن كد قرار داده ام!! فكر اين يكي رو نكرده بودم!

sama01
شنبه 13 شهریور 1389, 18:38 عصر
شما که فقط می‌گید کار نمی‌کنه.
ببنید username و password اصلا ارسال می‌شه یا نه.
همان ابتدای صفحه username و password رو echo کنید ببینید هستند یا نه.
اگر نیستند، یقینا مشکل در صفحه‌ی فرمه.
ببینید type دکمه‌ی شما submit هست یا نه!!!

hessam abjam
یک شنبه 14 شهریور 1389, 17:32 عصر
مشكل در شرط آخر هست شما حتي اگر درست هم نام كاربري و رمز عبور را تايپ كنيد باز هم شرط else اجرا مي شود و وارد صفحه نمي شود . مسئله اين است!!!!!! :عصبانی++:
--------------------
دكمه از نوع submit است. مشكل در شرط آخر هست شما حتي اگر درست هم نام كاربري و رمز عبور را تايپ كنيد باز هم شرط else اجرا مي شود و وارد صفحه نمي شود . مسئله اين است!!!!!! :عصبانی++:

AbiriAmir
یک شنبه 14 شهریور 1389, 17:52 عصر
1- اون خط اس کیو ال رو اینجوری اصلاح کنید:

$sql="select * from manager where user='$user'";
2- شما رو لوکال هاست کار میکنید، اگه آره با چه نرم افزاری؟
اگر امکانش هست روی یک سرور دیگه امتحان کنید

sama01
یک شنبه 14 شهریور 1389, 20:04 عصر
خوب پس اگر username و password رو در یافت می‌کنی و تا اون شرط آخر هم می‌رسی، پس مشکل 100٪ در sql شما است. ببینید ایراد کا چیه.
چند نمونه کد ببینید و بررسی کنید آیا sql شما استاندارد است.
حتی می‌تونید همین sql رو در phpmyadmin وارد کنید ببیند مشکل نداشته. تغییری رو که AmirBeginner (http://www.barnamenevis.org/forum/member.php?u=113758) نوشتند را اعمال کنید. اصولا شما نباید نام فیلد را بین ' قرار دهید. (می‌توانید از ` استفاده کنید.)

hessam abjam
یک شنبه 14 شهریور 1389, 20:07 عصر
بله من در لوكال هاست با نرم افزار Xampp كار مي كنم. اون خط اس كيو ال دقيقاً نوشته شده است. اما...

AbiriAmir
پنج شنبه 18 شهریور 1389, 14:59 عصر
بله من در لوكال هاست با نرم افزار Xampp كار مي كنم. اون خط اس كيو ال دقيقاً نوشته شده است. اما...
کد اس کیو الی که من گذاشتم رو گذاشتین؟
بازم کار نکرد؟
عجیبه :متفکر:
رو سرور دیگه تست نکردین؟