[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Header (ошибка)
ANG3
Здравствуйте! Залил все свои скромные труды на хостинг. Всё отлично кроме header. Дело в том, что личный кабинет защищён готовм скриптом. Но что-бы он работал, вн ачале каждого файла пхп ставится
PHP
<?php require_once("adminOnly.php");


Я знал, что если перед header стоит вывод или инклуд, то он работать не будет. Но на локальном всё пёрло. И я забил на это дело. А на хостинге не пашет. Ошибку кидает.

Warning: Cannot modify header information - headers already sent by...

Что делать? Убрать require никак не можно. Обидно, так то всё работает.
mad.gif ohmy.gif



Спустя 10 минут, 25 секунд (6.08.2009 - 13:47) sergeiss написал(а):
Почитай тут. Возможно, что и решишь свою проблему.

Спустя 3 часа, 28 минут, 4 секунды (6.08.2009 - 17:15) ANG3 написал(а):
Делаю так. Всё равно выводит ту же ошибку(


PHP
<?php
ob_start
(header ("Location: list.php"));


и далее

PHP
ob_end_flush();
exit();

Спустя 1 минута, 17 секунд (6.08.2009 - 17:16) Kuliev написал(а):
ANG3
Ну ты жжож

Спустя 2 минуты, 41 секунда (6.08.2009 - 17:19) ANG3 написал(а):
Жгу!) А делать то чтО? biggrin.gif

Спустя 8 минут, 54 секунды (6.08.2009 - 17:28) Kuliev написал(а):
ANG3
Вот что делать читать тут внимательно!

Спустя 21 минута, 25 секунд (6.08.2009 - 17:49) ANG3 написал(а):
Спасибо! Всё отлично работает. Но мой скрипт защищён скриптом admin login only. В начале страницы нужно вставить
PHP
<?php require_once("adminOnly.php");


Если я вставлю этот инклуд после...
PHP
<?php
ob_start
(header ("Location: list.php"));

...то безопасность не пострадает? Админ логин работает с сессиями.

Спустя 11 минут, 27 секунд (6.08.2009 - 18:01) Kuliev написал(а):
ANG3
Так про HEADER() прочитал надеюсь до тебя дошло теперь посмотри ЗДЕСЬ!

Спустя 2 часа, 26 минут, 39 секунд (6.08.2009 - 20:27) ANG3 написал(а):
Можно простенький пример. Ничего там не понятно. Скрипты оттуда не работают. Этот бред
PHP
ob_start(header ("Location: list.php"));



стоит у меня в условие, и независимо от условия выполняется всегда.

Вот так вот это выглядит

PHP
if (empty($id))
{
$query="DELETE FROM `order` WHERE `id` ='$id2'";
$result=mysql_query($query) or die(mysql_error());
ob_end_flush();
exit();
}

Спустя 14 минут, 55 секунд (6.08.2009 - 20:42) Guest написал(а):
PHP
<?php
ob_start
();
require_once(
"adminOnly.php");

Спустя 3 часа, 2 минуты, 53 секунды (6.08.2009 - 23:45) ANG3 написал(а):
Сделал. Всё нормально, но опять, редирект выполняется независимо от условия, т.е в любом случае, даже когда не нужно. вот код.

PHP
<?php 
ob_start
(); 
header ("Location: list.php")
?>
<?php 
require_once("adminOnly.php");?>
<?php
include('inc/cp.inc')
?>

<?php
include('mysql.php')
?>
<?php
$id
=intval($_GET['id']);  
$id2=intval($_GET['id2']);  
mysql_query ("SET NAMES `cp1251`");
if (empty(
$id))
{
$query="DELETE FROM `order` WHERE `id` ='$id2'";
$result=mysql_query($query) or die(mysql_error());
$x=ob_get_contents(); // получаем содержимое output buffer 
ob_clean(); // очищаем его 
echo $x;
}

Спустя 1 час, 18 минут, 42 секунды (7.08.2009 - 01:04) DeeKeiD написал(а):
хм помойму проще сделать так
PHP
<?
session_start();
// если сессия не существует
if(!$_SESSION['user']) { die ('no access') ; }
// если сессия существует
else
{
...
}

Спустя 9 часов, 53 минуты, 35 секунд (7.08.2009 - 10:57) ANG3 написал(а):
У меня скрипт рассчитан на множественные заходы, и дальше там ещё есть условия, я просто не всё скопировал. Главное сделать редирект после вполнения условия и всё. А у меня редирект прёт всегда. Независимо от первого условия.

Спустя 1 час, 52 минуты, 33 секунды (7.08.2009 - 12:50) Kuliev написал(а):
ANG3

Вот тебе пример использования ob_start()

PHP
<?php
// Запускаем буфер
ob_start();

echo 
"<h1>Привет...</h1>";

include (
"myscript.php");

$buffer ob_get_contents();

// закрывает буфер
ob_end_clean();

// выводим все что в буфере
echo $buffer;




Спустя 42 минуты, 3 секунды (7.08.2009 - 13:32) ANG3 написал(а):
Вот код. Удаление, затем редирект. Работает отлично. Но если я нажимаю просмотр ($id не пустой), то всё равно идёт редирект. Хотя по условию его быть не должно.


PHP
<?php
// Запускаем буфер
ob_start();

header ("Location: list.php");

$buffer ob_get_contents();

// закрывает буфер
ob_end_clean();
?>
<?php 
require_once("adminOnly.php");?>
<?php
include('inc/cp.inc')
?>

<?php
include('mysql.php')
?>
<?php
$id
=intval($_GET['id']);  
$id2=intval($_GET['id2']);  
mysql_query ("SET NAMES `cp1251`");
if (empty(
$id))
{
$query="DELETE FROM `order` WHERE `id` ='$id2'";
$result=mysql_query($query) or die(mysql_error());
// выводим все что в буфере
echo $buffer;
}
if (empty(
$id2))
{
$query="SELECT * FROM `order` WHERE `id`='$id' order by `date`";
$result=mysql_query($query) or die(mysql_error());
while (
$row=mysql_fetch_array ($result)) {  
$name=$row['name'];
$email=$row['email'];
$tel=$row['tel'];
$address=$row['address'];
$order=nl2br($row['order']);
$date=$row['date'];
$inn=$row['inn'];

}

Спустя 6 минут, 31 секунда (7.08.2009 - 13:39) ANG3 написал(а):
Я убрал
PHP
echo $buffer;
. Всё ранво релирек, но удаление выполняется. Значит буфер не работает как нужно ?

Спустя 36 минут, 25 секунд (7.08.2009 - 14:15) Kuliev написал(а):
ANG3
Попробуй так, хотя я не уверен.
PHP
<?php
ob_start
();

require_once(
"adminOnly.php");
include(
'inc/cp.inc')
include(
'mysql.php')

$buf ob_get_contents();

ob_end_clean();

$id = !empty($_GET['id']) ? $_GET['id'] : null;  
$id2 = !empty($_GET['id2']) ? $_GET['id'] : null;  


if (isset(
$id))
{
    
$sql "DELETE FROM `order` WHERE `id` ='".intval($id2)."'";
    
$result mysql_query($sql) or die(mysql_error() ."<br/>"$sql);
    
    
header ("Location: list.php");
    exit();

}

if (isset(
$id2))
{
    
$sql "SELECT * FROM `order` WHERE `id`='".intval($id)."' order by `date`";
    
$result mysql_query($sql) or die(mysql_error() ."<br/>"$sql);

    while (
$row mysql_fetch_assoc($result))
    {  
        
$name    $row['name'];
        
$email   $row['email'];
        
$tel     $row['tel'];
        
$address $row['address'];
        
$order   nl2br($row['order']);
        
$date    $row['date'];
        
$inn     $row['inn'];
    }

}

echo 
$buf;


Спустя 58 минут, 4 секунды (7.08.2009 - 15:13) ANG3 написал(а):
Спсибо! Сделал немного подругому. Возник один вопрос. Как происходит удаление, если файл с настройкой MySQL включается после удаления? huh.gif

И чем mysql_fetch_assoc лучше mysql_fetch_array ?)

Код
Свернутый текст
PHP
<?php
ob_start
();

require_once(
"adminOnly.php");
include(
'inc/cp.inc');
include(
'mysql.php');

$buf ob_get_contents();

ob_end_clean(); 
?>
<?php
$id 
= !empty($_GET['id']) ? intval($_GET['id'])    : null;  
$id2 = !empty($_GET['id2']) ? intval($_GET['id2']) : null;  

mysql_query ("SET NAMES `cp1251`");
if (empty(
$id))
{
$query="DELETE FROM `order` WHERE `id` ='$id2'";
$result=mysql_query($query) or die(mysql_error());
header ("Location: list.php");
exit();
}
echo 
$buf;
if (empty(
$id2))
{
$query="SELECT * FROM `order` WHERE `id`='$id' order by `date`";
$result=mysql_query($query) or die(mysql_error());
while (
$row=mysql_fetch_array ($result)) {  
$name=$row['name'];
$email=$row['email'];
$tel=$row['tel'];
$address=$row['address'];
$order=nl2br($row['order']);
$date=$row['date'];
$inn=$row['inn'];

}
echo      .....

}


Спустя 3 минуты, 24 секунды (7.08.2009 - 15:16) Kuliev написал(а):
ANG3
Зайди на PHP.NET и почитай в чем разница.

Во вторых я же Вам выложил код а вы опять за свое! unsure.gif

Спустя 1 минута, 48 секунд (7.08.2009 - 15:18) Gabriel написал(а):
а редирект у тебя был случайно не изза того что условия для хедера небыло вообше?

Спустя 6 минут, 33 секунды (7.08.2009 - 15:25) ANG3 написал(а):
Цитата
Во вторых я же Вам выложил код а вы опять за свое!


Ваш код почему-то не работает. По этому я к своему коду добавил часть из вашего, немного изменив его. А стиль забыл сделать...


Цитата
а редирект у тебя был случайно не изза того что условия для хедера небыло вообше?


Можно поподробнее? Условие было.

Спустя 2 минуты, 44 секунды (7.08.2009 - 15:27) Kuliev написал(а):
ANG3
Короче ты тут нафлудил со своим хедером на две страницы, выложи код
(adminOnly.php , inc/cp.inc , mysql.php )

Спустя 1 минута, 29 секунд (7.08.2009 - 15:29) Gabriel написал(а):
PHP
<?php 
ob_start
(); 
header ("Location: list.php")

давай подробнее условия нету потому и редирект

Спустя 6 минут, 59 секунд (7.08.2009 - 15:36) Kuliev написал(а):
Цитата (Gabriel @ 7.08.2009 - 17:29)
PHP
<?php 
ob_start
(); 
header 
("Location: list.php")

давай подробнее условия нету потому и редирект

Какое там еще условие? blink.gif

И вообще зачем хедер в буфер пихать?

Спустя 38 секунд (7.08.2009 - 15:37) Gabriel написал(а):
PHP
if(....){}else{}

а так пустой висит и посылает туда куда указано

Спустя 1 минута, 29 секунд (7.08.2009 - 15:38) Kuliev написал(а):
Цитата (Gabriel @ 7.08.2009 - 17:37)
ну так вот он был и редирект:)

