|
|
|
| Всем привет помогите исправить ошибку для странички администрации.
Захожу под паролем и логином показывает ошибку
Warning: Cannot modify header information - headers already sent by (output started at z:\home\localhost\www\test\php\www\gos\admin\index.php:11) in z:\home\localhost\www\test\php\www\gos\admin\config.php on line 28
Warning: Cannot modify header information - headers already sent by (output started at z:\home\localhost\www\test\php\www\gos\admin\index.php:11) in z:\home\localhost\www\test\php\www\gos\admin\config.php on line 29
Вот коды
index.php
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<link rel="StyleSheet" type="text/css" href="admin.css">
</head>
<body leftmargin="0" marginheight="0" marginwidth="0" rightmargin="0" bottommargin="0" topmargin="0" >
<table class=topadmin border="0" cellspacing="9">
<tr align="center">
<td width="10%"> </td>
<td><p><a href="../index.php" class=link title="Вернуться в гостевую книгу">Гостевая книга</b></a></td>
<td><p><a href="../../index.htm" class=link title="Вернуться на головную страницу сайта" >Вернуться на главную страницу сайта</b></a></td>
<td width="50"> </td>
</tr>
</table>
<table border="0" cellpadding="0" cellspacing="20" >
<tr valign="top">
<td><nobr><h1 class=z1><? echo $titlepage ?></h1></nobr></td>
<td><p class=help><? echo $helppage ?></p></td>
</tr>
</table>
<table width=100%><tr><td width=10%> </td><td>
<?php
include "config.php";
include "aup.php";
// Стартовая точка
if (empty($start)) $start = 0;
$start = intval($start);
if ($start < 0) $start = 0;
$pnumber=10;
// Запрашиваем общее число сообщений
$tot = mysql_query("SELECT count(*) FROM guest;");
// Запрашиваем сами сообщения
$gst = mysql_query("SELECT * FROM guest ORDER BY puttime DESC LIMIT $start, $pnumber;");
if ($gst && $tot)
{
while($guest = mysql_fetch_array($gst))
{
if($guest['hide'] == 'show') $showhide = "<a class='menu' href=hide.php?id_msg=".$guest['id_msg']."&start=$start title='Скрыть сообщение из списка выводимых на сайте'>Скрыть сообщение</a>";
else {
$showhide = "<a class='menu' href=show.php?id_msg=".$guest['id_msg']."&start=$start title='Включить отображение сообщения на сайте'>Отобразить сообщение</a>";
$tableheader = "class=tableheaderhide";
}
echo"<p>";
echo"<table class=bodytable width=100% border=1 cellpadding=5 cellspacing=0 bordercolorlight=gray bordercolordark=white>";
echo"<tr <? echo $tableheader ?> ";
echo"<td><p class=help>Автор сообщения</td> ";
echo"<td width=100><p class=help>Дата отправки</td> ";
echo"</tr>";
echo "<tr><td><p class=zag2>".$guest['name']."</td>";
echo "<td><p class=help>".$guest['puttime']."</td>";
echo "<tr valign=top><td><p class=zag2>Сообщение:</td><td colspan=5><p>".$guest['msg']."</td></tr>";
echo "<tr><td><p class=zag2>Администратор:</td><td colspan=5><p>".$guest['answer']."</td></tr>";
echo "</table>";
// Ссылка на редактирование и ответ
echo "<p class='menu'><a class='menu' href=editcommentform.php?id_msg=".$guest['id_msg']."&start=$start title='Редактировать сообщение'>Редактировать</a>";
// Ссылка на правку сообщений
echo " ".$showhide;
// Ссылка на удаление сообщений
echo " <a class='menu' href=delpost.php?id_msg=".$guest['id_msg']."&start=$start title='Удалить сообщение'>Удалить сообщение</a>";
echo "</p>";
}
// Выводим ссылки на предыдущие и следующие сообщения
$total = mysql_fetch_array($tot);
$count = $total['count(*)'];
if ($start > 0) print " <p><A href=index.php?start=".($start - $pnumber).">Предыдущие сообщения</A> ";
if ($count > $start + $pnumber) print " <p><A href=index.php?start=".($start + $pnumber).">Следующие сообщения</A> \n";
}
else puterror("Ошибка при обращении к гостевой книге");
?>
|
aup.php
<?
include_once "config.php";
$admin_auth = false;
if ( (@$PHP_ADMIN_USER) && ((@$PHP_ADMIN_PW)||(@$PHP_ADMIN_MD5PW) )) {
if(@$PHP_ADMIN_MD5PW){
$query = "SELECT * FROM admin WHERE user = '$PHP_ADMIN_USER' AND pass = '$PHP_ADMIN_MD5PW'";
$result = mysql_query($query);
$row= mysql_fetch_array($result);
}
if(!@$row){
$PHP_ADMIN_MD5PW= md5(@$PHP_ADMIN_PW);
$query = "SELECT * FROM admin WHERE user = '$PHP_ADMIN_USER' AND pass = '$PHP_ADMIN_MD5PW'";
$result = mysql_query($query);
$row= mysql_fetch_array($result);
}
if ( $row ) {
// A matching row was found - the admin is authenticated.
$admin_auth = true;
setallcookie($PHP_ADMIN_USER,$PHP_ADMIN_MD5PW);
}
}
if ( !$admin_auth ) {
echo "<html>
<head>
</head>
<body >
<form method=\"post\" action=\"".basename($_SERVER['PHP_SELF'])."\">
<table border=\"0\" cellspacing=\"1\" cellpadding=\"0\" width=\"435\" height=\"315\" background=\"../images/scroll.png\">
<tr>
<td colspan=\"2\" align=center>
<table cellspacing=0 cellpadding=0 border=0>
<td align=right><font color=#000000><strong>Логин:  </strong></font></td>
<td><input name=\"PHP_ADMIN_USER\" type=\"text\"></td>
</tr>
<tr>
<td align=right><font color=#000000><strong>Пароль:  </strong></font></td>
<td><input name=\"PHP_ADMIN_PW\" type=\"password\"></td>
</tr>
</table>
<br>
<input type=\"submit\" value=\"Login\">
</td>
</tr>
</table>
</form>
</body>
</html>";
exit;
}
?>
|
config.php
<?php
$dblocation = "localhost";
$dbname = "school5";
$dbuser = "root";
$dbpasswd = "";
$dbcnx = @mysql_connect($dblocation,$dbuser,$dbpasswd);
if (!$dbcnx)
{
echo( "<P>В настоящий момент сервер базы данных не доступен, поэтому корректное отображение страницы невозможно.</P>" );
exit();
}
// Выбираем базу данных
if (! @mysql_select_db($dbname,$dbcnx) )
{
echo( "<P>В настоящий момент база данных не доступна, поэтому корректное отображение страницы невозможно.</P>" );
exit();
}
function setallcookie($php_ADMIN_USER,$php_ADMIN_MD5PW)
{
setcookie("php_ADMIN_USER",$php_ADMIN_USER,time()+3600*24*2);
setcookie("php_ADMIN_MD5PW",$php_ADMIN_MD5PW,time()+3600*24*2);
}
// function cleanallcookie()
//{
//setcookie("PHP_ADMIN_USER","");
// setcookie("PHP_ADMIN_MD5PW","");
// }
function puterror($message)
{
echo("<p>$message</p>");
exit();
}
?>
|
| |
|
|
|
|
|
|
|
для: 70-й_регион
(11.10.2005 в 16:10)
| | Всё очень просто (Понятно из описания ошибки!) для установок Cookie требуется послать заголовки серверу, а они у тебя уже посланы в Index.php!
Краткий совет: просто перепиши index.php без использования html, или ещё как-нибудь обойди этот момент (: | |
|
|
|
|
|
|
|
для: 70-й_регион
(11.10.2005 в 16:10)
| | Куки, сессии, отправка заголовков должны происходить до отправки любой информации в окно браузера, т.е. до любого вывода echo, print или непосредственного вывода вне тэгов <?php и ?>. Это связано с тем, что HTTP-заголовки передаются перед всеми данными и когда происходит вывод в окно браузера PHP вынужден их пред этим отослать клиенту. Поэтому повторно, после вывода информации в браузер он не может работать с куками, сессиями и отправлять заголовки.
Если вывод текста до отправки заголовков необходим следует воспользоваться функциями управления вывода, позволяющих задерживать вывод информации в браузер.
http://www.softtime.ru/group/id_group=12 | |
|
|
|