[ peca89bg @ 19.01.2011. 14:05 ] @
imam sledeci problem:

ovako sam stavio title tag na stranici sa kategorijama <title><!-- NASLOV --></title>

e sad, imam:
Code:

$sta = $_GET['kat']; 
$upit = "select kat from kategorije where id_kat = '$sta'";  
$rez = mysql_query($upit); 
while($niz = mysql_fetch_array($rez)){
echo ucfirst($niz[0]);
$naslov = "Kategorija: " . ucfirst($niz[0]);
$naslov_sadrzi = ob_get_contents(); 
ob_end_clean(); 
echo str_replace('<!-- NASLOV -->', $naslov, $naslov_sadrzi);

diskonektuj_se();

ovaj kod mi ispisuje u h1 tagu naziv kategorije a ovo
Code:

$naslov = "Kategorija: " . ucfirst($niz[0]);
$naslov_sadrzi = ob_get_contents(); 
ob_end_clean(); 
echo str_replace('<!-- NASLOV -->', $naslov, $naslov_sadrzi);

naslov stranice, problem je u tome sto mi ovo bez ikakvih problema radi na localhostu (wamp) i na linuxu ali nece da radi kada ga aplodujem na server, pitao sam hosting podrsku zasto nece i i evo njihovog odgovora:
"To bi trebalo da radi, zaista ne znam zasto ne bi, zavisi sta je u tom baferu. Pokusajte to isto da uradite bez tog output bafera."

Kada izvlacim iz baze preko id-a naziv kategorije uvek ce da vrati jedan row, tako da nema problema sa menjanjem sto puta naslova i ispisa gresaka

da li je do njih problem ili do mene? :S
dobro bi mi doslo i neko drugo resenje ako je neko voljan da podeli :)

Pozdrav!
[ midgard @ 20.01.2011. 10:57 ] @
Sto ne probas sa klasicnim rucnim da ne kazem seljackim :) debugingom, tako sto ces da ispisujes na ekran posle svake ili svake bitnije linije sta je uradjeno do tad. Tako mozes da saznas tacno koja funkcija pravi problem, a vrlo brzo i zasto.
[ peca89bg @ 20.01.2011. 19:43 ] @
Citat:
midgard: Sto ne probas sa klasicnim rucnim da ne kazem seljackim :) debugingom, tako sto ces da ispisujes na ekran posle svake ili svake bitnije linije sta je uradjeno do tad. Tako mozes da saznas tacno koja funkcija pravi problem, a vrlo brzo i zasto.


probao sam ali ne vidim gresku, kao sto rekoh radi na linuxu i na wampu na localhostu ali nece na serveru, pitao njih i rekose da treba da radi....

