Formulier per regel verwerken

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Pagina: 1 2 volgende »

Danny von Gaal

Danny von Gaal

01/11/2015 22:09:03
Quote Anchor link
Ik heb een tabel gemaakt waarbij elke cel een waarde in de database kan updaten. Bijvoorbeeld:

Gebruikersnaam: 1 5 6 8 9 8 5
Gebruikersnaam: 3 6 8 4 5 8 2


Er moet dus per regel/line in de tabel een update op mijn database worden uitgevoerd. Mijn formulier heeft per regel allemaal dezelfde naam dus ik maak al gebruik van name="pos_1[]" en dat update ik met een foreach.

Nou weet ik alleen niet goed hoe ik dit met een heleboel regels moet aanpakken. Ik heb iets gemaakt wat wel werkt maar ik gebruik nu een foreach in een foreach in een foreach etc ...
Ik denk gewoon dat dit niet de goede manier is en tevens duurt het laden van de pagina ook heel lang.

Wie kan mij vertellen hoe dit wel moet?


Dit is mijn formulier:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
<?php
// Haal warstats op van openstaande war
    $SQLSelectWarstats = "SELECT warid, gebruikersnaam, positie, pos_1, a_1, a_1_n, pos_2, a_2, a_2_n, a_v, a_v_s
                          FROM warstats
                          WHERE warid = '"
. $warid . "'";
    $ResultSelectWarstats = $conn->query($SQLSelectWarstats);
    
    // Sla aantal warleden op in variabel
    $row_count = $ResultSelectWarstats->num_rows;
    
    // Maak een formulier aan en tabel
    echo "<form class='pure-form' method='POST' action='index.php?pagina=war&sub=invullen2'>";
    echo "<legend>War invullen:</legend>";
    echo "<br/>";
    echo "<table class='pure-table invullen'>";
    echo "<thead>";
    echo "<th></th>";
    echo "<th>Gebruikersnaam</th>";
    echo "<th>Positie 1e aanval</th>";
    echo "<th>Sterren 1e aanval</th>";
    echo "<th>Nieuwe sterren 1e aanval</th>";
    echo "<th>Positie 2e aanval</th>";
    echo "<th>Sterren 2e aanval</th>";
    echo "<th>Nieuwe sterren 2e aanval</th>";
    echo "<th>Aantal x verdediging gebruikt</th>";
    echo "<th>Aantal x verdedigd success</th>";
    echo "</thead>";
    echo "<tbody>";
    
    while($warstats = $ResultSelectWarstats->fetch_assoc()) {
        //Hidden post Warid
        echo "<input type='hidden' name='warid' value='" . $warid . "'>";
        echo "<tr>";
        // Warpositie
        echo "<td>" . $warstats["positie"] . "</td>";
        // Gebruikersnaam
        echo "<td>" . $warstats["gebruikersnaam"] . "</td>";
        echo "<input type='hidden' name='gebruikersnaam[]' value='" . $warstats["gebruikersnaam"] . "'>";
        // Tel aantal posities 1e aanval
        echo "<td><select name='pos_1[]'><option></option>";
        foreach (range(1, $row_count) as $number) {
                            
            echo "<option>" . $number . "</option>";
                            
        }

        echo "</select></td>";
        // Sterren 1e aanval
        echo "<td><select name='a_1[]'><option></option><option>1</option><option>2</option><option>3</option></select></td>";
        // Nieuwe sterren 1e aanval
        echo "<td><select name='a_1_n[]'><option></option><option>1</option><option>2</option><option>3</option></select></td>";
        // Tel aantal posities 2e aanval
        echo "<td><select name='pos_2[]'><option></option>";
        foreach (range(1, $row_count) as $number) {
                            
            echo "<option>" . $number . "</option>";
                            
        }

        echo "</select></td>";
        // Sterren 2e aanval
        echo "<td><select name='a_2[]'><option></option><option>1</option><option>2</option><option>3</option></select></td>";
        // Nieuwe sterren 2e aanval
        echo "<td><select name='a_2_n[]'><option></option><option>1</option><option>2</option><option>3</option></select></td>";
        // Aantal x verdediging gebruikt
        echo "<td><select name='a_v[]'><option></option><option>1</option><option>2</option><option>3</option><option>4</option><option>5</option><option>6</option><option>7</option><option>8</option><option>9</option><option>10</option></select></td>";
        // Aantal x verdedigd success
        echo "<td><select name='a_v_s[]'><option></option><option>1</option><option>2</option><option>3</option><option>4</option><option>5</option><option>6</option><option>7</option><option>8</option><option>9</option><option>10</option></select></td>";
        echo "</tr>";
        
    }

    
    echo "</tbody>";
    echo "</table>";
    echo "<br/>";
    echo "<input type='submit' name='updaten' value='Bijwerken'>";
    echo "</form>";
