svenvideo
hallo wat vinden jullie van mijn site?
- De bovenste balk valt niet echt in het oog. Is het niet makkelijker om je menu dichterbij je site te brengen? Hij heeft wel wat weg van Fok! zie ik ;-)
- Inlog-ding is niet mooi uitgelijnd
- Times New Roman is een standaard font, neem liever wat anders.
- Denk aan je grammatica en spelling, ik zie o.a Atracties staan, waar een 't' mist.
- Jammer van de registratie popup. Deze popups zijn een beetje uit de tijd... ;-)
- Je avatarupload is ZEER onveilig. Gelieve DIRECT offline te halen of aan te passen.
- Als ik naar Uploaden ga, waarom moet ik opnieuw aanmelden/inloggen? Heb je meerdere inlogsystemen? In dat geval is dat heel onlogisch.... Hij is al beter dan de vorige versie:
hoe kan ik dat invoegen aan dit script?
En pas $HTTP_POST_FILES aan naar: $_FILES Explode() op je $HTTP_POST_FILES['userfile']['name'] voor de extentie, en doe een check op $HTTP_POST_FILES['userfile']['type']
Script is lek => sql-injection.
Foutafhandeling ontbreekt.
Ik zie copy() en move_uploaded_file(), is dat niet dubbel.
$Vars buiten quotes houden.
Array-keys horen tussen quotes te staan.
Etc. Script is zo te zien behoorlijk oud.
</center>
en hoe krijg ik dit er in?
ik heb nu dit:
bedankt het is gelukt:
kan je het script geven? hoe?
Het gaat erom dat je met MySQL kijkt of het IP-adres van de gebruiker al in de database vermeld staat, of juist niet. In het laatste geval waarbij het IP-adres nog niet bekend is gebruik je INSERT om deze in de database te plaatsen met de huidige datum en tijd (met NOW() van MySQL). Bestaat het IP al in de database, dan UPDATE je daar steeds de tijd.
Met de DELETE en INTERVAL() functie van MySQL kan je in een tweede querie kijken bij welke IP's de datum ouder is dan 5 minuten (realtime zal niet makkelijk gaan lukken, dus daarom houden we een buffer-periode in), en in dat geval verwijder je die IP's weer.
Ik zou zeggen, probeer het eens... :-) Wat houdt je tegen om zelf wat te proberen?
klik op die link? daar staat een scriptje
Daar is deze code voor nodig: Gebruik eens css 3, daar kan je de hoeken mooi mee afronden..
Nu nog gewoon lekker in css2 met wat plaatjes doen! @Youri, Dat zou ik nog niet doen. Lekker wachten tot het er helemaal in zit. Teveel browsers kunnen het nu nog niet. (Te weinig mensen hebben een ondersteunende browser).
Toevoeging op 12/06/2011 14:26:06:
Rounded borders zou je al wel kunnen doen Rounded borders zou je al wel kunnen doen
Ik werk hier op een resolutie van 1920*1080 op een 24" scherm en zit er circa 60cm vandaan. De tekst in de zwarte navigatiebalk is bij mij echt maar nét te lezen. Mijn ogen zijn prima hoor, maar houd rekening met gebruikers die niet optimaal zien.
De pagina 'Uploaden' kan wel een beschrijving gebruiken. Ik zie nu een knop 'Uploaden' staan met de beschrijving 'Klik op de knop' en dat is alles. Een gebruiker die niet zo veel kennis heeft van computers zal denken: Oke, ik klik er wel op. Terwijl ze eigenlijk niet eens weten wat de bedoeling is.
Op de pagina 'blog', maak door middel van opmaak duidelijk wat-wat is. Alles is dikgedrukt en dat maakt de overzichtelijkheid er niet beter op. Ik zie dat je van de titel van de blogpost een <h2> hebt gemaakt. Daar kan ik mee in komen maar de meta-data (datum enzo) samen met de inhoud van het bericht ook een heading? Dat volg ik niet helemaal. een <h*> tag is een heading. Een titel dus. Houd er rekening mee dat zoekmachines pagina's indexeren en dat bepaalde tags zwaarder wegen dan andere. Ik zou van de meta-data en de inhoud van je blog post gewoon paragrafen maken (<p>).
Ook kun je dan eventueel de meta-data schuingedrukt maken, om aan te geven dat het een stukje standaard informatie is wat bij een bericht hoort. Niet verplicht ofzo hoor, maar ik probeer je enkel wat te helpen :)
Probeer op je taalgebruik te letten (is geloof ik al eens eerder gezegd). Vooral hoofdletters. Het is nu net of je de shift-toets nog niet uitgevonden hebt ;-)
Plak niet zomaar overal grote foto's in. Schaal ze op het formaat die je nodig hebt. Ik zie toevallig een foto van ruim 750Kb voorbij komen die je met CSS terug geschaald hebt naar 150 pixels. Erg jammer van de performance en je dataverkeer ;)
Popups ben ik ook niet zo'n fan van. Veel mensen hebben tegenwoordig adblockers die dat soort dingen regelmatig tegenhouden. Mijn browser opende hem toevallig wel maar als iemand een ad-blocker heeft bestaat de kans dat hij denkt: Hey, waarom doet hij niks.
Wat is exact de doelgroep en het onderwerp van je website? Als ontwikkelaar moet je proberen je website op te laten vallen. Gebruikers moeten denken: Dat is een leuke site, daar ga ik nog een keer kijken. Nu kan ik wel begrijpen dat je een website maakt 'omdat je het leuk vind om een site te maken', maar dat is wel iets om in de toekomst over na te denken mocht je serieuzer iets willen maken.
Succes,
Erik Het kan aan mij liggen, maar het duurde even voordat ik er achter kwam dat de zwarte balk bovenin de navigatie was. Je ziet een groot, centraal, wit scherm in het midden. Als gebruiker zou ik daar als eerst zoeken naar een navigatie. De navigatie staat nu zeg maar overal los van.
- De bovenste balk valt niet echt in het oog. Is het niet makkelijker om je menu dichterbij je site te brengen? Hij heeft wel wat weg van Fok! zie ik ;-)
- Inlog-ding is niet mooi uitgelijnd
- Times New Roman is een standaard font, neem liever wat anders.
- Denk aan je grammatica en spelling, ik zie o.a Atracties staan, waar een 't' mist.
- Jammer van de registratie popup. Deze popups zijn een beetje uit de tijd... ;-)
- Je avatarupload is ZEER onveilig. Gelieve DIRECT offline te halen of aan te passen.
- Als ik naar Uploaden ga, waarom moet ik opnieuw aanmelden/inloggen? Heb je meerdere inlogsystemen? In dat geval is dat heel onlogisch....
Gewijzigd op 11/06/2011 13:44:57 door - Ariën -
hoe kan ik het veilig maken?
Controleren op extentie en mime-type.
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
32
33
34
35
36
37
38
39
40
41
42
43
44
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
<?
include "config.php";
// Your file name you are uploading
$file_name = $HTTP_POST_FILES['userfile']['name'];
// random 4 digit to add to our file name
// some people use date and time in stead of random digit
$random_digit=rand(0000,9999);
//combine random digit to you file name to create new file name
//use dot (.) to combile these two variables
$new_file_name=$random_digit.$file_name;
//set where you want to store files
//in this example we keep file in folder upload
//$new_file_name = new upload file name
//for example upload file name cartoon.gif . $path will be upload/cartoon.gif
$path= "files/".$new_file_name;
if($ufile !=none)
{
if(copy($HTTP_POST_FILES['userfile']['tmp_name'], $path))
{
echo "Successful<BR/>";
//$new_file_name = new file name
//$HTTP_POST_FILES['ufile']['size'] = file size
//$HTTP_POST_FILES['ufile']['type'] = type of file
echo "File Name :".$new_file_name."<BR/>";
echo "File Size :".$HTTP_POST_FILES['userfile']['size']."<BR/>";
echo "File Type :".$HTTP_POST_FILES['userfile']['type']."<BR/>";
}
else
{
echo "Error";
}
}
move_uploaded_file($_FILES['userfile']['tmp_name'], $path . $_FILES['userfile']['name']);
$bestand = $new_file_name;
$ip = $_SERVER['REMOTE_ADDR'];
mysql_query("INSERT INTO users (naam, email, username, password, leeftijd, bestand, datum, geslacht) VALUES ('$_POST[naam]','$_POST[email]','$_POST[username]','$_POST[password]','$_POST[leeftijd]','$bestand','$datum','$_POST[geslacht]')") or die(mysql_error());
?>
include "config.php";
// Your file name you are uploading
$file_name = $HTTP_POST_FILES['userfile']['name'];
// random 4 digit to add to our file name
// some people use date and time in stead of random digit
$random_digit=rand(0000,9999);
//combine random digit to you file name to create new file name
//use dot (.) to combile these two variables
$new_file_name=$random_digit.$file_name;
//set where you want to store files
//in this example we keep file in folder upload
//$new_file_name = new upload file name
//for example upload file name cartoon.gif . $path will be upload/cartoon.gif
$path= "files/".$new_file_name;
if($ufile !=none)
{
if(copy($HTTP_POST_FILES['userfile']['tmp_name'], $path))
{
echo "Successful<BR/>";
//$new_file_name = new file name
//$HTTP_POST_FILES['ufile']['size'] = file size
//$HTTP_POST_FILES['ufile']['type'] = type of file
echo "File Name :".$new_file_name."<BR/>";
echo "File Size :".$HTTP_POST_FILES['userfile']['size']."<BR/>";
echo "File Type :".$HTTP_POST_FILES['userfile']['type']."<BR/>";
}
else
{
echo "Error";
}
}
move_uploaded_file($_FILES['userfile']['tmp_name'], $path . $_FILES['userfile']['name']);
$bestand = $new_file_name;
$ip = $_SERVER['REMOTE_ADDR'];
mysql_query("INSERT INTO users (naam, email, username, password, leeftijd, bestand, datum, geslacht) VALUES ('$_POST[naam]','$_POST[email]','$_POST[username]','$_POST[password]','$_POST[leeftijd]','$bestand','$datum','$_POST[geslacht]')") or die(mysql_error());
?>
En pas $HTTP_POST_FILES aan naar: $_FILES
Script is lek => sql-injection.
Foutafhandeling ontbreekt.
Ik zie copy() en move_uploaded_file(), is dat niet dubbel.
$Vars buiten quotes houden.
Array-keys horen tussen quotes te staan.
Etc.
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
32
33
34
35
36
37
38
39
40
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
<?
global $_FILES;
$filename = $_FILES['userfile']['name'];
$allow[0] = "jpg";
$allow[1] = "gif";
$allow[2] = "bmp";
$allow[2] = "png";
// $allow[3] = "exe"; enz.
if ($_POST["newname"])
$uploadname = $_POST['newname'];
else
$uploadname = $_FILES['userfile']['name'];
$extentie = substr($uploadname, -3);
for ($i = 0; $i < count($allow); $i++)
{
if ($extentie == $allow[$i])
{
$extentie_check = "ok";
$i = count($allow) + 5; // om loop te beindigen
}
}
if ($extentie_check)
{
if (is_uploaded_file($_FILES['userfile']['tmp_name'])) {
move_uploaded_file($_FILES['userfile']['tmp_name'], "files/" . $uploadname);
echo "Het bestand is geupload onder de naam: $uploadname";
}
}
else
{
echo "Jij bent stout! Mag niet hoor!";
}
?>
global $_FILES;
$filename = $_FILES['userfile']['name'];
$allow[0] = "jpg";
$allow[1] = "gif";
$allow[2] = "bmp";
$allow[2] = "png";
// $allow[3] = "exe"; enz.
if ($_POST["newname"])
$uploadname = $_POST['newname'];
else
$uploadname = $_FILES['userfile']['name'];
$extentie = substr($uploadname, -3);
for ($i = 0; $i < count($allow); $i++)
{
if ($extentie == $allow[$i])
{
$extentie_check = "ok";
$i = count($allow) + 5; // om loop te beindigen
}
}
if ($extentie_check)
{
if (is_uploaded_file($_FILES['userfile']['tmp_name'])) {
move_uploaded_file($_FILES['userfile']['tmp_name'], "files/" . $uploadname);
echo "Het bestand is geupload onder de naam: $uploadname";
}
}
else
{
echo "Jij bent stout! Mag niet hoor!";
}
?>
Code (php)
1
2
3
4
5
6
7
2
3
4
5
6
7
<?
include("conn.php");
$bestand = $uploadname;
$ip = $_SERVER['REMOTE_ADDR'];
mysql_query("INSERT INTO users (naam, email, username, password, leeftijd, bestand, datum, geslacht) VALUES ('$_POST[naam]','$_POST[email]','$_POST[username]','$_POST[password]','$_POST[leeftijd]','$bestand','$datum','$_POST[geslacht]')") or die(mysql_error());
?>
include("conn.php");
$bestand = $uploadname;
$ip = $_SERVER['REMOTE_ADDR'];
mysql_query("INSERT INTO users (naam, email, username, password, leeftijd, bestand, datum, geslacht) VALUES ('$_POST[naam]','$_POST[email]','$_POST[username]','$_POST[password]','$_POST[leeftijd]','$bestand','$datum','$_POST[geslacht]')") or die(mysql_error());
?>
</center>
en hoe krijg ik dit er in?
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
32
33
34
35
36
37
38
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
<?php
// Your file name you are uploading
$file_name = $HTTP_POST_FILES['ufile']['name'];
// random 4 digit to add to our file name
// some people use date and time in stead of random digit
$random_digit=rand(0000,9999);
//combine random digit to you file name to create new file name
//use dot (.) to combile these two variables
$new_file_name=$random_digit.$file_name;
//set where you want to store files
//in this example we keep file in folder upload
//$new_file_name = new upload file name
//for example upload file name cartoon.gif . $path will be upload/cartoon.gif
$path= "upload/".$new_file_name;
if($ufile !=none)
{
if(copy($HTTP_POST_FILES['ufile']['tmp_name'], $path))
{
echo "Successful<BR/>";
//$new_file_name = new file name
//$HTTP_POST_FILES['ufile']['size'] = file size
//$HTTP_POST_FILES['ufile']['type'] = type of file
echo "File Name :".$new_file_name."<BR/>";
echo "File Size :".$HTTP_POST_FILES['ufile']['size']."<BR/>";
echo "File Type :".$HTTP_POST_FILES['ufile']['type']."<BR/>";
}
else
{
echo "Error";
}
}
?>
// Your file name you are uploading
$file_name = $HTTP_POST_FILES['ufile']['name'];
// random 4 digit to add to our file name
// some people use date and time in stead of random digit
$random_digit=rand(0000,9999);
//combine random digit to you file name to create new file name
//use dot (.) to combile these two variables
$new_file_name=$random_digit.$file_name;
//set where you want to store files
//in this example we keep file in folder upload
//$new_file_name = new upload file name
//for example upload file name cartoon.gif . $path will be upload/cartoon.gif
$path= "upload/".$new_file_name;
if($ufile !=none)
{
if(copy($HTTP_POST_FILES['ufile']['tmp_name'], $path))
{
echo "Successful<BR/>";
//$new_file_name = new file name
//$HTTP_POST_FILES['ufile']['size'] = file size
//$HTTP_POST_FILES['ufile']['type'] = type of file
echo "File Name :".$new_file_name."<BR/>";
echo "File Size :".$HTTP_POST_FILES['ufile']['size']."<BR/>";
echo "File Type :".$HTTP_POST_FILES['ufile']['type']."<BR/>";
}
else
{
echo "Error";
}
}
?>
Gewoon een in_array check gebruiken om te kijken of de $_FILES['ufile']['type'] voorkomt in de array. Zoja... error...
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
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
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
<?
global $_FILES;
$filename = $_FILES['userfile']['name'];
$allow[0] = "jpg";
$allow[1] = "gif";
$allow[2] = "bmp";
$allow[2] = "png";
// $allow[3] = "exe"; enz.
if ($_POST["newname"])
$uploadname = $_POST['newname'];
else
$uploadname = $_FILES['userfile']['name'];
$extentie = substr($uploadname, -3);
for ($i = 0; $i < count($allow); $i++)
{
if ($extentie == $allow[$i])
{
$extentie_check = "ok";
$i = count($allow) + 5; // om loop te beindigen
}
}
if ($extentie_check)
{
// Your file name you are uploading
$file_name = $HTTP_POST_FILES['userfile']['name'];
// random 4 digit to add to our file name
// some people use date and time in stead of random digit
$random_digit=$_POST[username];
//combine random digit to you file name to create new file name
//use dot (.) to combile these two variables
$new_file_name=$random_digit.$file_name;
//set where you want to store files
//in this example we keep file in folder upload
//$new_file_name = new upload file name
//for example upload file name cartoon.gif . $path will be upload/cartoon.gif
$path= "files/".$new_file_name;
if($ufile !=none)
{
if(copy($HTTP_POST_FILES['userfile']['tmp_name'], $path))
{
echo "Successful<BR/>";
//$new_file_name = new file name
//$HTTP_POST_FILES['ufile']['size'] = file size
//$HTTP_POST_FILES['ufile']['type'] = type of file
echo "File Name :".$new_file_name."<BR/>";
echo "File Size :".$HTTP_POST_FILES['userfile']['size']."<BR/>";
echo "File Type :".$HTTP_POST_FILES['userfile']['type']."<BR/>";
}
else
{
echo "Error";
}
}
}
?>
global $_FILES;
$filename = $_FILES['userfile']['name'];
$allow[0] = "jpg";
$allow[1] = "gif";
$allow[2] = "bmp";
$allow[2] = "png";
// $allow[3] = "exe"; enz.
if ($_POST["newname"])
$uploadname = $_POST['newname'];
else
$uploadname = $_FILES['userfile']['name'];
$extentie = substr($uploadname, -3);
for ($i = 0; $i < count($allow); $i++)
{
if ($extentie == $allow[$i])
{
$extentie_check = "ok";
$i = count($allow) + 5; // om loop te beindigen
}
}
if ($extentie_check)
{
// Your file name you are uploading
$file_name = $HTTP_POST_FILES['userfile']['name'];
// random 4 digit to add to our file name
// some people use date and time in stead of random digit
$random_digit=$_POST[username];
//combine random digit to you file name to create new file name
//use dot (.) to combile these two variables
$new_file_name=$random_digit.$file_name;
//set where you want to store files
//in this example we keep file in folder upload
//$new_file_name = new upload file name
//for example upload file name cartoon.gif . $path will be upload/cartoon.gif
$path= "files/".$new_file_name;
if($ufile !=none)
{
if(copy($HTTP_POST_FILES['userfile']['tmp_name'], $path))
{
echo "Successful<BR/>";
//$new_file_name = new file name
//$HTTP_POST_FILES['ufile']['size'] = file size
//$HTTP_POST_FILES['ufile']['type'] = type of file
echo "File Name :".$new_file_name."<BR/>";
echo "File Size :".$HTTP_POST_FILES['userfile']['size']."<BR/>";
echo "File Type :".$HTTP_POST_FILES['userfile']['type']."<BR/>";
}
else
{
echo "Error";
}
}
}
?>
- SanThe - op 11/06/2011 14:22:18:
Script is zo te zien behoorlijk oud.
Script is lek => sql-injection.
Foutafhandeling ontbreekt.
Ik zie copy() en move_uploaded_file(), is dat niet dubbel.
$Vars buiten quotes houden.
Array-keys horen tussen quotes te staan.
Etc.
Script is lek => sql-injection.
Foutafhandeling ontbreekt.
Ik zie copy() en move_uploaded_file(), is dat niet dubbel.
$Vars buiten quotes houden.
Array-keys horen tussen quotes te staan.
Etc.
klik
Als ik op je homepagina refresh telt de teller gewoon door. Je kan hier iets maken dat hij het per ip telt, Gewijzigd op 11/06/2011 22:03:25 door Nick Dijkstra
kan je het script geven?
Het gaat erom dat je met MySQL kijkt of het IP-adres van de gebruiker al in de database vermeld staat, of juist niet. In het laatste geval waarbij het IP-adres nog niet bekend is gebruik je INSERT om deze in de database te plaatsen met de huidige datum en tijd (met NOW() van MySQL). Bestaat het IP al in de database, dan UPDATE je daar steeds de tijd.
Met de DELETE en INTERVAL() functie van MySQL kan je in een tweede querie kijken bij welke IP's de datum ouder is dan 5 minuten (realtime zal niet makkelijk gaan lukken, dus daarom houden we een buffer-periode in), en in dat geval verwijder je die IP's weer.
Ik zou zeggen, probeer het eens... :-)
Gewijzigd op 11/06/2011 22:44:25 door - Ariën -
Sven video op 11/06/2011 22:03:16:
hoe?
kan je het script geven?
kan je het script geven?
klik op die link? daar staat een scriptje
Is mij nog niet eens opgevallen :P
Daar is deze code voor nodig:
Nu nog gewoon lekker in css2 met wat plaatjes doen!
Toevoeging op 12/06/2011 14:26:06:
Rounded borders zou je al wel kunnen doen
Ik werk hier op een resolutie van 1920*1080 op een 24" scherm en zit er circa 60cm vandaan. De tekst in de zwarte navigatiebalk is bij mij echt maar nét te lezen. Mijn ogen zijn prima hoor, maar houd rekening met gebruikers die niet optimaal zien.
De pagina 'Uploaden' kan wel een beschrijving gebruiken. Ik zie nu een knop 'Uploaden' staan met de beschrijving 'Klik op de knop' en dat is alles. Een gebruiker die niet zo veel kennis heeft van computers zal denken: Oke, ik klik er wel op. Terwijl ze eigenlijk niet eens weten wat de bedoeling is.
Op de pagina 'blog', maak door middel van opmaak duidelijk wat-wat is. Alles is dikgedrukt en dat maakt de overzichtelijkheid er niet beter op. Ik zie dat je van de titel van de blogpost een <h2> hebt gemaakt. Daar kan ik mee in komen maar de meta-data (datum enzo) samen met de inhoud van het bericht ook een heading? Dat volg ik niet helemaal. een <h*> tag is een heading. Een titel dus. Houd er rekening mee dat zoekmachines pagina's indexeren en dat bepaalde tags zwaarder wegen dan andere. Ik zou van de meta-data en de inhoud van je blog post gewoon paragrafen maken (<p>).
Ook kun je dan eventueel de meta-data schuingedrukt maken, om aan te geven dat het een stukje standaard informatie is wat bij een bericht hoort. Niet verplicht ofzo hoor, maar ik probeer je enkel wat te helpen :)
Probeer op je taalgebruik te letten (is geloof ik al eens eerder gezegd). Vooral hoofdletters. Het is nu net of je de shift-toets nog niet uitgevonden hebt ;-)
Plak niet zomaar overal grote foto's in. Schaal ze op het formaat die je nodig hebt. Ik zie toevallig een foto van ruim 750Kb voorbij komen die je met CSS terug geschaald hebt naar 150 pixels. Erg jammer van de performance en je dataverkeer ;)
Popups ben ik ook niet zo'n fan van. Veel mensen hebben tegenwoordig adblockers die dat soort dingen regelmatig tegenhouden. Mijn browser opende hem toevallig wel maar als iemand een ad-blocker heeft bestaat de kans dat hij denkt: Hey, waarom doet hij niks.
Wat is exact de doelgroep en het onderwerp van je website? Als ontwikkelaar moet je proberen je website op te laten vallen. Gebruikers moeten denken: Dat is een leuke site, daar ga ik nog een keer kijken. Nu kan ik wel begrijpen dat je een website maakt 'omdat je het leuk vind om een site te maken', maar dat is wel iets om in de toekomst over na te denken mocht je serieuzer iets willen maken.
Succes,
Erik