jel ima neko neko drugo resenje? :)
[ peca89bg @ 24.01.2011. 19:01 ] @
ajmo ljudi nemoguce da niko ama bas niko ne zna ili da nije voljan da podeli neko drugo resenje :(
[ Miroslav Ćurčić @ 24.01.2011. 21:34 ] @
Dobro ti je midgard rekao, DEBUG.
Ehuj promenljive $naslov i $naslov_sadrzi neposredno pre ubacivanja u title i uporedi, i tako redom unazad.
[ peca89bg @ 24.01.2011. 21:49 ] @
$naslov; i $naslov_sadrzi;

pre str_replace-a: $naslov = "Artikal sadrzi pa naziv artikla" dok je $naslov_sadrzi prazan
a posle str_replace-a: $naslov = "Artikal sadrzi pa naziv artikla" dok je $naslov_sadrzi prazan

[ VladaSu @ 25.01.2011. 18:05 ] @
Nemas ob_start();

Ne znam da li sam dobro skontao ali ti radis ovako:
1. Generises head za bezveze naslovom
2. Generises body
3. Onda sve to pokupus u promenljivu gde zamenis bezveze naslov
4. Ispises promenljivu

Nije li bolje?
1. Generises head sa dobrim naslovom
2. Generises body

[ peca89bg @ 25.01.2011. 18:50 ] @
Pa prvo stavim neki bezveze naslov i posle taj naslov zamenim sa str_repace sa nazivom artikla iz baze....
kao sto sam rekao radi na localhostu na wampu i u linuxu ali nece kad postavim na server....

Citat:
VladaSu:
Nije li bolje?
1. Generises head sa dobrim naslovom
2. Generises body


ne ja necu da mi bude naslov konstantan tj da se ne menja. a probao sam i sa ob_start(); i isto je.

ne razumem zasto nece
[ Miroslav Ćurčić @ 25.01.2011. 19:33 ] @
Meni je čudno to što imaš ob_end_clean(); u petlji.

Ajde daj ceo relevantan kod pa da vidimo.
[ peca89bg @ 25.01.2011. 19:51 ] @
Code:

konektuj_se();
$upit = select * from artikal where id_ar = '" . $_GET["id"] . "';
$rez = mysql_query($upit);
$rez_naziv = mysql_fetch_array($rez);
$naziv = $rez_naziv["naziv"];

ob_start();
$naslov = "Artikal: " . $naziv;
$naslov_sadrzi = ob_get_contents(); 
ob_end_clean(); 
echo str_replace('<!-- NASLOV -->', $naslov, $naslov_sadrzi);
diskonektuj_se();


evo to je to parce koda koje radi menjanje naslova.

malo sam izmenio kod jer na toj strani vadim samo jedan artikal iz baze
[ Srbin do jaja @ 25.01.2011. 22:09 ] @
mozda ovo pomogne:

You have to start the output buffer before anything is sent to the browser. So one of the ways to ensure that is starting it right after you opened the php tag.

Code:
<?php
ob_start();

preuzeto sa: http://www.suite101.com/content/output-buffer-in-php-a26768

Make sure that there is really nothing before the php opening tag. Even a space can cause errors.



Read more at Suite101: Output Buffer in PHP: What is it for and how can you make effective use of it http://www.suite101.com/conten...er-in-php-a26768#ixzz1C5TYzljn
[ peca89bg @ 25.01.2011. 22:34 ] @
Citat:
Srbin do jaja: mozda ovo pomogne:

You have to start the output buffer before anything is sent to the browser. So one of the ways to ensure that is starting it right after you opened the php tag.

Code:
<?php
ob_start();

preuzeto sa: http://www.suite101.com/content/output-buffer-in-php-a26768

Make sure that there is really nothing before the php opening tag. Even a space can cause errors.



Read more at Suite101: Output Buffer in PHP: What is it for and how can you make effective use of it http://www.suite101.com/conten...er-in-php-a26768#ixzz1C5TYzljn


Pa svaka ti cast! Kako li si samo ovo iskopao? :) Hvala puno i drugima koji su pokusali da rese moj problem.
[ midgard @ 26.01.2011. 10:14 ] @
VladaSu ti je vec dao resenje par postova iznad. Posto vidim da nisi vican php programer (bez uvrede), bilo bi dobro da kad god radis nesto novo ili koristis funkciju za koju nisi 100% siguran da znas sta radi, da posetis php-ovu dokumentaciju za tu funkciju, konkretno http://php.net/manual/en/function.ob-start.php.

Ovo ti pisem cisto kao savet, jer sam se i ja susretao sa slicnim semantickim problemima kad sam pocinjao (ne kazem da si ti pocetnik) koji su trajali satima/danima, a vecinu njih je mogla da mi resi bas ta php dokumentacija za par minuta.
[ VladaSu @ 26.01.2011. 11:24 ] @
Citat:
peca89bg: Pa prvo stavim neki bezveze naslov i posle taj naslov zamenim sa str_repace sa nazivom artikla iz baze....
kao sto sam rekao radi na localhostu na wampu i u linuxu ali nece kad postavim na server....



ne ja necu da mi bude naslov konstantan tj da se ne menja. a probao sam i sa ob_start(); i isto je.

ne razumem zasto nece


A sta te sprecava da ti tu naslov bude dinamicki?

Code:

konektuj_se();
$upit = select * from artikal where id_ar = '" . $_GET["id"] . "';
$rez = mysql_query($upit);
$rez_naziv = mysql_fetch_array($rez);
$naziv = $rez_naziv["naziv"];

$naslov = "Artikal: " . $naziv;
...
...
...
echo "<title>{$naslov}</title>";
...
...
...
//ili include "view/header.php";
include "view/item.php";
include "view/footer.php";
diskonektuj_se();


Mislim da ti je pogresan pristup problemu....
ob_ se koristi u drugim situacijama.
[ peca89bg @ 26.01.2011. 15:37 ] @
Citat:
VladaSu: A sta te sprecava da ti tu naslov bude dinamicki?