Редирект был потому что логика скрипта БЕСТОЛКОВАЯ!

Спустя 5 минут (7.08.2009 - 15:43) ANG3 написал(а):
Выложил всё. Хедер в буфер, потому что перед ним куча инклудов и вывод.
Из - за этого он не работает. Решил решить проблему таким образом.

adminOnly.php - писал его не я. Знаю что работает 100%.

Свернутый текст
PHP
<?php
session_start
();
if(   (!isset(
$_SESSION['adminUser'])) || (!isset($_SESSION['adminPassword'])) ) {
    include_once(
"adminLogin.php");
    exit;
}
// requires for multi applications inter-operability using same admin-Login-Only module
if(file_exists("util.php")) { // phpyellow admin user and password file
    
require_once("util.php");
}
if(
file_exists("mysetup.php")) { // give admin user and password file
    
require_once("mysetup.php");
}
if(
file_exists("secret.php")) { // admin-Login-Only admin user and password file
    
require_once("secret.php");
}
if(
file_exists("db_x.php")) { // all other admin user and password file
    
require_once("db_x.php");
}
if(
file_exists("configure.php")) { // not commented
    
require_once("configure.php");
}
/* adminOnly.php
   if the session variables are not set or are incorrect values 
   then present the login screen
*/
if( ($_SESSION['adminUser'] != ADMINUSER) || ($_SESSION['adminPassword'] != ADMINPASSWORD) ) {
    
//header("Location: adminLogin.php");
    
include_once("adminLogin.php");
    exit;
}else{
?>
<div id="Layer1">
<table>
<tr>
    <td width=32><a href="adminLogOut.php"><img src="appimage/icons/icon_logout.png" width="32" height="32" border=0 alt="Выйти"></a></td>
    <td width=32><a href="<?php echo ADMINHOME;?>"><img src="appimage/icons/icon_admin.png" width="32" height="32" border=0 alt="Главная"></a></td>
</tr>
<tr>
    <td style="font-size:x-small;"><a href="adminLogOut.php">Выйти</a></td>
    <td style="font-size:x-small;"><a href="<?php echo ADMINHOME;?>">Главная</a></td>
</tr>
</table></div>
<?php }



