PDA

View Full Version : سوال: نوشتن login توسط php کمک کنید



soloist2006
جمعه 22 خرداد 1388, 20:26 عصر
من می خوام یک قسمت login بنویسم.
یک table member دارم که همه ی username و password ها توش هست و یک feildداره به نام type که نشون می ده این username جزو گروه admin, student, lecturer
حالا می خوام بگم بعد اینکه username و password وارد شد چک کن ببین اگر تایپ adminیاstudentیاlecturer به صفحه های مخصوص خودشون برین
این کدی که نوشتم و کار می کنه اما قسمت type رو نتونستم توش وارد کنم. کی می تونه کمک کنه

<?php
ob_start();
include('connection.php');

// Define $myusername and $mypassword
$myusername=$_POST['myusername'];
$mypassword=$_POST['mypassword'];

// To protect MySQL injection (more detail about MySQL injection)
$myusername = stripslashes($myusername);
$mypassword = stripslashes($mypassword);
$myusername = mysql_real_escape_string($myusername);
$mypassword = mysql_real_escape_string($mypassword);

$sql="SELECT * FROM members WHERE username='$myusername' and password='$mypassword'";
$result=mysql_query($sql);

// Mysql_num_row is counting table row
$count=mysql_num_rows($result);
// If result matched $myusername and $mypassword, table row must be 1 row
if($count==1 )**
// Register $myusername, $mypassword and redirect to file "login_success.php"
session_register("myusername");
session_register("mypassword");

header("location:login_success.php");
}
else **
echo "Wrong Username or Password";
}

?>

یه دوستی(nishtman (http://www.iranphp.net/forum/member.php?u=40)) لطف کردن و گفتن کد رو اینجوری تغییر بدم
<?php
ob_start();
include('connection.php');

// Define $myusername and $mypassword
$myusername=$_POST['myusername'];
$mypassword=$_POST['mypassword'];

// To protect MySQL injection (more detail about MySQL injection)
$myusername = stripslashes($myusername);
$mypassword = stripslashes($mypassword);
$myusername = mysql_real_escape_string($myusername);
$mypassword = mysql_real_escape_string($mypassword);

$sql="SELECT * FROM members WHERE username='$myusername' and password='$mypassword'";
$result=mysql_query($sql);

// Mysql_num_row is counting table row
$count=mysql_num_rows($result);

$row=mysql_fetch_array($result);
// If result matched $myusername and $mypassword, table row must be 1 row
if($count==1 )**
// Register $myusername, $mypassword and redirect to file "login_success.php"
session_register("myusername");
session_register("mypassword");
switch($row['type']){
case "1":
$location="student.php";
break;
case "2":
$location="lecturer.php";
break;
case "3":
$location="admin.php";
break;
}

else **
echo "Wrong Username or Password";
}

?>
اما این یکی رو توی قسمت
else **
echo "Wrong Username or Password";
}
خطا می گیره و run نمی شه

10david
شنبه 23 خرداد 1388, 14:06 عصر
میشه بگی چه ارروری میده؟
کد دوم فکر کنم فکر کنم درسته ولی بجای 1 و 2و 3 case های switch باید adminیاstudentیاlecturer رو چک کنی یه کار دیگه هم اینه که فیلد type رو بریزی تو یه session دیگه بعد روش شرط رو اعمال کنی

soloist2006
دوشنبه 25 خرداد 1388, 18:23 عصر
اوهم کد های قسمت دوم درست بودند فقط یه تیکه رو ننوشته بودند که پیداش کردم اونم این بود
$type = $row["type"];