Avatar billede bumle90 Nybegynder
31. maj 2004 - 19:56 Der er 8 kommentarer og
1 løsning

Fejludskrifter i smarty

Jeg er i gang med at lære at bruge smarty i php, og ved at blive sindsyg af at der ikke er nogen form for fejlhåndtering i det overhovedet.
Hvis der er en fejl får man bare en blank side og ikke noget andet.
Er det bare sådan smarty er lavet eller er det fordi jeg har sat det forkert op/har glemt at slå en funktion til eller andet?
Hvis nogle kunne hjælpe mig her ville jeg blive glad :)
Mvh. Bumle90
Avatar billede erikjacobsen Ekspert
31. maj 2004 - 20:02 #1
Hvis du glemmer at kalde display får du selvfølgelig ingenting, men ellers synes jeg
da nok der kommer de fejlbeskedder der skal. Har du et eksempel?
Avatar billede bumle90 Nybegynder
31. maj 2004 - 20:07 #2
Ja jeg har. Fx. her har jeg med vilge lavet en fejl:(Scriptet skal bare lægge et array op i smarty objektet, som templaten herefter skal udskrive på siden. Fejlen ligger i linien $smart->assign(...); hvor der mangler et y.

php-filen:

<?
require('smarty/libs/Smarty.class.php');
$smarty = new Smarty;
$dataarr[5];
$dataarr[0]="nr0";
$dataarr[1]="nr1";
$dataarr[2]="nr2";
$dataarr[3]="nr3";
$dataarr[4]="nr4";
$smart->assign("dataloekke",$dataarr);
$smarty->display("nextpage.tpl");

Templaten ser således ud :

{* smarty *}
<table>
{section name=ctr loop=5 start=0 step=1}
    id: {$dataloekke[ctr]}<br>
{/section}
</table>
Avatar billede bumle90 Nybegynder
31. maj 2004 - 20:08 #3
Hvis jeg kører scriptet som ovenfor kommer der bare en blank side. Sætter jeg derimod y'et på viser den det hele som den skal..Altså ikke engang php-fejl bliver udskrevet.
Avatar billede bumle90 Nybegynder
31. maj 2004 - 20:15 #4
Jeg kunne forestille mig det er noget i min php.ini der ikke er sat korrekt op, men kan ikke lige se hvad det er. Er der noget der der skal være aktiveret for at få vist fejl?
Avatar billede swaxi Nybegynder
31. maj 2004 - 23:34 #5
det er reelt ikke smarty, der ikke rapporterer fejl i dette tilfælde. hvis du glemmer y'et i variabelnavnet, prøver du jo at kalde en funktion i et objekt, der ikke eksisterer - det skulle give en php-fejl. (Fatal error: Call to a member function on a non-object)
givetvis har du pillet ved fejl-rapportering (eller også gør smarty det ?)
prøv, at smide følgende linie ind i dit script :
error_reporting(E_ALL);
Avatar billede bumle90 Nybegynder
31. maj 2004 - 23:38 #6
yepper det er korrekt...fandt selv ud af det tidligere i dag :)
Jeg havde kopieret noget ind i ini-filen så fejlrapporter ikke blev udskrevet. Så du har helt ret :)
Avatar billede swaxi Nybegynder
01. juni 2004 - 00:13 #7
det er generelt en god idé at køre med E_ALL som fejl-rapportering, især hvis du er lidt grøn udi php.
Avatar billede bumle90 Nybegynder
01. juni 2004 - 09:16 #8
ja tak...det skal jeg lige love for hehe :)
Smid et svar så er pointene dine
Avatar billede swaxi Nybegynder
01. juni 2004 - 16:37 #9
svar
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester