Проблем с header()

dmx_cs_manqka

Registered
Здрaвейте!
Преди бях с WAMP5 и след кaто си преинстaлирaх компa си го свaлих отново, но когaто нaпишa:
<?php
header("location:index.php");
?>
Ми дaвa тaзи грешкa:
Warning: Cannot modify header information - headers already sent by (output started at C:\wamp\www\phpcalculator\testheader.php:16) in C:\wamp\www\phpcalculator\testheader.php on line 18

От кaкво може дa е товa ?
 
На линия 16 в същия файл имаш изкарване на текст. Изтрий го. Функцията header работи само ако нямаш изпратен текст към браузъра.
А и не разбирам защо имаш echo / print и веднага след това пренасочваш - няма смисъл, според мен.
 
anonimen каза:
На линия 16 в същия файл имаш изкарване на текст. Изтрий го. Функцията header работи само ако нямаш изпратен текст към браузъра.
А и не разбирам защо имаш echo / print и веднага след това пренасочваш - няма смисъл, според мен.
Aми пробвaх дa пренaсочвaм от друг прaзен фaйл ( в него имa сaмо header() функциятa ) към индекс.пхп, но пaк същaтa грешкa.. xD
 
dmx_cs_manqka каза:
anonimen каза:
На линия 16 в същия файл имаш изкарване на текст. Изтрий го. Функцията header работи само ако нямаш изпратен текст към браузъра.
А и не разбирам защо имаш echo / print и веднага след това пренасочваш - няма смисъл, според мен.
Aми пробвaх дa пренaсочвaм от друг прaзен фaйл ( в него имa сaмо header() функциятa ) към индекс.пхп, но пaк същaтa грешкa.. xD
Пак същата грешка, защото в index.php на 16 ред имаш извеждане на текст, след който (на 18 ред) имаш header(). Казах ти - махни текста от 16 ред.
 
anonimen каза:
dmx_cs_manqka каза:
anonimen каза:
На линия 16 в същия файл имаш изкарване на текст. Изтрий го. Функцията header работи само ако нямаш изпратен текст към браузъра.
А и не разбирам защо имаш echo / print и веднага след това пренасочваш - няма смисъл, според мен.
Aми пробвaх дa пренaсочвaм от друг прaзен фaйл ( в него имa сaмо header() функциятa ) към индекс.пхп, но пaк същaтa грешкa.. xD
Пак същата грешка, защото в index.php на 16 ред имаш извеждане на текст, след който (на 18 ред) имаш header(). Казах ти - махни текста от 16 ред.
Ами аз се обърках - и на двете места е 16 ред, а и тази грешка ми я дава постоянно.. В който и да е файл.. Може да ми е от WAMP-а ;дд
 
@ само скрива проблема - не го оправя.

@dmx, провери преди header дали нямаш изкарване на текст. Дори при следния случай

<?php
...
echo "something";
...
include 'header.php'; // тук има header();

пак ще изтрещи тази грешка. Няма какво повече да се каже тук >_>
 
Ми aз си нaпрaвих двa фaйлa - test.php and test2.php ( прaзни )
В test.php пишa:

header("Location:test2.php");

И без дa изкaрвaм текст ми дaвa грешкaтa.. _:cry:
 
Сложи най-отгоре на файла си (ако инклудваш файловете в някой друг - значи там)
PHP:
ob_start();[/b] всъщност не е задължително да имаш буквално текст преди функцията, някой път стига и просто празни редове да замажат така положението :idea:
 
1. Направи 2 файла - test.php и test2.php (напълно празни).

2. Влизаш в notepad++(ако използваш него) и горе в менюта имаше да се смени кодировката, задаваш и на двата файла UTF8 WITHOUT BOM, това се прави задължително, защото ако е с BOM в началото на файла се поставя нещо като печат на файла, че бил BOM(byte order mark)(разбира се ти това не го виждаш, но е там), това кара принуделтлно да бъдат изпратени хедарите. А както знаем вече след като са изпратени хедарите, използването на header(); ще хвърли грешка.

3. В файл "test.php" поставяш:

PHP:
<?php header('Location: test2.php');exit;

4. В файл "test2.php" поставяш:

PHP:
<?php echo 'file2 is here';

5. Извикваш от браузъра файл: test.php.

6. Като съвет:
Когато приключиш с писането на един PHP код, последния таг " ?> " попринцип е хубаво да не се пише, PHP автоматично го затваря там където трябва. Това ти го казвам защото при евентуален include на този файл и ако е със затворен " ?> " има вероятност да възникне грешка за хедарите също. Тъй като се оставят едни празни полета за който ти каза Replace, те могът да бъдат преди " <?php " и след " ?> ". За това когато отваряш нов файл на най - първият ред (1) си отваряш " <?php " и не го затваряш на края на файла, така при инклуд файловете ще бъдат "уплътнени".
 

Back
Горе