abonnement Unibet Coolblue Bitvavo
pi_54712997
quote:
Op maandag 19 november 2007 11:32 schreef Chandler het volgende:
Hoe werken jullie met rechten m.b.t. forums, websites etc?

Laden jullie bij iedere pagina de rechten opnieuw of zetten jullie deze in een sessie en gebruiker jullie deze steeds weer??
Ligt aan de omvang van het systeem. Vaak heb ik websites waar je als het ware alleen een boolean 'is beheerder Ja/Nee' hebt, en dan gooi ik het in de gebruikerstabel. Ik heb diverse CMS systemen gemaakt waar je als het ware 10 onderdelen hebt, en waar je per gebruiker kunt aangeven of die gebruiker toegang heeft tot onderdeel X. Zoiets gooi ik ook nog in de gebruikerstabel.

Hebben we het echter over bulletin boards waar 50 forums en daaronder subforums zitten, en waar je honderden gebruikers zou kunnen hebben, maak ik een soort van 'membership' tabel aan waar ik koppelingen maak met bijvoorbeeld gebruikers en fora, en daar een rechtenniveau aangeef. Ik gooi zoiets echter nooit in sessies of zo, dan maar bij het aanvragen van de pagina.
pi_54713502
Iemands rechten in een sessie opslaan lijtk mij uberhaupt niet slim, aangezien je iemand dan niet "on the fly" kan upgraden / downgraden.
  maandag 19 november 2007 @ 12:36:23 #278
107951 JortK
Immer kwaliteitsposts
pi_54714189
Misschien wanneer iemand inlogt alle rechten verzamelen, record voor aanmaken, en het ID van dat record meegeven met die sessie?

Zit je alleen met het probleem dat iemand zn sessie moet resetten wanneer er iets gewijzigd word
pi_54714305
quote:
Op maandag 19 november 2007 12:36 schreef JortK het volgende:
Misschien wanneer iemand inlogt alle rechten verzamelen, record voor aanmaken, en het ID van dat record meegeven met die sessie?

Zit je alleen met het probleem dat iemand zn sessie moet resetten wanneer er iets gewijzigd word
Dan komt het dus op hetzelfde neer, maar maak je het alleen nog omslachtiger.

Nogmaals, als het omvangrijk genoeg is gooi ik alles in de database. Het zijn maar een paar integers/booleans die je gaat fetchen per keer. Die 10 miliseconden die de pagina nodig heeft om dat te verwerken lig ik ook niet wakker van.
  maandag 19 november 2007 @ 12:46:36 #280
107951 JortK
Immer kwaliteitsposts
pi_54714452
quote:
Op maandag 19 november 2007 12:40 schreef Tuvai.net het volgende:

[..]

Dan komt het dus op hetzelfde neer, maar maak je het alleen nog omslachtiger.

Nogmaals, als het omvangrijk genoeg is gooi ik alles in de database. Het zijn maar een paar integers/booleans die je gaat fetchen per keer. Die 10 miliseconden die de pagina nodig heeft om dat te verwerken lig ik ook niet wakker van.
Ja maar wanneer het dan fout gaat gaat het goed fout

Hoe mensen als phpBB dat?
pi_54715023
quote:
Op maandag 19 november 2007 12:46 schreef JortK het volgende:

[..]

Ja maar wanneer het dan fout gaat gaat het goed fout
Leg uit. Enige wat echt fout zou kunnen gaan is dat je database niet bereikbaar is, maar in dat geval zou je heel forum plat moeten liggen, niet alleen het rechtensysteem.
pi_54715343
Nou het zit zo dat ik 2 tabellen heb voor rechten.

1 in de gebruikers tabel (voor rechten om te kunnen inloggen, zaken toevoegen, bewerken) == bitwise (1 integer voor alles)
1 in een forum tabel waarbij ik per recht een mogelijk record heb (lezen, schrijven, plaatsen, geband, admin)

Dus is het in mijn opinie gemakkelijker om steeds een query te doen en deze eventueel per pagina load te cachen oid?!
The people who lost my respect will never get a capital letter for their name again.
Like trump...
pi_54715689
Ik heb even een probleempje met m'n ALT-teksten... niet echt een PHP issue, maar toch

