• Login
  • Register
  • Zoek
This Thread
  • Everywhere
  • This Thread
  • This Forum
  • Articles
  • Pages
  • Forum
  • Filebase Entry
  • More Options

ICTscripters

Dé plek voor IT

Dé plek voor IT

Login

Geavanceerde opties
  1. Home
  2. Forum
    1. Alle berichten
    2. Recente activiteiten
  3. ICT Nieuws
  4. Blog
  5. Marktplaats
    1. Werk
    2. Advertenties
    3. Domeinnamen
    4. Websites
    5. Design & lay-outs
    6. Scripts
    7. Overige
  6. Design
  7. Leden
    1. Actieve bezoekers
    2. Team
    3. Leden zoeken
  8. Downloads
  9. Goedkope domeinnamen
  1. Home
  2. Forum
    1. Alle berichten
    2. Recente activiteiten
  3. ICT Nieuws
  4. Blog
  5. Marktplaats
    1. Werk
    2. Advertenties
    3. Domeinnamen
    4. Websites
    5. Design & lay-outs
    6. Scripts
    7. Overige
  6. Design
  7. Leden
    1. Actieve bezoekers
    2. Team
    3. Leden zoeken
  8. Downloads
  9. Goedkope domeinnamen
  1. Home
  2. Forum
    1. Alle berichten
    2. Recente activiteiten
  3. ICT Nieuws
  4. Blog
  5. Marktplaats
    1. Werk
    2. Advertenties
    3. Domeinnamen
    4. Websites
    5. Design & lay-outs
    6. Scripts
    7. Overige
  6. Design
  7. Leden
    1. Actieve bezoekers
    2. Team
    3. Leden zoeken
  8. Downloads
  9. Goedkope domeinnamen
  1. Dé plek voor IT - ICTscripters
  2. Forum
  3. Scripting & programmeren
  4. PHP + SQL

Forum

  • Beta-testers gezocht voor Crypto-oefenplatform

    Syntax 29 januari 2026 om 16:11
  • Na 15 jaar terug van weggeweest: iCriminals.nl is terug (BETA)!

    Syntax 19 januari 2026 om 09:34
  • Developer Gezocht

    Mikevdk 10 januari 2026 om 18:57
  • Op zoek naar de legends

    Syntax 5 januari 2026 om 13:50
  • [FREE] WeFact Hosting module

    Jeroen.G 13 oktober 2025 om 14:09
  • Help testers nodig voor android app Urgent

    urgentotservices 26 september 2025 om 10:21
  • Versio vervanger

    Jeroen.G 25 augustus 2025 om 15:56
  • Afspraken systeem met planbeperking

    Lijno 1 augustus 2025 om 23:04

Marktplaats

  • 350 Nieuwe Domeinnamen Januari 2026

    shiga 1 februari 2026 om 14:21
  • 321 Nieuwe Domeinnamen December 2025

    shiga 1 januari 2026 om 10:26
  • Meerdere mafia game template te koop

    Syntax 26 december 2025 om 00:07

