[ iizuzetan @ 30.10.2010. 13:30 ] @
Javlja mi se sledeca poruka o gresci:

Code:

Warning: Cannot modify header information - headers already sent by (output started at /home/zaljubi/public_html/registracija/funkcije.php:3897) in /home/zaljubi/public_html/registracija/registracija.php on line 52


O cemu se tu radi, jel zna neko?
[ kazil @ 30.10.2010. 13:49 ] @
Lepo ti kaze: ne moze da prosledi header-e jer je vec zapoceo output. Header-e moras da saljes pre bilo kakvog ispisa.
[ iizuzetan @ 30.10.2010. 13:56 ] @
Citat:
kazil: Lepo ti kaze: ne moze da prosledi header-e jer je vec zapoceo output. Header-e moras da saljes pre bilo kakvog ispisa.


A vidi to mi se javlja sad kod novog hostinga a pre je radilo sve kako treba, zasto je to tako? kako su to ovi namestili PHP ako je kod prethodnog sve radilo?
[ kazil @ 30.10.2010. 13:59 ] @
Nije ti radilo, najverovatnije je bilo samo ugaseno prikaz gresaka. Kada radis razvoj necega, uvek, ali uvek radi sa prikazom svih gresaka - ini_set('display_errors','on'); error_reporting(E_ALL);, na produkcionom serveru ugasis prikaz gresaka i neces imati ovakvih problema. Da li sam napomenuo da uvek radis ovako? :)
[ iizuzetan @ 30.10.2010. 14:17 ] @
Pa kako onda da redirektujem programski ako header tako zeza? Jel postoji neka druga funkcija koja nije toliko uvrnuta?

Evo kod koji me zeza:

Code:

......
..........
................. 

        $poruka=formaregistracija($username,$password2,$korisnikid);
        if(slanjemejla ($mejl,'REGISTRACIJA',$poruka)){
             ( TAJ ME ZEZA )header ("location: http://www.zaljubi.com/index.php?u=registracija&greskaa=9");
        }else{header ("location: http://www.zaljubi.com/index.php?u=registracija&greskaa=6");exit;}
        exit;        
}
?>



Znaci (TAJ ME ZEZA) header me zeza. Ali zeza tako da se ne ostvari redirekcija a meni je jako vazno da se ostvari. Kako da ispravim, jel da koristim neku drugu funkciju ili trebam nekako drugacije da napisem header funkciju?
[ mitke013 @ 30.10.2010. 14:52 ] @
Sta imas u liniji: /public_html/registracija/registracija.php on line 52 ?

Drugo, bolje resenje: koristi http://php.net/manual/en/function.ob-start.php
[ iizuzetan @ 30.10.2010. 15:06 ] @
Citat:
mitke013: Sta imas u liniji: /public_html/registracija/registracija.php on line 52 ?

Drugo, bolje resenje: koristi http://php.net/manual/en/function.ob-start.php


Imam (TAJ ME ZEZA) liniju

A ne mogu da skontam ob_start() funkciju. KJako da njom zamenim sledecu liniju?

Code:

header ("location: http://www.zaljubi.com/index.php?u=registracija&greskaa=9");


I kako na prethodnom hostingu sve je radilo kako treba a sad zeza? Kakve su to razlike imzedju PHP-a starog i novog hostinga? Da li to samo ovaj novi hosting zeza ili kad bih preso i kod drugih opet bi zezalo?
[ japan @ 30.10.2010. 15:57 ] @
Nije problem ta linija, vec neka prethodna u kojoj imas neki ispis, pa onda header ne moze da se izvrsi, jer ta funkcija mora da ide pre bilo kakvog ispisa.

A Robert ti je vec lepo odgovorio kako da prevazidjes ovaj problem, samo jos da procitas.
[ mitke013 @ 30.10.2010. 16:07 ] @
Citat:
iizuzetan: Imam (TAJ ME ZEZA) liniju

A ne mogu da skontam ob_start() funkciju. KJako da njom zamenim sledecu liniju?

Code:

header ("location: http://www.zaljubi.com/index.php?u=registracija&greskaa=9");


