-
تایید اعتبار یک کاربر
سلام
من واسه ورود کاربران به سایتم از کد زیر استفاده میکنم ولی هر چیزی که وارد میکنم سریع وارد میشه و کاری به درست بودن یا نبودن اون نداره. یعنی با هر ای دی و پسوردی اجازه عبور میده کجای کارم اشتباست؟
[PHP]<?php
session_start();
if(isset($_REQUEST['id']) && isset($_REQUEST['pass'])){
$name=$_REQUEST['id'];
$pas=$_REQUEST['pass'];
$pas=md5($pas);
@$db=new mysqli('localhost','elyass','hadyjoon','db') or die();
$query="select * from user where id='$name' and pass='$pas'";
$result=$db->query($query);
if(isset($result)){
$_SESSION['valid_user']=$name;
}
$db->close();
}
?>
<?php
if(! empty($_SESSION['valid_user'])){
header('Location: member.php');
}
else
{
if(isset($name)){
echo 'شما مجاز به ورود به سايت نيستيد';
echo '<br/>';
}
else
{
echo 'شما به سايت وارد نشديد';
echo '<br/>';
}
include('regi.php');
}
?>[/PHP]
-
کدتو بیخودی پیچیده کردی سادش کن
خودت بشین اشکال گیری کن دو حالت داره یا مشکل از حلقه هایه شرطیه یا
[php] $_SESSION['valid_user']=$name;[/php]شما یه پرینت از این بگیر ببین اصلا مقدار میگیره یا نه
[php] <?php
session_start();
if(isset($_REQUEST['id']) && isset($_REQUEST['pass'])){
$name=$_REQUEST['id'];
$pas=$_REQUEST['pass'];
$pas=md5($pas);
@$db=new mysqli('localhost','elyass','hadyjoon','db') or die();
$query="select * from user where id='$name' and pass='$pas'";
$result=$db->query($query);
if(isset($result)){
$_SESSION['valid_user']=$name;
echo $_SESSION['valid_user'] ;
}
else
echo "its not";
?> [/php]اگه جواب نداد که و سشن مقدار نگرفت مشکل معلوم میشه از کجاست اگرم جواب داد و درست کار کرد که مشکل از حلقه هایه شرطیه در کل میتونی از یه کده ساده مثل این استفاده کنی
[php] $sql = "SELECT `password` FROM `users` WHERE `username` = '$username'";
$result = mysql_query($sql) or die(mysql_error());
if(mysql_num_rows($result) == 1)
{
//Check Password ...
if($password == mysql_result($result,0))
{
//Logined Ok!
$_SESSION['LogedIn'] = true;
$_SESSION['username'] =$username;
header("location: index.php");
exit();
}
}
[/php]