Posts by Darsstar

    Zoek zelf uit of PHP de rechten heeft dat bestand te veranderen. Als dat het geval is kan het CMS (of iets anders) verantwoordelijk zijn.


    Anders ga je wachtwoorden veranderen. Eigenlijk kan het wachtwoord veranderen hoe dan ook geen kwaad.

    Moeten we nu massaal ons wachtwoord updaten via de wachtwoord wijzigen feature of wordt het automatisch omgezet tijdens het inloggen?


    Over welke adviezen van de industrie heb je het? Het advies om PBKDF2 te gebruiken? Of misschien het advies voor bcrypt of scrypt?


    Het laatste vind ik minder interessant om te weten dan het eerste.

    Als je phpmyadmin gebruikt, selecteer dan eerst een database en importeer het dan pas. Als je PHP gebruikt kan je mysql_query("use databasenaamhierinvullen"); gebruiken.

    $_COOKIE is toch echt voor cookies, blijkbaar bedoelde je de sessie, dus $_SESSION.
    PHP's sessies gebruiken standaard een cookie om de sessie te identificeren.

    Een interface definieert methods die implementerende classes moeten hebben. Zo creëer je een soort contract wanneer je typehint.


    Tot je die classes ergens gaat gebruiken waar je typehint naar de interface heb je waarschijnlijk geen interface nodig.


    In dit geval kan het veel beter een abstracte class zijn, ook vooral omdat interfaces alleen methods en constante defineren, geen variabelen.


    Je zou een Transactionable interface kunnen maken die je dan laat implementeren door classes die een database vertegenwoordigen die transacties ondersteunen.


    Hier een klein simpel voorbeeldje van hoe classes, abstracte classes en interfaces samen kunnen werken wat hopelijk inspiratie of begrip geeft.

    PHP
    if ( ! ctype_digit($_POST['soldlvl1']))
    {
    ...
    }


    Dat is trouwens iets netter dan een preg_match(). En misschien dat je dat makkelijker begrijpt.

    Preg_match() retouneerd het aantal matches. Sinds ^ het begin betekend en $ het einde zal dat dus 0 of 1 zijn. '1' == 1 in php. Die 1 komt van preg_match(), '1' is de string die de gebruiker opgeeft. Je wilt die error alleen geven als de preg_match() 0 retouneerd.

    Gebruik de methode van KillingDevil, dan heb je maar één regel code nodig: een mysql_query().


    Waarschijnlijk heeft de error op regel 14 iets te maken met getrandmax(), maar dit boeit je nu niets meer omdat je maar een regel gaat gebruiken waar de php rand() functie niet in voor komt.

    "output started at /home/fitim/domains/site.nl/public_html/index.php:1"
    Op regel een van index.php wordt output verstuurt. Als het eerste zichtbare teken de < van <?php is dan heb je dat bestand opgeslagen in een charset die een Byte Order Mark heeft. Sla het op in een charset zonder BOM.

    Een linked list is een opject dat een verwijzing heeft naar de eerste node van de lijst die het voorstelt. Elke node heeft een verwijzing naar de volgende node in de lijst. Handig voor een stack bijvoorbeeld.


    Een doubly linked list is een linked list waar elke node een verwijzing naar de volgende EN vorrige node heeft. Je list object verwijst dus nog steeds naar de eerste node.


    Een double ended list is een list object waar je naar zowel de eerste en de laatste node van de lijst een verwijzing bevat. Erg fijn voor een queue.


    Hier kun je natuurlijk wanneer gewenst gesorteerde varianten van maken. Bij het inserten van een nieuwe waarde in de lijst begin je bij de eerste node op de lijst.
    - Als de nieuwe waarde kleiner (of hoe je de lijst wilt sorteren) is zet je list.first in newNode.next waarna je list.first overschrijft met newNode. (mFore())
    - Als de nieuwe waarde groter is loop je door de list tot het niet zo is en stop je de nieuwe tussen de twee nodes.
    - Als de nieuwe waarde groter is dan elke andere waarde in je lijst voeg je een nieuwe node toe op het eind.


    Het eerste wat mij opvalt is dat jij de node en list gecombineerd hebt. Het tweede is dat je variabele geen beschrijvende naam geeft. (Of ik ken C# conventies niet.)
    Als je een gesorteerde list wilt hebben, dan wil je niet dat programmeurs zelf methods als mFore() mTween() en mHind() aan kunnen roepen. Of toegang hebben tot pL en pR. Al snap ik dat je nu alleen wilt leren hoe het werkt.


    Je kunt hier een voorbeeldje aan nemen


    Ps. ik ben onder andere bekend met JAVA, PHP en C niet met C# al heb ik wel snel wat dingen opgezocht. Ik ga niet garanderen dat er geen fouten in zitten en het gaat ook vooral om het idee.

    Ik weet niet wat voor editor je gebruikt, maar sommige charsets voegen een Byte Order Mark van 2 bytes toe voor alle andere bytes. PHP 5 en lager kunnen hier nog niet mee overweg een gaan het als output versturen. Sla het dus met een charset zonder BOM op, UTF-8 (no BOM) ofzo.


    @Malik


    Remember that header() must be called before any actual output is sent, either by normal HTML tags, blank lines in a file, or from PHP. It is a very common error to read code with include(), or require(), functions, or another file access function, and have spaces or empty lines that are output before header() is called.


    Of met iets meer woorden:


    Remember that header() must be called before any actual output is sent, either before any actual output is sent by normal HTML tags, before any actual output is sent blank lines in a file, or before any actual output is sent from PHP. It is a very common error to read code with include(), or require(), functions, or another file access function, and have spaces or empty lines that are output before header() is called.


    or before any actual output is sent from PHP. Wat is de manier om via PHP output te versturen? echo en print over het algemeen. spaties binnen PHP tags (<?php en ?>) halen alleen de bestand grote omhoog en maken code mogelijk beter te lezen.

    @Malik ik zei toch al dat spaties binnen PHP tags niets uithalen?


    ob_start() is een hele nette manier ob headers already sent errors te voorkomen door een stuk output op te vangen en op te slaan in een variabele. ob_start() boven aan een script moeten plaatsen om die errors te voorkomen is slecht design. Aangezien criminals games over het algemeen slecht opgebouwd zijn heeft Nillas de volgende keuzes: heel de code base overhoop halen en verbeteren of iets aan het topje van de ijsberg toevoegen.


    Zijn code base beter organiseren is natuurlijk het beste wat hij kan doen, maar aangezien er naar mijn idee een 98% kans is dat hij dat niet doet blijft ob_start() ergens bovenaan het script plaatsen de meest realistische optie.

    Spaties binnen php tags maken niet uit...


    Citaat

    output started at /home/proaja1b/public_html/header.php:5


    Aan regel 5 hadden we blijkbaar meer gehad.


    output_buffering kan niet via ini_set() veranderd worden, wel via de ini files of .htaccess. Binnen php kan je ob_start() gebruiken.

    Guitar, scriptkidies zijn vaak broekies. Iedereen die iets gebruikt voor iets waar het niet voor is bedoelt is een hacker: Een vork gebruiken als geleider, een registratie formulier om een delete query uit te voeren, een zwaard als boekensteun. En die groep kan natuurlijk nog verder opgedeelt worden.


    @marcofc leer SQL, leer waarom mysql_(real_)escape_string() belangrijk is en ga zelf test opstellingen maken om zo de queries je injecteren.

    Gebruik intval() (of cast naar int) en laat de ' weg.


    PHP
    mysql_query("UPDATE `users` SET `kladblok`='".mysql_real_escape_string($_POST['notes'])."' WHERE `id`=".intval($data->id));


    Alleen wanneer je data echt vertrouwd, en dus weet waar het vandaan komt, mag je het zonder voorzorg maatregelen gebruiken. Aangezien het waarschijnlijk een criminals source is, die over het algemeen erg slecht gescript zijn zou ik zelf $data->id niet vertrouwen.