Ik heb een paar links met onder andere de volgende alt-teksten: [L'oréal] en ["Solide"] (zonder de haken).
En hierbij gaat de ALT popup dus kapot op de quotes. Bovendien wordt de é vervangen door een htmlentity, waar de W3C validator van op z'n bek gaat, omdat er dan een & in de tekst staat

Wat doe ik hier aan?
pi_54715971
quote:
Op maandag 19 november 2007 13:30 schreef Chandler het volgende:
Nou het zit zo dat ik 2 tabellen heb voor rechten.

1 in de gebruikers tabel (voor rechten om te kunnen inloggen, zaken toevoegen, bewerken) == bitwise (1 integer voor alles)
1 in een forum tabel waarbij ik per recht een mogelijk record heb (lezen, schrijven, plaatsen, geband, admin)

Dus is het in mijn opinie gemakkelijker om steeds een query te doen en deze eventueel per pagina load te cachen oid?!
Dat doe ik wel ja. Da's in ieder geval het veiligst. Tevens kun je van jouw 2 tabellen misschien één maken, en dan een veldje 'recht_type' er bij gooien of iets dergelijks.
quote:
Op maandag 19 november 2007 13:46 schreef Xcalibur het volgende:
Ik heb even een probleempje met m'n ALT-teksten... niet echt een PHP issue, maar toch

Ik heb een paar links met onder andere de volgende alt-teksten: [L'oréal] en ["Solide"] (zonder de haken).
En hierbij gaat de ALT popup dus kapot op de quotes. Bovendien wordt de é vervangen door een htmlentity, waar de W3C validator van op z'n bek gaat, omdat er dan een & in de tekst staat

Wat doe ik hier aan?
Over de htmlentities() nog een htmlspecialchars() uitvoeren?
  maandag 19 november 2007 @ 14:19:50 #285
107951 JortK
Immer kwaliteitsposts
pi_54716408
quote:
Op maandag 19 november 2007 13:14 schreef Tuvai.net het volgende:

[..]

Leg uit. Enige wat echt fout zou kunnen gaan is dat je database niet bereikbaar is, maar in dat geval zou je heel forum plat moeten liggen, niet alleen het rechtensysteem.
Nou leg uit... op een gegeven moment moet er volgens mij een breekpunt zijn waarop je performance enorm gaat droppen als je telkens alles op moet halen uit je rechten tabel?
pi_54718015
quote:
Op maandag 19 november 2007 14:19 schreef JortK het volgende:

[..]

Nou leg uit... op een gegeven moment moet er volgens mij een breekpunt zijn waarop je performance enorm gaat droppen als je telkens alles op moet halen uit je rechten tabel?
In theorie wel ja, maar nogmaals, die hooguit 10 milliseconden lig ik niet wakker van. Al helemaal niet als mijn website/applicatie daardoor hufterproof is, in tegenstelling tot bijvoorbeeld het 'snel' opslaan in sessies of iets dergelijks, waar wél mee te pielen valt. Je hebt het over een paar booleans of integers die je uitleest, het zal echt geen groot performanceverlies veroorzaken hoor.
  maandag 19 november 2007 @ 15:44:47 #287
107951 JortK
Immer kwaliteitsposts
pi_54718294
quote:
Op maandag 19 november 2007 15:31 schreef Tuvai.net het volgende:

[..]

In theorie wel ja, maar nogmaals, die hooguit 10 milliseconden lig ik niet wakker van. Al helemaal niet als mijn website/applicatie daardoor hufterproof is, in tegenstelling tot bijvoorbeeld het 'snel' opslaan in sessies of iets dergelijks, waar wél mee te pielen valt. Je hebt het over een paar booleans of integers die je uitleest, het zal echt geen groot performanceverlies veroorzaken hoor.
tenzij je echt een grote omgeving hebt
pi_54718354
Dan zijn het nog maar een paar milliseconden extra die je nodig heeft om die paar getalletjes op te vissen. Performanceverlies heeft niemand graag, maar bugs en lekken vind ik veel erger en daar offer ik zonder enige twijfel wel een paar milliseconden voor op. Zou wat anders zijn als het 3 seconden waren of zo.

Vaak kun je, als je een aparte tabel met rechten hebt, deze gegevens ook nog in een join meenemen op de pagina waar dat nodig is, zonder daar aparte queries voor te gebruiken.
pi_54718447
Hoe zou FOK dit hebben aangepakt? volgens mij leest ie ook bij ieder nieuwe hit de rechten uit
The people who lost my respect will never get a capital letter for their name again.
Like trump...
pi_54718699
quote:
Op maandag 19 november 2007 13:58 schreef Tuvai.net het volgende:
Over de htmlentities() nog een htmlspecialchars() uitvoeren?
Dat lost niets op, het maakt het alleen maar erger. De inhoud van een attribute moet HTML-encoded zijn. In ieder geval moeten <, > &, en " ge-encode zijn. De W3C validator klaagt ook helemaal niet over &'s in attributes.
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
pi_54719909
quote:
Op maandag 19 november 2007 16:08 schreef SuperRembo het volgende:
Dat lost niets op, het maakt het alleen maar erger. De inhoud van een attribute moet HTML-encoded zijn. In ieder geval moeten <, > &, en " ge-encode zijn. De W3C validator klaagt ook helemaal niet over &'s in attributes.
Dit lost inderdaad niks op, het verplaatst het probleem alleen maar....
pi_54721924
quote:
Op maandag 19 november 2007 17:24 schreef Xcalibur het volgende:

[..]

Dit lost inderdaad niks op, het verplaatst het probleem alleen maar....
htmlentities($bla, ENT_QUOTES) werkt toch prima voor alt attributen? é, ä, ò, etc. worden prima vervangen door hun entities op deze manier.
pi_54722044
hmmm, ik ga het nog effe proberen, maar vanmiddag kwam ik er niet uit
pi_54724729
quote:
Op maandag 19 november 2007 18:51 schreef Tuvai.net het volgende:

[..]

htmlentities($bla, ENT_QUOTES) werkt toch prima voor alt attributen? é, ä, ò, etc. worden prima vervangen door hun entities op deze manier.
Ja, dat werkt.
Maar je suggereerde eerder om htmlentities() èn htmlspecialchars() toe te passen. Daar schiet je niets mee op.

De default instellingen van htmlentities() en htmlspecialchars() zijn zo dat ze dubbele quotes worden omgezet, de 2e parameter kan je dus weglaten.
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
pi_54726029
quote:
Op maandag 19 november 2007 21:04 schreef SuperRembo het volgende:

[..]

Ja, dat werkt.
Maar je suggereerde eerder om htmlentities() èn htmlspecialchars() toe te passen. Daar schiet je niets mee op.

De default instellingen van htmlentities() en htmlspecialchars() zijn zo dat ze dubbele quotes worden omgezet, de 2e parameter kan je dus weglaten.
Klopt, ik was alleen even niet meer zeker door Xcalibur's post. Dacht dat 'ie bedoelde dat zelfs na het gebruiken van htmlentities() er nog ampersands in stonden.
pi_54726317
Ik ben er inmiddels achter waar het probleem zit... het gaat om een functie die zowel de titel als de alt-text schrijft, en die krijg een string met een apostrophe en een é erin als input. Deze moet ik eerst html_entity_decoden voor de alt-tekst en daarna weer html_entity_encoden voor de linktekst... beetje omslachtig, maar ja

Anyway, op mijn pc werkt het (PHP 5), alleen op mijn server draait PHP 4.3.x, en daar geeft de html_entity_decode een of andere vage melding op de UTF-8 optie. Is kennelijk een bug die niet in oude versies opgelost zal worden

Dus ik ben nog steeds niet veel opgeschoten, ik weet alleen wel hoe het komt
pi_54726399
Hmm, post eens een stukje van je broncode. htmlentities() werkt prima hoor. Je gebruikt htmlentities($var) op variabele $var als je karakters door hun entities wil vervangen, en htmlentities($var, ENT_QUOTES) voor stukjes in HTML attributen (alt, src) zodat apostrophes en aanhalingstekens vervangen worden door entities. :)

1
2
3
<?php
echo "<a href=\"".htmlentities($link[url], ENT_QUOTES)."\">".htmlentities($link[text])."</a>";
?>
pi_54726913
quote:
Op maandag 19 november 2007 21:55 schreef Xcalibur het volgende:
Anyway, op mijn pc werkt het (PHP 5), alleen op mijn server draait PHP 4.3.x, en daar geeft de html_entity_decode een of andere vage melding op de UTF-8 optie. Is kennelijk een bug die niet in oude versies opgelost zal worden
Is dat een melding over multi byte character support? Dat zit aimnv standaard in php5 maar voor php4 is het een module die je zelf moet installeren. UTF-8 is multi byte...
pi_54734392
quote:
Op maandag 19 november 2007 22:24 schreef Farenji het volgende:
Is dat een melding over multi byte character support? Dat zit aimnv standaard in php5 maar voor php4 is het een module die je zelf moet installeren. UTF-8 is multi byte...
Het probleem doet zich voor bij deze aanroep:
1html_entity_decode($title, ENT_QUOTES, 'UTF-8');


En dit is de melding die je dan krijgt: http://bugs.php.net/bug.php?id=25670
pi_54735701
Is je pagina ook echt UTF-8? (Inclusief juiste headers)
Meestal voldoet iso-8859-15 prima (en geeft minder problemen)
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
abonnement Unibet Coolblue Bitvavo
Forum Opties
Forumhop:
Hop naar:
(afkorting, bv 'KLB')