Posts by Darsstar

    PHP
    <?php
    $teksten = array("Gratisinternethist...","XXXX, echt een geweldige site!","XXXX, Goede service!");
    $showtext = $teksten[array_rand($teksten)];
    
    
    echo $showtext;

    Heb je die regel ooit wel in je code staan?
    Als je iets als APC (Alternative PHP cache ofzo) gebruikt kan het zijn dat die nog een oude versie van je script gecached heeft.


    Verder heb je een cmsDatabase::connection() method die je blijkbaar niet gebruikt...

    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.


    PHP
    $result = mysql_query("SELECT COUNT(*) AS plaats FROM `[users]` WHERE rank > ".$data->rank." ORDER BY rank") or die(mysql_error());


    Als je 15e staat zal je volgens die query 14e staan.


    Betere versies:

    PHP
    SELECT 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



    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.



    [^/] matches alles behalve een /
    + betekend een of meer (* was 0 of meer, weet je nog?)

    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:

    PHP
    mysql_query("SET time_zone='".substr_replace(date('O'), ':', 3, 0)."'")


    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')

    PHP
    date_default_timezone_set('Europe/Amsterdam');
    mysql_query("SET time_zone = 'Europe/Amsterdam'");


    Try that.


    PS. Die eerste regel mag je van mij zo hoog mogelijk neer zetten. De tweede moet tussen de mysql_(p)connect() en de eerste mysql_query() komen te staan.

    Je weet dat een . elk teken matched?
    Dus ook een slash...


    site.com/index/bla
    site.com/index/bla/miauw
    site.com/index/bla/woef/boegaboe/42


    Al die links komen bij index.php?p=bla terecht
    Zo niet meer:

    PHP
    RewriteRule ^index/([^/]+) index.php?p=$1

    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...


    PHP
    if (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.



    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? :p


    Anyway.
    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.