<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
 xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
 xmlns:dc="http://purl.org/dc/elements/1.1/"
 xmlns:content="http://purl.org/rss/1.0/modules/content/"
 xmlns:atom="http://www.w3.org/2005/Atom"
>
	<channel>
		<copyright>Copyright 1998 - 2026 DPG Media B.V.</copyright>
		<pubDate>Fri, 24 Jul 2026 08:05:43 GMT</pubDate>
		<lastBuildDate>Fri, 24 Jul 2026 08:05:43 GMT</lastBuildDate>
		<description>GoT - list_messages</description>
		<image>
			<link>https://gathering.tweakers.net/</link>
			<title>Gathering of Tweakers</title>
			<url>https://tweakers.net/g/if/logo.gif</url>
		</image>
		<language>nl-nl</language>
		<link>https://gathering.tweakers.net/rss/list_messages/1505611</link>
		<atom:link href="https://gathering.tweakers.net/rss/list_messages/1505611" rel="self" type="application/rss+xml" />
		<title>[SQlite3/PHP] Table checken voor IP adress - Softwareontwikkeling - GoT</title>
		<webMaster>gathering@tweakers.net (Administrator)</webMaster>
		<item>
			<title>kluyze</title>
			<link>https://gathering.tweakers.net/forum/list_message/38422965#38422965</link>
			<description>Mag ik vragen wat er mis is met een unieke index op het ip veld? En dan de exception van de insert mooi opvangen?</description>
			<content:encoded><![CDATA[Mag ik vragen wat er mis is met een unieke index op het ip veld? En dan de exception van de insert mooi opvangen?]]></content:encoded>
			<dc:creator>kluyze</dc:creator>
			<guid isPermaLink="false">https://gathering.tweakers.net/forum/list_message/38422965#38422965</guid>
			<pubDate>Fri, 15 Jun 2012 18:21:05 GMT</pubDate>
		</item>
		<item>
			<title>HyperioN</title>
			<link>https://gathering.tweakers.net/forum/list_message/38420610#38420610</link>
			<description>Fusioxan schreef op vrijdag 15 juni 2012 @ 13:17:
