Hey, die site was ik al een tijdje kwijt. Thxquote:Op maandag 18 april 2005 18:29 schreef ikke_ook het volgende:
Je moet geen wachtwoord in je cookie zetten, ook niet encrypt.
Uit een eerder topic gevist: interessant linkje over beveiliging/inloggen
Nou dankzij die pagina weet je dus dat het veel beter kan!quote:Op maandag 18 april 2005 16:57 schreef DionysuZ het volgende:
ik gebruik zelf md5 om het wachtwoord te encrypten. Bij mij staan de inlog wachtwoorden in een database, dubbel md5 gecrypt en als je inlogt krijg je een cookie met je wachtwoord enkel md5 gecrypt. Als mensen je cookie immers achterhalen hebben ze anders ook meteen je wachtwoord. En in mijn geval de hash van het wachtwoord, daarom in de db dubbel. Kan het beter?
Kritische info zoals wachtwoorden en inlognamen kun je beter helemaal buiten de www root houden, indien mogelijk. Een htaccess pw kan in theorie gehacked worden, bijv gesniffed als je geen ssl gebruikt, of gewoon met brute force geraden als je wachtwoord niet veilig genoeg is. De info ligt dan voor het oprapen. Als je een bestand buiten de www root plaatst dan kan de webserver ze niet eens bereiken en zijn ze ook onbereikbaar voor bezoekers. Jij kan de info dan wel bereiken via een ssh verbinding. En als je dan echt secure wil zijn dan maak je de verbinding met een private/public rsa key pair van ten minste 2048 bits grootte, met een 40 tekens lange passphrase.quote:Overigens heb ik de wachtwoorden van de database etc. in een tekst bestand gezet en in een directory gepleurd die ik met een .htaccess file met de volgende inhoud heb beveiligd
[..]
ik ben niet zo'n held op beveiligingsgebied dus als iemand me kan vertellen hoe het beter kan
1 2 3 4 | <Limit GET POST PUT DELETE> order deny,allow deny from all </Limit> |
DIe heb ik nu ook, bedanktquote:Op maandag 18 april 2005 19:35 schreef SuperRembo het volgende:
[..]
Die link had ik Darkomen willen geven als antwoord op z'n vraag.
in het includebestand wordt enkel waardes gegeven aan variables. Dus je krijgt idd niets te zien.quote:DutchBlood:
En ik zie het probleem met het includen niet zo, als je je include bestand gewoon een .php extensie geeft krijgt degene die de filename weet in principe niks te zien, zolang je niks print in je include-bestand dus.
quote:Op maandag 18 april 2005 18:29 schreef ikke_ook het volgende:
Uit een eerder topic gevist: interessant linkje over beveiliging/inloggen
en http://phpclasses.half2.nl/browse/quote:
Wat ik me afvraag, waarom geen usernames in sessies ? Staat ook niks over op die website (over veilig inlog systeem).quote:Op maandag 18 april 2005 20:46 schreef Darkomen het volgende:
[..]
DIe heb ik nu ook, bedankt
en ik zie dat ik het veilig doe, md5, ip opslaan, online status veld, geen pw of username in cookie of sessie
Om dezelfde reden als het password. Het is simpelweg te onderscheppen, en hoe meer info een potentiele hacker eenvoudig kan onderscheppen, des te eenvoudiger de hack wordtquote:Op dinsdag 19 april 2005 10:03 schreef saban het volgende:
[..]
Wat ik me afvraag, waarom geen usernames in sessies ? Staat ook niks over op die website (over veilig inlog systeem).
Een loginnaam kan de hacker toch wel verkrijgen, via het forum bijvoorbeeld, daarom snap ik de nut er niet van.quote:Op dinsdag 19 april 2005 10:20 schreef Swetsenegger het volgende:
[..]
Om dezelfde reden als het password. Het is simpelweg te onderscheppen, en hoe meer info een potentiele hacker eenvoudig kan onderscheppen, des te eenvoudiger de hack wordt
-edit- overigens, voor 1 of ander boerelullen site-tje met een cmsje zal ik me niet zoveel zorgen maken als ik jou was
Waarom?quote:Op dinsdag 19 april 2005 10:24 schreef saban het volgende:
[..]
Een loginnaam kan de hacker toch wel verkrijgen, via het forum bijvoorbeeld, daarom snap ik de nut er niet van.
Welk forum?
[quote]
Website/project waar ik aan werk is geen boerelul site maar een serieuze grote project en ja ik sla usernames op in sessies.
De vraag is waarom niet.quote:
Ik heb die link even bekeken maar er staan een hoop merkwaardige dingen in.quote:Op maandag 18 april 2005 19:35 schreef SuperRembo het volgende:
Die link had ik Darkomen willen geven als antwoord op z'n vraag.
Dat heb ik uiteraard, Object georienteerd programmeren is voornamelijk classificeren.quote:Op zondag 17 april 2005 22:52 schreef rekenwonder het volgende:
Ik zal maar niet vragen wat je niet snapt. Ik kan me van mezelf herinneren dat ik de overstap naar OO ook een zeer lastige vond en dat ik ook zeer moeilijk kon aangeven wat ik niet snapte. Het paradoxale was dat ook niemand mij kon uitleggen wat OO nou precies inhield. Maar ergens is het kwartje toch nog gevallen. En het heeft een beter mens van me gemaakt!
Wellicht dat collega MarkVleth er iets nuttigs over te melden heeft?
1 2 3 | <?php preg_match_all('/\[img\](.*?)\[\/img\]/si' , $tekst, $url); ?> |
Kijk hier evenquote:Op dinsdag 19 april 2005 11:16 schreef myz het volgende:
ik heb even een vraag je over reguliere expressie waar ik zelf echt even niet uit kom.
Ik heb de volgende code om de url tussen [afbeelding] te halen.
[ code verwijderd ]
Maar nu wil ik ook dat hij ook de url vindt die tussen [afbeelding] vindt en ook die tussen [afbeelding] is er toevallig iemand die mij zou kunnen vertellen hoe ik dat voor elkaar krijg ik heb al ongeveer een dag zitten klooien met reguliere expressies en echt gaan snappen doe ik het niet...
Ik geloof dat ik niet helemaal duidelijk ben geweest wat ik wil.quote:
1 2 3 | <?php preg_match_all('/\[img\](.*?)\[\/img\]/si' , $tekst, $url); ?> |
Mooi verhaal, snap het ook nog maar ik ben feitelijk op zoek naar iets pragmatischer.quote:Op dinsdag 19 april 2005 11:07 schreef markvleth het volgende:
[..]
Dat heb ik uiteraard, Object georienteerd programmeren is voornamelijk classificeren.
Net zoals in bijvoorbeeld het dierenrijk. We hebben de classificatie Warmbloedigen en een daarvan afgeleide classificatie zou bijvoorbeeld katachtigen kunnen zijn. Katachtigen is een uitbreiding op warmbloedigen. En dan zien we gelijk een voordeel. We hoeven de classificatie niet nogmaals te schrijven, we breiden deze enkel uit. Het is dus een vorm van gestructureerd programmeren, niets meer niets minder.
Dat doe ik al maarquote:Op dinsdag 19 april 2005 12:38 schreef Juggernaut het volgende:
maak een array van alle tags, loop door alle tags met een while of een foreach en duw de matches in een array. klaar
zie bijvoorbeeld http://nl3.php.net/manual/en/function.preg-match-all.php de reactie van rickyale at ig dot com dot br
1 2 3 | <?php preg_match_all('/\[img\](.*?)\[\/img\]/si' , $tekst, $url); ?> |
Wat ik doe is een deel van het ip adres met md5() encrypten en in de database en een sessie oplsaan.quote:Op dinsdag 19 april 2005 10:39 schreef markvleth het volgende:
[..]
Ik heb die link even bekeken maar er staan een hoop merkwaardige dingen in.
Ten eerste het rare idee dat je geen username (user) in je sessie zou mogen opslaan. Dat is natuurlijk de reinste onzin, dat mag wel. Of je nu aan de hand van een variabele controleert of een gebruikers is aangemeld of een volledige user maakt het risico niet groter of kleiner. Oftewel username in sessie stoppen mag wel.
Verder wordt er voorgeteld een database te gebruiken voor het langdurig aangemeld houden van personen. Ook dit is not done, het creeert juist een beveiligings risico. Een database is hier tevens niet voor bedoeld.
1 2 3 4 5 6 7 | <?php $tags = array("img", "rimg", "limg"); foreach($tags as $value){ //en shit //preg_match met de huidig tag $value //gevonden waarde toevoegen aan je array } ?> |
Kun je me dan uitleggen waarom je dergelijke gegevens persistent wilt maken? Is het echt noodzakelijk dat een sessie een eventuele server crash overleeft?quote:Op dinsdag 19 april 2005 14:21 schreef Darkomen het volgende:
Ik kontroleer dan beide, of de remote adress hetzelfde is als het opgeslagen ip in de database en in de sessie.
Hoe zorg ik dan voor het langdurig aangemeld houden van personen?quote:Op dinsdag 19 april 2005 10:39 schreef markvleth het volgende:
[..]
Ik heb die link even bekeken maar er staan een hoop merkwaardige dingen in.
Ten eerste het rare idee dat je geen username (user) in je sessie zou mogen opslaan. Dat is natuurlijk de reinste onzin, dat mag wel. Of je nu aan de hand van een variabele controleert of een gebruikers is aangemeld of een volledige user maakt het risico niet groter of kleiner. Oftewel username in sessie stoppen mag wel.
Verder wordt er voorgeteld een database te gebruiken voor het langdurig aangemeld houden van personen. Ook dit is not done, het creeert juist een beveiligings risico. Een database is hier tevens niet voor bedoeld.
jup. Als ik ingelogd wil blijven gedurende een hele sessie is dat het probleem niet. Er kan een vinkje gezet worden bij het inloggen zodat de betreffende user ingelogd blijft. Ik doe dat nu dmv een tabel waarin ip,userid en een randomwaarde worden opgeslagen, waarvan de randomwaarde ook in de cookie van de gebruiker staat. Deze cookie is dan gewoon geldig tot het einde der tijdenquote:Op dinsdag 19 april 2005 15:31 schreef markvleth het volgende:
met behulp van je sessie natuurlijk, je kunt de geldigheidsduur van je sessie toch instellen, of bedoel je dingen als "keep me logged in"
Ik had begrepen dat sessies te kapen waren?quote:Op dinsdag 19 april 2005 15:15 schreef markvleth het volgende:
Je kunt toch niet zomaar gegevens in je sessie wijzigen?
Maar dat betekend dat die sessie dan nog steeds even kaapbaar is als domweg het wachtwoord aan client kant op te slaan in een cookie, het enige voordeel is dat het wachtwoord(md5) van de gebruiker niet over is gestuurd. Maar daarvoor bevuil je wel je db. Geen goede oplossing dus..quote:Op dinsdag 19 april 2005 15:36 schreef DionysuZ het volgende:
jup. Als ik ingelogd wil blijven gedurende een hele sessie is dat het probleem niet. Er kan een vinkje gezet worden bij het inloggen zodat de betreffende user ingelogd blijft. Ik doe dat nu dmv een tabel waarin ip,userid en een randomwaarde worden opgeslagen, waarvan de randomwaarde ook in de cookie van de gebruiker staat. Deze cookie is dan gewoon geldig tot het einde der tijden. Bij het uitloggen kunnen mensen dan ook kiezen voor 'deze client uitloggen' 'alle clients uitloggen' etc. net als bij fok!.
Iemand kan niet zomaar de variabelen in de sessie wijzigen. Het kapen van een sessie wil dus niet zeggen dat je niet meer kunt controleren op ip, komt het ip in de sessie niet overeen met het ip van de huidige aanvraag dan is het eventueel een poging tot kaping...quote:Op dinsdag 19 april 2005 15:41 schreef Darkomen het volgende:
Ik had begrepen dat sessies te kapen waren?
Zie die link helemaal bovenaan.
Dus stel dat iemand die sessie kaapt en ik mbv die sessie info opvraag zou iemand dus misbruik kunnen maken?
Tweede voordeel is dat slechts 1 ip geldig is voor die code en als iemand dus die code onderschept er weinig mee kan aangezien hij ook nog het ip moet hebben. Als iemand een wachtwoord onderschept of een hash van een wachtwoord kan hij daar veel meer mee. Maar als het geen goede oplossing is, hoe moet ik het dan doen? Wil graag een goed beveiligde website.quote:Op dinsdag 19 april 2005 15:46 schreef markvleth het volgende:
[..]
Maar dat betekend dat die sessie dan nog steeds even kaapbaar is als domweg het wachtwoord aan client kant op te slaan in een cookie, het enige voordeel is dat het wachtwoord(md5) van de gebruiker niet over is gestuurd. Maar daarvoor bevuil je wel je db. Geen goede oplossing dus..
En hoe doe je;quote:Op dinsdag 19 april 2005 14:21 schreef Darkomen het volgende:
[..]
Wat ik doe is een deel van het ip adres met md5() encrypten en in de database en een sessie oplsaan.
Ik kontroleer dan beide, of de remote adress hetzelfde is als het opgeslagen ip in de database en in de sessie.
Die ip controle voer je ook uit zonder dat je nieuwe codes verzint, dus van een tweede voordeel is al geen sprake. Als je het goed beveiligd wil hebben doe je alles over https en biedt je geen faciliteiten tot het ingelogd blijven (iig niet aan admins)...quote:Op dinsdag 19 april 2005 16:07 schreef DionysuZ het volgende:
Tweede voordeel is dat slechts 1 ip geldig is voor die code en als iemand dus die code onderschept er weinig mee kan aangezien hij ook nog het ip moet hebben. Als iemand een wachtwoord onderschept of een hash van een wachtwoord kan hij daar veel meer mee. Maar als het geen goede oplossing is, hoe moet ik het dan doen? Wil graag een goed beveiligde website.
Kijk eens naar de datum en tijd functies van MySql. Converteer de timestamp naar een datum, haal er dan de maand en day uit. Daar kan je op sorteren.quote:Op dinsdag 19 april 2005 19:03 schreef danko het volgende:
Ik sla verjaardagen als een timestamp op in een tabel, nu wil ik ze laten sorteren op de verjaardag en niet op geboortedag
ORDER by user_birthday ASC
dit werkt niet goed omdat de geboortejaar mee wordt genomen. zo komt 1-05-1983 voor 28-04-1986 en dat moet natuurlijk niet.
hoe kan ik dus sorteren op zoiets als user_birthday/user_birthay-year zodat er wordt gesorteerd op de dag en de maand en niet meer op jaar.
1 | ORDER BY timestamp MOD 31556926 |
kan dit direct in de eerste query al gebeuren? dus al meteen bij het uitlezen van de gegevens en niet achteraf dmv een array?quote:Op dinsdag 19 april 2005 19:14 schreef SuperRembo het volgende:Converteer de timestamp naar een datum, haal er dan de maand en day uit. Daar kan je op sorteren.
Het zijn MySql functies, die worden dus door MySql uitgevoerd in een query.quote:Op dinsdag 19 april 2005 19:20 schreef danko het volgende:
[..]
kan dit direct in de eerste query al gebeuren? dus al meteen bij het uitlezen van de gegevens en niet achteraf dmv een array?
Daar schiet je niets mee op, bovendien is het al een timestamp.quote:Op dinsdag 19 april 2005 19:36 schreef DionysuZ het volgende:
als het verjaardagen tussen 1970 en 2038 zijn, kun je sorteren op UNIX_TIMESTAMP(verjaardag)
owjah duuuuhh.. verkeerd gelezenquote:Op dinsdag 19 april 2005 19:49 schreef SuperRembo het volgende:
[..]
Daar schiet je niets mee op, bovendien is het al een timestamp.
Dat staat alleen op de inlog pagina, voor de rest vindt ik het niet noditg omdat te laten zien.quote:Op dinsdag 19 april 2005 16:16 schreef saban het volgende:
[..]
En hoe doe je;
Logged in as $username
Of, welkom $username
Steeds de username opvragen bij elke hit ?
Ik stop het gewoon in een sessie ...
Nu snap ik wat ik met d elink moest! Bedankt Juggernautquote:Op dinsdag 19 april 2005 14:24 schreef Juggernaut het volgende:
je doet het niet. img is bij jou een vaste waarde. Je moet door de array met tags loopen en dan elke keer img vervangen door de tag. in jouw geval loopt ie dus 3x en doet ie ook 3x de preg_match_all. bestudeer m'n link nog maar eens goed.
[ code verwijderd ]
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 | <?php $array[0] = "0"; $array[1] = "1"; $array[2] = "2"; $array[3] = "3"; $array[4] = "4"; $i = 0; foreach($array as $array) { $i++; } $pic_width = 320; $pic_height = 50; $im=ImageCreate($pic_width,$pic_height); $achtergrond_kleur = imagecolorallocate ($im, 255, 209, 16); $zwart = imagecolorallocate ($im, 0, 0, 0); $wit = imagecolorallocate ($im, 255, 255, 255); $geel = imagecolorallocate ($im, 255, 209, 16); $font = imageloadfont('../gdf/proggyclean.gdf'); // text gebruiken $randomfunctie = rand(20,290); //random getal $text = "".$array['$i'].""; $text_grootte = 8; //van 0 - 15 $text_hoek = 0; // hoek waarin de text is geschreven $x_text = 10; $y_text = 30; $text_kleur = $zwart; $test = imagettftext ($im, $text_grootte, $text_hoek, $x_text, $y_text, $text_kleur, "Arial", $text);; //einde text gebruiken // output the image header("Content-type: image/png"); imagepng($im); ImageDestroy($im); ?> |
1 2 3 4 5 6 7 | 24.126.22.197 - - [20/Apr/2005:16:32:07 +0200] "POST /_vti_bin/_vti_aut/fp30reg.dll HTTP/1.1" 404 301 24.126.22.197 - - [20/Apr/2005:16:58:39 +0200] "POST /_vti_bin/_vti_aut/fp30reg.dll HTTP/1.1" 404 301 24.126.22.197 - - [20/Apr/2005:16:58:59 +0200] "SEARCH /\x90\x04H\[.......... veel meer x04h....... ] \x04H\x90 [..........veel meer \x90........] \x90\" 414 337 |
1 2 3 4 | "OPTIONS / HTTP/1.1" 200 - "PROPFIND /admin%24 HTTP/1.1" 404 278 "OPTIONS / HTTP/1.1" 200 - "PROPFIND /admin%24 HTTP/1.1" 404 278 |
1 2 3 4 5 6 | $retangle_x1 = $pic_width -1; $retangle_y1 = $pic_height -1; $retangle_x2 = 0; $retangle_y2 = 40; imagerectangle($im, $retangle_x1, $retangle_y1, retangle_x2, retangle_y2, $zwart ); |
1 2 3 4 5 6 | $retangle_x1 = 10; $retangle_y1 = 20; $retangle_x2 = 30; $retangle_y2 = 40; imagefilledrectangle($im, $retangle_x1, $retangle_y1, retangle_x2, retangle_y2, $zwart ); |
Je zou het wachtwoord ook mbv javascript kunnen MD5'en.quote:Op donderdag 21 april 2005 12:11 schreef the_disheaver het volgende:
Zo, mijn beveiliging is nu goed, maar volgens mij nog 1 klein zwak schakeltje:
Als je je password verstuurd, zal het als plain-tekst (wel via post) verstuurd worden naar m'n server, waar het ge-MD5 wordt.
Is dit een redelijk zwakke schakel? En hoe kan ik het voorkomen? Via een beveiligde verbinding?
Zo veilig hoeft mijn site echt niet te zijn, maar wanneer je toch bezig bent![]()
Probeer eens voor je zelf na te gaan wat dan het verschil is.quote:Op donderdag 21 april 2005 13:02 schreef sylvesterrr het volgende:
Je zou het wachtwoord ook mbv javascript kunnen MD5'en.
Het wordt client-side geMD5't, dus wordt niet het wachtwoord (bijv. 'abcdefg'), maar de MD5-gecodeerde string over het netwerk verstuurd.quote:Op donderdag 21 april 2005 13:12 schreef markvleth het volgende:
[..]
Probeer eens voor je zelf na te gaan wat dan het verschil is.
laat ik het zo vragen dan:quote:Op donderdag 21 april 2005 13:19 schreef sylvesterrr het volgende:
Het wordt client-side geMD5't, dus wordt niet het wachtwoord (bijv. 'abcdefg'), maar de MD5-gecodeerde string over het netwerk verstuurd.
ligt eraan wat je verder weet lijkt mequote:Op donderdag 21 april 2005 13:29 schreef markvleth het volgende:
[..]
laat ik het zo vragen dan:
Als ik het gecodeerde password onderschep, kan ik daarmee inloggen?
Als je het gecodeerde password invult in password veld, wordt dat nogmaals gecodeerd (2keer dus), en zal het niet het zelfde zijn als 1 maal gecodeerde wachtwoord in mijn wachtwoord-bestand.quote:Op donderdag 21 april 2005 13:29 schreef markvleth het volgende:
[..]
laat ik het zo vragen dan:
Als ik het gecodeerde password onderschep, kan ik daarmee inloggen?
Wat is de waarde van $zwart?quote:Op donderdag 21 april 2005 14:12 schreef BaggerUser het volgende:
maar niemand die het weet van die imagerectangle ?
Ik kan toch ook javascript eruit slopen?quote:Op donderdag 21 april 2005 14:20 schreef the_disheaver het volgende:
Als je het gecodeerde password invult in password veld, wordt dat nogmaals gecodeerd (2keer dus), en zal het niet het zelfde zijn als 1 maal gecodeerde wachtwoord in mijn wachtwoord-bestand.
Je zult hem moeten decoderen, en dat kan met md5 niet.
Heb ik ergens gezegd dat je dat niet kan?quote:Op donderdag 21 april 2005 15:43 schreef markvleth het volgende:
maar ik kan wel inloggen met dat wachtwoord...
Misschien wel veiliger, maar waarom niet https gebruiken, die encrypt het hele verkeer, oftewel geen nuttige data voor derden zonder de juiste sleutel...quote:Op donderdag 21 april 2005 16:21 schreef DionysuZ het volgende:
kun je niet in de form een timestamp meesturen als variabele, samen met het wachtwoord die je javascript codeert door: md5(md5(wachtwoord) + timestampvariabele) te doen, en dan serverside controleert of die timestamp binnen de afgelopen minuut ligt en dan het wachtwoord vervolgens controleert? Het is dan nog niet helemaal veilig, maar toch al iets veiliger of niet?
quote:
SSL (Secure Socket Layer) is mogelijk op jouw VDS. Je moet het juiste SSL certificaat leveren en de SSL server installeren. Je kunt een enkele domein beveiligen door een certificate te gebruiken (bijv. jouwveiligedomein.nl) en maak daarna directories om individuele beveiligde pagina's voor je klanten te maken (bijv. jouwveiligedomein.nl/gebruiker1).
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | <?php for ($x = 0; $x < sizeof($index['Member']); $x++) { for ($y = 0; $y < sizeof($member_tags); $y++) { if ($values[$index[$member_tags[$y]][$x]]['level'] == 5) { $members[$x][$member_tags[$y]] = $values[$index[$member_tags[$y]][$x]]['value']; } } } $printarray = $this->getOption(Memberstats); $printarray = explode(" ", $printarray); for ($x = 0; $x < sizeof($index['Member']); $x++) { foreach($printarray as $z) { echo $z . ": " . $members[$x][$z] . "<br />"; } echo "<br />"; } ?> |
Kleurtjes.quote:Op donderdag 21 april 2005 20:20 schreef SuperRembo het volgende:
Die [php] tag verneukt de code, dat weet je toch wel
Gekeken, nee.quote:Staat het in $printarray al dubbel? Dat is eenvoudig te checken met print_r();
Nee, het moet een plugin worden voor een CMS. Voor 1 user wordt natuurlijk de voornaamste functie maar als er een community'tje komt met een teampje dan kan het iig.quote:(Wordt dit een vervanging van mijn WhatPulse stats? )/
Ik begrijp niet wat je bedoelt.quote:Op donderdag 21 april 2005 20:55 schreef SuperRembo het volgende:
Wat gebeurt er als 'level' != 5 is? Dan sla je $member[$x] over, maar je print hem verderop wel.
Virtual Dedicated Server, iets nieuws van Lycos.quote:Op donderdag 21 april 2005 21:12 schreef the_disheaver het volgende:
Waar staat VDS eigenlijk voor?
In de laatste loop loopt $x tot sizeof($index['Member']), maar is $members wel zo lang?quote:
$zwart = imagecolorallocate ($im, 0, 0, 0);quote:Op donderdag 21 april 2005 14:24 schreef the_disheaver het volgende:
[..]
Wat is de waarde van $zwart?
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 $text_grootte = 8; //van 0 - 15 $text_height = imagefontheight($text_grootte); $text_width = imagefontwidth($text_grootte); $count = count($array); $pic_width = 200; $pic_height = ($count * $text_height) + (2 * $text_height); $im=ImageCreate($pic_width,$pic_height); $achtergrond_kleur = imagecolorallocate ($im, 255, 209, 16); $zwart = imagecolorallocate ($im, 0, 0, 0); $wit = imagecolorallocate ($im, 255, 255, 255); $geel = imagecolorallocate ($im, 255, 209, 16); // Zoek hoe breed en hoe hoog de tekst gaat worden if (!isset($text)) $text = "Gecentreerd!"; $font = "Verdana"; $fontsize = 8; $box = ImageTTFBBox($fontsize, 0, $font, $text); $hoogte = $box[1] - $box[7]; $breedte = $box[2] - $box[0]; // Bereken de "default" coordinaten $x_coordinaat = $box[0]; // Bereken nu de verschuiving die nodig is om de tekst de centreren $offset_x = (int)((ImageSX($im) - $breedte) / 2); //Border $retangle_x1 = $pic_width -1; $retangle_y1 = $pic_height -1; $retangle_x2 = 0; $retangle_y2 = 40; imagerectangle($im, $retangle_x1, $retangle_y1, retangle_x2, retangle_y2, $zwart ); //Einde border //Balk $retangle_x1 = 200; $retangle_y1 = $hoogte + 4; $retangle_x2 = 0; $retangle_y2 = 0; imagefilledrectangle($im, $retangle_x1, $retangle_y1, retangle_x2, retangle_y2, $zwart ); //Einde Balk // Teken de tekst ImageTTFText($im, $fontsize, 0, $x_coordinaat + $offset_x, $hoogte + 2, $wit, $font, $text); // output the image header("Content-type: image/png"); imagepng($im); ImageDestroy($im); ?> |
Aha. Nee dus. Ik heb nu $x tot sizeof($members) en dat werkt wel.quote:Op donderdag 21 april 2005 22:05 schreef SuperRembo het volgende:
[..]
In de laatste loop loopt $x tot sizeof($index['Member']), maar is $members wel zo lang?
oei sowieso niet netjes dat ik die er niet had staan maar die had ik er bij die ander perongeluk ook niet staan dus vandaar dat ik daar niet op had geletquote:Op vrijdag 22 april 2005 08:42 schreef SuperRembo het volgende:
Als je de syntax-fouten er uit haalt werkt het wel hoor.
retangle_x2 -> $retangle_x2
retangle_y2 -> $retangle_y2
En count($array) geeft een error omdat $array niet bestaat. Maar dat kan eraan liggen dat het een uitgekleed voorbeeld is.
Forum Opties | |
---|---|
Forumhop: | |
Hop naar: |