Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 16 odgovora
  • 7.828 pregleda

Najnovija ↓

Poruka o gresci, pomoc 30.10.2010. u 14:30 · pre 194 meseca #1
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?
Re: Poruka o gresci, pomoc 30.10.2010. u 14:49 · pre 194 meseca #2
Lepo ti kaze: ne moze da prosledi header-e jer je vec zapoceo output. Header-e moras da saljes pre bilo kakvog ispisa.
Re: Poruka o gresci, pomoc 30.10.2010. u 14:56 · pre 194 meseca #3
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?
Re: Poruka o gresci, pomoc 30.10.2010. u 14:59 · pre 194 meseca #4
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? :)
Re: Poruka o gresci, pomoc 30.10.2010. u 15:17 · pre 194 meseca #5
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?
Re: Poruka o gresci, pomoc 30.10.2010. u 16:06 · pre 194 meseca #7
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?
Re: Poruka o gresci, pomoc 30.10.2010. u 16:57 · pre 194 meseca #8
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.
Re: Poruka o gresci, pomoc 30.10.2010. u 17:07 · pre 194 meseca #9
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.

Re: Poruka o gresci, pomoc 30.10.2010. u 17:39 · pre 194 meseca #10
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 ????
Re: Poruka o gresci, pomoc 30.10.2010. u 17:56 · pre 194 meseca #12
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.
Re: Poruka o gresci, pomoc 30.10.2010. u 18:11 · pre 194 meseca #13
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 :)
Potpis
Kad sve ostalo zakaže, pročitaj uputstvo...
Re: Poruka o gresci, pomoc 30.10.2010. u 18:22 · pre 194 meseca
izmenjeno 1 put, poslednji put iizuzetan 30.10.2010. u 18:52
  1. iizuzetan30.10.2010. u 18:52zapis iz teksta poruke
#14
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
Re: Poruka o gresci, pomoc 30.10.2010. u 19:00 · pre 194 meseca #15
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?
Re: Poruka o gresci, pomoc 02.11.2010. u 17:34 · pre 194 meseca #17
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!" ?>
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme