Zou je me misschien verder kunnen helpen? (MSN stayfan [@] gmail.com).quote:Op dinsdag 1 februari 2005 20:49 schreef capetonian het volgende:
[..]
Um , ..... dit is een makkie, ..... in je process, .... gebruik php's mail() functie om een bericht te versturen, laat dit dan direct naar de database insert gebeuren, ... wat leuk is is dan nog twee kleine tooltjes in te bouwen, .... een zodat jij een bericht krijgt op het moment dat je collega zijn of haar bericht leest (je kan het als optie aanvinken bij het versturen van je bericht), en om evt een subroutine in te bouwen dat checkt of de bericht al is gelezen en deze dan (bijvoorbeeld) een herrinering laten versturen
[ code verwijderd ]
Uuuh, .. als je niet uitkomt, .. mag je me op msn toevoegen.
Ok bedankt!quote:Op donderdag 3 februari 2005 14:34 schreef Roönaän het volgende:
Ik zou voor 3 tabellen gaan.
Even anders / makkelijker geformuleerd.quote:Op donderdag 3 februari 2005 14:40 schreef dnzl het volgende:
[..]
Zou je me misschien verder kunnen helpen? (MSN stayfan [@] gmail.com).
Thanks![]()
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | <?php $aannemer=$user['firstname']; $contact=$_POST['contact']; $bedrijf=$_POST['bedrijf']; $tel=$_POST['tel']; $email=$_POST['betreft']; $betreft=$_POST['betreft']; $bericht=$_POST['bericht']; $nsiemp=$_POST['nsiemp']; $sql = " INSERT INTO calls (aannemer, contact, bedrijf, tel, email, betreft, bericht, nsiemp) VALUES ('$aannemer','$contact','$bedrijf','$tel','$email','$betreft','$bericht','$nsiemp') "; mysql_query($sql) or die (mysql_error()); ?> |
Je oplossing voor het probleem is vrij eenvoudig, namelijk de mail functie aanroepen na je insert. Daarna blijft natuurlijk de vraag waarom je van je $_POST array op zo'n omslachtige wijze losse variabelen maakt. Ten eerste is dat onnodig en ten tweede zou je dat via de extract functie kunnen doen en ten derde zou je gewoon netjes niets moeten doen de array en gewoon als een array gebruikenquote:Op donderdag 3 februari 2005 16:19 schreef dnzl het volgende:
[..]
Even anders / makkelijker geformuleerd.
Op dit moment heb onderstaand script voor het invoegen van gegevens die via een formulier binnnen komen. Deze gegevens zijn zichtbaar als "nsiemp" inlogt.
[ code verwijderd ]
De invoer in nsiemp staat ook in de database in de tabel 'users'. Ik zou zo graag willen dat erop dit e-mailadres een standaard mailtje terecht kwam met de melding "Er staan nieuwe gegevens voor u klaar, ga naar....". Meer niet.
De vergelijking die gemaakt moet worden is dus alsvolgt nsiemp -> user -> user1 -> user1@mail.com.
Kan iemand me hiermee helpen?
Als je er verder niets mee doet dan is het vrij zinloos. Maar het is een mooie gelegenheid om te controleren op ongewenste input.quote:Op donderdag 3 februari 2005 19:23 schreef rickmans het volgende:
[..]
Je oplossing voor het probleem is vrij eenvoudig, namelijk de mail functie aanroepen na je insert. Daarna blijft natuurlijk de vraag waarom je van je $_POST array op zo'n omslachtige wijze losse variabelen maakt.
Ten eerste is dat onnodig
Hebben ze eindelijk om veiligheidsredenen register_globals=off gezet, ga jij ff de extract-funtie promotenquote:en ten tweede zou je dat via de extract functie kunnen doen
Huh? wat?quote:en ten derde zou je gewoon netjes niets moeten doen de array en gewoon als een array gebruiken.
Wat is er mis om per key te controleren? dus:quote:Op donderdag 3 februari 2005 20:02 schreef SuperRembo het volgende:
[..]
Als je er verder niets mee doet dan is het vrij zinloos. Maar het is een mooie gelegenheid om te controleren op ongewenste input.
1 2 3 4 5 | <?php if(empty($_POST["bloep"])){ //blaat } ?> |
Ik volg je niet, waar zit volgens jou een veiligheidsprobleem?quote:[..]
Hebben ze eindelijk om veiligheidsredenen register_globals=off gezet, ga jij ff de extract-funtie promoten
http://php.net/array zie de documentatie over wat een array precies is en wat voor functionaliteit het biedtquote:[..]
Huh? wat?
Ja zo kan 't ook.quote:Op donderdag 3 februari 2005 20:15 schreef rickmans het volgende:
[..]
Wat is er mis om per key te controleren? dus:
[ code verwijderd ]
extract($_POST) gebruiken geeft dezelfe risico's als register_globals = on, het overschrijven van variabelen. Overschrijven is 't standaard gedrag als je geen extract_type opgeeft.quote:Het is nutteloos om alleen daarom een array te vervormen tot aparte variabelen.
[..]
Ik volg je niet, waar zit volgens jou een veiligheidsprobleem?
Een array ken ik wel, maar die zin is krom en ik snap 'm niet.quote:http://php.net/array zie de documentatie over wat een array precies is en wat voor functionaliteit het biedt.
"en ten derde zou je gewoon netjes niets moeten doen de array en gewoon als een array gebruiken"
Nee dat is niet het geval. $_POST["foo"] is net zo min of net zo makkelijk te overschrijven als $foo met de setting van register_globals. Extract zorgt alleen voor het onndige feit dat je je array splits in een aantal variabelen. Deze variabelen zijn met de juiste register_globals niet overschrijfbaar. Mocht je weten hoe dat wel zou moeten, dan zou ik graag een stukje proof of concept zienquote:Op donderdag 3 februari 2005 21:13 schreef SuperRembo het volgende:
[..]
extract($_POST) gebruiken geeft dezelfe risico's als register_globals = on, het overschrijven van variabelen. Overschrijven is 't standaard gedrag als je geen extract_type opgeeft.
Hetgeen dat ik bedoelde is dat je een array gewoon moet benutten waar die bedoelt voor is en dat het maken van aparte variabelen voor iedere key volstrekt onnodig typwerk is en wellicht zelfs nog overhead veroorzaakt. Daarnaast kan het onduidelijkheid veroorzaken met het debuggen aangezien het niet direct duidelijk hoe de variabele in het process terecht is gekomen, dat laatste kan uiteraard voorkomen worden door een goede naming convention, maar dan nog is het voor mij dezelfde actie als:quote:[..]
Een array ken ik wel, maar die zin is krom en ik snap 'm niet.
1 2 3 4 5 6 7 8 9 | <?php $a = 1; $b = $a; //wat in jouw geval te lezen is als: $a = array(1,2); $1 = $a[0]; $2 = $a[1]; ?> |
quote:Op donderdag 3 februari 2005 22:04 schreef rickmans het volgende:
Nee dat is niet het geval. $_POST["foo"] is net zo min of net zo makkelijk te overschrijven als $foo met de setting van register_globals. Extract zorgt alleen voor het onndige feit dat je je array splits in een aantal variabelen. Deze variabelen zijn met de juiste register_globals niet overschrijfbaar. Mocht je weten hoe dat wel zou moeten, dan zou ik graag een stukje proof of concept zien.
1 2 3 4 5 6 7 8 | if (authenticated_user()) { $authorized = true; } extract($_POST); // $authorized _kan_ nu overschreven zijn if ($authorized) { echo $secrect_information; } |
Ach, een key zoeken in een array kost ook tijd.quote:Hetgeen dat ik bedoelde is dat je een array gewoon moet benutten waar die bedoelt voor is en dat het maken van aparte variabelen voor iedere key volstrekt onnodig typwerk is en wellicht zelfs nog overhead veroorzaakt. Daarnaast kan het onduidelijkheid veroorzaken met het debuggen aangezien het niet direct duidelijk hoe de variabele in het process terecht is gekomen, dat laatste kan uiteraard voorkomen worden door een goede naming convention, maar dan nog is het voor mij dezelfde actie als:
[ code verwijderd ]
Indien je gebruik maakt van andere variabelen zodat je weet dat deze gevalideerd zijn is dat een kleine valide reden (namelijkverzicht) en waarschijnlijk veroorzaakt het een voor jou niet merkbare overhead.
Ik vind het zeer overzichtelijk dat ongevalideerde user-input maar op 1 plaats voor komt.quote:Echter het blijft te overwegen of het wel overzichtelijk blijft en of het de overhead waard is.
quote:Op donderdag 3 februari 2005 22:35 schreef SuperRembo het volgende:
[..]
[ code verwijderd ]
(Hier mankeert natuurlijk meer aan dan aleen het gebruik van extract(), het is dan ook slechts een voorbeeld)
1 | // $authorized _kan_ nu overschreven zijn |
1 2 3 4 5 | <?php // Dit wordt uit de datbase uitgelezen $buttonname = "$record->buttonname"; $buttonname = explode(",", $buttonname); ?> |
1 2 3 4 | <?php echo '<td width="0%"><div align="center"><B><a href="?page='.$buttonlink[0].'">'.str_replace("%20", " ", $buttonname[0]);'</a></div</td>'; ?> |
Ehmz, als je elke keer bij $buttonname 1 optelt wordt ie toch nooit leegquote:Op vrijdag 4 februari 2005 12:53 schreef jeroen-heeft-koffie-nodig het volgende:
Nu wil dat dit laatste zich blijft weergeven netzolang totdat $buttonname leeg is. Maar elke keer als deze 'td' wordt weergegeven, dan moet er bij buttonname en buttonlink een 1 dr bij worden opgeteld.
ja klopt!quote:Op vrijdag 4 februari 2005 12:57 schreef Swetsenegger het volgende:
[..]
Ehmz, als je elke keer bij $buttonname 1 optelt wordt ie toch nooit leeg
ow, wacht je wilt de volgende uit de array? Correct?
quote:Op vrijdag 4 februari 2005 12:59 schreef jeroen-heeft-koffie-nodig het volgende:
[..]
ja klopt!
edit netzolang totdat de array leeg is!
1 2 3 4 5 6 | <?php foreach($buttonname as $whatever){ //doe je html ding met $whatever ipv $buttonname] } ?> |
quote:
1 2 3 4 5 6 7 8 | <?php $buttonname = explode(",", $buttonname); foreach($buttonname as $buttonname){ echo '<td width="0%"><div align="center"><B> <a href="?page='.$buttonlink[0].'">'.str_replace("%20", " ", $buttonname['0']);'</a></div</td>'; } ?> |
quote:Op vrijdag 4 februari 2005 13:11 schreef jeroen-heeft-koffie-nodig het volgende:
[..]
[ code verwijderd ]
Heb ik nu gedaan, het werkt gedeeltelijk, hoewel ik nu alleen nog maar elke keer de 1e letter van de array krijg, en niet het gehele woord voor de komma. Ook blijft overal buttonlink hetzelfde
1 2 3 4 5 6 7 8 9 10 | <?php $a=0; foreach($buttonname as $knopnaam){ echo '<td width="0%"><div align="center"><B> <a href="?page='.$buttonlink[$a].'">'.str_replace("%20", " ", $knopnaam);'</a></div</td>'; $a++; } ?> |
Hij heeft dat vast in een data access layer staan die netjes een array terug geeftquote:Op vrijdag 4 februari 2005 13:51 schreef Swetsenegger het volgende:
Waarom lees je de resultaten van je query dan in een array? Het is toch handiger om gewoon met een whilelus je resultaten in je HTML te zetten?
Dat is dus het standaard gedrag van extract() zonder extract_type parameter. Het gebruik van extract() bevorderd slecht programmeerwerk, dat was mijn punt.quote:Op vrijdag 4 februari 2005 08:22 schreef rickmans het volgende:
[..]! dat is geen security issue, dat is gewoon heel slecht programmeer werk, waarbij je een variable overschijft door een andere waarde terwijl dat niet de bedoeling is
!.
geen enkele functie binnen php bevordert slecht programmeerwerk, de programmeur die is daar verantwoordelijk voorquote:Op vrijdag 4 februari 2005 19:38 schreef SuperRembo het volgende:
[..]
Dat is dus het standaard gedrag van extract() zonder extract_type parameter. Het gebruik van extract() bevorderd slecht programmeerwerk, dat was mijn punt.
in een wat?quote:Op vrijdag 4 februari 2005 19:27 schreef SuperRembo het volgende:
[..]
Hij heeft dat vast in een data access layer staan die netjes een array terug geeft
Een class die alle database acties afhandeld.quote:
1 2 | $db = new LinksDB(); $links = $db->SelectAll(); |
1 | while ($row = mysql_fetch_assoc($result)) { |
die zooi lijkt me handiger te verwerken eigenlijk...quote:Op vrijdag 4 februari 2005 20:41 schreef SuperRembo het volgende:
[..]
Een class die alle database acties afhandeld.
[ code verwijderd ]
En dan heb je een array met alle links. Simpel.
Geen
[ code verwijderd ]
en dergelijke zooi tussen je html
ik zou voor de cookie optie gaan!quote:Op zaterdag 5 februari 2005 00:50 schreef ikke_ook het volgende:
Ik ben er weer met een vraag
Ik wil voor een forum of een gastenboek bijhouden of er berichten bij zijn gekomen sinds je laatste bezoek. (alleen voor bezoekers die met een cookie zijn ingelogd)
Nu heb ik daar 2 ideeen over :
-je schrijft een timestamp in het cookie die je ook weer controleert bij het volgende bezoek en kijkt of er berichten zijn met een timestamp die groter is dan die timestamp.
-je houdt in een tabel bij wanneer het laatste bezoek was en op die manier geef je bij een volgend bezoek aan of er nieuwe berichten zijn.
Wat is gebruikelijk de eerste of de 2e of een andere manier?
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 | <?php $bedrijfsnaam=$_POST['bedrijfsnaam']; $straat=$_POST['straat']; $postcode=$_POST['postcode']; $plaats=$_POST['plaats']; $telefoonnummer=$_POST['telefoonnummer']; $faxnummer=$_POST['faxnummer']; $email_algemeen=$_POST['email_algemeen']; $contactpersson=$_POST['contactpersoon']; $mobiel=$_POST['mobiel']; $email_cp=$_POST['email_cp']; $dienst=$_POST['dienst']; $opmerkingen=$_POST['opmerkingen']; $hoster=$_POST['hoster']; $email_hoster=$_POST['email_hoster']; $tel_hoster=$_POST['tel_hoster']; $web_hoster=$_POST['web_hoster']; $web_client=$_POST['web_client']; $sidn_client=$_POST['sidn_client']; $hostingpakket=$_POST['hostingpakket']; $ftp_host=$_POST['ftp_host']; $ftp_user=$_POST['ftp_user']; $ftp_pass=$_POST['ftp_pass']; $mysql_host=$_POST['mysql_host']; $mysql_db=$_POST['mysql_db']; $mysql_user=$_POST['mysql_user']; $mysql_pass=$_POST['mysql_pass']; $mysql_phpmya=$_POST['mysql_phpmya']; $cp_software=$_POST['cp_software']; $cp_user=$_POST['cp_user']; $cp_pass=$_POST['cp_pass']; $cp_url=$_POST['cp_url']; $fac_nummer=$_POST['fac_nummer']; $fac_laatste=$_POST['fac_laatste']; $fac_volgende=$_POST['fac_volgende']; $afspr_laatste=$_POST['afspr_laatste']; $afspr_volgende=$_POST['afspr_volgende']; $afspr_kenmerk=$_POST['afspr_kenmerk']; $sql = " INSERT INTO clients (id, bedrijfsnaam, straat, postcode, plaats, telefoonnummer, faxnummer, email_algemeen, contactpersoon, mobiel, email_cp, dienst, opmerkingen, hoster, email_hoster, tel_hoster, web_hoster, web_client, sidn_client, hostingpakket, ftp_host, ftp_user, ftp_pass, mysql_host, mysql_db, mysql_user, myqsl_pass, mysql_phpmya, cp_software, cp_user, cp_pass, cp_url, fac_nummer, fac_laatste, fac_volgende, afspr_laatste, afspr_volgende, afspr_kenmerk) VALUES ('', '$bedrijfsnaam’, '$straat’, '$postcode’, '$plaats’, '$telefoonnummer’, '$faxnummer’, '$email_algemeen’, '$contactpersoon’, '$mobiel', '$email_cp', '$dienst', '$opmerkingen', '$hoster', '$email_hoster', '$web_hoster', '$web_client', '$sidn_client', '$hostingpakket', '$ftp_host', '$ftp_user', '$ftp_pass', '$mysql_host', '$mysql_db', '$mysql_user', '$myqsl_pass', '$mysql_phpmya', '$cp_software', '$cp_user', '$cp_pass', '$cp_url', '$fac_nummer', '$fac_laatste', '$fac_volgende', '$afspr_laatste', '$afspr_volgende', '$afspr_kenmerk')"; mysql_query($sql) or die (mysql_error()); ?> |
1 | Column count doesn't match value count at row 1 |
1 2 3 4 5 6 | $sql = "INSERT INTO `tabel` (`id`, `etc`, `etc1`, `etc2`) VALUES ('', '" . htmlentities($_POST['etc'] . "', '" . htmlentities($_POST['etc1'] . "', '" . htmlentities($_POST['etc2'] . "');"; $query = mysql..... |
1 | ,'" . htmlentities($_POST['antwoord']) . "',' etc |
quote:Op zondag 6 februari 2005 21:31 schreef jeroen-heeft-koffie-nodig het volgende:
Volgens mij moet je ID niet noemen?
Absoluut een zeer goed ideequote:is dit een auto veld? ennuh kan je de regels niet iets kleinermaken, verneukt de layout
Dat moetquote:Op zondag 6 februari 2005 21:33 schreef Chandler het volgende:
En nog even waarom het fout is..
`$antwoord'
zie je de verschillen?
doe het dus volgende keer als volgt!
1 1 ,'" . htmlentities($_POST['antwoord']) . "',' etc
1 | 1 ,'" . addslashes($_POST['antwoord']) . "',' etc |
1 | $query = "SELECT topic_id, topic_title, forum_id FROM phpbb_topics WHERE forum_id ORDER BY -topic_id LIMIT 0, 9"; |
WHERE forum_id != 5quote:Op zondag 6 februari 2005 22:14 schreef Kapt.Ruigbaard het volgende:
Hoe vertel ik in SQL alles selecteren behalve waar het forum_id 5 is.
Ik kom er even niet uit
[ code verwijderd ]
Dankje!quote:
1 2 3 4 5 6 7 | $query="SELECT inhoud FROM pagina WHERE id = '".$_GET['id']."'"; $result = mysql_query($query) or die (mysql_error()); if(!empty($_POST['submit'])) { $query = "UPDATE pagina SET inhoud = '$inhoud' WHERE id = '".$_GET['id']."'"; mysql_query($query) or die (mysql_error()); |
Je moet niet GET gebruiken, maar in je formulier de waarde $id meegeven en dan $_POST[id] doenquote:Op maandag 7 februari 2005 20:44 schreef Kapt.Ruigbaard het volgende:
[..]
Dankje!![]()
Ik zit met nog iets te stoeien.
Ik heb een formulier.
Met SQL laat ik eerst de inhoud ophalen en plaats ik in het formulier.
Het ophalen gaat aan de hand van een id die ik op een andere pagina via een tekstlink laat mee geven. Dat lukt allemaal prima.
Alleen nu wil ik de tekst die aan de hand van de meegenomen id in het formulier verschijnt kunnen bewerken en updaten. Als ik nu het hele zaakje wil updaten gebeurt er niks!![]()
Ik gebruik de volgende SQL-code(s)
[ code verwijderd ]
Iemand enige idee waarom het fout gaat en hoe het wel kan werken?
Ach't ging als voorbeeldquote:Op zondag 6 februari 2005 21:42 schreef SuperRembo het volgende:
[ code verwijderd ]
zijn. Je moet quotes escapen, maar het heeft geen zin om html-entities in je database te zetten. Dat is alleen onhandig.
Maak je wel eerst verbinding met de database? Zoja, zoals al eerder gezegd even echo $query; doen, kun je zien wat er aan schort.quote:Op maandag 7 februari 2005 20:44 schreef Kapt.Ruigbaard het volgende:
[..]
Dankje!![]()
Ik zit met nog iets te stoeien.
Ik heb een formulier.
Met SQL laat ik eerst de inhoud ophalen en plaats ik in het formulier.
Het ophalen gaat aan de hand van een id die ik op een andere pagina via een tekstlink laat mee geven. Dat lukt allemaal prima.
Alleen nu wil ik de tekst die aan de hand van de meegenomen id in het formulier verschijnt kunnen bewerken en updaten. Als ik nu het hele zaakje wil updaten gebeurt er niks!![]()
Ik gebruik de volgende SQL-code(s)
[ code verwijderd ]
Iemand enige idee waarom het fout gaat en hoe het wel kan werken?
En die doe je dus door:quote:Op maandag 7 februari 2005 21:37 schreef Ali Salami het volgende:
[..]
Je moet niet GET gebruiken, maar in je formulier de waarde $id meegeven en dan $_POST[id] doen
1 2 3 | <?php <input name="id" type="hidden" value="php echo $id; " /> ?> |
Ik gebruik ook GET.quote:Op maandag 7 februari 2005 20:44 schreef Kapt.Ruigbaard het volgende:
[..]
Dankje!![]()
Ik zit met nog iets te stoeien.
Ik heb een formulier.
Met SQL laat ik eerst de inhoud ophalen en plaats ik in het formulier.
Het ophalen gaat aan de hand van een id die ik op een andere pagina via een tekstlink laat mee geven. Dat lukt allemaal prima.
Alleen nu wil ik de tekst die aan de hand van de meegenomen id in het formulier verschijnt kunnen bewerken en updaten. Als ik nu het hele zaakje wil updaten gebeurt er niks!![]()
Ik gebruik de volgende SQL-code(s)
[ code verwijderd ]
Iemand enige idee waarom het fout gaat en hoe het wel kan werken?
1 2 3 4 5 6 7 8 9 10 | <p><span class="highlight2">Naam:</span><br /> <input class="input" type="text" name="naam" size="100" maxlength="100" <?php if(isset($_POST['preview'])){ //indien het een preview betreft, originele naam plaatsen. print("value=\"{$_POST['naam']}\""); } if(!empty($edit_naam)){ //indien het een edit betreft, originele naam plaatsen print("value=\"$edit_naam\""); } ?> /></p> |
Doe eens even print_r($_POST['PLAATJE']);quote:Op woensdag 9 februari 2005 11:59 schreef Chandler het volgende:
Het volgende.
Wanneer ik een <input type="IMAGE" src="./plaatje" name="PLAATJE"> gebruik krijg ik in PHP de waarde PLAATJE_X en PLAATJE_Y terug... is hier ook een andere manier voor? om toch het plaatje te gebruiken als 'submit' maar dan zonder de waarden _Y en _X terug te ontvangen en gewoon PLAATJE
1 2 3 4 5 6 7 8 9 10 11 | <?php if ($_SERVER['REQUEST_METHOD'] == "POST") { var_dump($_POST); } <FORM METHOD=""POST"> <input type="image" src="plaatje.gif" name="test"> </form> ?> |
Daar heeft toch niemand last van als er PLAATJE_X en PLAATJE_Y meegestuurd wordt?quote:Op woensdag 9 februari 2005 11:59 schreef Chandler het volgende:
Het volgende.
Wanneer ik een <input type="IMAGE" src="./plaatje" name="PLAATJE"> gebruik krijg ik in PHP de waarde PLAATJE_X en PLAATJE_Y terug... is hier ook een andere manier voor? om toch het plaatje te gebruiken als 'submit' maar dan zonder de waarden _Y en _X terug te ontvangen en gewoon PLAATJE
1 2 | <button type="submit" name="foo" value="bar"> <img src="baz.gif" alt=""></button> |
1 2 3 4 5 6 7 8 9 | pos: id: naam: 1 1 Voorpagina 2 2 Drugsinfo 3 3 Tripreports 4 5 Shopreviews 5 6 Links 6 7 Zoeken 7 13 Forum 8 4 Muziek |
1 2 3 4 5 6 7 8 9 | pos: id: naam: 1 1 Voorpagina 2 2 Drugsinfo 3 5 Shopreviews 4 6 Links 5 3 Tripreports 6 7 Zoeken 7 13 Forum 8 4 Muziek |
1 2 3 4 5 6 7 8 9 | pos: id: naam: 1 1 Voorpagina 2 13 Forum 3 2 Drugsinfo 4 5 Shopreviews 5 6 Links 6 3 Tripreports 7 7 Zoeken 8 4 Muziek |
Forum Opties | |
---|---|
Forumhop: | |
Hop naar: |