?>



En dit wordt zo verwerkt:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
<?php
// Maak connectie met db
include ("../connect.php");

// Variabele naar formulier voor redirect
$formpagina = "index.php?pagina=war&sub=invullen";

if (isset($_POST['warid'])) {
    
    foreach ($_POST['pos_1'] as $pos_1) {
        
        foreach ($_POST['a_1'] as $a_1) {
            
            foreach ($_POST['a_1_n'] as $a_1_n) {
                
                foreach ($_POST['pos_2'] as $pos_2) {
                    
                    foreach ($_POST['a_2'] as $a_2) {
                        
                        foreach ($_POST['a_2_n'] as $a_2_n) {
                            
                            foreach ($_POST['a_v'] as $a_v) {
                                
                                foreach ($_POST['a_v_s'] as $a_v_s) {
                                    
                                    foreach ($_POST['gebruikersnaam'] as $gebruikersnaam) {
    
                                        $SQLUpdateWarstats = "UPDATE warstats
                                                      SET pos_1='"
. $pos_1 . "',
                                                      a_1='"
. $a_1 . "',
                                                      a_1_n='"
. $a_1_n . "',
                                                      pos_2='"
. $pos_2 . "',
                                                      a_2='"
. $a_2 . "',
                                                      a_2_n='"
. $a_2_n . "',
                                                      a_v='"
. $a_v . "',
                                                      a_v_s='"
. $a_v_s . "'
                                                      WHERE warid='"
. $_POST['warid'] . "'
                                                      AND gebruikersnaam='"
. $gebruikersnaam . "'";
                                        if ($conn->query($SQLUpdateWarstats) === FALSE) {
                                                
                                            echo "<div class='error'>MySQL Error 3!! GVD @#$!!!<br/>Raadpleeg een kut beheerder!!</div>";
                                            exit;
                                                                    
                                        }
                                        
                                    }
                                    
                                }
                                
                            }
                            
                        }
                        
                    }
                    
                }
                
            }
            
        }
    
    }


    mysqli_close($conn);
    
}

?>
 
PHP hulp

PHP hulp

25/12/2024 06:19:54
 
Peter K

Peter K

02/11/2015 11:35:28
Quote Anchor link
Om hoeveel regels gaat het die je wilt verwerken?

Verder zie ik dat je ook vatbaar bent voor sql injection.
 
Ivo P

Ivo P

02/11/2015 11:46:16
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
<?php

foreach($_POST['warid'] as $teller => $warid) {

   $pos_1 = $_POST['pos_1'][$teller];
   $a_1 = $_POST['a_1'][$teller];

   // etc
   $sql = "UPDATE ... SET ...";

}

?>
 
Frank Nietbelangrijk

Frank Nietbelangrijk

02/11/2015 12:19:50
Quote Anchor link
Moeten die foreach loops niet onder elkaar komen ipv in elkaar?

Even ter verduidelijking:
5 foreach loops die ieder 5 keer doorlopen worden:
In elkaar 5x5x5x5x5 = 3125 loops.
Onder elkaar 5+5+5+5+5 = 25 loops.

Scheelt nogal...
 
Danny von Gaal

Danny von Gaal

02/11/2015 16:54:07
Quote Anchor link
@ Peter: Alle invoervelden zijn dropdown menu's. Users kunnen dus niet zelf wat intypen. Dan ben ik toch niet vatbaar voor SQL injection??

