<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Mikael Brevik &#187; live side</title>
	<atom:link href="http://mikaelb.net/emneord/live-side/feed/" rel="self" type="application/rss+xml" />
	<link>http://mikaelb.net</link>
	<description>Bloggen</description>
	<lastBuildDate>Mon, 07 Sep 2009 20:11:35 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Hvordan debugge en live side</title>
		<link>http://mikaelb.net/2008/12/hvordan-debugge-en-live-side/</link>
		<comments>http://mikaelb.net/2008/12/hvordan-debugge-en-live-side/#comments</comments>
		<pubDate>Thu, 04 Dec 2008 15:08:39 +0000</pubDate>
		<dc:creator>Mikael Brevik</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[debugging]]></category>
		<category><![CDATA[live side]]></category>

		<guid isPermaLink="false">http://mikaelb.net/blogg/?p=1</guid>
		<description><![CDATA[Når en skal debugge bruker vi som regel en enkel

1
die&#40;'Her'&#41;;

Eller lignende for å indikere hvor det stopper i scriptet. Om du debugger en side som er live, vil du gjerne ikke stoppe hele siden for alle brukere. Derfor vil du gjerne kun vise debugging infoen for deg, og ingen andre. Det er flere måter å [...]]]></description>
			<content:encoded><![CDATA[<p>Når en skal debugge bruker vi som regel en enkel</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #990000;">die</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'Her'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></td></tr></table></div>

<p>Eller lignende for å indikere hvor det stopper i scriptet. Om du debugger en side som er live, vil du gjerne ikke stoppe hele siden for alle brukere. Derfor vil du gjerne kun vise debugging infoen for deg, og ingen andre. Det er flere måter å gjøre det på, men måten jeg ville ha brukt er funksjonen nedenfor.</p>
<p>Først og fremst må du opprette en variabel/array som inkluderes til alle sider. Dette skal ikke være et problem om du har en config-fil eller funksjoner som du inkluderer og er nødvendig for systemet. Da er det bare å sette opp følgende en plass hvor hele systemet får tak i det:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000088;">$debug_info</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></td></tr></table></div>

<p>Ikke bare må det settes, men også en funksjon som gjør at det blir enklere å legge til informasjonen i arrayen. Du kan selvfølgelig gjøre det manuelt, men det kan bli litt tungvindt etterhvert. Så vi har en wrapper funksjon som gjør det meste for deg:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">function</span> debug <span style="color: #009900;">&#40;</span><span style="color: #000088;">$line</span><span style="color: #339933;">,</span> <span style="color: #000088;">$file</span><span style="color: #339933;">,</span> <span style="color: #000088;">$message</span><span style="color: #339933;">,</span> <span style="color: #339933;">&amp;</span>amp<span style="color: #339933;">;</span><span style="color: #000088;">$debug_info</span><span style="color: #339933;">,</span> <span style="color: #000088;">$statement</span> <span style="color: #339933;">=</span> <span style="color: #009900; font-weight: bold;">true</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$statement</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        <span style="color: #000088;">$debug_info</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">'Line: '</span> <span style="color: #339933;">.</span> <span style="color: #000088;">$line</span> <span style="color: #339933;">.</span> <span style="color: #0000ff;">'. File: '</span> <span style="color: #339933;">.</span> <span style="color: #000088;">$file</span> <span style="color: #339933;">.</span><span style="color: #0000ff;">'. Message: '</span> <span style="color: #339933;">.</span> <span style="color: #000088;">$message</span><span style="color: #339933;">;</span>
        <span style="color: #b1b100;">return</span> <span style="color: #009900; font-weight: bold;">true</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
    <span style="color: #b1b100;">return</span> <span style="color: #009900; font-weight: bold;">false</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div>

<p>Her bruker vi noe som kalles call-by-referance. Det vil si at du kan gjøre endringer på variablen satt i argumentet og det vil også skje endringer på variablen du setter i argumentet.</p>
<p>Måten du finner linje og fil på er enkelt med __line__ og __file__. Dette blir satt i argumenter for å finne hvor det er du kjører funksjonen, og ikke der du oppretter funksjonen.</p>
<p>$statement er noe du setter til å bli i boolean-verdi. Dette kan være f.eks brukersjekk. Som du kan se eksempel på under her.</p>
<p>Når du kaller funksjonen kan det ca se slik ut:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="php" style="font-family:monospace;">debug <span style="color: #009900;">&#40;</span><span style="color: #009900; font-weight: bold;">__line__</span><span style="color: #339933;">,</span> <span style="color: #009900; font-weight: bold;">__file__</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'Feiler med MySQL-spørring. Query: '</span> <span style="color: #339933;">.</span> <span style="color: #000088;">$query</span><span style="color: #339933;">,</span> <span style="color: #000088;">$debug_info</span><span style="color: #339933;">,</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$_SESSION</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'userid'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">==</span> <span style="color: #000088;">$admin_userid</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></td></tr></table></div>

<p>Eller om du ikke har noen kriterier til if-statementet.</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="php" style="font-family:monospace;">debug <span style="color: #009900;">&#40;</span><span style="color: #009900; font-weight: bold;">__line__</span><span style="color: #339933;">,</span> <span style="color: #009900; font-weight: bold;">__file__</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'Feiler ved punkt 3.'</span><span style="color: #339933;">,</span> <span style="color: #000088;">$debug_info</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></td></tr></table></div>

<p>Slik får du informasjon om hvilken fil det er, hvilken linje det skjer på og hva feilen er. Og når du vil skrive ut feilmeldingene kan du enten lage en egen side som inkluderer filen hvor funksjonen og variablen blir satt, eller du kan skrive ut $debug_info nederst på indeks-siden.</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #990000;">print_r</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$debug_info</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></td></tr></table></div>

<p>Slik er det du kan debugge en side live, uten at besøkende ser det som skjer.</p>
]]></content:encoded>
			<wfw:commentRss>http://mikaelb.net/2008/12/hvordan-debugge-en-live-side/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
