Стани премиум член и добиј попуст на 2000+ производи и куп други бенефити!
  • Ако имаш проблем со најава или регистрација на IT.mk, побарај го решението тука!

Warning: Cannot modify header information - headers already sent

zokipp

hello world
24 јули 2008
146
4
Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\Probaaa\Vtorastrana.php:6) in C:\xampp\htdocs\Probaaa\Vtorastrana.php on line 9.
Правам една web каде што треба да се употреби
header("location:"Страна каде што треба да ме врати")
и се изнамачив со оваа грешка.
Направив и едноставен пример и пак истата грешка ја добивам. Еве го кодот:
Првастрана:
<html>
<head>
<title>Basic</title>
</head>
<body>
<?php
$id= 5;
echo "<a href=\"vtorastrana.php?id=" . urlencode($id) . "\"> Vtorastrana </a>" ;
?>
</body>
</html>

Втора страна:

<html>
<head>
<title>Basic</title>
</head>
<body>
<?php
$id_1= $_GET['id'] ;
if($id_1) {
header("location: prvastrana.php") ;
exit; }
echo $id_1 ;
?>
</body>
</html>
 

burce

hello world
1 април 2009
268
38
Скопје
Мислам дека треба да го ставиш php кодот пред html-от (којшто ионака нема да се покаже заради редиректот)
 

B^nDIT

user
6 февруари 2010
1.124
315
Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\Probaaa\Vtorastrana.php:6) in C:\xampp\htdocs\Probaaa\Vtorastrana.php on line 9.
Правам една web каде што треба да се употреби
header("location:"Страна каде што треба да ме врати")
и се изнамачив со оваа грешка.
Направив и едноставен пример и пак истата грешка ја добивам. Еве го кодот:
Првастрана:
<html>
<head>
<title>Basic</title>
</head>
<body>
<?php
$id= 5;
echo "<a href=\"vtorastrana.php?id=" . urlencode($id) . "\"> Vtorastrana </a>" ;
?>
</body>
</html>

Втора страна:

<html>
<head>
<title>Basic</title>
</head>
<body>
<?php
$id_1= $_GET['id'] ;
if($id_1) {
header("location: prvastrana.php") ;
exit; }
echo $id_1 ;
?>
</body>
</html>
Кај втора страна имаш грешка... PHP кодот треба да биде пред HTML , односно
PHP:
<?php 
$id_1= $_GET['id'] ;
if($id_1) {
header("location: prvastrana.php") ;
exit; }
echo $id_1 ;
?>
blalbllalbla <b>html</b>
 

DekoRoker

lurker
12 септември 2009
625
53
Скопје
dejan.at.mk
Не само што PHP кодот треба да биде пред html-от..
Правилото е следно: хедери се праќаат пред било кој output.. не смееш да имаш никакво печатење пред хедерот... Пример: не смееш да имаш:

PHP:
<?php
   echo 'Redirecting...';
   header("Location: prvastrana.php");
?>

Претходните одговори секако точни се, ама мора да пазиш да немаш печатење пред хедерот. И јас имав проблем со ова, пример:

PHP:
 <?php
   if(not_logged_in())
        header("Location: prvastrana.php");
?>

ова ми јавуваше грешка.. Ако можеш да приметиш, пред php тагот имам ставено space, што значи output и ми ја даваше истата грешка... го тупев ова бајаги долго време додека да приметам во едитор дека имам space ставено... :)
 

zokipp

hello world
24 јули 2008
146
4
Не само што PHP кодот треба да биде пред html-от..
Правилото е следно: хедери се праќаат пред било кој output.. не смееш да имаш никакво печатење пред хедерот..

А дали е можно да ме зафркава тоа што пред хедерот имам повикано мои дефинирани функции. Значи некои функции кои ми се повторуваат повеќе пати ги складирам во PHP фајл function, и потоа на почетокот од секоја страна ги повикувам со require_once("includes/function').
И второ што е малку поверојатно.......е тоа што во notpad++ каде што го пишувам кодот му направив encoding од ANSI во UTF-8 и послем тоа почна да ми ја јавува оваа грешка, но потоа повторно го вратив во ANSI и повторно ми ја јавуваше истата грешка.

Барав нешто на google, и баш го прочитав тоа што ми го пиша ти дека не треба да има празен простор помеѓу PHP таговите. Е сега не знам дали се мисли на сите PHP тагови или на тие каде што го пишувам хедерот.

И уште нешто прочитав дека за да не се појавува оваа грешка треба да се исклучи нешто од фајлот php.ini , или да се внесе ob_start(); пред <html> и ob_end_flush(); по </html>. Кај мене ни една од овие понудени решенија не беше успешо.
 

DekoRoker

lurker
12 септември 2009
625
53
Скопје
dejan.at.mk
Вака сега... Тоа што ги инклудуваш фајловите нема врска со грешката, ти можеш и да ги повикаш функциите се додека ниедна од повиканите не печати ништо... ако имаш празни места во php таговите тоа не се рачуна како output, ако имаш празно место или било што ПРЕД php таговите, тоа се рачуна како html output и ќе ти јави грешка хедерот... Енкодингот што си го ставил од ANSI во UTF-8 значи да ако имаш нешто пишувано со мк поддршка или некои знаци што ги нема во ANSI множеството ќе ти ги јави како ???... Да кажеме ако имаш ставено echo 'Здраво'; со ANSI, ќе ти испечати ?????? а ако имаш со UTF-8 ќе ти испечати Здраво. Ама внимавај, тоа зависи и од енкодирањето на прелистувачот.. Ако не е наместено енкодирањето на хтмлот да биде UTF-8 тогаш пак ќе добиеш чудни знаци...
 

Последни теми

Последни огласи

ит маркет

На врв Дно