Maar ik heb het werkend. Thanks mensen:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
<?php
if (isset($_POST['warid'])) {
    
    $pos_1_array = $_POST['pos_1'];
    $a_1_array = $_POST['a_1'];
    $a_1_n_array = $_POST['a_1_n'];
    $pos_2_array = $_POST['pos_2'];
    $a_2_array = $_POST['a_2'];
    $a_2_n_array = $_POST['a_2_n'];
    $a_v_array = $_POST['a_v'];
    $a_v_s_array = $_POST['a_v_s'];
    $gebruikersnaam_array = $_POST['gebruikersnaam'];
    
    foreach($_POST['warid'] as $index=>$warid) {
        
        $pos_1 = $pos_1_array[$index];
        $a_1 = $a_1_array[$index];
        $a_1_n = $a_1_n_array[$index];
        $pos_2 = $pos_2_array[$index];
        $a_2 = $a_2_array[$index];
        $a_2_n = $a_2_n_array[$index];
        $a_v = $a_v_array[$index];
        $a_v_s = $a_v_s_array[$index];
        $gebruikersnaam = $gebruikersnaam_array[$index];
    
        $SQLUpdateWarstats = "UPDATE warstats
                              SET pos_1='"
. $pos_1 . "',
                              a_1='"
. $a_1 . "',
                              a_1_n='"
. $a_1_n . "',
                              pos_2='"
. $pos_2 . "',
                              a_2='"
. $a_2 . "',
                              a_2_n='"
. $a_2_n . "',
                              a_v='"
. $a_v . "',
                              a_v_s='"
. $a_v_s . "'
                              WHERE warid='"
. $warid . "'
                              AND gebruikersnaam='"
. $gebruikersnaam . "'";
        if ($conn->query($SQLUpdateWarstats) === FALSE) {
                                                
            echo "<div class='error'>MySQL Error 3!! GVD @#$!!!<br/>Raadpleeg een kut beheerder!!</div>";
            exit;
        }
        
    }


    mysqli_close($conn);
    
}

?>
Gewijzigd op 02/11/2015 16:55:15 door Danny von Gaal
 
Frank Nietbelangrijk

Frank Nietbelangrijk

02/11/2015 16:59:59
Quote Anchor link
>> Alle invoervelden zijn dropdown menu's. Users kunnen dus niet zelf wat intypen. Dan ben ik toch niet vatbaar voor SQL injection??

Dat is helaas niet zo, ik heb het in een minuut voor elkaar om een waarde te posten die niet in jouw dropdown voorkomt.
 
Ivo P

Ivo P

02/11/2015 17:00:42
Quote Anchor link
"Alle invoervelden zijn dropdown menu's. Users kunnen dus niet zelf wat intypen."

de moeilijke route: hacker maakt een eigen html form met ipv <select> een gewone <input> met dezelfde naam.
Gemakkelijker: klik rechts op de betreffende <select> op het scherm, kies voor inspect in het context menu en pas de values aan naar je keuze.
Volgens mij is dat zelfs zonder extra plugin gewoon aanwezig in Firefox en Chrome.
 
Danny von Gaal

Danny von Gaal

02/11/2015 21:39:14
Quote Anchor link
Allebei bedankt, ik ga de mysqli_real_escape_string toch toepassen dan.
Tevens heb ik inderdaad net zoals Ivo zei via Google chrome een andere waarde in me database toegevoegd terwijl het een dropdown menu is.