PDO gigatische error

  • ruttydm
  • 4 oktober 2015 om 19:12
  • ruttydm
    Intermediate
    Berichten
    226
    • 4 oktober 2015 om 19:12
    • #1

    weer iets waarover ik mijn hersenen ben aan het breken:

    PHP
    <?php
    $result = $db->prepare("SELECT * FROM faucets ORDER BY :sorton :order");
    $result->bindValue(':sorton', $sorton, PDO::PARAM_STR);
    $result->bindValue(':order', $order, PDO::PARAM_STR);
    $result->execute();
    //$row = $result->fetchAll(PDO::FETCH_ASSOC);
    //print_r($row);
    $nr = 0;
    
    
    while($value = $result->fetch(PDO::FETCH_ASSOC)) {
       echo "<tr>";
       foreach($value as $row) {
    	   	$nr = $nr + 1;
    		echo "<td>".$nr."</td>
    			<td><a href='".$row['faucet_url']."'>".$row['faucet_name']."</a></td>
    			<td>".$row['average_reward']."</td>
    			<td>".$row['reward_hour']."</td>
    			<td>".$row['wait_time']."</td>
    			<td>".$row['payement']."</td>";
       }
       echo "</tr>";
    }
    ?>
    Toon Meer

    de error is hier te bezichten.

    Hopelijk kan iemand mij helpen want ik zou niet weten wat ik fout gedaan heb.

    http://infinidum.com/

  • Guest, wil je besparen op je domeinnamen? (ad)
  • Thisguyisgone
    Elite members
    Ontvangen Reacties
    197
    Berichten
    7.880
    • 4 oktober 2015 om 19:14
    • #2

    mag ik je al 1 tip geven? Haal je html uit de php. Tevens, we hebben hier 23 lijnen, welke is de lijn die de errors veroorzaakt?

  • mica-
    Student
    Ontvangen Reacties
    10
    Berichten
    111
    • 4 oktober 2015 om 19:22
    • #3

    Verander eens dit:

    Code
    $result = $db->prepare("SELECT * FROM faucets ORDER BY :sorton :order");
    $result->bindValue(':sorton', $sorton, PDO::PARAM_STR);
    $result->bindValue(':order', $order, PDO::PARAM_STR);
    $result->execute();

    In dit:

    Code
    $result = $db->prepare("SELECT * FROM faucets ORDER BY :sorton :order");
    $result->execute(array(':sorton' => $sorton, ':order' => $order));

    Vervolgens, zorg dat $sorton effectief een tabel attribuut bevat en dat $order ook juist is LIMIT *,* ...
    Ik heb nooit eerder tabel attributen of orders gebind, snap ook niet waarom dat nodig is zolang het geen user input is.
    Dus alsnog indien geen user input of op z'n minst door jouw samengestelde input variabelen a.h.v. die user input: dan kan je zonder gebinde parameters werken in je querie:

    Code
    $result = $db->prepare("SELECT * FROM faucets ORDER BY `$sorton` $order");
    $result->execute();


    PS op die pagina lijken de errors uit een ander script te komen.
    Illegal string offset komt voor wanneer je array ongeldige keys of values bevat, een oplossing kan zijn $arr = array("var" => $var); //Werken met dubbele quotes

    Mafiasource on Github

    Bewerkt één keer, laatst door mica- (4 oktober 2015 om 19:36).

  • ruttydm
    Intermediate
    Berichten
    226
    • 4 oktober 2015 om 19:23
    • #4

    10 Of 12 geeft de error, waarom zou de html eruit moeten?

    http://infinidum.com/

  • FangorN
    Professional
    Ontvangen Reacties
    196
    Articles
    2
    Berichten
    737
    • 4 oktober 2015 om 19:52
    • #5

    Toevoeging op code van @MiCa-

    PHP
    $result = $db->prepare("SELECT * FROM faucets ORDER BY `$sorton` $order");
    $result->execute();

    Hiermee doe je het idee van prepared statement min of meer teniet (door rechtstreeks waarden in je querystring te plakken in plaats van te binden via parameters of values).

    Helaas is het niet mogelijk om dit op een andere manier te doen omdat het simpelweg niet mogelijk is om tabelnamen en -kolommen te binden op deze manier (of extra SQL te schrijven, for that matter). Daarvoor zijn prepared statements niet bedoeld, het is enkel de bedoeling dat je DATA bind, en niets anders.

    Met het bovenstaande introduceer je wel weer de mogelijkheid voor SQL injectie. Omdat je de spelregels van prepared statements met bovenstaande constructie omzeilt is je query hier weer vatbaar voor. Zorg dus dat je met whitelists werkt, oftewel definieer wat toegestane waarden zijn voor $sorton en $order en zorg ervoor dat ze terug kunnen vallen op een geldige (en zinnige) default waarde.

    (Hetgeen in de vorige alinea wordt beschreven komt in wezen neer op input filtering)

  • mica-
    Student
    Ontvangen Reacties
    10
    Berichten
    111
    • 4 oktober 2015 om 19:56
    • #6
    Citaat van FangorN

    Toevoeging op code van @MiCa-

    PHP
    $result = $db->prepare("SELECT * FROM faucets ORDER BY `$sorton` $order");
    $result->execute();

    Hiermee doe je het idee van prepared statement min of meer teniet (door rechtstreeks waarden in je querystring te plakken in plaats van te binden via parameters of values).

    Helaas is het niet mogelijk om dit op een andere manier te doen omdat het simpelweg niet mogelijk is om tabelnamen en -kolommen te binden op deze manier (of extra SQL te schrijven, for that matter). Daarvoor zijn prepared statements niet bedoeld, het is enkel de bedoeling dat je DATA bind, en niets anders.

    Met het bovenstaande introduceer je wel weer de mogelijkheid voor SQL injectie. Omdat je de spelregels van prepared statements met bovenstaande constructie omzeilt is je query hier weer vatbaar voor. Zorg dus dat je met whitelists werkt, oftewel definieer wat toegestane waarden zijn voor $sorton en $order en zorg ervoor dat ze terug kunnen vallen op een geldige (en zinnige) default waarde.

    Ik bedoelde, wanneer jij zelf de tabel kolommen valideert en je order string ook netjes valideerd a.h.v. enige input dan kan je perfect deze variabelen in je query toevoegen zonder dat iemand daarop kan inspelen. Data zoals jij aangeeft aan de andere kant moet wel steeds gebind worden en daarvoor beveel ik het 2e stukje code aan in mijn eerdere post i.p.v. iedere parameter in een aparte lijn te gaan binden. Data zal meestal ook alleen maar voorkomen in de WHERE clause.

    Kolommen valideren kan al met een simpele array met toegankelijke kollomen, en je order kan gwn a.h.v. je gebruikers input, switch die en maak je string op met int waarden indien user input geen int waarde is stel je gwn een standaar in zoals bv: LIMIT 0,10
    Dit is vooral handig bij dynamische code, functies die op meerdere vesrch wijzen gebruikt kunnen worden. Het is veilig zolang je weet wat je doet..

    Mafiasource on Github

    Bewerkt één keer, laatst door mica- (4 oktober 2015 om 20:01).

  • ruttydm
    Intermediate
    Berichten
    226
    • 4 oktober 2015 om 20:32
    • #7

    pff. ik heb er echt een zootje van gemaakt geen enkel van bovenstaande werkt.

    de volledige pagina:

    PHP
    <?php
    include "config.php";
    $sorton = "average_reward";
    $order = "DESC";
    if(isset($_GET['sorton'])){
        $sorton = $_GET['sorton'];
        $order = $_GET['order'];                  
    }
    ?>
    <html>
    	<head>
    		<!-- Latest compiled and minified CSS -->
    		<link rel="stylesheet" href="https://bootswatch.com/darkly/bootstrap.min.css">
    		<!-- jQuery library -->
    		<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
    		<!-- Latest compiled JavaScript -->
    		<script src="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js"></script>
    		<title>Bitylist</title>
    		<meta charset="utf-8"> 
    		<meta name="viewport" content="width=device-width, initial-scale=1">
    	</head>
    	<body>
    		<div class="container">
    			<div class="jumbotron">
    				<h1><img src="http://bitcoin.i-rme.es/img/Bitcoin%20Logo%204096%20PNG%20Forocoches%20(RME).png" height="100px">Bitylist</h1>
    				<p>Welcome to Bitylist! Bitylist is a smart faucetlist where you can open multiple faucets simultaneously instead of clicking them case-by-case. You have also the possibility of sorting them.</p>
    				<p>Faucet balance: <?php echo get_balance($key); ?> satoshi</p>
    				<div class="form-group">
    				<label class="control-label">Claim reward:</label>
    					<div class="input-group">
    						<span class="input-group-addon">Bitcoin adress</span>
    						<input type="text" class="form-control" placeholder="Enter your bitcoin adress here like '1CvBm4AoS7TVVVv5XC1wPiyMrpk4n8rzNC'.">
    						<span class="input-group-btn">
    							<button class="btn btn-default" type="button">Claim!</button>
    						</span>
    					</div>
    				</div>
    			</div>
    			<div class="panel panel-default">
    			  <div class="panel-heading">
    				<h3 class="panel-title">Faucet list</h3>
    			  </div>
    			  <div class="panel-body">
    				<div class="form-group">
    					<form method="post">
    						<label class="control-label">Open faucets in new window:</label>
    						<div class="input-group">
    							<span class="input-group-addon">Till which number?</span>
    							<input type="text" class="form-control" name="num">
    							<span class="input-group-btn">
    							<button class="btn btn-default" type="submit" name="submit">Open!</button>
    							</span>
    						</div>
    					</form>
    				</div>
    				<table class="table table-striped table-hover">
    				  <thead>
    					<tr>
    						<th>nr.</th>
    						<th><a href="index.php?sorton=faucet_name&order=ASC">Faucet</a></th>
    						<th><a href="index.php?sorton=average_reward&order=DESC">average reward</a></th>
    						<th><a href="index.php?sorton=reward_hour&order=DESC">average reward/hour</a></th>
    						<th><a href="index.php?sorton=time&order=ASC">interval (min.)</a></th>
    						<th><a href="index.php?sorton=payement&order=ASC">payement</a></th>
    					</tr>
    				  </thead>
    				  <tbody>
    <?php
    $result = $db->prepare("SELECT * FROM faucets ORDER BY ".$sorton." ".$order."");
    $result->execute();
    //$row = $result->fetchAll(PDO::FETCH_ASSOC);
    //print_r($row);
    $nr = 0;
    
    
    while($value = $result->fetch(PDO::FETCH_ASSOC)) {
       echo "<tr>";
       foreach($value as $row) {
    	   	$nr = $nr + 1;
    		echo "<td>".$nr."</td>
    			<td><a href='".$row['faucet_url']."'>".$row['faucet_name']."</a></td>
    			<td>".$row['average_reward']."</td>
    			<td>".$row['reward_hour']."</td>
    			<td>".$row['wait_time']."</td>
    			<td>".$row['payement']."</td>";
       }
       echo "</tr>";
    }
    
    
    
    
    /*$sql = "SELECT * FROM faucets ORDER BY ".$sorton." ".$order."";
    $result = $con->query($sql);
    if ($result->num_rows > 0) {
    	// output data of each row
    	$nr = 0;
    	while($row = $result->fetch_assoc()) {
    		$nr = $nr + 1;
    		echo "
    		<tr>
    			<td>".$nr."</td>
    			<td><a href='".$row['faucet_url']."'>".$row['faucet_name']."</a></td>
    			<td>".$row['average_reward']."</td>
    			<td>".$row['reward_hour']."</td>
    			<td>".$row['wait_time']."</td>
    			<td>".$row['payement']."</td>
    		</tr>";
    	}
    } 
    else {
    	echo "0 results";
    }
    */
    ?>
    				  </tbody>
    				</table> 
    			  </div>
    			  <div class="panel-footer"><center>© bitypalace.eu | | <a href="mailto:[email protected]?SUBJECT=Bitypalace contact">Contact</a><center></div>
    			</div>
    
    
    		</div>
    		<script>
    <?php
    /*
    if (isset($_POST['submit'])){
    	
    	
    	$result = $db->prepare("SELECT * FROM faucets ORDER BY :sorton :order");
    	$stmt->bindValue(':sorton', $sorton, PDO::PARAM_STR);
    	$stmt->bindValue(':order', $order, PDO::PARAM_STR);
    	$result->execute();
    	$maxnumber = $_POST['num'];
        $number = 0;
    	while ($row = $db->fetchAll(PDO::FETCH_ASSOC))
    	{
    		?>
    		//add this line for each website you want to open
    		window.open("<?php echo $row['faucet_url']; ?>",'');
    		<?php
    		$number = $number + 1;
    		if($number == $maxnumber){
    			break;
    		}
    	}*/
    
    
    	
    	
    	/*$sql = "SELECT * FROM faucets ORDER BY ".$sorton." ".$order."";
    	$result = $con->query($sql);
        $maxnumber = $_POST['num'];
        $number = 0;
    	if ($result->num_rows > 0) {
    		// output data of each row
    		while($row = $result->fetch_assoc()) {
    			?>
    			//add this line for each website you want to open
    			window.open("<?php echo $row['faucet_url']; ?>",'');
    			<?php
                $number = $number + 1;
                if($number == $maxnumber){
                    break;
                }
    		}
    	} 
    }*/
    ?>
    		</script>
    	</body>
    </html>
    Toon Meer

    http://infinidum.com/

  • FangorN
    Professional
    Ontvangen Reacties
    196
    Articles
    2
    Berichten
    737
    • 4 oktober 2015 om 20:37
    • #8
    Citaat van MiCa-

    Het is veilig zolang je weet wat je doet..

    Mja, als de maan van kaas is ben ik Napoleon.

    Met andere woorden: als je uitgangsstelling niet klopt kun je zeggen wat je wilt (false => true).

    Getuige bovenstaande code van @ruttydm, die zo lek is als maar kan zijn.

  • ruttydm
    Intermediate
    Berichten
    226
    • 4 oktober 2015 om 21:05
    • #9

    Ik denk dat ik de code maar is opnieuw ga schrijven.

    http://infinidum.com/

  • mica-
    Student
    Ontvangen Reacties
    10
    Berichten
    111
    • 4 oktober 2015 om 21:19
    • #10
    Citaat van FangorN

    Mja, als de maan van kaas is ben ik Napoleon.
    Met andere woorden: als je uitgangsstelling niet klopt kun je zeggen wat je wilt (false => true).

    Getuige bovenstaande code van @ruttydm, die zo lek is als maar kan zijn.

    als het niet klopt genereer je een default of een error message om de gebruiker er op te wijzen..
    Tenslotte is het de programmeur die bepaald wat de code moet doen en niet de gebruiker, daarmee moet de programmeur altijd rekening houden.

    Het is zeker niet verkeerd om ALTIJD je query input te gaan binden, maar het is ook gewoon niet altijd nodig, gebruikers input zonder enige validatie moet gewoon altijd gebind worden om inderdaad injectie tegen te gaan.

    Mafiasource on Github

    Bewerkt 3 keer, laatst door mica- (4 oktober 2015 om 23:39).

  • Puurhost
    Student
    Ontvangen Reacties
    7
    Berichten
    83
    • 5 oktober 2015 om 01:07
    • #11
    Citaat van MiCa-


    Tenslotte is het de programmeur die bepaald wat de code moet doen en niet de gebruiker, daarmee moet de programmeur altijd rekening houden.

    Helaas is het tegenwoordig meer de gebruiker die bepaald hoe een product gebruikt wordt dan andersom. Als programmeur moet je daarom input van gebruikers nooit, maar dan ook nooit vertrouwen!

    Verder ben ik het compleet met je opmerking eens MiCa-!

    Opzoek naar een hoster die echt met je meedenkt? - Puurhost.nl Webhosting

  • ruttydm
    Intermediate
    Berichten
    226
    • 5 oktober 2015 om 12:46
    • #12

    Ik heb het gefixt, ik hzb gebruik gemaakt van whitelists en deze code:

    PHP
    <?php
    
    
    
    
    $result = $db->prepare("SELECT * FROM faucets ORDER BY ".$sorton." ".$order."");
    $result->execute();
    $nr=0;
    while ($row = $result->fetch(PDO::FETCH_ASSOC))
    {	
    	$nr = $nr + 1;
        		echo "<tr>
    			<td>".$nr."</td>
    			<td><a href='".$row['faucet_url']."'>".$row['faucet_name']."</a></td>
    			<td>".$row['average_reward']."</td>
    			<td>".$row['reward_hour']."</td>
    			<td>".$row['wait_time']."</td>
    			<td>".$row['payement']."</td>
    			</tr>";
    }
    
    
    
    
    
    
    ?>
    Toon Meer

    http://infinidum.com/

  • FangorN
    Professional
    Ontvangen Reacties
    196
    Articles
    2
    Berichten
    737
    • 5 oktober 2015 om 12:48
    • #13
    Citaat van MiCa-

    Het is zeker niet verkeerd om ALTIJD je query input te gaan binden, maar het is ook gewoon niet altijd nodig, gebruikers input zonder enige validatie moet gewoon altijd gebind worden om inderdaad injectie tegen te gaan.

    Sterker nog, het *kan* niet altijd, en dat is hier juist het probleem. Zoveel stond al in mijn eerste reactie.

    Vervolgens begint de discussie een beetje te vervagen met wat de rol van een programmeur en een gebruiker zou zijn. Ik heb sinds mijn eerste reactie eigenlijk geen nieuwe relevante informatie ten aanzien van dit topic de revue zien passeren.

    De topicstarter moet gewoon alle input die niet via prepared statements verloopt filteren, te meer omdat deze rechtstreeks uit $_GET lijkt te komen.

    Hoe je vervolgens fouten afvangt (of je nu een foutmelding produceert -wat niet erg gebruiksvriendelijk is- of terugvalt op een default waarde) is uitwerking / zijn details, en heeft ook weinig van doen met het oorspronkelijke probleem. Het oorspronkelijke probleem was dat de topicstarter iets probeerde te binden wat niet gebind kon worden. Vervolgens geef ik aan:

    - dat / waarom dit niet altijd kan
    - hoe je dit dan wel doet
    - en waar je daarbij op moet letten

    Volgens mij kun je geen vollediger antwoord dan dat geven, behalve misschien dat je ook de complete oplossing uitschrijft. Maar als je dat (in dit eenvoudige geval) niet zelf kunt, dan zou je deze tak van sport niet moeten bedrijven.

    @ruttydm uit jouw code kan niet opgemaakt worden hoe $sorton en $order "veilig gemaakt" zijn.

  • ruttydm
    Intermediate
    Berichten
    226
    • 5 oktober 2015 om 13:07
    • #14
    PHP
    if($order != "ASC" or "DESC"){
    	$order = "DESC";
    }
    if($sorton != "faucet_name" or "average_reward" or "reward_hour" or "time" or "payement"){
    	$sorton = "average_reward";
    }

    zo heb ik het veilig gemaakt

    http://infinidum.com/

  • FangorN
    Professional
    Ontvangen Reacties
    196
    Articles
    2
    Berichten
    737
    • 5 oktober 2015 om 13:40
    • #15

    @ruttydm dat werkt niet zoals je wellicht zou denken.

    Als je voor $sorton bijvoorbeeld "reward_hour" invult (wat een toegestane waarde is) dan wordt sorton toch gelijk aan "average_reward".

    Je if-statement klopt niet. Je hebt daar namelijk staan ... or "<niet lege string>" or ... . Dat is altijd waar, waardoor het if-statement in zijn geheel ook altijd waar is. Een controle met in_array lijkt mij beter dan deze (niet-kloppende) constructie.

  • ruttydm
    Intermediate
    Berichten
    226
    • 5 oktober 2015 om 16:26
    • #16
    PHP
    $sorton = "average_reward";
    $order = "DESC";
    if(isset($_GET['sorton'])){
        $sorton = $_GET['sorton'];
        $order = $_GET['order'];                  
    }
    
    
    $order_allow = [
        "1" => "ASC",
        "2" => "DESC",
    ];
    $sorton_allow = [
        "1" => "faucet_name",
        "2" => "average_reward",
        "3" => "reward_hour",
        "4" => "time",
        "5" => "payement",
    ];
    
    
    if (!in_array($sorton, $sorton_allow)) {
    	unset($sorton);
        $sorton = "average_reward";
    }
    if (!in_array($order, $order_allow)) {
    	unset($order);
        $order = "DESC";
    }
    Toon Meer

    Is dit dan goed?
    Alleen is mijn site supertraag geworden.

    edit: site is traag omdat ik externe locatie gebruik voor bootstrap

    http://infinidum.com/

  • Thisguyisgone
    Elite members
    Ontvangen Reacties
    197
    Berichten
    7.880
    • 5 oktober 2015 om 16:34
    • #17

    welke cdn gebruik je voor bootstrap?

  • ruttydm
    Intermediate
    Berichten
    226
    • 5 oktober 2015 om 16:41
    • #18

    bootswatch + google + site bootstrap zelf

    http://infinidum.com/

  • FangorN
    Professional
    Ontvangen Reacties
    196
    Articles
    2
    Berichten
    737
    • 5 oktober 2015 om 16:43
    • #19

    Ik zou het zo doen, het is (iets) korter, meer to-the-point en meer in lijn met een whitelist:

    PHP
    $sorton = 'average_reward'; // default
    if (isset($_GET['sorton']) && in_array($_GET['sorton'], array(
        // toegestane waarden
        'faucet_name',
        'average_reward',
        'reward_hour',
        'time',
        'payement', // spellingsfout?
    ))) {
        $sorton = $_GET['sorton'];
    }
    
    
    $order = 'DESC'; // default
    if (isset($_GET['order']) && in_array($_GET['order'], array(
        // toegestane waarden
        'ASC',
        'DESC',
    ))) {
        $order = $_GET['order'];
    }
    Toon Meer

    Al doet het syntactisch waarschijnlijk hetzelfde als jouw codefragment vind ik deze toch wat prettiger lezen. Het doet ook precies wat het moet doen, niet meer, niet minder.

  • ruttydm
    Intermediate
    Berichten
    226
    • 5 oktober 2015 om 16:48
    • #20

    Ik vind mijn code prettiger om te lezen :)

    Volgens mij is er een probleempje bij versio want ik krijg geen gegevens meer uit de database zonder dat ik iets aangepast heb.
    En ik gebruik geen enkele cdn momenteel.

    http://infinidum.com/