Code:

konektuj_se();
$upit = select * from artikal where id_ar = '" . $_GET["id"] . "';
$rez = mysql_query($upit);
$rez_naziv = mysql_fetch_array($rez);
$naziv = $rez_naziv["naziv"];

$naslov = "Artikal: " . $naziv;
...
...
...
echo "<title>{$naslov}</title>";
...
...
...



pokusavao sam ovako i nece. Ne znam zasto je lose? Daj mi neki primer gde se koristi..
Iskreno naisao sam negde na ovo resenje, malo ga preuredio i evo ga sada radi...
Nisam do sa sada vidjao u jos kakvim se situacijama koristi...
[ VladaSu @ 26.01.2011. 18:26 ] @
Koristi se recimo ako hoces da saljes html email i koristis template.
Koristio sam kada sam ucitavao ajaxom content stranice gde je response bio json gde sam pored html-a vraca errore i jos x broj infoa.

A da te pitam ako ne mozes da promenis naslov onda kako promenis cenu proizvoda?
Trebalo bi da je totalno isto!

Ovo je bas prost primer gde imas title, naslov, opis i cenu:
Code:

<?php
konektuj_se();
$upit = select * from artikal where id_ar = '" . $_GET["id"] . "';
$rez = mysql_query($upit);
$rez_naziv = mysql_fetch_array($rez);
echo "<html>";
echo "<head>";
echo "<title>Artikal: " . $rez_naziv['naziv'] . "</title>";
echo "</head>";
echo "<body>";
echo  "<h1>" .  $rez_naziv['naziv'] . "</h1>";
echo  "Opis:<br/>";
echo  "<p>" .  $rez_naziv['opis'] . "</p>";
echo  "Cena: " . $rez_naziv['cena'] . " EUR <br/>";
echo "</body>";
echo "</html>";
diskonektuj_se();
?>


Problemi koje ces imati sa ovim primerom:
1. Sta ako ne predas id parametar putem get-a?
2. Sta ako je taj id slovo?
3. Sta ako kazem ovako nesto artikal.php?id='4 onda ce da ti puci sql
4. Sta ako lupim id da je neki broj koji ne postoji u bazi pa ni nemas taj artikal.
5. Sta ako recimo u nazivu ili opisu ili ceni imas html kod? Recimo Ovo je opis </p> proizvoda

Za diskonektuj_se(); nema potrebe jer php cim zavrsi sa parsiranjem koda on zatvori automatski konekciju ka bazi ako je u pitanju standardna konekcija.
[ peca89bg @ 26.01.2011. 19:12 ] @
Citat:
VladaSu:

Problemi koje ces imati sa ovim primerom:
1. Sta ako ne predas id parametar putem get-a?
2. Sta ako je taj id slovo?
3. Sta ako kazem ovako nesto artikal.php?id='4 onda ce da ti puci sql
4. Sta ako lupim id da je neki broj koji ne postoji u bazi pa ni nemas taj artikal.
5. Sta ako recimo u nazivu ili opisu ili ceni imas html kod? Recimo Ovo je opis </p> proizvoda



to se jednostavno resi sa isset id ili ako je br_rez == 0 onda da ispise nesto ili da redirektuje na neku stranu.
ne znam zasto pominjes naziv i opis artikla kad izvlacim iz baze po id-u koji je jedinstven u bazi.
[ VladaSu @ 26.01.2011. 21:02 ] @
Ja sam ti to rekao jer vidim da su sve to rupe u kodu.
Ko ti garantuje da ce podaci iz baze biti uvek lepo napisani?
[ peca89bg @ 26.01.2011. 22:35 ] @
kako ko mi garantuje da li ce podaci u bazi biti lepo napisani?
Pricamo o artiklima koji imaju: id, naziv, opis, sliku, cenu, cenu na akciji i stanje na lageru.
Imam admin panel koji proverava sve sto moze da se proveri, tako da nema sanse da ne budu lepo napisani ako artikle ubacuje covek kome sam pravio sajt. Jednostavno.
Ako ja ubacujem artikle onda normalno cu da pazim sta cu i kako da ubacim.
[ VladaSu @ 27.01.2011. 11:10 ] @
Ma ok, nemoj da se vredjas.
Samo sam na osnovu front end koda, stila pisanja i logike izrazio sumnju da admin ima sve te provere.