Baal er wel van dat dit tegenwoordig kan nu moet ik nog meer checks gaan toepassen. :-(

Maar allebei bedankt voor de support.
 
Peter K

Peter K

03/11/2015 07:16:43
Quote Anchor link
Danny von Gaal op 02/11/2015 21:39:14:
Allebei bedankt, ik ga de mysqli_real_escape_string toch toepassen dan.
Tevens heb ik inderdaad net zoals Ivo zei via Google chrome een andere waarde in me database toegevoegd terwijl het een dropdown menu is.

Baal er wel van dat dit tegenwoordig kan nu moet ik nog meer checks gaan toepassen. :-(

Maar allebei bedankt voor de support.


In principe kan de normale gebruiker dit niet natuurlijk.

Een optie kan zijn om de waarden die in je dropdown menu voorkomen in te vullen in een tabel in je database. Vervolgens zet je een foreign key op de tabel waar je in wilt vullen.

Welke waarde zet je nu in de database vanuit de dropdown? Een numerieke waarde?
Gewijzigd op 03/11/2015 09:24:46 door Peter K
 
Danny von Gaal

Danny von Gaal

03/11/2015 09:09:35
Quote Anchor link
De waardes zijn allemaal numeriek dus ik heb nu wel opgevangen dat letters niet worden toegestaan.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<?php
if (!is_numeric($pos_1)){
            
   echo "<div class='error'>Error: Ingevoerde waardes bevatten letters.</div>";

}
else {

}

?>


Maarja daar voorkom ik niet mee dat wanneer 1 t/m 3 is toegestaan iemand er 20 van maakt.
Gelukkig is dit formulier op een adminpagina waar beperkte mensen toegang hebben. Maar ik doe het toch graag meteen goed.
Gewijzigd op 03/11/2015 09:09:52 door Danny von Gaal
 
Peter K

Peter K

03/11/2015 09:25:23
Quote Anchor link
Check Foreign keys voor mysql maar eens:
http://www.w3schools.com/sql/sql_foreignkey.asp

Je kunt daarmee alleen waardes invullen in de database die je vooraf bepaald hebt in een andere tabel.
 
Frank Nietbelangrijk

Frank Nietbelangrijk

03/11/2015 10:08:22
Quote Anchor link
>> In principe kan de normale gebruiker dit niet natuurlijk.

Danny heeft het al geprobeerd Peter. Hij kreeg het voor elkaar en jij ook als je het probeert. Je hoeft er absoluut niet voor gestudeerd te hebben :-)

Constraints zijn inderdaad een goede mogelijkheid (die je ook zou moeten gebruiken) ALS het om foreign keys gaat die verwijzen naar een ander record.

De basisgedachte van iedere web-programmeur moet echter zijn dat alles dat van buiten de applicatie komt vervuild is en zo goed als mogelijk gecontroleerd moet worden. Laat je ook niet verleiden door de HTML5 of javascript validatie, want die is net zo makkelijk te omzeilen. zet maar eens het novalidate attribuut in je form element:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<form action="" method="post" novalidate>
...
</form>


Tot slot:
Voorkom CSRF attacks. Doe een hidden input met een random token in je formulier. Hetzelfde nummer sla je op in de sessie. Bij het valideren controleer je of het token in de sessie gelijk is aan die in de $_POST array.
Gewijzigd op 03/11/2015 13:31:33 door Frank Nietbelangrijk
 
Peter K

Peter K

03/11/2015 12:01:39
Quote Anchor link
Klopt Frank, je moet het client side en server side afvangen.

SQL injection voorkom je in principe al met de check is_numeric.

Alleen omdat alleen numeric niet genoeg is qua check kwam ik met het idee om dan achteraf gewoon al je database te beschermen. Wat ze dan ook doen. Er zal nooit een andere waarde in komen.

Uiteraard hoort hier wel een fatsoenlijke afhandeling al vooraf aan te gaan.
 
Pg Vincent

Pg Vincent

03/11/2015 12:48:23
Quote Anchor link
Quote:
SQL injection voorkom je in principe al met de check is_numeric.


Wellicht ten overvloede maar ik zeg het liever tevaak dan te weinig: er zijn precies twee manieren om SQL injection te voorkomen en dat zijn escapen via de escape functies van je database (en geen enkele andere) en via het gebruik van prepared statements. De rest, hoe mooi bedacht ook, is niet betrouwbaar. Alleen de database weet hoe hij een query leest en dus weet alleen de database wat hij met een waarde moet doen om hem goed te kunnen interpreteren.
 
Thomas van den Heuvel

Thomas van den Heuvel

03/11/2015 13:23:58
Quote Anchor link
Quote:
Voorkom XSS attacks. Doe een hidden input met een random token in je formulier. Hetzelfde nummer sla je op in de sessie. Bij het valideren controleer je of het token in de sessie gelijk is aan die in de $_POST array.

Volgens mij voorkom je daarmee CSRF, niet XSS.

Quote:
De rest, hoe mooi bedacht ook, is niet betrouwbaar.

Onjuist. Er is een derde manier: input filtering. Als je al je input filtert, zou escaping in principe niet nodig zijn.

EDIT: Daarbij, escaping is alleen veilig in combinatie met quotes. Het een zonder het ander is niet veilig.
Gewijzigd op 03/11/2015 13:42:32 door Thomas van den Heuvel
 
Frank Nietbelangrijk

Frank Nietbelangrijk

03/11/2015 13:28:51
Quote Anchor link
>> Volgens mij voorkom je daarmee CSRF, niet XSS.

Dat klopt helemaal Thomas! Ik zal dat even aanpassen.
 
Ivo P

Ivo P

03/11/2015 13:50:08
Quote Anchor link
@Thomas

Ik weet dat het een stokpaardje van je is om te hameren op de input-filtering.

probleem daarbij is echter, dat je dan 100% zeker moet zijn dat dat goed gebeurt.
En de mogelijkheid bestaat dat de filtering een paar honderd regels hoger staat (als al in hetzelfde bestand) dan de plek waar de query samengesteld wordt.

En ben je er dan nog steeds zeker van dat de waarde numeriek moet zijn? Dat is immers 200 regels hoger gecontroleerd. Je loopt dan kans dat de kolom "cijfer"als "natuurlijk is dat numeriek" opgevat wordt door jou of je collega.

Maar als er dan de schaal A-F gehanteerd wordt, dan is dat stiekem toch geen nummer.
Ok, als je dan ook de ' ' niet in de query plaatst, zal de query mislukken, tenzij de betreffende string toevallig ook een naam van een kolom uit je query is.

En de stap "oh cijfer is een A dus de controle is_numeric kan eruit" zou zomaar niet gevolgd kunnen worden door "dan moet ik dus ook nalopen waar $cijfer als is-toch-een-veilig-getal beschouwd wordt.

in de query dan toch de ' ' plaatsen EN de al dan niet numerieke waarde escapen verschaft dan op dat stuk code waar de query wordt samengesteld de zekerheid. En zo heel duur is dat nu ook weer niet.
 
Thomas van den Heuvel

Thomas van den Heuvel

03/11/2015 13:57:19
Quote Anchor link
Vandaar "in principe" :).

Ik ga er dan wel vanuit dat er op een goede manier gefilterd wordt zodat het geschikt is om in de database te plaatsen.

Als je uitgangsstelling niet klopt (als er niet goed wordt gefilterd dan...) kun je vervolgens natuurlijk van alles beweren he :).

Ik zou het altijd beide / allemaal doen.

Of je doet niet aan validatie en gooit er quotes omheen en een escape functie overheen, ook goed. Maar dan zit er mogelijk rommel (als in: onbruikbare data) in je database. Had je misschien beter de gegevens aan de poort kunnen controleren wellicht.
 
Pg Vincent

Pg Vincent

03/11/2015 14:37:19
Quote Anchor link
Quote:
Als je al je input filtert, zou escaping in principe niet nodig zijn.


Ah, ik voel de warme douche van de PHP wereld weer over me neerdalen :-)
Ik ben sinds een jaar of twee druk bezig met Python en daar zijn ze al helemaal van deze ideëen af.

Afijn, ik druk het een beetje sterk uit maar dat is omdat het zo verschrikkelijk belangrijk is:
Validatie en escapen zijn twee volledig verschillende dingen en hebben echt helemaal *niets* met elkaar te maken, laat staan dat ze elkaar uitsluiten.

Je moet *altijd* je input valideren maar ongeacht de uitkomst moet je *ook* escapen.
Validatie is puur en alleen bedoeld om te zien of jouw applicatie met de aangeleverde data kan werken. (is de string lang genoeg, is het getal tussen 10 en 20, is dit wel een email adres?)
Escapen is puur en alleen bedoeld om te zorgen dat de database je query correct interpreteert.

Ook valide data kan een query laten falen (een string met een quote erin) dus escapen van valide data is perse noodzakelijk.


Vergeet ook niet dat er code zit tussen het moment van validatie en het moment dat de data de query in gaat. Als jij door een simpele bug of gedachtekronkel een variabele uit $_POST pakt in plaats van uit $_validated_data, of ergens toch een quote toevoegt of een gevalideerde waarde concatteneert met een niet-gevalideerde, dan ben je het bokkie.

Dus: altijd, altijd, altijd escapen. En als je database het toelaat (en dat doet bij mijn weten alleen Oracle niet) dan ook alles en alles quoten. Gewoon omdat het voor de database niets uitmaakt, maar voor de veiligheid van je data een lifesaver kan zijn.

Nog beter: prepared statements, die doen alles tegelijk voor je, veiliger kan niet.


Quote:
EDIT: Daarbij, escaping is alleen veilig in combinatie met quotes. Het een zonder het ander is niet veilig.


Klopt, maar dat is geen issue want daar heb je prepared statements voor, en zie bijvoorbeeld pg_query_params(), en vrijwel elke PHP programmeur die ik ken heeft wel zijn eigen variant van een databaseclass die een vergelijkbare functie heeft, juist omdat het zo belangrijk is dat het altijd, altijd, altijd gebeurt.
 
Thomas van den Heuvel

Thomas van den Heuvel

03/11/2015 14:54:16
Quote Anchor link
Wauw, ook op stackoverflow werd zo gereageerd toen iemand anders voorstelde dat input filtering in principe voldoende is...

Ik verwijs je graag naar mijn vorige antwoord, die kan ook als reactie op dit bericht gebruikt worden. Ik stel ook niet voor dat je niet moet escapen, als ik in mijn antwoorden niet "filter input, escape output" laat vallen, dat is meer uitzondering dan regel.

En wtf bedoel je met "warme douche van de PHP wereld"? Hoezo denigrerend/generaliserend?
 
Pg Vincent

Pg Vincent

03/11/2015 16:49:05
Quote Anchor link
Thomas van den Heuvel op 03/11/2015 14:54:16:
Wauw, ook op stackoverflow werd zo gereageerd toen iemand anders voorstelde dat input filtering in principe voldoende is...


Dat zou best kunnen want het *is* niet voldoende, ook niet "in principe". De redenen daarvoor heb ik zojuist uitgelegd en die redenen zijn blijkbaar ook bekend bij de stackoverflow community en als ik deze reactie van jou lees dan weet jij het ook dondersgoed.


Quote:
Ik stel ook niet voor dat je niet moet escapen,


Dat is precies wat je voorstelt:

"input filtering. Als je al je input filtert, zou escaping in principe niet nodig zijn."

Je begrijpt toch wel dat de TS dit heel goed kan interpreteren als "je hoeft niet te escapen zolang je maar valideert"?


Quote:
En wtf bedoel je met "warme douche van de PHP wereld"? Hoezo denigrerend/generaliserend?



Het gaat wat offtopic, maar...

Ik bedoel precies dit gedoe. Iemand (ik wil dit niet toespitsen op jou want ik ken jou niet) doet een voorstel wat fout is. Twee mensen corrigeren hem en nog blijft hij volhouden dat hij gelijk heeft. Wanneer ik een epistel schrijf om uit te leggen waarom het een gevaarlijk idee is dan bedoelde hij het ineens anders dan wat er letterlijk in eerdere posts stond en ben ik eigenlijk degene die moeilijk doet.

In andere communities worden ook wel eens foute voorstellen gedaan en die worden dan ook terechtgewezen met de nodige argumenten en dan komt er meestal nog wel een vraag achteraan in de trant van "ik dacht altijd dat..." of "jamaar, is het niet zo dat..." en dat wordt dan uitgelegd en dan heeft de de TS een goed oplossing en de poster van de foute oplossing heeft weer wat geleerd.

Nogmaals, dit gaat niet specifiek tegen jou maar hoe jij reageerde was echt een "feest der herkenning" van hoe het er op PHP forums aan toe gaat.
 

Pagina: 1 2 volgende »



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.