I kako na prethodnom hostingu sve je radilo kako treba a sad zeza? Kakve su to razlike imzedju PHP-a starog i novog hostinga? Da li to samo ovaj novi hosting zeza ili kad bih preso i kod drugih opet bi zezalo?


Moja greska; hteo sam da te pitam sta imas u liniji: /home/zaljubi/public_html/registracija/funkcije.php:3897 ?

Gle, prica o headerima je sledeca:

ako uradis echo 'tekst' ; ili mesas HTML i php
to se vec smatra da je 'output started'. Isto vazi i ako imas .php fajl, ali npr. <?php nije odmah u prvom redu vec recimo drugom. Tj. prvi red je 'enter', sto je opet dovoljno da browser smatra za output started. Mislim da se to spada u 'white characters'. Itd... duga prica.

Problem je lako resiti:
svaki .php fajl mora da pocne ODMAH sa <?php . Ne drugi red, ne nekoliko space-ova... vec bukvalno odmah.
PHP fajlove nemoj nikad da zatvaras. Totalno je nepotrebno, a posle ;?> se cesto nadje opet neki enter. Ako si radi include-ove, hvata te isti problem. Ako koristis ajax gde JS proverava tacno odredjen string poslat od php-a, opet nece da valja ako si zatvorio .php fajl.

ob_start():
Ako uradis echo 'nesto'; ili stavis html, to se nece odmah poslati browser-u vec se cuva u kesu. Medjutim, header-i prolaze odmah. Ako koristis MVC pattern (uglavnom jedna ulazna tacka), dovoljno je da u index.php fajlu stavis ob_start() i resio si problem.

Ovo za hosting; stvarno nemam pojma.

[ iizuzetan @ 30.10.2010. 16:39 ] @
Mitke hvala razumeo sam. Sad sam dodao na tom fajlu za registraciju na samom pocetku funkciju ob_start() a na samom kraju sam dodao funkciju ob_end_flush () i sad mi OK radi redirekcija.

Medjutim sad mi na logout.php fajl ne radi header iako sam i kod nejga sve odradio kao kod php fajla za registraciju. Evo ovako izgleda kod:

Code:

<?php
ob_start();
error_reporting(0);
include('vkuyy.php');
@session_start();
$korisnikid=$_SESSION['login'];
$q=@mysql_query("select * from korisnicisesije where korisnikid='".$korisnikid."'");
if (@mysql_num_rows($q)!=0){
     @mysql_query("delete from korisnicisesije where korisnikid='".$korisnikid."'");
}

unset($_SESSION);
unset($_COOKIE);
$_SESSION = array();
session_unset();
session_destroy();

header ("location: http://www.zaljubi.com/index.php");exit;

ob_end_flush ();
?>


Znaci zaglavi se na http://www.zaljubi.com/logout.php a nece da redirektuje na http://www.zaljubi.com/index.php i pri tome sad u opste i ne izbaci nikakvu gresku kad izbacim iz koda error_reporting(0) !!

Sta sad moze da bude problem, sta mislita, inace logout ok uradi jer kad ja rucno udjem na http://www.zaljubi.com/index.php ja sam izasao iz login ????
[ mitke013 @ 30.10.2010. 16:49 ] @
Ajde procitaj opet kazilovu poruku i kasce ti se samo
[ iizuzetan @ 30.10.2010. 16:56 ] @
Citat:
mitke013: Ajde procitaj opet kazilovu poruku i kasce ti se samo :)


Pa ne pokazuje greske kad omogucim da prikaze greske, samo se pojavi bela stranica a ne izvrsi redirekciju.
[ Jbyn4e @ 30.10.2010. 17:11 ] @
Ne znam sto ti pomazem, ali ajde...

Izbacio onaj exit posle header, izbaci (ako ti je to ceo kod) obe ob_ funkcije, nisu potrebne, i sve ce ponovo raditi.

exit funkcija u ovom slucaju se izvrsi pre ob_end_flush i zaustavi izvrsavanje, zato dobijes belu stranicu :)
[ iizuzetan @ 30.10.2010. 17:22 ] @
Citat:
Jbyn4e: Ne znam sto ti pomazem, ali ajde...

Izbacio onaj exit posle header, izbaci (ako ti je to ceo kod) obe ob_ funkcije, nisu potrebne, i sve ce ponovo raditi.

exit funkcija u ovom slucaju se izvrsi pre ob_end_flush i zaustavi izvrsavanje, zato dobijes belu stranicu :)


Ne vredi, sve sto si napisao sam uradio i opet isto. Cak sam i sve izmenio i samo je stajalo:

Code:

<?
header ("location: http://www.zaljubi.com/index.php");
?>


I opet nece a <? pocinje bas bas na samom pocetku a pokazuje gresku sledecu?

Code:

Warning: Cannot modify header information - headers already sent by (output started at /home/zaljubi/public_html/registracija/logout.php:1) in /home/zaljubi/public_html/registracija/logout.php on line 2


[Ovu poruku je menjao iizuzetan dana 30.10.2010. u 18:52 GMT+1]
[ iizuzetan @ 30.10.2010. 18:00 ] @
Ne mogu da verujem. Na kraju sam se iznervirao i izbrisao logout.php fajl i napravio potpuno novi. Kad sam ubacio novi sve radi kako treba. Kako kad je sve vizuelno bilo identicno?? Da li to znaci da u samom fajlu je postojao neki ispis a da se to nije vidlo, kako to?
[ Goran Rakić @ 30.10.2010. 18:18 ] @
http://www.elitesecurity.org/t96073-0#1348151 ali kada je neko lenj i ne želi da čita, ne vredi mu ni pisati.
[ KumRusvelt @ 02.11.2010. 16:34 ] @
Kao početnik u korišćenju php-a, pokušao sam izvesti akciju korišćenjem radio dugmadi da se sa jedne stranice
prebaci na drugu stranicu putem izbora pritiskom na dugme i potom slanja.
Problem sam imao u tome kada se odabere dugme pravo dobijam sledeću poruku o grešci:
Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\test\izbor.php:6) in C:\xampp\htdocs\test\izbor.php on line 48
a, kada se odabere dugme ekonomija sledi poruka o grešci:
Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\test\izbor.php:6) in C:\xampp\htdocs\test\izbor.php on line 51
Gotovo sam pomislio da grešim u izboru koda, i kada sam posetio ovaj post odlučio sam da poslušam savete o upotrebi
ob_start(); i ob_flush(); funkcija i sada konačno mogu da odahnem. Sve funkcioniše besprekorno, evo mog primera:
//////////////////////////////////////////////////////
//output_bib.php funkcija izgleda stranice izbora
function izbor() {
?>
<table width="75%" border="0" align="center">
<tr>
<td width="23%" valign="top" height="392"><p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<?php include_once "left_AD_template.php"; ?>
<p>&nbsp;</p>
<p>&nbsp;</p></td>
<td width="42%" valign="top"><p>&nbsp;</p>
<p>&nbsp;</p>
<?php
if (!isset($_POST['Submit1'])) {
$selected_radio = ['izbor'];
if ($selected_radio == 'pravo') {
header("Location: pravo.php");
}
else if ($selected_radio == 'ekonomija') {
header("Location: ekonomija.php");
}
}
?>
<form id="form1" name="form1" method="post" action="izbor.php">
<table width="100%" border="0" align="center">
<tr>
<td width="9%"><input type="radio" name="izbor" id="pravo" value="pravo" /></td>
<td width="29%">Firme</td>
<td width="9%"><input type="radio" name="izbor" id="ekonomija" value="ekonomija" /></td>
<td width="32%">Fizička lica</td>
<td width="21%"><input type="submit" name="Submit1" id="submit" value="Submit1" /></td>
</tr>
</table>
</form>
<p>&nbsp;</p></td>
<td width="35%"valign="top" ><p><?php include_once "right_AD_template.php"; ?></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p></td>
</tr>
</table>
<?php
}
?>
//////////////////////////////////////////////////////////////////////////////////////
//stranica izbor.php
<?php ob_start(); ?>
<?php
require_once "scripts/function.php";
require_once "output_bib.php";
pageHeader('');
izbor();
pageFooter();
?>
<?php ob_flush(); ?>
////////////////////////////////
P.S. <?PHP print "Zahvaljujem se svima na ovoj pomoći!" ?>