Nee toch?
code:1
2
3
4
5
6
7
if (
 (!empty($bnetname))
 &amp;&amp;
 ($name=&quot;validate&quot;)
 &amp;&amp;
 ($alreadyinDB==0)
)Inderdaad.. wel, zoals al opgemerkt een = te weinig.OT:
Volgens mij is het probleem al opgelost, maar het type van je IP-veld in de database zou ook een varchar(39) kunnen zijn. Varchar(15) is nu nog wel genoeg, maar ik weet niet hoe future-proof je script moet zijn? IPv6 eist namelijk maximaal 39 (8×4+7) karakters, terwijl IPv4 nog genoeg heeft aan 15 (4×3+3).Nog beter, onder het motto van efficientie:
http://dev.mysql.com/doc/...s.html#function_inet-aton
Maak een unsigned int veld voor je ip-adres en doe:
SQL:1
INSERT INTO table SET ip = INET_ATON(&#039;173.194.67.94&#039;)

Opzoeken of ophalen doe je dan zo:
SQL:1
SELECT INET_NTOA(ip) FROM table
En dan komt er gewoon weer een leesbaar IP-adres uit.
Is ook veel sneller dan.

Momenteel nog geen IPv6-support, maar vanaf MySQL 6.0 wel (http://forge.mysql.com/worklog/task.php?id=798). Dan ondersteunen de INET-functies IPv6 en dan komt er  zelfs een datatype voor:the proposed new data types CIDR and INET  
  allow IPv6 format as described in  
  WL#2037 &quot;Add CIDR and INET data types&quot;</description>
			<content:encoded><![CDATA[<blockquote><div class="message-quote-div"><b><a href="https://gathering.tweakers.net/forum/list_message/38420370#38420370" rel="external" class="messagelink">Fusioxan schreef op vrijdag 15 juni 2012 @ 13:17</a>:</b><br>
Nee toch?<br>
<div class="code">code:<br><table class="phphighlight"><tr><td class="phphighlightline"><pre>1
2
3
4
5
6
7
</pre></td><td class="phphighlightcode"><div><pre>if (
 (!empty($bnetname))
 &amp;&amp;
 ($name=&quot;validate&quot;)
 &amp;&amp;
 ($alreadyinDB==0)
)</pre></div></td></tr></table></div></div></blockquote>Inderdaad.. wel, zoals al opgemerkt een <span class="mono">=</span> te weinig.<blockquote><div class="message-quote-div">OT:<br>
Volgens mij is het probleem al opgelost, maar het type van je IP-veld in de database zou ook een varchar(39) kunnen zijn. Varchar(15) is nu nog wel genoeg, maar ik weet niet hoe future-proof je script moet zijn? IPv6 eist namelijk maximaal 39 (8×4+7) karakters, terwijl IPv4 nog genoeg heeft aan 15 (4×3+3).</div></blockquote>Nog beter, onder het motto van efficientie:<br>
<a href="http://dev.mysql.com/doc/refman/5.5/en/miscellaneous-functions.html#function_inet-aton" rel="external nofollow" title="http://dev.mysql.com/doc/refman/5.5/en/miscellaneous-functions.html#function_inet-aton">http://dev.mysql.com/doc/...s.html#function_inet-aton</a><br>
Maak een <span class="mono">unsigned int</span> veld voor je ip-adres en doe:<br>
<div class="code">SQL:<br><table class="phphighlight"><tr><td class="phphighlightline"><pre>1
</pre></td><td class="phphighlightcode"><div><pre><span class="code_k">INSERT</span><span class="code_w"> </span><span class="code_k">INTO</span><span class="code_w"> </span><span class="code_k">table</span><span class="code_w"> </span><span class="code_k">SET</span><span class="code_w"> </span><span class="code_n">ip</span><span class="code_w"> </span><span class="code_o">=</span><span class="code_w"> </span><span class="code_n">INET_ATON</span><span class="code_p">(</span><span class="code_s1">&#39;173.194.67.94&#39;</span><span class="code_p">)</span></pre></div></td></tr></table></div><br>
<br>
Opzoeken of ophalen doe je dan zo:<br>
<div class="code">SQL:<br><table class="phphighlight"><tr><td class="phphighlightline"><pre>1
</pre></td><td class="phphighlightcode"><div><pre><span class="code_k">SELECT</span><span class="code_w"> </span><span class="code_n">INET_NTOA</span><span class="code_p">(</span><span class="code_n">ip</span><span class="code_p">)</span><span class="code_w"> </span><span class="code_k">FROM</span><span class="code_w"> </span><span class="code_k">table</span></pre></div></td></tr></table></div><br>
En dan komt er gewoon weer een leesbaar IP-adres uit.<br>
Is ook veel sneller dan.<br>
<br>
Momenteel nog geen IPv6-support, maar vanaf MySQL 6.0 wel (<a href="http://forge.mysql.com/worklog/task.php?id=798" rel="external nofollow">http://forge.mysql.com/worklog/task.php?id=798</a>). Dan ondersteunen de INET-functies IPv6 en dan komt er  zelfs een datatype voor:<blockquote><div class="message-quote-div">the proposed new data types CIDR and INET  <br>
  allow IPv6 format as described in  <br>
  WL#2037 &quot;Add CIDR and <b>INET </b>data types&quot;</div></blockquote>]]></content:encoded>
			<dc:creator>HyperioN</dc:creator>
			<guid isPermaLink="false">https://gathering.tweakers.net/forum/list_message/38420610#38420610</guid>
			<pubDate>Fri, 15 Jun 2012 11:58:29 GMT</pubDate>
		</item>
		<item>
			<title>Fusioxan</title>
			<link>https://gathering.tweakers.net/forum/list_message/38420370#38420370</link>
			<description>Nee toch?
code:1
2
3
4
5
6
7
if (
 (!empty($bnetname))
 &amp;&amp;
 ($name=&quot;validate&quot;)
 &amp;&amp;
 ($alreadyinDB==0)
)

OT:
Volgens mij is het probleem al opgelost, maar het type van je IP-veld in de database zou ook een varchar(39) kunnen zijn. Varchar(15) is nu nog wel genoeg, maar ik weet niet hoe future-proof je script moet zijn? IPv6 eist namelijk maximaal 39 (8×4+7) karakters, terwijl IPv4 nog genoeg heeft aan 15 (4×3+3).</description>
			<content:encoded><![CDATA[Nee toch?<br>
<div class="code">code:<br><table class="phphighlight"><tr><td class="phphighlightline"><pre>1
2
3
4
5
6
7
</pre></td><td class="phphighlightcode"><div><pre>if (
 (!empty($bnetname))
 &amp;&amp;
 ($name=&quot;validate&quot;)
 &amp;&amp;
 ($alreadyinDB==0)
)</pre></div></td></tr></table></div><br>
<br>
OT:<br>
Volgens mij is het probleem al opgelost, maar het type van je IP-veld in de database zou ook een varchar(39) kunnen zijn. Varchar(15) is nu nog wel genoeg, maar ik weet niet hoe future-proof je script moet zijn? IPv6 eist namelijk maximaal 39 (8×4+7) karakters, terwijl IPv4 nog genoeg heeft aan 15 (4×3+3).]]></content:encoded>
			<dc:creator>Fusioxan</dc:creator>
			<guid isPermaLink="false">https://gathering.tweakers.net/forum/list_message/38420370#38420370</guid>
			<pubDate>Fri, 15 Jun 2012 11:17:17 GMT</pubDate>
		</item>
		<item>
			<title>spleethoven</title>
			<link>https://gathering.tweakers.net/forum/list_message/38420336#38420336</link>
			<description>code:1
if ((!empty($bnetname))&amp;&amp;($name=&quot;validate&quot;)&amp;&amp;($alreadyinDB==0)){

er staat nog een foutje in, je hebt een haakje teveel.</description>
			<content:encoded><![CDATA[<div class="code">code:<br><table class="phphighlight"><tr><td class="phphighlightline"><pre>1
</pre></td><td class="phphighlightcode"><div><pre>if ((!empty($bnetname))&amp;&amp;($name=&quot;validate&quot;)&amp;&amp;($alreadyinDB==0)){</pre></div></td></tr></table></div><br>
<br>
er staat nog een foutje in, je hebt een haakje teveel.]]></content:encoded>
			<dc:creator>spleethoven</dc:creator>
			<guid isPermaLink="false">https://gathering.tweakers.net/forum/list_message/38420336#38420336</guid>
			<pubDate>Fri, 15 Jun 2012 11:12:43 GMT</pubDate>
		</item>
		<item>
			<title>Verwijderd</title>
			<link>https://gathering.tweakers.net/forum/list_message/38416063#38416063</link>
			<description>Soultaker schreef op donderdag 14 juni 2012 @ 18:01:
Tja, empty() werkt alleen op primitive types, niet op PDOStatement objecten; die zijn nooit empty. Je kunt wel $checkip-&gt;rowcount() gebruiken, bijvoorbeeld.

Je gebruikt daar verder een paar keer de assignment operator (=) waar je een comparison operator (==) bedoelt.Ah thanks zoiets vermoedde ik al, maar omdat SQLite in de CLI niks output bij dezelfde query dacht ik met empty wel te kunnen werken. 

//todo fix comparison operators en change to rowcount() </description>
			<content:encoded><![CDATA[<blockquote><div class="message-quote-div"><b><a href="https://gathering.tweakers.net/forum/list_message/38415917#38415917" rel="external" class="messagelink">Soultaker schreef op donderdag 14 juni 2012 @ 18:01</a>:</b><br>
Tja, <i>empty()</i> werkt alleen op primitive types, niet op PDOStatement objecten; die zijn nooit empty. Je kunt wel <i>$checkip-&gt;rowcount()</i> gebruiken, bijvoorbeeld.<br>
<br>
Je gebruikt daar verder een paar keer de assignment operator (=) waar je een comparison operator (==) bedoelt.</div></blockquote>Ah thanks zoiets vermoedde ik al, maar omdat SQLite in de CLI niks output bij dezelfde query dacht ik met empty wel te kunnen werken. <br>
<br>
//todo fix comparison operators en change to rowcount() <img src="https://tweakers.net/g/s/biggrin.svg" width="16" height="16" alt=":D">]]></content:encoded>
			<dc:creator>Verwijderd</dc:creator>
			<guid isPermaLink="false">https://gathering.tweakers.net/forum/list_message/38416063#38416063</guid>
			<pubDate>Thu, 14 Jun 2012 16:38:36 GMT</pubDate>
		</item>
		<item>
			<title>Soultaker</title>
			<link>https://gathering.tweakers.net/forum/list_message/38415917#38415917</link>
			<description>Tja, empty() werkt alleen op primitive types, niet op PDOStatement objecten; die zijn nooit empty. Je kunt wel $checkip-&gt;rowcount() gebruiken, bijvoorbeeld.

Je gebruikt daar verder een paar keer de assignment operator (=) waar je een comparison operator (==) bedoelt.</description>
			<content:encoded><![CDATA[Tja, <i>empty()</i> werkt alleen op primitive types, niet op PDOStatement objecten; die zijn nooit empty. Je kunt wel <i>$checkip-&gt;rowcount()</i> gebruiken, bijvoorbeeld.<br>
<br>
Je gebruikt daar verder een paar keer de assignment operator (=) waar je een comparison operator (==) bedoelt.]]></content:encoded>
			<dc:creator>Soultaker</dc:creator>
			<guid isPermaLink="false">https://gathering.tweakers.net/forum/list_message/38415917#38415917</guid>
			<pubDate>Thu, 14 Jun 2012 16:01:51 GMT</pubDate>
		</item>
		<item>
			<title>HyperioN</title>
			<link>https://gathering.tweakers.net/forum/list_message/38415916#38415916</link>
			<description>Verwijderd schreef op donderdag 14 juni 2012 @ 17:51:

Maar deze voorwaarde pakt php niet:

Nu heb ik maar even een lelijke oplossing erin gezet dat wel werktDus omdat je er niet 1,2,3 uitkomt ga je een lelijke workaround (dus geen oplossing) verzinnen?

Hint:
http://php.net/manual/en/language.operators.comparison.php</description>
			<content:encoded><![CDATA[<blockquote><div class="message-quote-div"><b><a href="https://gathering.tweakers.net/forum/list_message/38415867#38415867" rel="external" class="messagelink">Verwijderd schreef op donderdag 14 juni 2012 @ 17:51</a>:</b><br>
<br>
Maar deze voorwaarde pakt php niet:<br>
<br>
Nu heb ik maar even een lelijke oplossing erin gezet dat wel werkt</div></blockquote>Dus omdat je er niet 1,2,3 uitkomt ga je een lelijke workaround (dus geen oplossing) verzinnen?<br>
<br>
Hint:<br>
<a href="http://php.net/manual/en/language.operators.comparison.php" rel="external nofollow">http://php.net/manual/en/language.operators.comparison.php</a>]]></content:encoded>
			<dc:creator>HyperioN</dc:creator>
			<guid isPermaLink="false">https://gathering.tweakers.net/forum/list_message/38415916#38415916</guid>
			<pubDate>Thu, 14 Jun 2012 16:01:49 GMT</pubDate>
		</item>
		<item>
			<title>Verwijderd</title>
			<link>https://gathering.tweakers.net/forum/list_message/38415867#38415867</link>
			<description>Resolved, bedankt voor de reply&#039;s!

Heb mijn php.ini aangepast: 
code:1
2
display_errors = on  
error_reporting = E_all &amp; ~E_notice
Zowel /var/log/apache2/error.log en de weergegeven error in de browser gaven aan dat ik een &quot;)&#039;&#039; miste vandaar de witte pagina.

Nu deed de site nog niks, even elk onderdeel van de IP filter in volgorde uit/aangezet. 
PHP:1
 $checkip = $db-&gt;query(&quot;SELECT * FROM participants WHERE ip LIKE &#039;$ip&#039;&quot;); 
Was in orde en returned de juiste waardes, ondanks van wat Darkmage opmerkte dat ik inderdaad IP als integer had gedefinieerd (maar later wel weer gebind als text).

Maar deze voorwaarde pakt php niet:
PHP:1
2
if ((!empty($bnetname))&amp;&amp;($name=&quot;validate&quot;)&amp;&amp;(empty($checkip)))
{ etc....}

Nu heb ik maar even een lelijke oplossing erin gezet dat wel werkt 
PHP:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
....
$checkip = $db-&gt;query(&quot;SELECT * FROM participants WHERE ip LIKE &#039;$ip&#039;&quot;);
    $alreadyinDB=0;
    foreach($checkip as $row)
    {
      $alreadyinDB=1;
    }

.....

//Execute INSERT statement if a name has been filled in
    if ((!empty($bnetname))&amp;&amp;($name=&quot;validate&quot;)&amp;&amp;($alreadyinDB==0)){
    $stmt-&gt;execute();
    }
    elseif ((!empty($bnetname))&amp;&amp;($name=&quot;validate&quot;)&amp;&amp;($alreadyinDB==1)){
    print &quot;Only 1 entry per IP is allowed&quot;;
    }</description>
			<content:encoded><![CDATA[Resolved, bedankt voor de reply&#039;s!<br>
<br>
Heb mijn php.ini aangepast: <br>
<div class="code">code:<br><table class="phphighlight"><tr><td class="phphighlightline"><pre>1
2
</pre></td><td class="phphighlightcode"><div><pre>display_errors = on  
error_reporting = E_all &amp; ~E_notice</pre></div></td></tr></table></div><br>
Zowel /var/log/apache2/error.log en de weergegeven error in de browser gaven aan dat ik een &quot;)&#039;&#039; miste vandaar de witte pagina.<br>
<br>
Nu deed de site nog niks, even elk onderdeel van de IP filter in volgorde uit/aangezet. <br>
<div class="code">PHP:<br><table class="phphighlight"><tr><td class="phphighlightline"><pre>1
</pre></td><td class="phphighlightcode"><div><pre> <span class="code_nv">$checkip</span> <span class="code_o">=</span> <span class="code_nv">$db</span><span class="code_o">-&gt;</span><span class="code_na">query</span><span class="code_p">(</span><span class="code_s2">&quot;SELECT * FROM participants WHERE ip LIKE &#39;</span><span class="code_si">$ip</span><span class="code_s2">&#39;&quot;</span><span class="code_p">);</span></pre></div></td></tr></table></div> <br>
Was in orde en returned de juiste waardes, ondanks van wat Darkmage opmerkte dat ik inderdaad IP als integer had gedefinieerd (maar later wel weer gebind als text).<br>
<br>
Maar deze voorwaarde pakt php niet:<br>
<div class="code">PHP:<br><table class="phphighlight"><tr><td class="phphighlightline"><pre>1
2
</pre></td><td class="phphighlightcode"><div><pre><span class="code_k">if</span> <span class="code_p">((</span><span class="code_o">!</span><span class="code_k">empty</span><span class="code_p">(</span><span class="code_nv">$bnetname</span><span class="code_p">))</span><span class="code_o">&amp;&amp;</span><span class="code_p">(</span><span class="code_nv">$name</span><span class="code_o">=</span><span class="code_s2">&quot;validate&quot;</span><span class="code_p">)</span><span class="code_o">&amp;&amp;</span><span class="code_p">(</span><span class="code_k">empty</span><span class="code_p">(</span><span class="code_nv">$checkip</span><span class="code_p">)))</span>
<span class="code_p">{</span> <span class="code_nx">etc</span><span class="code_o">....</span><span class="code_p">}</span></pre></div></td></tr></table></div><br>
<br>
Nu heb ik maar even een lelijke oplossing erin gezet dat wel werkt <br>
<div class="code">PHP:<br><table class="phphighlight"><tr><td class="phphighlightline"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
</pre></td><td class="phphighlightcode"><div><pre><span class="code_o">....</span>
<span class="code_nv">$checkip</span> <span class="code_o">=</span> <span class="code_nv">$db</span><span class="code_o">-&gt;</span><span class="code_na">query</span><span class="code_p">(</span><span class="code_s2">&quot;SELECT * FROM participants WHERE ip LIKE &#39;</span><span class="code_si">$ip</span><span class="code_s2">&#39;&quot;</span><span class="code_p">);</span>
    <span class="code_nv">$alreadyinDB</span><span class="code_o">=</span><span class="code_mi">0</span><span class="code_p">;</span>
    <span class="code_k">foreach</span><span class="code_p">(</span><span class="code_nv">$checkip</span> <span class="code_k">as</span> <span class="code_nv">$row</span><span class="code_p">)</span>
    <span class="code_p">{</span>
      <span class="code_nv">$alreadyinDB</span><span class="code_o">=</span><span class="code_mi">1</span><span class="code_p">;</span>
    <span class="code_p">}</span>

<span class="code_o">.....</span>

<span class="code_c1">//Execute INSERT statement if a name has been filled in</span>
    <span class="code_k">if</span> <span class="code_p">((</span><span class="code_o">!</span><span class="code_k">empty</span><span class="code_p">(</span><span class="code_nv">$bnetname</span><span class="code_p">))</span><span class="code_o">&amp;&amp;</span><span class="code_p">(</span><span class="code_nv">$name</span><span class="code_o">=</span><span class="code_s2">&quot;validate&quot;</span><span class="code_p">)</span><span class="code_o">&amp;&amp;</span><span class="code_p">(</span><span class="code_nv">$alreadyinDB</span><span class="code_o">==</span><span class="code_mi">0</span><span class="code_p">)){</span>
    <span class="code_nv">$stmt</span><span class="code_o">-&gt;</span><span class="code_na">execute</span><span class="code_p">();</span>
    <span class="code_p">}</span>
    <span class="code_k">elseif</span> <span class="code_p">((</span><span class="code_o">!</span><span class="code_k">empty</span><span class="code_p">(</span><span class="code_nv">$bnetname</span><span class="code_p">))</span><span class="code_o">&amp;&amp;</span><span class="code_p">(</span><span class="code_nv">$name</span><span class="code_o">=</span><span class="code_s2">&quot;validate&quot;</span><span class="code_p">)</span><span class="code_o">&amp;&amp;</span><span class="code_p">(</span><span class="code_nv">$alreadyinDB</span><span class="code_o">==</span><span class="code_mi">1</span><span class="code_p">)){</span>
    <span class="code_k">print</span> <span class="code_s2">&quot;Only 1 entry per IP is allowed&quot;</span><span class="code_p">;</span>
    <span class="code_p">}</span></pre></div></td></tr></table></div>]]></content:encoded>
			<dc:creator>Verwijderd</dc:creator>
			<guid isPermaLink="false">https://gathering.tweakers.net/forum/list_message/38415867#38415867</guid>
			<pubDate>Thu, 14 Jun 2012 15:51:20 GMT</pubDate>
		</item>
		<item>
			<title>Cartman!</title>
			<link>https://gathering.tweakers.net/forum/list_message/38415831#38415831</link>
			<description>jhuiting schreef op donderdag 14 juni 2012 @ 17:16:
Volgens mij is het een stuk beter om dit uit je errorlogs te halen dan het naar je scherm te schrijven, zeker met wat langere stacktraces.Tijdens development vind ik ze op het scherm veel handiger, dan hoef ik niet te switchen van venster.En ja, de meeste mensen gebruiken inderdaad apache 2, je kan anders ook gewoon een locate doen of op windows in Xampp kijken waar je errorlog stat.Ze gebruiken misschien wel apache2, maar niet specifiek op linux of op die locatie die jij zegt. Je brengt het alsof dat command voor iedereen gaat werken maar dat is simpelweg niet zo.</description>
			<content:encoded><![CDATA[<blockquote><div class="message-quote-div"><b><a href="https://gathering.tweakers.net/forum/list_message/38415699#38415699" rel="external" class="messagelink">jhuiting schreef op donderdag 14 juni 2012 @ 17:16</a>:</b><br>
Volgens mij is het een stuk beter om dit uit je errorlogs te halen dan het naar je scherm te schrijven, zeker met wat langere stacktraces.</div></blockquote>Tijdens development vind ik ze op het scherm veel handiger, dan hoef ik niet te switchen van venster.<blockquote><div class="message-quote-div">En ja, de meeste mensen gebruiken inderdaad apache 2, je kan anders ook gewoon een locate doen of op windows in Xampp kijken waar je errorlog stat.</div></blockquote>Ze gebruiken misschien wel apache2, maar niet specifiek op linux of op die locatie die jij zegt. Je brengt het alsof dat command voor iedereen gaat werken maar dat is simpelweg niet zo.]]></content:encoded>
			<dc:creator>Cartman!</dc:creator>
			<guid isPermaLink="false">https://gathering.tweakers.net/forum/list_message/38415831#38415831</guid>
			<pubDate>Thu, 14 Jun 2012 15:41:54 GMT</pubDate>
		</item>
		<item>
			<title>Xiphalon</title>
			<link>https://gathering.tweakers.net/forum/list_message/38415747#38415747</link>
			<description>Ik zou nog eens goed kijken naar het datatype van je IP. Je definieert de tabel als een INTEGER maar stopt daar hard strings in.

Ik zie ook niet hoe &#039;1.2.3.4&#039; zou passen dan, maar SQLite heeft wel gekkere dingen </description>
			<content:encoded><![CDATA[Ik zou nog eens goed kijken naar het datatype van je IP. Je definieert de tabel als een INTEGER maar stopt daar hard strings in.<br>
<br>
Ik zie ook niet hoe &#039;1.2.3.4&#039; zou passen dan, maar SQLite heeft wel gekkere dingen <img src="https://tweakers.net/g/s/puh2.svg" width="16" height="16" alt=":P">]]></content:encoded>
			<dc:creator>Xiphalon</dc:creator>
			<guid isPermaLink="false">https://gathering.tweakers.net/forum/list_message/38415747#38415747</guid>
			<pubDate>Thu, 14 Jun 2012 15:23:26 GMT</pubDate>
		</item>
		<item>
			<title>curvemod</title>
			<link>https://gathering.tweakers.net/forum/list_message/38415699#38415699</link>
			<description>Cartman! schreef op donderdag 14 juni 2012 @ 17:09:
Ja, want iedereen gebruikt ook linux, apache2 en dezelfde instellingen voor apache... 

Gewoon lekker display_errors aan en error_reporting deftig instellen dus.Volgens mij is het een stuk beter om dit uit je errorlogs te halen dan het naar je scherm te schrijven, zeker met wat langere stacktraces. En ja, de meeste mensen gebruiken inderdaad apache 2, je kan anders ook gewoon een locate doen of op windows in Xampp kijken waar je errorlog stat.</description>
			<content:encoded><![CDATA[<blockquote><div class="message-quote-div"><b><a href="https://gathering.tweakers.net/forum/list_message/38415659#38415659" rel="external" class="messagelink">Cartman! schreef op donderdag 14 juni 2012 @ 17:09</a>:</b><br>
Ja, want iedereen gebruikt ook linux, apache2 en dezelfde instellingen voor apache... <img src="https://tweakers.net/g/s/sleepey.gif" width="32" height="15" alt=":Z"><br>
<br>
Gewoon lekker display_errors aan en error_reporting deftig instellen dus.</div></blockquote>Volgens mij is het een stuk beter om dit uit je errorlogs te halen dan het naar je scherm te schrijven, zeker met wat langere stacktraces. En ja, de meeste mensen gebruiken inderdaad apache 2, je kan anders ook gewoon een locate doen of op windows in Xampp kijken waar je errorlog stat.]]></content:encoded>
			<dc:creator>curvemod</dc:creator>
			<guid isPermaLink="false">https://gathering.tweakers.net/forum/list_message/38415699#38415699</guid>
			<pubDate>Thu, 14 Jun 2012 15:16:18 GMT</pubDate>
		</item>
		<item>
			<title>Cartman!</title>
			<link>https://gathering.tweakers.net/forum/list_message/38415659#38415659</link>
			<description>Ja, want iedereen gebruikt ook linux, apache2 en dezelfde instellingen voor apache... 

Gewoon lekker display_errors aan en error_reporting deftig instellen dus.</description>
			<content:encoded><![CDATA[Ja, want iedereen gebruikt ook linux, apache2 en dezelfde instellingen voor apache... <img src="https://tweakers.net/g/s/sleepey.gif" width="32" height="15" alt=":Z"><br>
<br>
Gewoon lekker display_errors aan en error_reporting deftig instellen dus.]]></content:encoded>
			<dc:creator>Cartman!</dc:creator>
			<guid isPermaLink="false">https://gathering.tweakers.net/forum/list_message/38415659#38415659</guid>
			<pubDate>Thu, 14 Jun 2012 15:09:12 GMT</pubDate>
		</item>
		<item>
			<title>curvemod</title>
			<link>https://gathering.tweakers.net/forum/list_message/38415626#38415626</link>
			<description>MueR schreef op donderdag 14 juni 2012 @ 16:56:
Hint: display_errors en error_reportingJep, het is alleen nog makkelijker om in je errorlogs te kijken 

Linux: tail -f -n 20 /var/log/apache2/error.log</description>
			<content:encoded><![CDATA[<blockquote><div class="message-quote-div"><b><a href="https://gathering.tweakers.net/forum/list_message/38415577#38415577" rel="external" class="messagelink">MueR schreef op donderdag 14 juni 2012 @ 16:56</a>:</b><br>
Hint: display_errors en error_reporting</div></blockquote>Jep, het is alleen nog makkelijker om in je errorlogs te kijken <br>
<br>
Linux: tail -f -n 20 /var/log/apache2/error.log]]></content:encoded>
			<dc:creator>curvemod</dc:creator>
			<guid isPermaLink="false">https://gathering.tweakers.net/forum/list_message/38415626#38415626</guid>
			<pubDate>Thu, 14 Jun 2012 15:02:56 GMT</pubDate>
		</item>
		<item>
			<title>MueR</title>
			<link>https://gathering.tweakers.net/forum/list_message/38415577#38415577</link>
			<description>Hint: display_errors en error_reporting</description>
			<content:encoded><![CDATA[Hint: display_errors en error_reporting]]></content:encoded>
			<dc:creator>MueR</dc:creator>
			<guid isPermaLink="false">https://gathering.tweakers.net/forum/list_message/38415577#38415577</guid>
			<pubDate>Thu, 14 Jun 2012 14:56:52 GMT</pubDate>
		</item>
		<item>
			<title>Verwijderd</title>
			<link>https://gathering.tweakers.net/forum/list_message/38415522#38415522</link>
			<description>TheNephilim schreef op donderdag 14 juni 2012 @ 16:44:
Maar wat is de foutmelding die je krijgt?Ik krijg gewoon een blanco pagina, is er soort van debug mode dan? heb zelf geen aparte code voor exceptions erin gezet.</description>
			<content:encoded><![CDATA[<blockquote><div class="message-quote-div"><b><a href="https://gathering.tweakers.net/forum/list_message/38415482#38415482" rel="external" class="messagelink">TheNephilim schreef op donderdag 14 juni 2012 @ 16:44</a>:</b><br>
Maar wat is de foutmelding die je krijgt?</div></blockquote>Ik krijg gewoon een blanco pagina, is er soort van debug mode dan? heb zelf geen aparte code voor exceptions erin gezet.]]></content:encoded>
			<dc:creator>Verwijderd</dc:creator>
			<guid isPermaLink="false">https://gathering.tweakers.net/forum/list_message/38415522#38415522</guid>
			<pubDate>Thu, 14 Jun 2012 14:50:00 GMT</pubDate>
		</item>
		<item>
			<title>TheNephilim</title>
			<link>https://gathering.tweakers.net/forum/list_message/38415482#38415482</link>
			<description>Maar wat is de foutmelding die je krijgt?</description>
			<content:encoded><![CDATA[Maar wat is de foutmelding die je krijgt?]]></content:encoded>
			<dc:creator>TheNephilim</dc:creator>
			<guid isPermaLink="false">https://gathering.tweakers.net/forum/list_message/38415482#38415482</guid>
			<pubDate>Thu, 14 Jun 2012 14:44:16 GMT</pubDate>
		</item>
		<item>
			<title>Verwijderd</title>
			<link>https://gathering.tweakers.net/forum/list_message/38415062#38415062</link>
			<description>Opzet:

Via een form kunnen website bezoekers zich toevoegen aan een sqlite database. Om spam te voorkomen wil ik het aantal insert entries per ip adress (ja ik weet ze kunnen spoofen) limiteren tot 1. Dit is de eerste keer dat ik werk met sqlite en php, wat werkt is dat gebruikers zich kunnen toevoegen aan de database maar ik kan niet limiteren  op 1 entry per IP adress, tenminste mijn opgezette &#039;code&#039; werkt niet.

Relevante code:

PHP:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
&lt;?php
$bnetname = $_POST[&#039;bnetname&#039;];
$ip = $_SERVER[&#039;REMOTE_ADDR&#039;]; 

try
  {
    
    //open the database
    $db = new PDO(&#039;sqlite:bnetnames.sqlite&#039;);

    //create the database
    $db-&gt;exec(&quot;CREATE TABLE participants (Id INTEGER PRIMARY KEY, bnetname TEXT, ip INTEGER)&quot;);     
    
    // check if an IP adress already is in the table, if it is not then execute the prepared INSERT statement 
    $checkip = $db-&gt;query(&quot;SELECT * FROM participants WHERE ip LIKE &#039;$ip&#039;&quot;);

    //prepare INSERT statement
    $stmt= $db-&gt;prepare(&quot;INSERT INTO participants(bnetname, ip) VALUES (:bnetname, :ip)&quot;);
    
        //bind statement variables directly to input values
    $stmt-&gt;bindParam(&#039;:bnetname&#039;, $bnetname, SQLITE3_TEXT);
    $stmt-&gt;bindParam(&#039;:ip&#039;, $ip, SQLITE3_TEXT);
    
    //Execute INSERT statement if a name has been filled in and IP is not already in db
    if ((!empty($bnetname))&amp;&amp;($name=&quot;validate&quot;)&amp;&amp;(empty($checkip)))
        {
    $stmt-&gt;execute();
    }
?&gt;

 

Ik zie zo snel niet wat ik fout doe en heb ook nog de volgende bedenkingen:
&gt; Is mijn sql/php syntax correct voor de IP query, vooral het aanspreken van php variable $ip binnen een SELECT statement.
&gt; Kan ik wel empty() gebruiken voor het resultaat van een query (wat een array is toch?)/</description>
			<content:encoded><![CDATA[Opzet:<br>
<br>
Via een form kunnen website bezoekers zich toevoegen aan een sqlite database. Om spam te voorkomen wil ik het aantal insert entries per ip adress (ja ik weet ze kunnen spoofen) limiteren tot 1. Dit is de eerste keer dat ik werk met sqlite en php, wat werkt is dat gebruikers zich kunnen toevoegen aan de database maar ik kan niet limiteren  op 1 entry per IP adress, tenminste mijn opgezette &#039;code&#039; werkt niet.<br>
<br>
Relevante code:<br>
<br>
<div class="code">PHP:<br><table class="phphighlight"><tr><td class="phphighlightline"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
</pre></td><td class="phphighlightcode"><div><pre><span class="code_cp">&lt;?php</span>
<span class="code_nv">$bnetname</span> <span class="code_o">=</span> <span class="code_nv">$_POST</span><span class="code_p">[</span><span class="code_s1">&#39;bnetname&#39;</span><span class="code_p">];</span>
<span class="code_nv">$ip</span> <span class="code_o">=</span> <span class="code_nv">$_SERVER</span><span class="code_p">[</span><span class="code_s1">&#39;REMOTE_ADDR&#39;</span><span class="code_p">];</span> 

<span class="code_k">try</span>
  <span class="code_p">{</span>
    
    <span class="code_c1">//open the database</span>
    <span class="code_nv">$db</span> <span class="code_o">=</span> <span class="code_k">new</span> <span class="code_nx">PDO</span><span class="code_p">(</span><span class="code_s1">&#39;sqlite:bnetnames.sqlite&#39;</span><span class="code_p">);</span>

    <span class="code_c1">//create the database</span>
    <span class="code_nv">$db</span><span class="code_o">-&gt;</span><span class="code_na">exec</span><span class="code_p">(</span><span class="code_s2">&quot;CREATE TABLE participants (Id INTEGER PRIMARY KEY, bnetname TEXT, ip INTEGER)&quot;</span><span class="code_p">);</span>     
    
    <span class="code_c1">// check if an IP adress already is in the table, if it is not then execute the prepared INSERT statement </span>
    <span class="code_nv">$checkip</span> <span class="code_o">=</span> <span class="code_nv">$db</span><span class="code_o">-&gt;</span><span class="code_na">query</span><span class="code_p">(</span><span class="code_s2">&quot;SELECT * FROM participants WHERE ip LIKE &#39;</span><span class="code_si">$ip</span><span class="code_s2">&#39;&quot;</span><span class="code_p">);</span>

    <span class="code_c1">//prepare INSERT statement</span>
    <span class="code_nv">$stmt</span><span class="code_o">=</span> <span class="code_nv">$db</span><span class="code_o">-&gt;</span><span class="code_na">prepare</span><span class="code_p">(</span><span class="code_s2">&quot;INSERT INTO participants(bnetname, ip) VALUES (:bnetname, :ip)&quot;</span><span class="code_p">);</span>
    
        <span class="code_c1">//bind statement variables directly to input values</span>
    <span class="code_nv">$stmt</span><span class="code_o">-&gt;</span><span class="code_na">bindParam</span><span class="code_p">(</span><span class="code_s1">&#39;:bnetname&#39;</span><span class="code_p">,</span> <span class="code_nv">$bnetname</span><span class="code_p">,</span> <span class="code_nx">SQLITE3_TEXT</span><span class="code_p">);</span>
    <span class="code_nv">$stmt</span><span class="code_o">-&gt;</span><span class="code_na">bindParam</span><span class="code_p">(</span><span class="code_s1">&#39;:ip&#39;</span><span class="code_p">,</span> <span class="code_nv">$ip</span><span class="code_p">,</span> <span class="code_nx">SQLITE3_TEXT</span><span class="code_p">);</span>
    
    <span class="code_c1">//Execute INSERT statement if a name has been filled in and IP is not already in db</span>
    <span class="code_k">if</span> <span class="code_p">((</span><span class="code_o">!</span><span class="code_k">empty</span><span class="code_p">(</span><span class="code_nv">$bnetname</span><span class="code_p">))</span><span class="code_o">&amp;&amp;</span><span class="code_p">(</span><span class="code_nv">$name</span><span class="code_o">=</span><span class="code_s2">&quot;validate&quot;</span><span class="code_p">)</span><span class="code_o">&amp;&amp;</span><span class="code_p">(</span><span class="code_k">empty</span><span class="code_p">(</span><span class="code_nv">$checkip</span><span class="code_p">)))</span>
        <span class="code_p">{</span>
    <span class="code_nv">$stmt</span><span class="code_o">-&gt;</span><span class="code_na">execute</span><span class="code_p">();</span>
    <span class="code_p">}</span>
<span class="code_cp">?&gt;</span>

<span class="code_x"> </span></pre></div></td></tr></table></div><br>
<br>
Ik zie zo snel niet wat ik fout doe en heb ook nog de volgende bedenkingen:<br>
&gt; Is mijn sql/php syntax correct voor de IP query, vooral het aanspreken van php variable $ip binnen een SELECT statement.<br>
&gt; Kan ik wel empty() gebruiken voor het resultaat van een query (wat een array is toch?)/]]></content:encoded>
			<dc:creator>Verwijderd</dc:creator>
			<guid isPermaLink="false">https://gathering.tweakers.net/forum/list_message/38415062#38415062</guid>
			<pubDate>Thu, 14 Jun 2012 13:51:24 GMT</pubDate>
		</item>
	</channel>
</rss>