PDA

View Full Version : کار نکردن تابع header در سرور



zahra-j
یک شنبه 27 مهر 1393, 09: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>

کامروا
یک شنبه 27 مهر 1393, 09:41 صبح
خرجی این چیه؟

echo 'location:'. URL .'/managment/index.php?error=1';

cpuram
یک شنبه 27 مهر 1393, 11:54 صبح
اول اینجا رو مطالعه کنید اگه حل نشد بیایید.
رفع مشکل نمایش پیغام Cannot modify header information – headers already sent (http://barnamenevis.org/showthread.php?356992-%D9%BE%D8%B1%D8%B3%D8%B4%D9%87%D8%A7%DB%8C-%D8%AA%DA%A9%D8%B1%D8%A7%D8%B1%DB%8C&p=1576420&viewfull=1#post1576420)