Posts by Stefan.J

    Je hebt een spectaculair probleem gevonden denk ik. Wanneer ik je site bekijk met de Chrome developer tools, zie ik dat Chrome er een zooitje van lijkt te maken. Je complete header wordt in je body geparkeerd en met een vreemde space-character wordt de witruimte boven de header veroorzaakt. De broncode laat in Chrome vervolgens niets vreemd zien.


    Hierop ben ik verder gaan zoeken. De W3C Validator (http://validator.w3.org/) geeft aan dat er een non-space character boven je doctype staat. Vervolgens heb ik een wget gedaan op je index en deze met VIM geopend. VIM liet vervolgens het volgende zien:


    Code
    <feff><!DOCTYPE html>


    Ook met syntax-highlighting off is <feff> blauw in VIM, wat aangeeft dat het een special character is.


    Dit vreemde character lijkt vervolgens naar een korte zoektocht op internet het zogenaamde BOM-character (FAQ - UTF-8, UTF-16, UTF-32 & BOM) te zijn. Hierin heb ik mij verder niet verdiept. Meestal helpt het de bovenste regel weg te halen in je editor en deze opnieuw te typen. Of nog beter, haal het vreemde karakter weg met VIM.


    Welke editor gebruik je?

    Het mooie van Java ten opzichte van PHP, is het feit dat je de sessions niet op disk hoeft op te slaan, maar in geheugen kunt bewaren. Dit is veel sneller! Dus ga alsjeblieft je session-data niet in een trage database opslaan of op het trage filesystem maar houd je sessions in memory.


    Wat bedoel je exact met op een computer? Draait de Java-applicatie zelf op de client? Dus is het een applicatie die door alle gebruikers afzonderlijk wordt gedraaid? Als het antwoord daarop ja is, wat is dan de reden dat gebruikers moeten inloggen? Afhankelijk van die vragen zou ik gaan voor een technologie als JAAS of Spring Security. Hoe dan ook: Ga dit niet volledig zelf schrijven!

    De variabele $user wordt in elk geval niet gedefinieerd in het script dat je postte. Dat is waarschijnlijk ook waar het mis gaat: de variabele is denk ik niet gedefineerd. Als je een een var_dump doet van $user net boven de regel waar het misgaat.


    TIP: Gebruik geen global statements. Hierdoor leg je allemaal afhankelijkheden in je code die niet beheerbaar zijn waardoor je een gigantische spagetticode krijgt.

    Meerdere classes is juist goed! Verdeel de functionaliteit en laat één object slechts één ding voorstellen. Een methode doet vervolgens maar één ding en niets meer.


    Helaas, al je methoden zijn statisch waardoor dit niets met object oriëntatie te maken heeft. Probeer wat meer literatuur te lezen als je hiermee verder wilt.

    In elk geval zou ik de back slashes vervangen door de directory seperator. Ook zou ik voor de volledigheid in de melding ook event de libs folder benoemen:


    Code
    function autoload($class) {
        // if file does not exist in LIBS_PATH folder [set it in config/config.php]
        $class = str_replace('\\', DIRECTORY_SEPARATOR, $class);
        if (file_exists(LIBS_PATH . $class . ".php")) {
            require LIBS_PATH . $class . ".php";
        } else {
            exit ('The file ' . $class . '.php is missing in the libs folder (' . LIBS_PATH . ').');
        }
    }

    Als ik de code uitvoer (door gewoon naar je website te gaan) en ik open mijn console in Google Chrome (⌘ + Alt + J onder OSX, dus waarschijnlijk Ctrl + Alt + J op Windows) dan krijg ik de volgende foutmelding:


    Code
    Uncaught TypeError: Cannot read property 'status' of null (register.php:221)


    Dit gaat dan over de volgende regel:


    Code
    setTimeout(function () { main.removeClass("slideDown") }, !e.status ? 500:3000);


    Zodra ik op de betreffende regel een breakpoint zie dan blijkt dat de waarde van 'e' null is.


    Hopelijk kun je hier verder mee!

    En ik probeer het verhaal compleet te maken. Ten eerste zijn, functions absoluut niet hetzelfde als reserved keywords. Daarbij klopt het ook nog eens niet dat er backticks moeten worden geplaatst rondom alle functienamen als ze als veldnaam worden gebruikt. Kijk maar eens naar dit stukje SQL:



    Vindt MySQL allemaal goed. Hoewel je uitleg redelijk in de buurt komt van de waarheid, denk ik dat het goed is om een volledig antwoord te vormen en geen halve..

    Het engelse woord voor grave is backtick, dat zoekt iets makkelijker.


    Iets vollediger, het gaat om reserved keywords. De MySQL-documentatie schrijft hierover:


    "Certain words such as SELECT, DELETE, or BIGINT are reserved and require special treatment for use as identifiers such as table and column names. This may also be true for the names of built-in functions."
    http://dev.mysql.com/doc/refman/5.0/en/reserved-words.html

    Een beetje zelfrespecterende IDE heeft deze functionaliteit wel. Netbeans is de IDE die ik gebruik en deze heeft deze functionaliteit dan ook.

    Het antwoord van DirkZz is de enigste juiste, maar toch leuk dat je dit ook kunt oplossen met een query:


    MySQL kan ook gewoon MD5 en SHA1 hashes genereren..


    Code
    mysql> SELECT MD5(SHA1('pass123'));
    +----------------------------------+
    | MD5(SHA1('pass123'))             |
    +----------------------------------+
    | 5cf40adecfd5081943416a4dbcaee017 |
    +----------------------------------+
    1 row in set (0.01 sec)



    Overigens is eerst SHA1 en dan MD5 generatie daaroverheen een heel slecht idee, maar dat terzijde.

    Cool project! Ook al heb ik nog nooit een gameserver gehad of gebruikt, dus ken de doelstelling niet. ;)


    Wel valt me op dat XSS mogelijk is. Misschien niet direct een security risk, maar ik zou het wel even fixen.


    Ook de scroll waarbij nieuwe resultaten bovenaan komen te staan is voor mij nogal onwennig, en voor iedereen die wel eens met de commandline te maken heeft denk ik.


    Edit: Sorry, ik heb hem stuk gemaakt. ;) quit command moet je even blokkeren denk ik ;)

    Citaat

    Zal ik dan ook maar als voorbeeld de overgang van CP naar ICTs nemen? Kan me nog goed herinneren dat ICTs gelijk online ging en daarvoor bèta testers had. Waarom had ICTs geen bèta of werkte ze niet open zodat iedereen de voortgang kon bekijken?


    Wie heeft er gezegd dat er bij de overgang naar ICTs een perfect proces is doorlopen? Daarbij is het inderdaad, zoals R.Mijnen zegt, appels met peren vergelijken. Werkelijk alle opensource product produceren ook beta-versies open source. Waarom zou jullie aanpak beter zijn dan die van Apache en JBoss open source projecten?


    Citaat

    Waarom zo moeilijk doen gewoon afwachten tot dat Webmobiel en Reza klaar zijn
    Genoeg mensen hebben het geprobeerd om Osbanditi v.3 te verbeteren lukt dat ze?


    Dat is voor mij helemaal niet moeilijk.. Maar ik probeer hier mijn kennis over open source producten te delen, en ze daarmee te adviseren.


    Citaat

    Dat wij hier voor beslissen dat is onze keuze, deal er mee of niet. Waarom zijn jullie niet gewoon enthousiast dat er een goed ploegje bij elkaar is gekomen om aan de source te beginnen!!


    Eerlijk antwoord? Ik ga mij niet aan die oude rotzooi code branden. Daarbij heb ik er ook geen tijd voor..


    Citaat

    Als je er niet mee eens bent raad ik je aan om zelf een osbanditi source te schrijven en het op jou manier te doen!
    Voor de mensen die graag de source willen zien, via de live versie link nog steeds te bekijken! Graag tips/Ideeën of opbouwende kritiek!


    Ik probeer jullie, zoals ik in deze post al zei, te adviseren over het opzetten van een open source product. Een goed open source product heeft meerdere contributors. Hoe meer mensen er meehelpen, hoe beter het resultaat, feit. Daarbij neemt de project lead (jullie) altijd de beslissing of een push-request (toegevoegde/verbeterde code) wordt geaccepteerd of niet.