Posts by Darsstar
-
-
-
Citaat van YinYangYo
@BrokenTrack, geef dan een voorbeeld van hoe jij het zou oplossen.
Je gaf een voorbeeld, maar die werkte niet voor de persoon die hem nodig had.Maar je gaf ook niet aan wat het eventueel dan had kunnen zijn.
Hierbij dan maar even.
Als je 15e staat zal je volgens die query 14e staan.Betere versies:
PHPSELECT COUNT(*) + 1 AS plaats FROM `[users]` WHERE rank > ".$data->rank // of SELECT COUNT(*) AS plaats FROM `[users]` WHERE rank >= ".$data->rank
Verder zie ik wat hoe jouw voorbeeld beter is dan dat van BrokenTrack.
PS. als bonus nog even hele omslachtige manier aangezien dat in dit topic populair blijkt te zijn:
-
DELETE FROM `[clans]` WHERE DATE_ADD(added, 1 WEEK) < CURDATE() AND (SELECT COUNT(*) FROM `[users]` WHERE `[users]`.`clan`=`[clans]`.`name`) < 3
Try that.
En vergeet niet zoals je altijd moet doen als je iets nog getest hebt een backup te maken. -
Ik vind het volgende persoonlijk toch iets fijner dan MultiViews
PHP
Toon Meer# Turn on URL rewriting RewriteEngine On # Allow any files or directories that exist to be displayed directly RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d # Rewrite all other URLs to index.php/URL RewriteRule .* index.php/$0 [PT]
En dan met $_SERVER['PATH_INFO'] aan de slag
-
Een ^ geeft aan bij het begin van de uri aan.
Een . staat voor elk mogelijk karakter.
Een * betekend 0 of meer.
Een $ geeft aan bij het einde van de uri aan.
[L] zorgt er voor dat als deze rule matched de andere genegeerd worden.^(.*)$ matches dus ALLES.
Je komt dus NOOIT bij de volgende RewriteRule.Oplossing: verander de volgorde, de meest specifieke rewrite rules gaan eerder dan minder specifieke rules.
PHP
Toon MeerRewriteEngine On #RewriteCond %{REQUEST_FILENAME} !^(.*.(php|php3|css|php?.*|html|htm))|(/(images|cgi-bin|logs|upload|Test|)/.*)$ # Do not rewrite existing files RewriteCond %{REQUEST_FILENAME} -f [OR] RewriteCond %{REQUEST_FILENAME} -d RewriteRule .* - [L] RewriteRule ^([^/]+)/([^/]+)$ index.php?a=$1&x=$2 [L] RewriteRule ^([^/]+)$ index.php?a=$1 [L] order allow,deny allow from all
[^/] matches alles behalve een /
+ betekend een of meer (* was 0 of meer, weet je nog?) -
De waarde van $this->r['cfg']->cookie is dus niet geschikt als naam voor een cookie, doe hier iets aan.
-
De foutmelding geven zou wel zo aardig zijn.
Ik heb geen zin om een account aan te maken.
En ik zie op regel 262 niet een of andere syntax error, dus zou ik moeten raden wat de fout is. Waar ik geen zin ik heb. -
Jippy, er is blijkbaar een grote kans dat 'Europe/Amsterdam' niet herkend word als tijd zone in mysql...
Dit moeten werken:
Wanneer je controleert of het werkt, gebruik dan aub nieuwe data...PS. met werken bedoel ik dat de query succesvol uitgevoerd word
PPS. als je PHP 5.1.3 of hoger gebruikt kun je substr_replace(date('O'), ':', 3, 0) vervangen door date('P') -
-
Gebruik de PHP_SAPI constante om uit te vogelen of je in CLI modus (je cron hoort in CLI modus te runnen) of iets anders runt.
-
-
http://creativecommons.org/licenses/
Maar zoals gezegd kan je er ook zelf een maken. -
-
Er is geen 'one ring to rule them all' wat betreft proxy's, je blokkeert altijd allen wat je voor een proxy aan ziet. Wat je voor een proxy aan ziet is jammer genoeg niet altijd een proxy...
-
Of je zorgt dat je overal de zelfde charset gebruikt.
-
Voordat je ook maar iets doet: zorg voor een backup.
Na het eten komt een edit...
Nieuwe reactie samengevoegd met originele reactie op 16.05.11 19:10:00:
Wat dacht je hier van:
Je upgrade de wachtwoorden wanneer er ingelogd word.
Hoe weet je of het wachtwoord al geüpgraded is?
Voeg een prefix toe aan de nieuwe hashes: nieuw-a844bf02d9763ca2b...PHPif (strpos($hash, 'nieuw-') !== 0) { // oude hash, upgrade tijd voor deze user. // je hebt toegang tot het plaintext password omdat de gebruiker probeert in te loggen // gebruik deze om een nieuwe hash te genereren // vergeet niet de 'nieuw-' prefix toe te voegen }
https://github.com/shadowhand/bonafide
Het is een Kohana module, ik weet het.
Maar het gebruikt maar weinig Kohana dingen, het zou niet heel moeilijk horen te zijn om het naar plain PHP te porten, ik zou je daarbij kunnen helpen.
Het is een hashing abstractie module (met een ACL, vraag me niet waarom :p) en werkt met prefixes maar is dynamischer en zit goed in elkaar. -
-
eeyk
Uren? Beetje kort, niet? Mocht je gelijk hebben dan al een reden om MD5 niet te nemen. Het zou vele jaren moeten duren om een collision te vinden.PHP
Toon Meer<?php function hash_password($password, $salt = NULL, $iterations = NULL) { $iterations = (int) $iterations; do { $password = hash_hmac('sha512', $password.$salt, 'pepper-verander dit'); } while($iterations-- > 0) return $password } // gebruik bij wachtwoord wijzigen if ($user->password === hash_password($password, $user->salt, $user->iterations)) { $password = hash_password($password, genereer_random_salt(/* hoeft geen functie te zijn, zolang het maar random word */), mt_rand(8000, 12000)); } else { // wachtwoord komt niet overeen }
Elke user heeft (waarschijnlijk) een eigen salt, daarnaast heeft het ook nog een eigen iteratie count. De combinatie zal zo goed als uniek zijn. Bruteforcen hoort al lang te duren, maar als je 8000-12000 keer die functie aanroept zal het bruteforcen 8000-12000 keer langer duren. Een hash genereren zal niet lang duren, dus tijden het inloggen zullen je gebruikers er niets van horen te merken, maar iemand die je hashes wilt bruteforcen? Die gaat het zeker merken!
-
Citaat van BrokenTrack
Variabelen defineren die constant zijn. Denk aan naam of API ID's.
Voor zover ik weet zijn constanten daar voor bedoeld :p
En wat als je Template::message() nou een fout bevat? :pAnyway.
Zoals al gezegd: een config bestand bevat alleen configureerbare dingen.
Doet het meer dan dat? Dan is het niet alleen maar een config bestand.
Je hoeft ook niet maar een configuratie bestand te hebben. Als er hele lappen configuratie code zijn die er niet toe doen wanneer een bepaalde feature is uitgeschakeld in dat configuratie bestand, dan lijkt het mij overzichtelijker om dat en een appart bestand te zetten dat ergens geïnclude word.