Participate now!

Heb je nog geen account? Registreer je nu en word deel van onze community!

Maak een account aan Login

ICT Nieuws

  • Fijne feestdagen

    tcbhome 28 december 2025 om 13:55
  • Kritieke update voor Really Simple Security-plug-in

    K.Rens 16 november 2024 om 16:12
  • ING Nederland streeft naar ondersteuning van Google Pay tegen eind februari

    K.Rens 2 november 2024 om 16:09

Blogs

  • Functioneel ontwerp

    Dees 28 december 2014 om 12:38
  • Access Control List implementatie in PHP/MySQL - deel 1/2

    FangorN 28 december 2018 om 12:35
  • Access Control List implementatie in PHP/MySQL - deel 2/2

    FangorN 29 december 2018 om 12:37
  1. Marktplaats
  2. Design
  3. Voorwaarden
  4. Ons team
  5. Leden
  6. Geschiedenis
  7. Regels
  8. Links
  9. Privacy Policy
ICTscripters ©2005 - 2026 , goedkope hosting door DiMoWeb.com, BE0558.915.582
Sponsors: Beste kattenhotel provincie Antwerpen | Beste Zetes eid kaartlezer webshop
Style: Nexus by cls-design
Stylename
Nexus
Manufacturer
cls-design
Licence
Commercial styles
Help
Supportforum
Visit cls-design