У меня проблемы с перенаправлением моей страницы, используя метод заголовка. Я думаю, я знаю, в чем проблема. Но я очень плохо знаком с PHP-сценой, поэтому не знаю, что еще попробовать. Из того, что я прочитал, метод header () не сработает, если страница уже отправила данные до заголовка. Я чувствую, что это может быть частью моей проблемы, потому что у меня есть несколько операторов echo перед функцией заголовка. Может ли это быть что-то еще? Как мне обойти это?
Оператор echo доказывает, что правильное имя пользователя и пароль находятся. Я поместил тестовое эхо-выражение, где находится заголовок, и он работает просто отлично. Итак, я знаю, что база данных находит правильную информацию. Страница обновляется при вставке информации. Спасибо за поиск.
<div id= "sidebar" >
<div id="login-box">
<form name="client-login" action="<?php $_SERVER['PHP_SELF']; ?>" method="post">
<label id="user-lbl">Username:</label><br /><input type="text"
name="username" id="username" /><br /> <label id="pass-lbl">Password:</label><br /><input
type="password" name="password" id="password" /><br /> <label> </label><input
type="submit" value="Login" class="submit" id="login" />
</form>
<?php
$username = $_POST['username'];
$password = $_POST['password'];
if((!isset($username)) || (!isset($password))){
echo "<p>Username is $username. Password is $password.</p>";
}else{
$mysql = mysql_connect("myhost", "username", "password");
if(!$mysql){
echo "<p>Cannot connect to database!</p>";}
$selected = mysql_select_db("mydb", $mysql);
if(!$selected){
echo "<p>Cannot find database!</p>";}
$query = sprintf("SELECT count(*) FROM users WHERE username = '%s' AND password = '%s'", mysql_real_escape_string($username),mysql_real_escape_string($password));
$result = mysql_query($query, $mysql );
if(!$result){
echo "<p>Cannot run query.</p>";}
$row = mysql_fetch_row($result);
$count = $row[0];
if ($count > 0){
header("Location: account.php"); die();} else {echo "<p>Invalid username or password!</p>";}
}
?>
</div><!-- #login-box -->