Posts by Darsstar

    Topic is verplaatst...


    Discussie tijd!


    PHP
    include 'index.php?p=woef&a=schrik&b=aaargh';


    Dat is goed volgens jou?
    Includen moet je eigenlijk zien als 3 stappen:
    1) php sluiten (?>)
    2) de hele inhoud van het bestand plaatsen op de plaats van de include
    3) php weer openen als het niet al weer open is (<?php)


    Dus het script dat je include heeft gewoon toegang tot $_GET, $_POST etc.


    Verder even wat voor je om van te leren:


    Als je met mod_rewrite home.html?boe=schrik aanroept je hebt de volgende rewrite rule:
    RewriteRule ^([^/]+)\.html$ index.php?p=$1 [L]
    Gan stuurt mod_rewrite je door naar index.php?p=home
    Gebruik je de volgende rule (flag eigenlijk):
    RewriteRule ^([^/]+)\.html$ index.php?p=$1 [QSA,L]
    Dan kom je uit op index.php?p=home&boe=schrik

    Citaat van Pim

    Ben terug jongens. Het was me toch wel een week om nooit meer te vergeten.


    Het is zo stil nu thuis.. :)


    Surprise! Welkom thuis! *fluistert*Snel! verstop de usb stick met de gekopieerde V5 source!


    We hebben voor een ripper, ik bedoel, stripper gezorgd! *fluistert* Verstop die stick nou eens wil je!


    Wat? Nee, sorry, maar de joints zijn al op... *fluistert* Slik die stick door als het moet, maar verstop hem, en snel!


    Nee, sorry, geen cadeau, alle reports zijn al behandeld, maar de volgende 50 zij voor jou!

    *gaat in op 'uitdaging' van NielsB*



    Het is korter wanneer je die query weer op een regel neer zet, maar minder overzichtelijk.
    Verder heb ik er wat dingen in verwerkt die je op phpfreakz ook al zijn verteld.


    *merkt nog steeds niet dat je ook maar iets leert*

    Die database structuur is hier de fout niet...
    Je vergeet vier velden in het INSERT INTO toetsen(hier vergeet je vier velden)...


    Wil je weten welke?
    Dat kan je zelf ook wel uitzoeken...
    Het is redelijk simpel...
    Kopieer alle velden, en zorg dat die allemaal op een enkele regel komen te staan...
    Dan laat je elke "," vervangen door ", " (drie spaties komen er dus bij)
    Dan kopieer je alle waarden, en die zet je allemaal op de regel daar onder.
    Als je dan een monospace lettertype hebt (elke letter neemt even veel ruimte in beslag) kun je zo ziet dat beide regels niet evn lang zijn, er missen namelijk vier velden in de bovenste regel.
    Dan moet je alleen uitzoeken waar...
    Die velden zet je er dan ook bij, en tada, MySQL geeft geen foutmelding meer!


    Verder geef ik je als huiswerk op om wat over database normalisatie te gaan lezen!
    En dan kun je namen zoals antw17_1 vervangen door antwoord[17][1] zodat je fijn door arrays kunt loopen, en ja kan net zoveel antwoorden, vragen en rad(wat dit ook mag zijn) dingen aanmaken als je maar wilt zonder de database structuur aan te passen...

    PHP
    for($i = 1; $i <= 20; $i++){
    ${'antw'.$i.'_1'} = mysql_real_escape_string($_POST['antw'.$i.'_1']);
    ${'antw'.$i.'_2'} = mysql_real_escape_string($_POST['antw'.$i.'_2']);
    ${'antw'.$i.'_3'} = mysql_real_escape_string($_POST['antw'.$i.'_3']);
    ${'antw'.$i.'_4'} = mysql_real_escape_string($_POST['antw'.$i.'_4']);
    }


    Werkt dit?

    Axl_H
    Zo creëer je alleen maar meer collisions.
    Het wordt wel veiliger door het volgende:

    PHP
    <?php 
    
    
    $hash = md5($_POST['veld dat je post']).sha1($_POST['veld dat je post']);
    
    
    ?>

    Spoiler/waarschuwing:
    Ik ga boos op je worden, mogelijk wil je dit bericht niet lezen.




    Ok...
    *wordt boos*
    stripslashes()?
    *wordt bozer*
    Wat heeft stripslashes in Ori's naam met backticks te maken?
    Je bent nu mysql_real_escape_string() ongedaan aan het maken!
    *is behoorlijk boos*
    Verder heb ik zelf niets tegen backticks.
    Wel is het zo dat je reserved keywords zoveel mogelijk (altijd eigenlijk) moet vermeiden.
    Dat ga je dus onmiddellijk ongedaan maken, begrepen!?!


    Waarom al een query uitvoeren voordat je zelfs maar de input hebt gechecked?
    Kijk eerst of een of meer velden niet ingevuld zijn, en ga dan pas een query sturen naar de database.
    Ook kan de wachtwoord controle makkelijk in de query geplaatst worden.


    edit:
    verder wil je trim() binnen empty() zetten...
    nu wordt je doorgestuurd als je het formulier juist wel invuld...

    trim() haalt wittekens aan het begin en eind van de string weg.
    Ook kun je nog een tweede parameter mee geven wat een string is die alle andere tekens bevat die je ook weg wilt hebben.

    Mijn mening over:


    Pim: Gezellige kerel, heeft een erg hoog niveau voor binnen CP, heeft goed door dat ik vreemd ben en ook een goede projectleider.


    R-Mijnten: Weet ook al erg goed dat ik gek ben.
    Goede kleuterleider (super moderator), en ik ben blij dat hij bij CP is blijven hangen en niet terug wilde naar CF.


    Axl_H: Ik heb nog geen mening over hem gevormd als crew lid, dat duurt waarschijnlijk tot hij wat meer gewend is in de crew.
    Prima kleuter waar ik het volgens mij wel mee kan vinden.


    Darsstar: Te vreemd voor woorden.


    K.Rens: Tja, het is Koen...
    We zijn het soms niet overal over eens (ik geen trouwens niet altijd mijn mening over alles), maar dat heb je met iedereen.
    Hij heeft het beste voor met CP, en dat is belangrijk.


    Killingdevil: Goede collega!
    Ook erg hoog niveau qua programmeren voor binnen CP!


    Lodewijk: Ook al een prima kleuterleider, en ik heb wel lol met hem gehad.


    Joshua: Iemand waarvan het ondertussen ongeveer traditie was om hem als crew lid te plagen, jammer genoeg gaat dit niet meer zo goed =[
    Ik hoop dat hij de crew niet verlaat zoals hij dat de vorige
    keer deed.
    Voor de rest een prima kleuter.


    Dein: Ah, ik heb goede herinneringen aan aan de sollicitatie ronde =]
    Wat plaagde Dominic en ik Joshua toch fijn =]
    Hij is wat wispelturig, maar verder een prima kleuter.


    Kabling: Wat (te) weinig te zien hier =[
    Op dat punt na een prima kleuter.


    -------------------------------------


    Snoopdogje: Hij laat me lachen, ga zo door!


    -------------------------------------


    Mezelf: Ik ben vreemd.
    Ik zit al sinds V2 hier in de crew, heb veel geleerd hier op CP en vind het nog steeds een leuke plaats om (virtueel) rond te wandelen.
    Ik houd van wolven, tijgers, feniksen en bounty's en wil dat de iMac snel gerepareerd wordt.
    Deze windows media center is niet te harden (geen geluid onder andere, door updates te installeren maakt hij zichzelf onklaar en je hebt geluk nodig om systeem herstel te kunnen later draaien om het weer bruikbaar te maken).

    Citaat van Maaark

    Dus jullie adviseren Kohana aan?


    Aangezien ik een Kohana fanboy ben, JA!


    Verder denk ik dat de meeste mensen die een framework gebruiken hier op CP Kohana gebruiken...
    Mogelijk door mijn doen...

    Maar CI kan geen gebruik maken dan de autoloader omdat CI dan niet met PHP 4 zou werken...
    En het zal waarschijnlijk nog wel 4 jaar duren voor een groot deel van de hosts PHP 6 draait...

    Kohana registreert een autoloader...
    Een functie die PHP aanroept als de class die je probeert te gebruiken nog niet bestaat...
    Die zorgt er dan voor dat het juiste bestand geinclude wordt, als het bestaat, en geeft anders een foutmelding.
    Tada! Zo zie je maar dat PHP 5 fijner werkt dan PHP 4...

    Ik gebruik Kohana, oorspronkelijk een fork van CodeIgniter (CI) die voornamelijk bugs fixte en wat dingen anders aanpakte.
    Ondertussen is Kohana niet meer een drop and drag vervanging voor CI.
    CI en Kohana 2.x zijn niet meer compatibel en Kohana 3.x serie verschilt heel erg met de 2.x serie (al gaan 2.4.x het verschil iets kleiner maken).


    Voor Kohana heb je minimaal PHP 5.2.3 nodig (een of andere belangrijke bugfix) en maakt dus gebruik van PHP 5 features terwijl CI PHP 4 ondersteund wat heel het framework naar mijn mening minder flexibel maakt, denk aan de magic methods __get(), __set(), __call(), cloning, dat objecten automatisch als reference worden meegegeven.
    Ook autoloading vind ik erg fijn.
    Ik wil niet voor elke class die ik wil gebruiken eerst een load->model() method (of weet ik veel wat, tijdje geleden dat ik de documentatie gelezen heb) aanroepen.
    En wat houd ik toch van de cascading file structure die Kohana gebruikt.


    Wel zul jij het waarschijnlijk makkelijker vinden om met CI te beginnen dan met welk ander framework dan ook.
    De documentatie is behoorlijk goed, er zijn genoeg tuts en screencasts.
    Kohana is meer bedoeld voor mensen die het niet erg vinden om de source code te lezen of het redden met de niet zo geweldige documentatie.
    De source code van van CI en Kohana zijn beide erg rijk aan (zinvolle) comments, een goede eigenschap van CI die bij Kohana is blijven hangen.


    Ik heb ook wat andere frameworks bekeken, maar de manier waarop zij dingen aanpakken sprak me niet aan.

    Maak een functie waarin je het rechter menu include, en dan pas die/exit aanroept...
    En natuurlijk niet vergeten die boodschap te weergeven.

    Dat we niet zeggen dat hij in een proefperiode zitten betekend niet gelijk dat die er niet is.
    Omdat we dit keer geen sollicitatie hadden waar we alleen maar uit mochten kiezen vinden we dat we iets soepeler kunnen zijn...
    Denk ik...


    Nu eens proberen of ik hem als zijn meerdere kan laten stoppen met roken...
    Fijne dag verder!