Smarty error - syntax error: unclosed tag \{if}

pozz svima

problem sa skriptom, i slabo stojim s php-om

nakon ovjeravanja oglasa korisnika na skripti, prikazuje mi se error:

kad otvorim smarty.class.php u liniiji 1092 stoji sljedeće

[quote=""]function trigger_error($error_msg, $error_type = E_USER_WARNING)
{
trigger_error(“Smarty error: $error_msg”, $error_type); (<— 1092 linija)
}[/quote]

sta je to i kako da to popravim

hvala puno

Greška ti je u template fileu, jedino što u citiranoj liniji ne navodi kojem. Kao što kaže postoji if koji ej otvoren u prevom redu template filea ali nije zatvoren.

hmm, a da li vjerovatno da se radi o template fajlu kojeg je trebao otvoriti pa se prikazao error, ili se radi o template fajlu sa kojeg sam dosao na tu error poruku???

Onaj koji je trebao biti otvoren.

stvarno ne znam kako to da nadjem jer to je fajl za postavljanje oglasa i u njemu je upisano svih 7 koraka.

meni prijavljuje gresku kad treba da otvori 7. korak, a u 7. koraku on treba da redirektuje na dokument free.php (ukoliko je oglas besplatan) za koji ne postoji template, ili ukoliko se oglas placa redirektuje na paypal, koji otvara bez problema.

ukoliko je odabir recimo bankovna uplata, trebao bi da ispise da su mailom poslani podaci za uplatu, tu javlja isti error.

na jednom sam forumu pronasao slican problem, i neko mu jepredlozio da upise

$smarty->debbuging=true

ali ja ne znam sta je to, i gdje se to upisuje, uglavnom valjda je to rijesilo problem

Taj red dodaš bilo gdje u index.php, bitno je da se nalazi iza:

include_once('libs/Smarty.class.php');
$smarty = new Smarty;

[quote=“Riba”]Taj red dodaš bilo gdje u index.php, bitno je da se nalazi iza:

include_once('libs/Smarty.class.php');
$smarty = new Smarty;

[/quote]

to mi nije pomoglo,

Postoji li negdje ta skipta za pogedati/skinuti?

evo template koda u kojem je navodno nije zatvoren if

E, to je već bolje. Čini mi se da zaista nedostaje jedan {/if} u trećem redu. Nisam stigao detaljno pogledati ali vidim na dnu da učitava footer.html samo ako se ne radi o sedmom koraku:

{if $step!=7}
{include file="footer.html"}
{/if}

…pa bih rekao da je ista stvar i sa headerom koji bi trebao izgledati ovako:

{if $step!=7}
{include file="header.html"}
{/if}

Isprobaj!

[quote=“Riba”]E, to je već bolje. Čini mi se da zaista nedostaje jedan {/if} u trećem redu. Nisam stigao detaljno pogledati ali vidim na dnu da učitava footer.html samo ako se ne radi o sedmom koraku:

{if $step!=7}
{include file="footer.html"}
{/if}

…pa bih rekao da je ista stvar i sa headerom koji bi trebao izgledati ovako:

{if $step!=7}
{include file="header.html"}
{/if}

Isprobaj![/quote]

da, probao sam sinoc, i evo opet sam, to nije solucija, sta se desava:

kad zatvorim “header” javlja mi error da je suvisan (/if) u liniji 19, kad obrisem (/if)
sa linije 19, opet isto:

Fatal error: Smarty error: [in evaluated template line 1]: syntax error: unclosed tag {if} (opened line 1). (Smarty_Compiler.class.php, line 326) in /home/bhnekret/public_html/libs/Smarty.class.php on line 1092

Hm, da. Sad sam provjerio, u templateu ima 152 otvorenih i isto toliko zatvorenih if izraza. S obzirom da se to događa samo kod sedmog koraka, usredotoči pažnju na ovaj dio, problem mora biti tu:

{if $step==7}  {* ---- redirect to payment ---- *}
<html>
<head><script type="text/javascript" src="{$live_site}/libs/jQuery/jquery.js"></script></head>
<body>
{$lng.listings.wait_while_redirected}
<div style="display: none;">{$payment_form}</div>

<script type="text/javascript">
{literal}
$(document).ready(function () {
document.payment_form.submit();
});
{/literal}
</script>

</body>
</html>
{/if}

Moda je problem u sadržaju {$payment_form}?

[quote=“Riba”]Hm, da. Sad sam provjerio, u templateu ima 152 otvorenih i isto toliko zatvorenih if izraza. S obzirom da se to događa samo kod sedmog koraka, usredotoči pažnju na ovaj dio, problem mora biti tu:

{if $step==7}  {* ---- redirect to payment ---- *}
<html>
<head><script type="text/javascript" src="{$live_site}/libs/jQuery/jquery.js"></script></head>
<body>
{$lng.listings.wait_while_redirected}
<div style="display: none;">{$payment_form}</div>

<script type="text/javascript">
{literal}
$(document).ready(function () {
document.payment_form.submit();
});
{/literal}
</script>

</body>
</html>
{/if}

Moda je problem u sadržaju {$payment_form}?[/quote]

ok, znaci payment forme mi otvara i to je ok, medjutim kad je oglas besplatan ili ide na bankovnu uplatu gdje treba ispisati da suu podaci za uplatu poslani na email. on javlja gresku, a sve to bi trebao ispisati na ovaj link:

http://www.----.com/payment_return/free.php?ukey=c03489d1bcc65395106b9a4a5e4652ec

eh sad, free.php postoji no template za njega nema i ne treba da postoji.

ovo “ukey” poslije free.php fajla ne znam sta je ni gdje je, ali sam ga pronasao u bazi, i ne znam kakva mu je funkcija

sorry

www—com/payment_return/free.php?ukey=c03489d1bcc65395106b9a4a5e4652ec

Sad vidim da se payment form niti ne pokazuje u koraku 7. Počinjem sumnjati da problem nije uopće u ovom templateu već u nekom drugom koji se otvara nakon toga. Ima li još koji potencijalni template koji bi mogao biti sumnjivac?

yesss, u medjuvremenu sam pronasao problem, rijesio ga, i da gospon Riba, postojao je potencijalni template koji je povezan, pa cu to ispod da elaboriram :slight_smile:

  1. Zahvalicu korisniku Riba jer je imao strpljenje i upornost za pomoc, s moje strane zasluzuje visoku karmu

  2. u Mysql kategoriji sam vec objavio post kako sammijenjao collation koji mi je rezultirao brisanje teksta poslije svakog slova Š i Ž
    ja sam zamjenio collation u sve i jednoj tabli i strukturi i brisanje se naravno desilo u svokom sadrzaju koji je predvidjen za izmjene korisnika ili admina, ali samo u user i admin suceljima koji su prilagodjeni za izmjene (znaci ne php, html, i css dokumenti)

  3. moj je problem bio taj sto, u mom slucaju, prilikom zatvrnja oglasa, skripta treba da prikaze STATUS OBJAVE OGLASA.
    sta se desava???
    desilo se to da u mojoj skripti, u admin sucelju, postoje opcije izmjene jezickih postavki za informativne poruke putem templatea ili maila (skripta prikazuje ili salje poruke na onom jeziku koji vam je odabran za koristenje stranice). MEDJUTIM nakon izmjene collationa u bazi postavke koje sam izmjenio na hrvatskom, su bile obrisane kako sam objasnio prethodnou tacki 2.
    s obzirom da se radilo o html prilagodjenim info i email poorukama, od kojih su pojedine pocinjale i zavrsavale sa IF tagom, bile su obrisane npr od pola teksta.

znaci gdje je bio otvoren IF, nakon brisanja obrisano je i njegovo zatvorenje.

  1. znaci promjenio odnosno zatvorio sam IFove koje sam imao u admin sucelju jezickim postavkama, kako za infoporuke koje se prikazuju na sajtu, tako i email poruke koje skripta salje odmah nakon potvrde oglasa (poruke tipa: vas oglas je uspjesno objavljen… bla bla).
    te poruke su direktno vezane za template dokument na kojem mi je pokazivao gresku, i kad one nisu ok, ni pravi html temlate ocito ne radi kakko treba.

ZAKLJUCAK:

template dokument nije samo onaj na kojem vam se pokazuje error, nego i svi oni koji su sa njim povezani.

hvala Ribi jos jednom

sretan sam, pozz

Ajoj, do ovoga si zaista mogao samo sam doći. :smiley:
Glavno da je problem riješen, a i lijepo je da si rješenje podijelio sa forumom.

[quote=“Riba”]Ajoj, do ovoga si zaista mogao samo sam doći. :smiley:
Glavno da je problem riješen, a i lijepo je da si rješenje podijelio sa forumom.[/quote]

ne da sam mogao, nego sam morao, no nije mi bilo ni na kraj pameti. s obzirom da se ne razumijem u php uoste, vise me prestasio taj smarty error, ppa pomislih joj sta cu sad… ali eto kad sam bazu mijenjao nisam znao kakve su posljedice imati, i vidi sta se desi


Copyright © 2020 WM Forum - AboutContact - Sponsored by: Mydataknox & Webmaster.Ninja