cp.inc - дизайн страницы

Свернутый текст
HTML
<html>
<head>
<title>Личный кабинет</title>
<META NAME="AUTHOR" CONTENT="">

<meta http-equiv="Content-Type" content="text/html;

charset=windows-1251">

<Style>
A:Link{ Color: #BFE8FF; Text-decoration: none}
A:Visited{ Color: #BFE8FF; Text-decoration: none}
A:Active{ Color: #BFE8FF; Text-decoration: none}
A:Hover{ Color: white; Text-decoration: none}


.table {
border: none none #FFFFFF;
font-family: Arial, Helvetica, sans-serif;
font-size: 13px;
color: #FFFFFF;
}
.table2 {
padding: 0px;
margin-top: 0px;
margin-right: 0px;
margin-bottom: 0px;
margin-left: 50px;
font-size: 17px;
color: #FFFFFF;
}

#Layer1 {
position:absolute;
left:499px;
top:32px;
width:144px;
height:52px;
z-index:1;
}
</style>
</head>
<body bgcolor="#0070B3" topmargin="10" leftmargin="3">
<div

align
="center">
<center>
<table border="0" width="920" cellpadding="0" cellspacing="0"

height="116">
<tr>
<td width="4" background="a_fon.jpg"><img border="0"

src="images/a1.jpg" width="4" height="116"></td>
<td width="186"><span style="padding-top: 35"><img

src
="images/logo1.jpg" width="218" height="116" border="0" ></span>
<td width="280" background="images/a_fon.jpg"><p

align
="right"></td>
<center>
<td width="443" background="images/a_fon.jpg" align="left"

valign="top" style="padding-top: 35">&nbsp;</td>
</center>
<td width="7" align="left">
<p align="left"><img border="0" src="images/a3.jpg" height="116"></td>
</tr>
</table>
<br>




mysql.php - коннект к базе.

Свернутый текст
PHP
<?php 
/* Параметры */
$hostname "localhost";
$username "root";
$password "123";

/* Соединение, выбор БД */
mysql_connect($hostname,$username,$password) or die("Нет соединения"); 
mysql_select_db('kreptor_catalog');



Код самой страницы

Свернутый текст
PHP
<?php
ob_start
();

require_once(
"adminOnly.php");
include(
'inc/cp.inc');
include(
'mysql.php');

$buf ob_get_contents();

ob_end_clean(); 
?>
<?php

$id 
= !empty($_GET['id']) ? intval($_GET['id'])    : null;  
$id2 = !empty($_GET['id2']) ? intval($_GET['id2']) : null;  

mysql_query ("SET NAMES `cp1251`");
if (empty(
$id))
{
    
$query="DELETE FROM `order` WHERE `id` ='$id2'";
    
$result=mysql_query($query) or die(mysql_error());
    
    
header ("Location: list.php");
    exit();

}
echo 
$buf;
if (empty(
$id2))
{

$query="SELECT * FROM `order` WHERE `id`='$id' order by `date`";
$result=mysql_query($query) or die(mysql_error());

    while (
$row=mysql_fetch_array ($result))
    {  
    
$name        =$row['name'];
    
$email        =$row['email'];
    
$tel        =$row['tel'];
    
$address    =$row['address'];
    
$order        =nl2br($row['order']);
    
$date        =$row['date'];
    
$inn        =$row['inn'];

}
echo 
'                    
    <table width="396" border="0" align="left" cellpadding="0" cellspacing="0" class="table2">
    <tr>
      <td width="105" valign="top"><strong>ID</strong></td>
      <td width="285" valign="top">'
.$id.'</td>
    </tr>
    <tr>
      <td valign="top"><strong>Дата</strong></td>
      <td valign="top">'
.$date.'</td>
    </tr>
    <tr>
      <td valign="top"><strong>Название</strong></td>
      <td valign="top">'
.$name.'</td>
    </tr>
    <tr>
      <td valign="top"><strong>email</strong></td>
      <td valign="top">'
.$email.'</td>
    </tr>
    <tr>
      <td valign="top"><strong>Телефон</strong></td>
      <td valign="top">'
.$tel.'</td>
    </tr>
    <tr>
      <td valign="top"><strong>Адрес</strong></td>
      <td valign="top">'
.$address.'</td>
    </tr>
    <tr>
      <td valign="top"><strong>ИНН/КПП</strong></td>
      <td valign="top">'
.$inn.'</td>
    </tr>
    <tr>
      <td height="76" valign="top"><strong>Заказ</strong></td>
      <td align="left" valign="top">'
.$order.'</td>
    </tr>
    <tr>
<td align="right" valign="middle"><a href="list.php"><br><img src="images/arrow.png"></a></td>
<td align="left" valign="middle"><strong><a href="list.php"><br>&nbsp;Назад</a></strong></td>
    </tr>
    <tr>
    <td><p>&nbsp;</p>
<p>&nbsp;</p></td>
    </tr>
  </table>'
;              
}




Спустя 5 минут, 10 секунд (7.08.2009 - 15:48) Kuliev написал(а):
ANG3
Вот так надо было сначала, сейчас сделаем

Спустя 22 минуты, 17 секунд (7.08.2009 - 16:11) Kuliev написал(а):
ANG3

В общем только что проверял у себя, у меня все работает!

Вот этот самый код.
PHP
<?php
ob_start
();

require_once(
"adminOnly.php");
include(
'inc/cp.inc');
include(
'mysql.php');

$buf ob_get_contents();

ob_end_clean();

$id = !empty($_GET['id']) ? $_GET['id'] : null;  
$id2 = !empty($_GET['id2']) ? $_GET['id2'] : null;  


if (isset(
$id))
{
    
$sql "DELETE FROM `order` WHERE `id` ='".intval($id2)."'";
    
$result mysql_query($sql) or die(mysql_error() ."<br/>"$sql);
    
    
header ("Location: list.php");
    exit();

}

if (isset(
$id2))
{
    
$sql "SELECT * FROM `order` WHERE `id`='".intval($id)."' order by `date`";
    
$result mysql_query($sql) or die(mysql_error() ."<br/>"$sql);

    while (
$row mysql_fetch_assoc($result))
    {  
        
$name    $row['name'];
        
$email   $row['email'];
        
$tel     $row['tel'];
        
$address $row['address'];
        
$order   nl2br($row['order']);
        
$date    $row['date'];
        
$inn     $row['inn'];
    }

}

echo 
$buf;


Спустя 1 час, 51 минута, 41 секунда (7.08.2009 - 18:02) ANG3 написал(а):
Спасибо! biggrin.gif
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.