zahra-j
یک شنبه 27 مهر 1393, 10:15 صبح
سلام
در قسمت مدیریت سایتی که طراحی کردم وقتی دکمه ورود را میزنم تابع header کار نمی کند همه کد ها درست کارمیکند ولی وقتی به header میرسد دیگه کار نمکند. همه شرط ها را حذف کردم فقط دستور header گذاشتم که وقتی submit میشه که فقط به صفحه دیگر ریدایرکت شود کار نمی کند . یعنی فقط مشکل از header
است دلیلش چی می تونه باشه؟؟؟؟؟؟؟؟؟؟؟؟؟؟
<?php
session_start();
include_once 'db.php';
clearstatcache();
$token = md5('fghhjkl');
$_SESSION['token'] = $token;
function _clean($str)
{
return is_array($str) ? array_map('_clean', $str) : htmlentities($str, ENT_QUOTES, 'utf-8');
}
$notlog='';
$check_error=0;
if(isset($_POST['submit']))
{
if (isset($_SESSION['token']) && isset($_POST['token']) && $_POST['token'] == $_SESSION['token'])
{
$uname=_clean($_POST['username']);
$pass=_clean($_POST['password']);
if (!isset($uname) || $uname == '')
{
$notlog = "The username field can not be blank!";
$check_error = 1;
}
elseif (!isset($pass) || $pass == ''){
$notlog = "The password field can not be blank!";
$check_error = 1;
}
if($check_error == 0)
{
$salt='jhfd$ctg%fxdf4$3BDsn%xhgdf|vhv%#';
$pass = sha1(md5($pass.$salt));
$data=$pdo->prepare('SELECT * FROM login WHERE username=? AND password=?');
$data->bindParam(1, $uname);
$data->bindParam(2, $pass);
$data->execute();
$numrows= $data -> rowcount();
if($numrows > 0)
{
$rows= $data -> fetch(PDO::FETCH_ASSOC);
$_SESSION['USERNAME']=$rows['username'];
$_SESSION['USERID']=$rows['id'];
$ua=$_SERVER['HTTP_USER_AGENT'];
$ip=$_SERVER['REMOTE_ADDR'];
$id=session_id();
$all="$ua $ip $id";
$all=sha1($all);
$_SESSION['hash']=htmlspecialchars($all);
header("location:".URL."/managment/manager.php");
}
else
{
header("location:".URL."/managment/index.php?error=1");
}
}
else
{
$notlog='username and password can not be blank.';
}
}
else
{
header("location:".URL."/managment/index.php?error=1");
}
}
else
{
if(isset($_GET['error']))
{
$notlog='Your username and password are not valid.';
}
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link rel="stylesheet" type="text/css" href="style.css" />
<title></title>
</head>
<body>
<div class="login">
<div class="login-form">
<div class="login-f">
<form action="<?php echo htmlspecialchars($_SERVER['PHP_SELF'],ENT_QUOTES); ?>" method="post" >
<label>Username:</label><br />
<input type="text" name="username" value="" /><br />
<label>Password:</label><br />
<input type="password" name="password" value="" /><br />
<input type="hidden" name="token" value="<?php echo $token; ?>" />
<input type="submit" name="submit" value="Login" />
</form><span class="red"><?php echo $notlog; ?></span>
</div>
<div class="login-a">
<a href="<?php echo URL; ?>/managment/forgetpass.php">Forgot your password?</a><br />
<a href="<?php echo URL; ?>/managment/changepass.php">Change password</a>
</div>
</div>
</div>
</body>
</html>
در قسمت مدیریت سایتی که طراحی کردم وقتی دکمه ورود را میزنم تابع header کار نمی کند همه کد ها درست کارمیکند ولی وقتی به header میرسد دیگه کار نمکند. همه شرط ها را حذف کردم فقط دستور header گذاشتم که وقتی submit میشه که فقط به صفحه دیگر ریدایرکت شود کار نمی کند . یعنی فقط مشکل از header
است دلیلش چی می تونه باشه؟؟؟؟؟؟؟؟؟؟؟؟؟؟
<?php
session_start();
include_once 'db.php';
clearstatcache();
$token = md5('fghhjkl');
$_SESSION['token'] = $token;
function _clean($str)
{
return is_array($str) ? array_map('_clean', $str) : htmlentities($str, ENT_QUOTES, 'utf-8');
}
$notlog='';
$check_error=0;
if(isset($_POST['submit']))
{
if (isset($_SESSION['token']) && isset($_POST['token']) && $_POST['token'] == $_SESSION['token'])
{
$uname=_clean($_POST['username']);
$pass=_clean($_POST['password']);
if (!isset($uname) || $uname == '')
{
$notlog = "The username field can not be blank!";
$check_error = 1;
}
elseif (!isset($pass) || $pass == ''){
$notlog = "The password field can not be blank!";
$check_error = 1;
}
if($check_error == 0)
{
$salt='jhfd$ctg%fxdf4$3BDsn%xhgdf|vhv%#';
$pass = sha1(md5($pass.$salt));
$data=$pdo->prepare('SELECT * FROM login WHERE username=? AND password=?');
$data->bindParam(1, $uname);
$data->bindParam(2, $pass);
$data->execute();
$numrows= $data -> rowcount();
if($numrows > 0)
{
$rows= $data -> fetch(PDO::FETCH_ASSOC);
$_SESSION['USERNAME']=$rows['username'];
$_SESSION['USERID']=$rows['id'];
$ua=$_SERVER['HTTP_USER_AGENT'];
$ip=$_SERVER['REMOTE_ADDR'];
$id=session_id();
$all="$ua $ip $id";
$all=sha1($all);
$_SESSION['hash']=htmlspecialchars($all);
header("location:".URL."/managment/manager.php");
}
else
{
header("location:".URL."/managment/index.php?error=1");
}
}
else
{
$notlog='username and password can not be blank.';
}
}
else
{
header("location:".URL."/managment/index.php?error=1");
}
}
else
{
if(isset($_GET['error']))
{
$notlog='Your username and password are not valid.';
}
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link rel="stylesheet" type="text/css" href="style.css" />
<title></title>
</head>
<body>
<div class="login">
<div class="login-form">
<div class="login-f">
<form action="<?php echo htmlspecialchars($_SERVER['PHP_SELF'],ENT_QUOTES); ?>" method="post" >
<label>Username:</label><br />
<input type="text" name="username" value="" /><br />
<label>Password:</label><br />
<input type="password" name="password" value="" /><br />
<input type="hidden" name="token" value="<?php echo $token; ?>" />
<input type="submit" name="submit" value="Login" />
</form><span class="red"><?php echo $notlog; ?></span>
</div>
<div class="login-a">
<a href="<?php echo URL; ?>/managment/forgetpass.php">Forgot your password?</a><br />
<a href="<?php echo URL; ?>/managment/changepass.php">Change password</a>
</div>
</div>
</div>
</body>
</html>