2016-08-14 2 views
-2

Итак, у меня есть базовая система входа. Я пытаюсь использовать заголовок для перенаправления после успешного входа в систему. Но я печатаю сообщение об ошибке «Не могу изменить заголовок». Я вообще не знаком с PHP. Но вся помощь будет оценена.Невозможно изменить информацию заголовка - уже отправлены заголовки

сообщение об ошибке

Warning: Cannot modify header information - headers already sent by (output started at /home4/jachun39/public_html/ap/login.php:6) in /home4/jachun39/public_html/ap/login.php on line 22 

файл login.php

<?php 
include('SqlConnect.php'); 
?> 
<?php 
if (isset($_POST['Login'])){ 
    if ([email protected]_connect($host, $username, $password)) die("Can't connect to database"); 
    if (!mysql_select_db($db_name)) die("Can't select database"); 
    $username=$_POST['username']; 
    $password=$_POST['password']; 
    $username = stripslashes($username); 
    $password = stripslashes($password); 
    $username = mysql_real_escape_string($username); 
    $password = mysql_real_escape_string($password); 
    $sql="SELECT * FROM $tbl_name WHERE username='$username' and password='$password'"; 
    $result=mysql_query($sql); 
    $count=mysql_num_rows($result); 
    if($count >= 1){ 
    $_SESSION['username']= "username"; 
    $_SESSION['password']= "password"; 
    header("location: index.php?message=success"); 
    echo "<center><font color='green'><b>Logged in Successfully</center></font></b>"; 
    } else { 
     echo "<center><font color='red'><b>Wrong username or password</center></font></b>"; 
    } 
} 
    <link rel="Stylesheet" type="text/css" href="style.css" /> 
    <link href='http://fonts.googleapis.com/css?family=Karla:400,700,700italic,400italic' rel='stylesheet' type='text/css'> 

Вот и мой Checklogin.php файл, который "включено" в верхней части страницы индекса ,

<?php 
if(!isset($_SESSION['username'])){ 
header("location: login.php"); 
} 
?> 

/// ДОБАВЛЕНО AS ЗАПРОШЕННЫЙ (index.php)

<?php 
ob_start(); 
include('CheckLogin.php'); 
include('SqlConnect.php'); 
include('Userbar.php'); 
?> 
<link rel="Stylesheet" type="text/css" href="style.css" /> 
<link href='http://fonts.googleapis.com/css?family=Karla:400,700,700italic,400italic' rel='stylesheet' type='text/css'> 
</html> 
<body> 
<br> 
<form name="form" method="POST" action=""><td> 
<table width="325" border="0" align="center" cellpadding="2" cellspacing="0" bgcolor="#212121"> 
<td><table width="100%" border="0" cellpadding="3" cellspacing="0" bgcolor="#404040"></td> 
<tr colspan="3"><strong> <font color="ECECEC"> Create Code </font></strong></tr> 
<tr> 
<td><center><font color="ECECEC">Code: <input name="code" type="text"></font> 
<input type="Submit" value="Create Code" name="Addcode" /></td></tr></center> 
</table></table> 
</table></table> 
</form> 
<?php 
if (!mysql_connect($host, $username, $password)){ 
    die("Can't connect to database"); 
} 
if (!mysql_select_db($db_name)){ 
    die("Can't select database"); 
} 
if (isset($_POST['Addcode'])){ 
    mysql_query("INSERT INTO $table (username, password, hwid, ip, code, banned) VALUES('-','-','-','-','$_POST[code]','0')"); 
} 
if (isset($_POST['Action'])){ 
    if ($_POST['Action'] == "Delete"){ 
     $ID = $_POST['ID']; 
     $result = mysql_query("DELETE FROM $table WHERE `id` = $ID"); 
     if (!$result){ 
      die(mysql_error()); 
     } 
    } elseif ($_POST['Action'] == "Ban"){ 
     $ID = $_POST['ID']; 
     $Banned = $_POST['Banned']; 
     if ($Banned == 0){ 
      $result = mysql_query("UPDATE $table SET `banned` = '1' WHERE `id` = '".$ID."'"); 
     } else { 
      $result = mysql_query("UPDATE $table SET `banned` = '0' WHERE `id` = '".$ID."'"); 
     } 
     if (!$result){ 
      die(mysql_error()); 
     } 
    } 
} 
echo "<div class='table' align='center'><table><tr class='top'>"; 
echo "<td \"Username\"'>Username<style='margin-bottom:-1px; float:right;' height='16px' width='16px' /></td>"; 
echo "<td \"Password\"'>Password<style='margin-bottom:-1px; float:right;' height='16px' width='16px' /></td>"; 
echo "<td \"Hwid\"'>Hwid<style='margin-bottom:-1px; float:right;' height='16px' width='16px' /></td>"; 
echo "<td \"Code\"'>Code<style='margin-bottom:-1px; float:right;' height='16px' width='16px' /></td>"; 
echo "<td \"IP\"'>IP<style='margin-bottom:-1px; float:right;' height='16px' width='16px' /></td>"; 
echo "<td \"Active\"'>Active<style='margin-bottom:-1px; float:right;' height='16px' width='16px' /></td>"; 
echo "<td \"Delete\"'>Delete<style='margin-bottom:-1px; float:right;' height='16px' width='16px' /></td>"; 
echo "</tr>\n"; 
$type = "first"; 
$query = mysql_query("SELECT * FROM $table"); 
while($row = mysql_fetch_array($query)){ 
    $ID = $row['id']; 
    $Username = $row['username']; 
    $Password = $row['password']; 
    $Hwid = $row['hwid']; 
    $Code = $row['code']; 
    $IP = $row['ip']; 
    $Banned = $row['banned']; 
    $Delete = "0"; 
    echo '<td>'.$Username.'</td><td>'.$Password.'</td><td>'.$Hwid.'</td><td>'.$Code.'</td><td>' 
     .$IP.'</td><td>'; 
     ?> 
     <form action="" class="form" method="POST"> 
     <input type="hidden" name="Action" value="Ban" /> 
     <input type="hidden" name="ID" value=<?php echo "$ID";?> /> 
     <input type="hidden" name="Banned" value=<?php echo "$Banned";?> /> 
     <?php 
     if ($Banned == 1){ 
      echo '<input type="image" src="img/cross.png" name="Ban" />'; 
     } else { 
      echo '<input type="image" src="img/tick.png" name="Ban" />'; 
     } 
     ?> 
     </td><td> 
     </form> 
     <form action="" class="form" method="POST"> 
     <input type="hidden" name="Action" value="Delete" /> 
     <input type="hidden" name="ID" value=<?php echo "$ID";?> /> 
     <input type="image" src="img/delete.png" name="Delete" /> 
     </form> 
     </td> 
     <?php 
    echo "</tr>\n"; 
} 
?> 
</body> 
</html> 

ответ

-1

поставить эту линию на вершине, где начать ваши php теги.

ob_start(); 

Как здесь вы можете:

<?php 
ob_start(); 
include('SqlConnect.php'); 
?> 
+0

Когда я это сделал, он больше не отобразил успешно зарегистрированное сообщение и просто перезагрузился – John

+0

Он перезагружается из-за вашего 'header (" location: index.php ") ; 'эта строка кода. попытаться прокомментировать эту строку и увидеть результат один раз –

+0

Да теперь он отображает сообщение, но как я могу перенаправить его на index.php? Поскольку он «успешно» зарегистрирован в – John

0

PHP заголовки должны быть посланы перед содержимым страницы. Из PHP документации:

статуса HTTP строка заголовка всегда будет первой отправлен клиенту , независимо от вызова фактического заголовка(), являющегося первым или нет. Статус может быть переопределен вызовом header() с новым статусом в любое время, если HTTP-заголовки уже не отправлены.

В вашем файле вы отправили теги HTML-ссылок перед настройкой заголовка, который приводит к этой ошибке. Просто поставьте свой PHP перед любым выходом, и он будет работать

+0

Да, но как сделать перенаправление страницы на index.php, он просто остается на login.php и перезагружает страницу. Код обновления находится в сообщении – John

+0

Проверьте свой index.php, вы можете перенаправить обратно на login.php! –

+0

Не могли бы вы проверить его? Я добавил код для index.php обратно в основной вопрос! – John

Смежные вопросы