FOK!forum / Digital Corner / [PHP/(My)SQL] voor dummies - deel 56
Farenjizaterdag 16 februari 2008 @ 13:41

cd niet bijgeleverd

Als je vragen hebt over PHP/MySQL, dan zit je hier goed met een vaste kliek guru's en een groot aantal regelmatige bezoekers. Beperk je vragen niet tot "hij doet het niet" of "hij geeft een fout" - onze glazen bol is kapot en we willen graag van je weten wát er niet lukt en wélke foutmelding je precies krijgt

Vorige delen:1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55


Zie ook:
  • PHP Dataverwerking
  • Officiële PHP website
  • PHP Documentatie
  • MySQL Reference Manual
  • Yet Another PHP Faq
  • PHP Cheat Sheet
  • PHP5 Power Programming - boek met uitleg over OOP, Pear, XML, etc

    Tutorials:
  • W3Schools PHP
  • W3Schools SQL

    Deze OP en instructies voor nieuw topic: http://wiki.fok.nl/index.php/OP/PHP
  • Chandlerzaterdag 16 februari 2008 @ 14:04
    Laatste post:
    quote:
    Op zaterdag 16 februari 2008 13:13 schreef Farenji het volgende:
    Je gaat de mist in met where clausule. Je zoekt naar records waar het jaar zowel groter/gelijk als kleiner/gelijk is aan 2008. Daar voldoet alleen 2008 aan. De maand is groter/gelijk aan 8 EN kleiner/gelijk dan 11. De dag moet tussen 11 en 19 liggen. Daar voldoen maar 36 data aan... en deze liggen allemaal minimaal een half jaar in de toekomst.
    Je hebt helemaal gelijk

    Nu het volgende dan

    1
    2
    3
    4
    5
    6
    7
    8
    SELECT DISTINCT(value), sum(`count`) AS counter 
    FROM statreferer 
    WHERE sid = '7' AND type = 'E' AND 
    (statreferer.year >= '2008' AND statreferer.month >= '01' AND statreferer.day >= '12') AND 
    (statreferer.year <= '2008' AND statreferer.month <= '02' AND statreferer.day <= '12') 
    GROUP BY value 
    ORDER BY `counter` DESC 
    LIMIT 0, 25 


    zoeken van 2008-jan-12 t/m 2008-feb-12 alleen klopt deze data niet.

    Als ik zoek vanaf zoeken van 2008-jan-02 t/m 2008-feb-12 dan krijg ik alle referers, de eerste referer is van 12-feb-08

    waar ga ik de fout in...
    Farenjizaterdag 16 februari 2008 @ 14:46
    Je doet hier bijna hetzelfde. Je krijgt hier alleen maar records terug van 12 jan en 12 feb 2008 uit. Alle andere dagen worden door je AND uitgesloten. Het is nogal lastig om termijnen te zoeken als je dag, maand en jaar apart opslaat. Je zit al gauw met where clauses van meters lang. Maak er gewoon een date field van, daarmee kun je veel makkelijker zoeken:

    1select foo from bar where date <= '2008-02-12' and date >= '2008-01-12'
    SuperRembozaterdag 16 februari 2008 @ 15:04
    Als het datum is, sla het dan ook als datum op, of als timestamp.
    Maar als je dat niet wil veranderen:
    1
    2
    3
    SELECT *
    FROM statreferer s
    WHERE (s.year * 10000 + s.month * 100 + s.day) BETWEEN 20080112 AND 20080212
    JortKzaterdag 16 februari 2008 @ 15:15
    Ook weer present
    Chandlerzaterdag 16 februari 2008 @ 17:21
    quote:
    Op zaterdag 16 februari 2008 15:04 schreef SuperRembo het volgende:
    Als het datum is, sla het dan ook als datum op, of als timestamp.
    Maar als je dat niet wil veranderen:
    [ code verwijderd ]
    Je hebt gelijk, maar je voorbeeld werkt perfect!
    PiRANiAzaterdag 16 februari 2008 @ 19:19
    quote:
    Op zaterdag 16 februari 2008 15:15 schreef JortK het volgende:
    Ook weer present
    hoi!
    Likkende_Lassiezaterdag 16 februari 2008 @ 19:27
    Ik heb de volgende query:

    1
    2
    3
    4
    <?php
    $obj 
    mysql_fetch_assoc(mysql_query("SELECT ((SUM(price) / 100) * (VAT + 100)) AS totalprice 
    FROM shop_orders_items WHERE orderID = '"
    .$orderID."'"));
    ?>


    totalprice zou hier de totale prijs moeten geven inclusief de btw (deze kan per item verschillen!).
    Dit doet hij goed, totdat 1 van de items een ander btw percentage heeft..... hoe komt!
    Scripthazaterdag 16 februari 2008 @ 19:37
    Hoe implementeer ik een getInstance method (voor singleton design pattern) in abstracte class, zodat die bruikbaar is voor child classes?
    JortKzaterdag 16 februari 2008 @ 19:39
    quote:
    Op zaterdag 16 februari 2008 19:27 schreef Likkende_Lassie het volgende:
    Ik heb de volgende query:
    [ code verwijderd ]

    totalprice zou hier de totale prijs moeten geven inclusief de btw (deze kan per item verschillen!).
    Dit doet hij goed, totdat 1 van de items een ander btw percentage heeft..... hoe komt!
    doe ook eens een sum op je VAT + 100 gedeelte ?
    Xcaliburzaterdag 16 februari 2008 @ 19:45
    quote:
    Op zaterdag 16 februari 2008 19:27 schreef Likkende_Lassie het volgende:
    Ik heb de volgende query:
    [ code verwijderd ]

    totalprice zou hier de totale prijs moeten geven inclusief de btw (deze kan per item verschillen!).
    Dit doet hij goed, totdat 1 van de items een ander btw percentage heeft..... hoe komt!
    wat gaat er precies fout bij een ander btw percentage?
    Daarnaast vind ik het niet handig om dit in je query uit te rekenen
    Likkende_Lassiezaterdag 16 februari 2008 @ 19:48
    Ok opgelost, niet de SUM bij de VAT + 100 hoor

    Heb hem helemaal vooraan de soms gezet:
    1mysql_query("SELECT SUM((price / 100) * (VAT + 100)) AS total FROM shop_orders_items WHERE orderID = '".$orderID."'"));


    Waarom is dat niet handig om die in de query uit te rekenen?
    Want ik moet alleen een totaalbedrag hebben..., meer niet
    JortKzaterdag 16 februari 2008 @ 19:58
    quote:
    Op zaterdag 16 februari 2008 19:48 schreef Likkende_Lassie het volgende:
    Ok opgelost, niet de SUM bij de VAT + 100 hoor

    Heb hem helemaal vooraan de soms gezet:
    [ code verwijderd ]

    Waarom is dat niet handig om die in de query uit te rekenen?
    Want ik moet alleen een totaalbedrag hebben..., meer niet
    Ik doe dat soort dingen ook zoveel mogelijk in SQL, want dan hoef ik niet EN in SQL de data op te halen EN te gaan rekenen in SQL.

    Geen performance issue ofzo maar gewoon gemakkelijk
    Likkende_Lassiezaterdag 16 februari 2008 @ 20:00
    Sinds kort probeer ik zoveel als mogelijk in SQL te doen, anders moet ik nog een while in php maken etc.... scheelt me zo 10 regels code!
    SuperRembozaterdag 16 februari 2008 @ 20:12
    quote:
    Op zaterdag 16 februari 2008 19:48 schreef Likkende_Lassie het volgende:
    Waarom is dat niet handig om die in de query uit te rekenen?
    Want ik moet alleen een totaalbedrag hebben..., meer niet
    Denk je wel aan de afrondingsverschillen?
    Tarabasszaterdag 16 februari 2008 @ 20:20
    quote:
    Op zaterdag 16 februari 2008 19:19 schreef PiRANiA het volgende:

    [..]

    hoi!
    Ook hoi!
    JortKzaterdag 16 februari 2008 @ 20:28
    quote:
    Op zaterdag 16 februari 2008 20:12 schreef SuperRembo het volgende:

    [..]

    Denk je wel aan de afrondingsverschillen?
    Niet geheel onbelangrijk bij BTW
    Likkende_Lassiezaterdag 16 februari 2008 @ 20:31
    euhm, ik krijg gewoon een getal terug, wat ik door number_format($waarde, 2) haal...
    Thomasszaterdag 16 februari 2008 @ 20:36
    quote:
    Op zaterdag 16 februari 2008 20:31 schreef Likkende_Lassie het volgende:
    euhm, ik krijg gewoon een getal terug, wat ik door number_format($waarde, 2) haal...
    .
    Likkende_Lassiezaterdag 16 februari 2008 @ 21:00
    Wat moet ik er dan volgens jou mee doen?
    Thomasszaterdag 16 februari 2008 @ 21:03
    1
    2
    3
    SUM((price / 100) * (VAT + 100))
    =
    SUM(price * (vat + 100)) / 100
    Likkende_Lassiezaterdag 16 februari 2008 @ 21:12
    kan ook...maakt niks uit he
    Farenjizaterdag 16 februari 2008 @ 21:30
    quote:
    Op zaterdag 16 februari 2008 19:37 schreef Scriptha het volgende:
    Hoe implementeer ik een getInstance method (voor singleton design pattern) in abstracte class, zodat die bruikbaar is voor child classes?
    Door een class te maken met een private variable $instance, een private constructor die een nieuwe instance maakt en die in $instance zet, en een functie getInstance die checkt of $instance gedefinieerd is, zo niet de constructor aanroept, en zo wel $instance teruggeeft.
    MDevilzaterdag 16 februari 2008 @ 21:41
    Wie kan mij helpen?
    quote:
    Op zaterdag 16 februari 2008 19:43 schreef MDevil het volgende:
    Ik had wat problemen met het installeren: [url="http://www.gangwarfamily.nl/wtfssh.JPG"]klik voor SSH screenshot[/url]
    Na veel gestoei is het installeren van PDO_MYSQL volgens mij (dus niet zeker!) eindelijk gelukt.

    Nu heb ik dingen in mijn php.ini gezet om het te kunnen gebruiken:
    [ code verwijderd ]

    En deze lijn aangepast:
    van:
    [ code verwijderd ]

    Naar:
    [ code verwijderd ]

    Dan start mn hele apache niet meer op!! Als ik alleen die ^ lijn weer aanpas dan weer wel.

    Als ik vervolgens in de error log kijk staat er dan:
    [ code verwijderd ]

    Hij heeft het over pgsql ofzo? Maar die staat helemaal niet in dat mapje... Wat heeft dat te maken met (pdo_)mysql?
    En wat houdt deze error uit de error log in?:
    pdo_mysql.so: undefined symbol: php_pdo_declare_long_constant

    Iemand een idee?

    Heb ik wellicht nog autoconf nodig?
    Zie ook mijn topic:
    [PHP/SQL]PDO_MYSQL werkt niet?
    Likkende_Lassiezaterdag 16 februari 2008 @ 21:51
    Thomass, als ik volgens jou iets fout doe in mijn berekeningen, zeg het me dan aub

    [ Bericht 0% gewijzigd door Likkende_Lassie op 17-02-2008 08:44:34 ]
    Darkomenzondag 17 februari 2008 @ 15:44
    ff snel een klein vraagje, op een site van een klant van me (is van server verhuisd) worden speciale tekens niet goed weergegeven.
    Nu weet ik dat het hier pas is langsgekomen maar ik kan het zo snel niet vinden, iemand die dat nog weet?
    YellowBananazondag 17 februari 2008 @ 15:48
    MySQL is een crappy db of niet?
    YellowBananazondag 17 februari 2008 @ 15:49
    quote:
    Op zondag 17 februari 2008 15:44 schreef Darkomen het volgende:
    ff snel een klein vraagje, op een site van een klant van me (is van server verhuisd) worden speciale tekens niet goed weergegeven.
    Nu weet ik dat het hier pas is langsgekomen maar ik kan het zo snel niet vinden, iemand die dat nog weet?
    Hangt toch van je charset af?
    JortKzondag 17 februari 2008 @ 16:05
    quote:
    Op zondag 17 februari 2008 15:48 schreef YellowBanana het volgende:
    MySQL is een crappy db of niet?
    PiRANiAzondag 17 februari 2008 @ 16:19
    quote:
    Op zondag 17 februari 2008 15:48 schreef YellowBanana het volgende:
    MySQL is een crappy db of niet?
    hangt er vanaf waarvoor je het gebruikt
    over algemeen issie prima
    Farenjizondag 17 februari 2008 @ 17:05
    quote:
    Op zondag 17 februari 2008 15:44 schreef Darkomen het volgende:
    ff snel een klein vraagje, op een site van een klant van me (is van server verhuisd) worden speciale tekens niet goed weergegeven.
    Nu weet ik dat het hier pas is langsgekomen maar ik kan het zo snel niet vinden, iemand die dat nog weet?
    Ja, waarschijnlijk encoding problemen. Die treden op als de content-type die de server meestuurt een andere is dan waarin de data is opgeslagen in de database of waarin de bestanden zijn opgeslagen.
    Darkomenmaandag 18 februari 2008 @ 10:24
    ! tnx, dat ga ik ff opzoeken een aanpassen.
    colourAggamaandag 18 februari 2008 @ 16:47
    Let ook nog even op de collation's van je database en de connection type van je database Het is verstandig om alles op UTF8 te krijgen omdat je dan nooit gezeik krijgt met tekens uit andere talen etcetera Gebruik dan in je database utf8_general of utf8_unicode, utf8_general is iets sneller maar doet alles ook iets onpreciezer
    Swetseneggermaandag 18 februari 2008 @ 21:53
    Heeft mysql een round functie die floats kan afronden naar 5 tallen?

    dus 28,63 wordt 28,65 en 28,61 wordt 28,60
    SuperRembomaandag 18 februari 2008 @ 23:27
    Daar zal MySQL waarschijnlijk geen functie voor hebben, maar met een gewone round functie kan het ook: Round(x / 5) * 5, of Round(x / 0.05) * 0.05
    sabandinsdag 19 februari 2008 @ 16:46
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <?php
    function is_even($getal)
    {
        return ( 
    $getal == ) ? false true;
    }

    # Kijken of het getal even is
    if (is_even($getal))
       
    # Doe iets
    else
       
    # Doe iets anders
    ?>


    Is hier een makkelijkere/snellere oplossing voor?
    hornagedinsdag 19 februari 2008 @ 17:31
    Ik heb ff een vraagje over de mail() functie van php.

    Ik kreeg laatst een mail teruggestuurd van de smtp server omdat er een é in het onderwerp stond.
    De mail gaf ik aan dat ik het moest encoden volgens RFC 2822 en dat ik het dan kon versturen. Die RFC heeft blijkbaar iets met MIME mail te maken etc, maar dit hoef ik allemaal niet. Ik wil gewoon dat het ook mogelijk is om zulke karakters in mijn onderwerp te hebben.

    Is er een encode functie die mijn subject kan encoden zodat dit gaat werken?
    hornagedinsdag 19 februari 2008 @ 17:36
    quote:
    Op dinsdag 19 februari 2008 16:46 schreef saban het volgende:

    [ code verwijderd ]

    Is hier een makkelijkere/snellere oplossing voor?
    Als ik al een functie zou maken voor het checken of een getal even is zou ik dat zo doen:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    <?php
    function isEven($number) {
      
    $result $number 2;
      if(
    $result == 0)
        return 
    true;
      else
        return 
    false;
    }
    ?>


    Maar eigenlijk vind ik een functie hiervoor wat overdreven. Een check op % 2 == 0 is ook leesbaar zat vind ik altijd.
    Lightdinsdag 19 februari 2008 @ 18:31
    quote:
    Op dinsdag 19 februari 2008 17:36 schreef hornage het volgende:

    [..]

    Als ik al een functie zou maken voor het checken of een getal even is zou ik dat zo doen:
    [ code verwijderd ]

    Maar eigenlijk vind ik een functie hiervoor wat overdreven. Een check op % 2 == 0 is ook leesbaar zat vind ik altijd.
    Iets kortere functie:
    1
    2
    3
    4
    5
    <?php
    function isEven($number) {
      return !(
    $number 2);
    }
    ?>
    Thomassdinsdag 19 februari 2008 @ 19:11
    quote:
    Op dinsdag 19 februari 2008 18:31 schreef Light het volgende:

    [..]

    Iets kortere functie:
    [ code verwijderd ]
    Micro optimalisatie :
    1
    2
    3
    4
    5
    <?php
    function is_even($number) {
        return ~
    $number 1;
    }
    ?>
    Swetseneggerdinsdag 19 februari 2008 @ 23:17
    quote:
    Op maandag 18 februari 2008 23:27 schreef SuperRembo het volgende:
    Daar zal MySQL waarschijnlijk geen functie voor hebben, maar met een gewone round functie kan het ook: Round(x / 5) * 5, of Round(x / 0.05) * 0.05
    Werkte perfect.
    Kan je mysql ook ranges laten selecteren? Ik weet de 'wahere id in (1,10,15) clausule, maar als ik nu alle ID's tussen 5 en 50 wil?
    Swetseneggerdinsdag 19 februari 2008 @ 23:20
    between
    Chandlerwoensdag 20 februari 2008 @ 07:50
    of where id >=5 and id <= 50

    Vraagje, vanaf welke PHP versie bestaat PHP_EOL?
    Xcaliburwoensdag 20 februari 2008 @ 08:43
    quote:
    Op woensdag 20 februari 2008 07:50 schreef Chandler het volgende:
    Vraagje, vanaf welke PHP versie bestaat PHP_EOL?
    wat is het?
    Op php.net weten ze nog wat niks namelijk
    Chandlerwoensdag 20 februari 2008 @ 08:59
    het is een constant
    SuperRembowoensdag 20 februari 2008 @ 10:03
    PHP_EOL (string) Available since PHP 4.3.10 and PHP 5.0.2
    qu63woensdag 20 februari 2008 @ 10:13
    quote:
    Op zaterdag 16 februari 2008 20:20 schreef Tarabass het volgende:

    [..]

    Ook hoi!
    ja!
    Chandlerwoensdag 20 februari 2008 @ 11:59
    quote:
    Je wordt vriendelijk bedankt!
    hornagewoensdag 20 februari 2008 @ 13:03
    quote:
    Op dinsdag 19 februari 2008 17:31 schreef hornage het volgende:
    Ik heb ff een vraagje over de mail() functie van php.

    Ik kreeg laatst een mail teruggestuurd van de smtp server omdat er een é in het onderwerp stond.
    De mail gaf ik aan dat ik het moest encoden volgens RFC 2822 en dat ik het dan kon versturen. Die RFC heeft blijkbaar iets met MIME mail te maken etc, maar dit hoef ik allemaal niet. Ik wil gewoon dat het ook mogelijk is om zulke karakters in mijn onderwerp te hebben.

    Is er een encode functie die mijn subject kan encoden zodat dit gaat werken?
    Niemand heeft gereageerd op mijn vraag jammer genoeg, maar hierbij nog even de functie die ik na lang zoeken heb kunnen vinden:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <?php
      
    function encodeheader($input$charset 'ISO-8859-1')    {
        
    preg_match_all('/(\s?\w*[\x80-\xFF]+\w*\s?)/'$input$matches);
        foreach (
    $matches[1] as $value) {
          
    $replacement preg_replace('/([\x20\x80-\xFF])/e''"=" . strtoupper(dechex(ord("\1")))'$value);
          
    $input str_replace($value'=?' $charset '?Q?' $replacement '?='$input);
        }
        return 
    $input;
      }
    ?>
    Likkende_Lassiewoensdag 20 februari 2008 @ 20:40
    Ik heb een vraag betreffende het volgende:

    In $description staat de beschrijving van iets. In deze tekst kunnen productnamen worden opgehaald, ik wil dit als volgt doen:

    $description = 'BLA BLA BLA BLA [[PRODUCT_ID]] BLA BLA BLA';

    Hoe kan ik [[PRODUCT_ID]] (is elke keer dus een andere ID ) laten herkennen en het ID uitlezen (en eventueel laten vervangen met str_replace)?
    CraZaaywoensdag 20 februari 2008 @ 21:06
    quote:
    Op woensdag 20 februari 2008 20:40 schreef Likkende_Lassie het volgende:
    Ik heb een vraag betreffende het volgende:

    In $description staat de beschrijving van iets. In deze tekst kunnen productnamen worden opgehaald, ik wil dit als volgt doen:

    $description = 'BLA BLA BLA BLA [[PRODUCT_ID]] BLA BLA BLA';

    Hoe kan ik [[PRODUCT_ID]] (is elke keer dus een andere ID ) laten herkennen en het ID uitlezen (en eventueel laten vervangen met str_replace)?
    Je zult een patroon moeten vinden waar je een regex of string replacement op los kunt laten.
    Xcaliburdonderdag 21 februari 2008 @ 08:38
    quote:
    Op woensdag 20 februari 2008 08:59 schreef Chandler het volgende:
    het is een constant
    ja, zo zag die er ook al uit
    Waar is het voor, want de documentatie op php.net is nogal summier zeg maar..... ?
    WyriHaximusdonderdag 21 februari 2008 @ 11:00
    @JortK -> Ga uit eindelijk toch maar voor CakePHP denk ik .
    JortKdonderdag 21 februari 2008 @ 11:12
    quote:
    Op donderdag 21 februari 2008 11:00 schreef WyriHaximus het volgende:
    @JortK -> Ga uit eindelijk toch maar voor CakePHP denk ik .
    Waarom ?
    WyriHaximusdonderdag 21 februari 2008 @ 11:33
    quote:
    Op donderdag 21 februari 2008 11:12 schreef JortK het volgende:

    [..]

    Waarom ?
    Om een paar redenen, CI schijnt toch aardig terug te lopen developement terwijl ze vol op bezig zijn met cake. Met cake heb ik meer het gevoel dat ik echt een framework heb voor me database en MVC model. Terwijl CI toch een hoop meer dingen standaard mee levert. De problemen die ik dacht te hebben met cake is al wat voor en daar ben ik heel erg blij mee want dat scheelt mij een tering zooi werk en een nieuwe framework leren . Daarnaast ben ik al ff met cake bezig .
    CraZaaydonderdag 21 februari 2008 @ 14:28
    CI heeft toch ook een prima MVC-scheiding? Maar iedereen moet zelf weten wat 'ie gebruikt uiteraard. Ik heb verschillende grote sites gebouwd met CI naar tevredeneid iig.
    WyriHaximusdonderdag 21 februari 2008 @ 15:01
    quote:
    Op donderdag 21 februari 2008 14:28 schreef CraZaay het volgende:
    CI heeft toch ook een prima MVC-scheiding? Maar iedereen moet zelf weten wat 'ie gebruikt uiteraard. Ik heb verschillende grote sites gebouwd met CI naar tevredeneid iig.
    Bedoelde dat CI toch meer extra's heeft en cake maar bare is .
    Chandlerdonderdag 21 februari 2008 @ 20:10
    quote:
    Op donderdag 21 februari 2008 08:38 schreef Xcalibur het volgende:

    [..]

    ja, zo zag die er ook al uit
    Waar is het voor, want de documentatie op php.net is nogal summier zeg maar..... ?
    PHP_ENDOFLINE

    Oftewel een \r\n of \r of \'n
    Likkende_Lassievrijdag 22 februari 2008 @ 07:29
    quote:
    Op woensdag 20 februari 2008 21:06 schreef CraZaay het volgende:

    [..]

    Je zult een patroon moeten vinden waar je een regex of string replacement op los kunt laten.
    Ben nu aan het kijken naar de functie preg_replace_callback();
    CraZaayvrijdag 22 februari 2008 @ 08:40
    Even los van de implementatie; zit er een rode draad in? Als je de ene keer de string "fiets auto 1233 fok" hebt waaruit je 1233 wilt hebben, en de andere keer "kat koe melk" waarvan je koe wilt hebben, dan wordt het lastig uiteraard
    Likkende_Lassievrijdag 22 februari 2008 @ 14:20
    Kijk elke keer komt er een idnummer (wat weer uit de productne database wordt gehaald) voor in de tekst.

    Dus bv: bblablablal [[3012]] blablablabla
    Ik moet dan 3012 terug krijgen en [[3012]] moet worden vervangen door het geen wat ik wil.

    Maar 3012 kan ook iets anders zijn!

    snappi?

    Ik kan natuurlijk ook een mysql query elke keer laten uitvoeren, die een str_replacement elke keer doet, en kijkt of een ID in die tekst voorkomt... maar dat moet ook anders op te lossen zijn lijkt me.
    Dus dat als er [[ ]] in staat, hij pas gaat kijken
    sabanvrijdag 22 februari 2008 @ 14:38
    quote:
    Op vrijdag 22 februari 2008 14:20 schreef Likkende_Lassie het volgende:
    Kijk elke keer komt er een idnummer (wat weer uit de productne database wordt gehaald) voor in de tekst.

    Dus bv: bblablablal [[3012]] blablablabla
    Ik moet dan 3012 terug krijgen en [[3012]] moet worden vervangen door het geen wat ik wil.

    Maar 3012 kan ook iets anders zijn!

    snappi?

    Ik kan natuurlijk ook een mysql query elke keer laten uitvoeren, die een str_replacement elke keer doet, en kijkt of een ID in die tekst voorkomt... maar dat moet ook anders op te lossen zijn lijkt me.
    Dus dat als er [[ ]] in staat, hij pas gaat kijken
    Dat is dus wat je nodig hebt. Daarop moet je gaan preggen
    Rescovrijdag 22 februari 2008 @ 18:36
    quote:
    Op vrijdag 22 februari 2008 14:38 schreef saban het volgende:

    [..]

    Dat is dus wat je nodig hebt. Daarop moet je gaan preggen
    Inderdaad, lijkt me vrij standaard. Even doorlezen:

    http://nl2.php.net/preg_replace
    Chandlerzondag 24 februari 2008 @ 10:07
    Even een vraagje, wil in een query zoeken op records ouder dan 60 dagen met datetime format, heb me een breuk gezocht maar kon niets logisch en begrijpbaars vinden dat werkte iemand die dit zo even uit de mouw schud?
    CraZaayzondag 24 februari 2008 @ 10:36
    1datetime_value < (NOW() - INTERVAL 60 DAY)


    Geen idee of dit efficienter kan, maar kijk eens naar http://dev.mysql.com/doc/(...)-time-functions.html
    super-muffinzondag 24 februari 2008 @ 11:15
    quote:
    Op zaterdag 16 februari 2008 19:37 schreef Scriptha het volgende:
    Hoe implementeer ik een getInstance method (voor singleton design pattern) in abstracte class, zodat die bruikbaar is voor child classes?
    Ik vroeg het me ook af. Dit werkt wel aardig geloof ik. Heb ik net in elkaar gezet, dus niet helemaal uitgebreid getest.

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    <?php
    abstract
    class AbstractSingleton
    {
        
    /**
         * @var Array Holds all instances of the child classes
         */
        
    protected static $Instances = array();

        
    /**
         * No direct instances of the child classes
         */
        
    abstract protected function __construct();

        
    /**
         * @param string $Classname
         * @return object Singleton
         */
        
    protected static function GetInstance($Classname)
        {
            if (!isset(
    self::$Instances[$Classname]))
                
    self::$Instances[$Classname] = new $Classname;

            return
    self::$Instances[$Classname];
        }

        
    /**
         * The singleton method
         */
        
    abstract static function Singleton();
    }

    /**
    * The famous FooBar!
    */
    class FooBar extends AbstractSingleton
    {

        
    protected function __construct()
        {
            echo
    'I am being constructed only once!';
        }

        
    public static function Singleton()
        {
            return
    parent::GetInstance(__CLASS__);
        }
    }

    FooBar::Singleton();
    FooBar::Singleton();
    ?>


    En nu ik: Wat is de veiligste manier om een blijf ingelogd functie te maken? User Id onthouden in combinatie met IP en dat ook weer controleren?
    Tarabasszondag 24 februari 2008 @ 11:41
    quote:
    Op zondag 24 februari 2008 11:15 schreef super-muffin het volgende:

    [..]

    Ik vroeg het me ook af. Dit werkt wel aardig geloof ik. Heb ik net in elkaar gezet, dus niet helemaal uitgebreid getest.
    [ code verwijderd ]

    En nu ik: Wat is de veiligste manier om een blijf ingelogd functie te maken? User Id onthouden in combinatie met IP en dat ook weer controleren?
    Username en (uiteraard encrypted) wachtwoord opslaan in cookie, die de user dan via de browser kan laten onthouden?
    #ANONIEMzondag 24 februari 2008 @ 12:26
    quote:
    Op zondag 24 februari 2008 11:41 schreef Tarabass het volgende:

    [..]

    Username en (uiteraard encrypted) wachtwoord opslaan in cookie, die de user dan via de browser kan laten onthouden?
    Geen goed idee. Als iemand het cookie dan weet te jatten, dan kan die daarmee inbreken zolang het wachtwoord gelijk blijft. Of je het nu encrypted of niet in de cookie zet maakt dus zelfs nauwelijks iets uit.

    Je kunt beter een soort van Session ID in de cookie opslaan, die maar beperkt geldig is. Bijvoorbeeld een uur, of totdat je uitlogt, of totdat je de volgende keer inlogt.

    [ Bericht 5% gewijzigd door #ANONIEM op 24-02-2008 12:28:23 ]
    CraZaayzondag 24 februari 2008 @ 12:30
    In ieder geval niets wat zonder toegang tot de database te herleiden is tot een gebruiker. Dus ook geen userid ofzo. Als je geen sessie id's wilt gebruiken sla dan desnoods een hash van de username ofzo op (en dezelfde hash in de db uiteraard). User id + IP zou ideaal zijn, kun je in je cookie gewoon ff het id met 1 ophogen en als iemand anders inloggen
    Tarabasszondag 24 februari 2008 @ 12:32
    quote:
    Op zondag 24 februari 2008 12:26 schreef Igen het volgende:

    [..]

    Geen goed idee. Als iemand het cookie dan weet te jatten, dan kan die daarmee inbreken zolang het wachtwoord gelijk blijft.
    Je kunt beter een soort van Session ID in de cookie opslaan, die maar beperkt geldig is. Bijvoorbeeld een uur, of totdat je uitlogt, of totdat je de volgende keer inlogt.
    Ik heb even gekeken en je hebt inderdaad gelijk. Zelf doe ik dit inderdaad met het Userid plus wachtwoord opslaan in het cookie. Hoe ik dan bij de username kom

    Mijn excuses voor het op het verkeerde been zetten

    Verder laat ik het pas verlopen na een jaar. Op veel websites waar ik kom verloopt de cookie met het sluiten van de browser, maar vindt het als gebruiker dan vrij irritant overkomen.
    Xcaliburzondag 24 februari 2008 @ 12:39
    dat klinkt meer als een sessie dan als een cookie?
    SuperRembozondag 24 februari 2008 @ 12:43
    quote:
    Op zondag 24 februari 2008 12:32 schreef Tarabass het volgende:

    [..]

    Ik heb even gekeken en je hebt inderdaad gelijk. Zelf doe ik dit inderdaad met het Userid plus wachtwoord opslaan in het cookie. Hoe ik dan bij de username kom
    Dat is nog steeds niet veilig. Het enige wat je in een cookie moet zetten is een sessie-id.
    #ANONIEMzondag 24 februari 2008 @ 12:49
    quote:
    Op zondag 24 februari 2008 12:32 schreef Tarabass het volgende:

    [..]

    Ik heb even gekeken en je hebt inderdaad gelijk. Zelf doe ik dit inderdaad met het Userid plus wachtwoord opslaan in het cookie. Hoe ik dan bij de username kom
    Alleen user-ID en wachtwoord in een cookie opslaan is net zo onveilig, want ook deze combinatie is in principe oneindig lang geldig. Dat de cookie misschien een vervaldatum heeft doet er niet toe, want die is slechts een hint voor de webbrowser en voegt dus geen veiligheid toe.

    Kortom: je moet in je cookie een gegeven (controlenummer) opslaan, dat je ook op de server ergens noteert. En dit gegeven moet op de server een beperkte geldigheid hebben.

    SuperRembo: UserID + SessionID is toch net zo veilig? Of doe ik nu ook dom?

    [ Bericht 8% gewijzigd door #ANONIEM op 24-02-2008 12:51:19 ]
    CraZaayzondag 24 februari 2008 @ 13:05
    quote:
    Op zondag 24 februari 2008 12:39 schreef Xcalibur het volgende:
    dat klinkt meer als een sessie dan als een cookie?
    Een "session cookie" dan
    SuperRembozondag 24 februari 2008 @ 14:19
    quote:
    Op zondag 24 februari 2008 12:49 schreef Igen het volgende:
    [..]
    Kortom: je moet in je cookie een gegeven (controlenummer) opslaan, dat je ook op de server ergens noteert. En dit gegeven moet op de server een beperkte geldigheid hebben.

    SuperRembo: UserID + SessionID is toch net zo veilig? Of doe ik nu ook dom?
    Je zet alleen de session-id in de cookie, dus geen user-id. Meer heb je niet nodig.
    Xcaliburzondag 24 februari 2008 @ 18:34
    quote:
    Op zondag 24 februari 2008 13:05 schreef CraZaay het volgende:
    Een "session cookie" dan
    waarom zou je daar zelf moeilijk mee doen, als je het PHP ook lekker zelf kan laten doen?
    super-muffinzondag 24 februari 2008 @ 19:07
    quote:
    Op zondag 24 februari 2008 12:49 schreef Igen het volgende:

    [..]

    Alleen user-ID en wachtwoord in een cookie opslaan is net zo onveilig, want ook deze combinatie is in principe oneindig lang geldig. Dat de cookie misschien een vervaldatum heeft doet er niet toe, want die is slechts een hint voor de webbrowser en voegt dus geen veiligheid toe.

    Kortom: je moet in je cookie een gegeven (controlenummer) opslaan, dat je ook op de server ergens noteert. En dit gegeven moet op de server een beperkte geldigheid hebben.

    SuperRembo: UserID + SessionID is toch net zo veilig? Of doe ik nu ook dom?
    Maar op basis van wat moet ik het genereren? Of maakt dat niet zo veel uit?
    CraZaayzondag 24 februari 2008 @ 19:47
    quote:
    Op zondag 24 februari 2008 18:34 schreef Xcalibur het volgende:

    [..]

    waarom zou je daar zelf moeilijk mee doen, als je het PHP ook lekker zelf kan laten doen?
    Wie zegt iets over zelf doen? Wat jij bedoelt is een "session cookie", en dat is dus ook gewoon een soort cookie. Daar ging het me vooral om
    qu63zondag 24 februari 2008 @ 19:49
    ben een soort van bezig met een image upload en resize script, alleen mn host staat maar 16MB als memory_limit toe.

    Nu 'crasht' het script dus steeds omdat hij dus geen gehuegen meer heeft. Heeft PHP echt zoveel geheugen nodig om een plaatje te uploaden, resize naar max 600px breed of hoog, en resize naar max 200px breed of hoog?
    CraZaayzondag 24 februari 2008 @ 20:10
    Ja, en wel meer ook waarschijnlijk. Ik moest laatst om een XML-file te kunnen parsen met parse_to_struct() (ofzo) een gig reserveren
    qu63zondag 24 februari 2008 @ 20:15
    quote:
    Op zondag 24 februari 2008 20:10 schreef CraZaay het volgende:
    Ja, en wel meer ook waarschijnlijk. Ik moest laatst om een XML-file te kunnen parsen met parse_to_struct() (ofzo) een gig reserveren
    damn

    de instellingen bij one.com kunnen niet gewijzigd worden, dus ik ben de lul geloof ik
    PiRANiAzondag 24 februari 2008 @ 20:44
    quote:
    Op zondag 24 februari 2008 20:15 schreef qu63 het volgende:

    [..]

    damn

    de instellingen bij one.com kunnen niet gewijzigd worden, dus ik ben de lul geloof ik
    nog een one.commer
    Het klopt, ze kunnen volgens mij niet veranderd worden... Je kan het ze vragen, de helpdesk is er toch altijd...
    Tot nu toe ben ik zelf nog niet tegen beperkingen aan gelopen, behalve dat ik geen CRONJOBS kan installen...
    SuperRembozondag 24 februari 2008 @ 20:51
    quote:
    Op zondag 24 februari 2008 20:15 schreef qu63 het volgende:

    [..]

    damn

    de instellingen bij one.com kunnen niet gewijzigd worden, dus ik ben de lul geloof ik
    Een plaatje van 3000x2000 pixels kan zo 3000x2000x3 = 18MB aan geheugen gebruiken.
    Knip het plaatje in 4 stukken, resize die stuk voor stuk, plak ze daarna weer aan elkaar. En als dat nog niet genoeg is moet je meer stukken gebruiken
    Volgende probleem: hoe knip je een plaatje in stukken zonder het in z'n geheel in het geheugen te laden?
    Tarabasszondag 24 februari 2008 @ 21:01
    quote:
    Op zondag 24 februari 2008 18:34 schreef Xcalibur het volgende:

    [..]

    waarom zou je daar zelf moeilijk mee doen, als je het PHP ook lekker zelf kan laten doen?
    Wat bedoel je daar mee, zelf laten doen?
    qu63zondag 24 februari 2008 @ 21:08
    quote:
    Op zondag 24 februari 2008 20:44 schreef PiRANiA het volgende:

    [..]

    nog een one.commer
    Het klopt, ze kunnen volgens mij niet veranderd worden... Je kan het ze vragen, de helpdesk is er toch altijd...
    Tot nu toe ben ik zelf nog niet tegen beperkingen aan gelopen, behalve dat ik geen CRONJOBS kan installen...
    helpdesk gevraagd, en dat kan dus niet

    en php draait in safe_mode, dus linux-apps gebruiken werkt ook niet
    qu63zondag 24 februari 2008 @ 21:10
    quote:
    Op zondag 24 februari 2008 20:51 schreef SuperRembo het volgende:

    [..]

    Een plaatje van 3000x2000 pixels kan zo 3000x2000x3 = 18MB aan geheugen gebruiken.
    Knip het plaatje in 4 stukken, resize die stuk voor stuk, plak ze daarna weer aan elkaar. En als dat nog niet genoeg is moet je meer stukken gebruiken
    klint goed, maar idd:
    quote:
    Volgende probleem: hoe knip je een plaatje in stukken zonder het in z'n geheel in het geheugen te laden?
    psies, weet je hoe?
    Lightzondag 24 februari 2008 @ 22:47
    quote:
    Op zondag 24 februari 2008 19:49 schreef qu63 het volgende:
    ben een soort van bezig met een image upload en resize script, alleen mn host staat maar 16MB als memory_limit toe.

    Nu 'crasht' het script dus steeds omdat hij dus geen gehuegen meer heeft. Heeft PHP echt zoveel geheugen nodig om een plaatje te uploaden, resize naar max 600px breed of hoog, en resize naar max 200px breed of hoog?
    Je kunt ook nog kleinere plaatjes uploaden
    qu63maandag 25 februari 2008 @ 00:02
    quote:
    Op zondag 24 februari 2008 22:47 schreef Light het volgende:

    [..]

    Je kunt ook nog kleinere plaatjes uploaden
    Dat is ook een optie idd.

    ps, je homepage: Fatal error: Call to undefined function input_name_to_filter() in /sites/arjanonline.net/www/blog/include/compat.inc.php on line 99
    Tarabassmaandag 25 februari 2008 @ 08:54
    quote:
    Op zondag 24 februari 2008 22:47 schreef Light het volgende:

    [..]

    Je kunt ook nog kleinere plaatjes uploaden
    Of het plaatje via html kleiner maken en dan een screenshot maken met php, als dat kan
    CraZaaymaandag 25 februari 2008 @ 09:03
    Of gewoon een host zoeken waar je wél kunt doen wat je wilt zonder kunstgrepen en/of de interactie aan te passen
    The_Terminatormaandag 25 februari 2008 @ 21:26
    Vraagje

    Moet je bij het maken van een index eerst de oude droppen of wordt de al beschikbare automatisch overschreven?

    Mijn FokSearch database wordt namelijk trager en trager na het indexeren van meer woorden, in het begin hielp het indexeren nog wel maar ik merk nu eigenlijk geen verschil als ik het opnieuw indexeer.
    Xcaliburmaandag 25 februari 2008 @ 21:37
    quote:
    Op zondag 24 februari 2008 21:01 schreef Tarabass het volgende:
    Wat bedoel je daar mee, zelf laten doen?
    PHP heeft een prima session management om je ingelogd te houden... je moet wel een goede reden hebben als je dat niet wilt gebruiken en je eigen systeem te bouwen

    Maar ik heb het idee dat die hele discussie eigenlijk ergens anders over gaat dan ik denk, dus nevermind
    qu63maandag 25 februari 2008 @ 22:02
    quote:
    Op maandag 25 februari 2008 09:03 schreef CraZaay het volgende:
    Of gewoon een host zoeken waar je wél kunt doen wat je wilt zonder kunstgrepen en/of de interactie aan te passen
    Helaas zal dat niet gaan. Niet mijn eigen site, wel een site die ik aan het maken ben
    Farenjimaandag 25 februari 2008 @ 22:04
    quote:
    Op maandag 25 februari 2008 21:26 schreef The_Terminator het volgende:
    Vraagje

    Moet je bij het maken van een index eerst de oude droppen of wordt de al beschikbare automatisch overschreven?

    Mijn FokSearch database wordt namelijk trager en trager na het indexeren van meer woorden, in het begin hielp het indexeren nog wel maar ik merk nu eigenlijk geen verschil als ik het opnieuw indexeer.
    Indexes op mysql tabellen geven wel snelheidswinst maar ze zijn niet zaligmakend. Je kan maar zoveel met indexes doen, maar er zijn tig redenen voor een trage search. Het kan aan niet optimale code of queries aan jouw kant liggen. Of misschien ligt het echt alleen aan de hoeveelheid data of de manier waarop die opgeslagen wordt. Dat kun je wellicht efficienter maken door je data anders op te slaan, minder data op te slaan, of desnoods een datamart of meta index (een index van een index) van je data maken.

    Maar misschien dat je eens kan beginnen met hoe je datamodel eruitziet en wat voor soort indexes op welke columns je gebruikt.
    ErikNmaandag 25 februari 2008 @ 22:21
    Vraagje,

    Weet iemand een manier om dubbele MySQL records te verwijderen.

    Ik heb een tabel met ongeveer 120.000 records. Sommige records zijn dubbel, met uitzondering van een unieke ID. Is het mogelijk om dubbele records te verwijderen met een query?

    Een alternatief is een PHP script, maar die gaat waarsch. piepen bij 120.000 records...
    The_Terminatormaandag 25 februari 2008 @ 22:26
    quote:
    Op maandag 25 februari 2008 22:04 schreef Farenji het volgende:

    [..]

    Indexes op mysql tabellen geven wel snelheidswinst maar ze zijn niet zaligmakend. Je kan maar zoveel met indexes doen, maar er zijn tig redenen voor een trage search. Het kan aan niet optimale code of queries aan jouw kant liggen. Of misschien ligt het echt alleen aan de hoeveelheid data of de manier waarop die opgeslagen wordt. Dat kun je wellicht efficienter maken door je data anders op te slaan, minder data op te slaan, of desnoods een datamart of meta index (een index van een index) van je data maken.

    Maar misschien dat je eens kan beginnen met hoe je datamodel eruitziet en wat voor soort indexes op welke columns je gebruikt.
    Opzich is het niet traag, meestal doet het script er 0,1 sec of nog minder over om iets te vinden. Het gaat mij erom dat ik merk dat het steeds trager begint te worden, en ik ben bang dat het na verloop van tijd alleen maar achteruitgaat met de snelheid.

    Ik heb gewoon topics aan woorden gekoppeld via een losse tabel. Als iemand naar een woord zoekt dan wordt dat woord in de database opgezocht, dat woord bevat weer een ID dat weer in een andere tabel wordt opgezocht en in die tabel staan de topics waar het woord voorkomt en hoe vaak het voorkomt (om de relevantie te bepalen). Vervolgens haal ik de titel, TS, topicid en datum van het topic uit een losse tabel en dat wordt op de pagina geprint.

    Kan me eigenlijk niets beter bedenken dan bovenstaande.
    CraZaaymaandag 25 februari 2008 @ 22:31
    quote:
    Op maandag 25 februari 2008 22:21 schreef ErikN het volgende:

    Weet iemand een manier om dubbele MySQL records te verwijderen.

    Ik heb een tabel met ongeveer 120.000 records. Sommige records zijn dubbel, met uitzondering van een unieke ID. Is het mogelijk om dubbele records te verwijderen met een query?

    Een alternatief is een PHP script, maar die gaat waarsch. piepen bij 120.000 records...
    Waarom zou die piepen bij 120.000 records? Zoveel is dat toch niet?

    Ik zou zo geen query weten overigens.
    ErikNmaandag 25 februari 2008 @ 22:32
    quote:
    Op maandag 25 februari 2008 22:31 schreef CraZaay het volgende:
    Waarom zou die piepen bij 120.000 records? Zoveel is dat toch niet?

    Ik zou zo geen query weten overigens.
    Mijn PHP import scripts kunnen maximaal 10.000 per keer aan (op mijn brakke ontwikkel PC).
    ErikNmaandag 25 februari 2008 @ 22:34
    + ik weet dat het kan. Heb er ook al wel wat over gelezen. Alleen begrijp er niet veel van nog...
    Farenjimaandag 25 februari 2008 @ 22:37
    quote:
    Op maandag 25 februari 2008 22:32 schreef ErikN het volgende:

    [..]

    Mijn PHP import scripts kunnen maximaal 10.000 per keer aan (op mijn brakke ontwikkel PC).
    Dan is niet alleen je PC brak.
    Farenjimaandag 25 februari 2008 @ 22:47
    quote:
    Op maandag 25 februari 2008 22:26 schreef The_Terminator het volgende:

    [..]

    Opzich is het niet traag, meestal doet het script er 0,1 sec of nog minder over om iets te vinden. Het gaat mij erom dat ik merk dat het steeds trager begint te worden, en ik ben bang dat het na verloop van tijd alleen maar achteruitgaat met de snelheid.

    Ik heb gewoon topics aan woorden gekoppeld via een losse tabel. Als iemand naar een woord zoekt dan wordt dat woord in de database opgezocht, dat woord bevat weer een ID dat weer in een andere tabel wordt opgezocht en in die tabel staan de topics waar het woord voorkomt en hoe vaak het voorkomt (om de relevantie te bepalen). Vervolgens haal ik de titel, TS, topicid en datum van het topic uit een losse tabel en dat wordt op de pagina geprint.

    Kan me eigenlijk niets beter bedenken dan bovenstaande.
    Wat voor indexes gebruik je precies, en van wat voor type zijn die? En hoe match je op de woorden, doe je dat letterlijk (where field = "blaat"), met een LIKE of met een fulltext search?
    WyriHaximusmaandag 25 februari 2008 @ 23:02
    quote:
    Op maandag 25 februari 2008 22:37 schreef Farenji het volgende:

    [..]

    Dan is niet alleen je PC brak.
    Ja of wel, afaik kan PHP niet maar geheugen assignen dan de hoeveelheid RAM die je hebt. Tenminste daar liep ik tegen aan toen ik aan het kutten was met een bitmap in een array stoppen (NIET DOEN!!!) .
    The_Terminatormaandag 25 februari 2008 @ 23:55
    quote:
    Op maandag 25 februari 2008 22:47 schreef Farenji het volgende:

    [..]

    Wat voor indexes gebruik je precies, en van wat voor type zijn die? En hoe match je op de woorden, doe je dat letterlijk (where field = "blaat"), met een LIKE of met een fulltext search?
    Ik heb de woorden tabel geindexeerd en de verwijzing ernaar in de andere tabel ook. Het is gewoon het standaard type, ik doe dat op de volgende manier:

    1$query = "CREATE INDEX zoekwoord_ix ON woorden (zoekwoord)";


    Verder gebruik ik idd gewoon where, en de search kan naar meerdere woorde zoeken, dat kan zowel met een OR of AND operator.

    Het script zoekt eerst naar het woord in de database en voert dat voor elk woord uit en daar komen dan topicnummers voor terug. Vervolgens worden de gevonden topics in een array gezet en krijgen ze een bepaalde score. Als een woord vaker voorkomt in een bepaald topic dan wordt die score verhoogd. Vervolgens sorteer ik die array en komen de meest relevante topics bovenaan te staan, als datum als sorteervolgorde is gekozen dan worden gewoon de topics met het grootste of kleinste topicnr. bovenaan gezet. Vervolgens kijkt het script of alle opgegeven woorden (als AND is gebruikt) voorkomen in een bepaald topic en worden de resultaten die doorkomen op de pagina geprint. Bij OR worden gewoon alle resultaten geprint.
    Chandlerdinsdag 26 februari 2008 @ 08:43
    quote:
    Op maandag 25 februari 2008 22:34 schreef ErikN het volgende:
    + ik weet dat het kan. Heb er ook al wel wat over gelezen. Alleen begrijp er niet veel van nog...
    Je kunt een script toch na xxx records 3 seconden laten wachten het script middels header weer aanroepen en verder gaan waar je gebleven bent? zo draai ik cronjobs voor databases met meer dan 1 milj records!
    Xcaliburdinsdag 26 februari 2008 @ 09:08
    Ik denk dat een FULLTEXT search wel sneller is dan een WHERE / LIKE?

    Chandler: codevoorbeeldje?
    Farenjidinsdag 26 februari 2008 @ 09:53
    quote:
    Op maandag 25 februari 2008 23:02 schreef WyriHaximus het volgende:

    [..]

    Ja of wel, afaik kan PHP niet maar geheugen assignen dan de hoeveelheid RAM die je hebt. Tenminste daar liep ik tegen aan toen ik aan het kutten was met een bitmap in een array stoppen (NIET DOEN!!!) .
    Je hebt natuurlijk altijd geheugenbeperkingen maar dat ligt ook aan de implementatie. Met 1 image die je wil verwerken heb je weinig keus maar als je bijv een db import draait dan moet je natuurlijk niet die hele import eerst in je geheugen lezen en daarna pas wegschrijven. Als je dit netjes per record itereert dan kost het nauwelijks geheugen. Ik maak zelf regelmatig scripts voor tabellen met miljoenen rows, geen enkel probleem.
    WyriHaximusdinsdag 26 februari 2008 @ 10:55
    quote:
    Op dinsdag 26 februari 2008 09:53 schreef Farenji het volgende:

    [..]

    Je hebt natuurlijk altijd geheugenbeperkingen maar dat ligt ook aan de implementatie. Met 1 image die je wil verwerken heb je weinig keus maar als je bijv een db import draait dan moet je natuurlijk niet die hele import eerst in je geheugen lezen en daarna pas wegschrijven. Als je dit netjes per record itereert dan kost het nauwelijks geheugen. Ik maak zelf regelmatig scripts voor tabellen met miljoenen rows, geen enkel probleem.
    Je moet natuurlijk wel je script fatsoenlijk bouwen idd. Maar me punt was meer dat het aan ze bak kon liggen (niet waarschijnlijk). Aan de andere kant heb ik hier een oude P3 met 196MB RAM staan als thuis servertje die scripts draait waar rustig 90.000 reccords door heen worden geschoten dus het moet een aardige brakke dev bak zijn dan .
    Chandlerdinsdag 26 februari 2008 @ 15:08
    quote:
    Op dinsdag 26 februari 2008 09:08 schreef Xcalibur het volgende:
    Ik denk dat een FULLTEXT search wel sneller is dan een WHERE / LIKE?

    Chandler: codevoorbeeldje?
    In stappen.
    session_start

    select * from tabel LIMIET $_SESSION['start'], 250

    $_SESSION['start'] = $_SESSION['start'] + 250;

    sleep(300);

    header("location: zelfde script");

    voorbeeld genoeg?
    Farenjidinsdag 26 februari 2008 @ 16:43
    quote:
    Op maandag 25 februari 2008 23:55 schreef The_Terminator het volgende:

    [..]

    Ik heb de woorden tabel geindexeerd en de verwijzing ernaar in de andere tabel ook. Het is gewoon het standaard type, ik doe dat op de volgende manier:
    [ code verwijderd ]

    Verder gebruik ik idd gewoon where, en de search kan naar meerdere woorde zoeken, dat kan zowel met een OR of AND operator.

    Het script zoekt eerst naar het woord in de database en voert dat voor elk woord uit en daar komen dan topicnummers voor terug. Vervolgens worden de gevonden topics in een array gezet en krijgen ze een bepaalde score. Als een woord vaker voorkomt in een bepaald topic dan wordt die score verhoogd. Vervolgens sorteer ik die array en komen de meest relevante topics bovenaan te staan, als datum als sorteervolgorde is gekozen dan worden gewoon de topics met het grootste of kleinste topicnr. bovenaan gezet. Vervolgens kijkt het script of alle opgegeven woorden (als AND is gebruikt) voorkomen in een bepaald topic en worden de resultaten die doorkomen op de pagina geprint. Bij OR worden gewoon alle resultaten geprint.
    Dit klinkt als heel veel losse stappen. Wat ik zou doen is mysql het zware werk laten doen: een dergelijke zoekmethode kun je volgens mij prima vangen in 1 of 2 queries die je opbouwt aan de hand van de argumenten (zoekwoorden, sorteervolgorde, AND/OR). Mysql is oha veel efficienter in sorteren van resultaten dan je zelf ooit kan doen in php. Er zijn ook vele verschillende sorteeralgoritmes, de een efficienter dan de ander, en de een is ook geschikter voor een bepaalde taak dan de ander, je moet maar net de juiste kiezen. Mysql zal meestal de best (beschikbare) methode gebruiken. Het zou goed kunnen dat daar je bottleneck ligt.

    Als je dan die ene query ook nog zo efficient mogelijk maakt (EXPLAIN is je vriend - hiermee zie je of je indexes ook optimaal gebruikt worden) dan kom je volgens mij aardig in de buurt van optimaal zoeken.
    Xcaliburdinsdag 26 februari 2008 @ 17:49
    quote:
    Op dinsdag 26 februari 2008 15:08 schreef Chandler het volgende:
    voorbeeld genoeg?
    is op zich wel simpel he, eigenlijk
    Waarom zit die sleep() er nou nog in?
    Chandlerdinsdag 26 februari 2008 @ 18:22
    om je script te pauzeren, echter kun je dan daarvoor beter als je een mysql connectie hebt gemaakt deze sluiten met mysql_close of je doet een refresh middels javascript!
    sabandinsdag 26 februari 2008 @ 18:30
    quote:
    Op dinsdag 26 februari 2008 18:22 schreef Chandler het volgende:
    om je script te pauzeren, echter kun je dan daarvoor beter als je een mysql connectie hebt gemaakt deze sluiten met mysql_close of je doet een refresh middels javascript!
    Waarom wil je er een pauze in ? Je pakt toch max 250 tegelijk, waarom de pauze?
    Xcaliburdinsdag 26 februari 2008 @ 18:36
    Ik snap dat die sleep erin zit om het ding te pauzeren, maar (zoals Saban terecht vraagt) waarom de pauze?
    Chandlerdinsdag 26 februari 2008 @ 20:37
    waarom niet saban, je gunt de server zo even wat meer ademruimte, zekers handig als je op een shared server zit
    CraZaaydinsdag 26 februari 2008 @ 22:21
    quote:
    Op dinsdag 26 februari 2008 20:37 schreef Chandler het volgende:
    waarom niet saban, je gunt de server zo even wat meer ademruimte, zekers handig als je op een shared server zit
    Je gunt die server helemaal niets, aangezien iedere actie pas wordt gestart als de vorige is afgerond. Het kan een server echt niets schelen of 'ie continu door moet of 3 seconden rust krijgt.
    PiRANiAwoensdag 27 februari 2008 @ 12:22
    Ik heb een vraagje.
    Ik wil van een tabel `data` de laatste 30 rijen halen. Ik heb er een timestamp bij.

    Dit meot dus met LIMIT. Maar hoe moet het als ik de laatste 30 wil EN de volgorde wil behouden?
    Dzywoensdag 27 februari 2008 @ 12:52
    Welke volgorde?
    CraZaaywoensdag 27 februari 2008 @ 13:36
    ORDER BY timestamp DESC, LIMIT 30

    Geeft de 30 rows met de hoogste timestamps, van hoog naar laag.
    sabanwoensdag 27 februari 2008 @ 13:45
    quote:
    Op dinsdag 26 februari 2008 20:37 schreef Chandler het volgende:
    waarom niet saban, je gunt de server zo even wat meer ademruimte, zekers handig als je op een shared server zit
    Of je je script nou nu aanroept of over 3 seconde, wat maakt dat uit?
    Ik weet wat de sleep command doet, maar ik zie er geen voordeel in.
    Farenjiwoensdag 27 februari 2008 @ 15:43
    Servers regelen hun eigen ademruimte wel door middel van kernel scheduling. En dat kan ie beter als de belasting van processen een beetje constant is, niet als het proces om de zoveel tijd opeens stilvalt en opeens weer vol doorgaat. Het werkt alleen averechts, zo'n sleep.
    Chandlerwoensdag 27 februari 2008 @ 16:18
    Die sleep mag je idd vergeten, maar het script stoppen en dan na bv 3-5 seconden weer aanroepen lijkt mij beter voor de server, zelfde als 10000 emails in 1x versturen, dat vind een server ook niet leuk maar als je 250 per batch verstuurd is er niets aan de hand
    CraZaaywoensdag 27 februari 2008 @ 16:26
    Waarom zou een server dat iets kunnen schelen? Hij hoeft echt niet even af te koelen tussendoor hoor
    PiRANiAwoensdag 27 februari 2008 @ 16:38
    quote:
    Op woensdag 27 februari 2008 13:36 schreef CraZaay het volgende:
    ORDER BY timestamp DESC, LIMIT 30

    Geeft de 30 rows met de hoogste timestamps, van hoog naar laag.
    SELECT * FROM `scores` WHERE `naam`='$speler' ORDER BY `tijd` ASC

    limit 30 er achter en hij neemt de laatste 30?
    Farenjiwoensdag 27 februari 2008 @ 16:42
    quote:
    Op woensdag 27 februari 2008 16:18 schreef Chandler het volgende:
    Die sleep mag je idd vergeten, maar het script stoppen en dan na bv 3-5 seconden weer aanroepen lijkt mij beter voor de server, zelfde als 10000 emails in 1x versturen, dat vind een server ook niet leuk maar als je 250 per batch verstuurd is er niets aan de hand
    Dat ligt aan een maximum aantal mails per keer dat in de mailserverconfig ingesteld. Dat heeft niks met belasting te maken. Een server gaat niet kapot van belasting, volgens mij dicht je die dingen iets te veel menselijke eigenschappen toe
    PiRANiAwoensdag 27 februari 2008 @ 16:42
    Voor de duidelijkheid, dit is er wat er in mijn tabel staat (fictief):

    1
    2
    3
    4
    5
    6
    7
    8
    9


    het vetgedrukte is wat ik wil hebben...
    PiRANiAwoensdag 27 februari 2008 @ 16:52
    quote:
    Op woensdag 27 februari 2008 16:42 schreef PiRANiA het volgende:
    Voor de duidelijkheid, dit is er wat er in mijn tabel staat (fictief):

    1
    2
    3
    4
    5
    6
    7
    8
    9


    het vetgedrukte is wat ik wil hebben...
    lama, ik heb het al gefikst:

    quote:
    $speler=mysql_real_escape_string($_GET['speler']);
    $res=mysql_fetch_array(mysql_query("SELECT COUNT(*) AS limiet FROM `scores` WHERE `naam`='$speler'"));
    $wer=$res['limiet'];
    if($wer>$maxopvragingen){
    $wer=$wer-$maxopvragingen;
    }ELSE{
    $wer='0';
    }


    $q="SELECT * FROM `scores` WHERE `naam`='$speler' ORDER BY `tijd` ASC LIMIT $wer,$maxopvragingen";
    CraZaaywoensdag 27 februari 2008 @ 17:29
    quote:
    Op woensdag 27 februari 2008 16:38 schreef PiRANiA het volgende:

    [..]

    SELECT * FROM `scores` WHERE `naam`='$speler' ORDER BY `tijd` ASC

    limit 30 er achter en hij neemt de laatste 30?
    Nee, de eerste 30. Je wilt DESC ipv ASC gebruiken om van hoog naar laag te sorteren.
    Xcaliburwoensdag 27 februari 2008 @ 17:35
    Volgens mij is de truuk dat je het met een subquery doet ofzo...?
    Dit is al vaak gevraagd trouwens, Google moet het antwoord wel weten
    Farenjiwoensdag 27 februari 2008 @ 18:15
    Gewoon in DESC opvragen en de volgorde van de resultaten in je php code omdraaien, dat is het makkelijkste.
    CraZaaywoensdag 27 februari 2008 @ 18:37
    Precies, bovenstaande code geeft al een array terug. Even array_reverse() erover en klaar.
    Xcaliburwoensdag 27 februari 2008 @ 19:04
    ja, maar het in je query doen is mooier
    PiRANiAwoensdag 27 februari 2008 @ 20:02
    quote:
    Op woensdag 27 februari 2008 18:37 schreef CraZaay het volgende:
    Precies, bovenstaande code geeft al een array terug. Even array_reverse() erover en klaar.
    maar lukt dat ook met het result direct van de query?
    CraZaaywoensdag 27 februari 2008 @ 20:07
    quote:
    Op woensdag 27 februari 2008 19:04 schreef Xcalibur het volgende:
    ja, maar het in je query doen is mooier
    Maar een subquery hiervoor is vast niet efficienter als het over 30 records gaat, maar dat zou je kunnen benchmarken
    CraZaaywoensdag 27 februari 2008 @ 20:08
    quote:
    Op woensdag 27 februari 2008 20:02 schreef PiRANiA het volgende:

    maar lukt dat ook met het result direct van de query?
    Nee, want dat is een resource waar je zo niets mee kan (het directe resultaat van mysql_query()). PHP moet er nog wel een array van maken.
    PiRANiAwoensdag 27 februari 2008 @ 20:20
    quote:
    Op woensdag 27 februari 2008 20:08 schreef CraZaay het volgende:

    [..]

    Nee, want dat is een resource waar je zo niets mee kan (het directe resultaat van mysql_query()). PHP moet er nog wel een array van maken.
    ja idd, maar dat wordt lastig denk ik. Of je moet er een
    quote:
    while($row=mysql_fetch_array($result)){
    array_push($array,$row);
    }
    array_revert($array);
    in gooien maar dat lijkt me niet echt efficient
    PiRANiAwoensdag 27 februari 2008 @ 20:21
    quote:
    Op woensdag 27 februari 2008 17:29 schreef CraZaay het volgende:

    [..]

    Nee, de eerste 30. Je wilt DESC ipv ASC gebruiken om van hoog naar laag te sorteren.
    leest mijn 1e post ik wil de volgorde behouden...
    CraZaaywoensdag 27 februari 2008 @ 20:23
    quote:
    Op woensdag 27 februari 2008 20:21 schreef PiRANiA het volgende:

    [..]

    leest mijn 1e post ik wil de volgorde behouden...
    Je wilt de tijd dus niet op chronologische volgorde van laag naar hoog, en dan de 30 records met de hoogste waarde? Dat is namelijk wat mijn code doet Mits je er een array van maakt uiteraard, maar dat moet je gewoon oplossen in je database layer of voor een ActiveRecord-achtige implementatie kiezen. Je wilt sowieso niet overal die hard queries typen, maar een database wrapper maken.
    PiRANiAwoensdag 27 februari 2008 @ 20:39
    quote:
    Op woensdag 27 februari 2008 20:23 schreef CraZaay het volgende:

    [..]

    Je wilt de tijd dus niet op chronologische volgorde van laag naar hoog, en dan de 30 records met de hoogste waarde? Dat is namelijk wat mijn code doet Mits je er een array van maakt uiteraard, maar dat moet je gewoon oplossen in je database layer of voor een ActiveRecord-achtige implementatie kiezen. Je wilt sowieso niet overal die hard queries typen, maar een database wrapper maken.
    k...maar ik had het inmiddels al gefikst hoor
    #ANONIEMwoensdag 27 februari 2008 @ 20:39
    quote:
    Op woensdag 27 februari 2008 20:20 schreef PiRANiA het volgende:

    [..]

    ja idd, maar dat wordt lastig denk ik. Of je moet er een
    [..]

    in gooien maar dat lijkt me niet echt efficient
    Zou een array_revert op een array met 30 elementen langzamer zijn dan een hele extra query?
    PiRANiAwoensdag 27 februari 2008 @ 20:41
    quote:
    Op woensdag 27 februari 2008 20:39 schreef Igen het volgende:

    [..]

    Zou een array_revert op een array met 30 elementen langzamer zijn dan een hele extra query?
    het gaat vooral om dat hele fetchen er voor...

    maar ik cache de pagina binnenkort toch, dus dan maakt het niet zo veel meer uit
    Tarabasswoensdag 27 februari 2008 @ 21:29
    Ik was me een beetje aan het verdiepen in template engines. Sommige groot, sommige klein, maar vond ze over het algemeen omslachtig. Bovendien moet alles geparsed worden. Tijdens mijn zoektocht kwam ik dit artikel tegen. Wat vinden jullie van zijn stelling en class? Dus een template-class of een template-engine?
    CraZaaywoensdag 27 februari 2008 @ 22:16
    quote:
    Op woensdag 27 februari 2008 21:29 schreef Tarabass het volgende:
    Ik was me een beetje aan het verdiepen in template engines. Sommige groot, sommige klein, maar vond ze over het algemeen omslachtig. Bovendien moet alles geparsed worden. Tijdens mijn zoektocht kwam ik dit artikel tegen. Wat vinden jullie van zijn stelling en class? Dus een template-class of een template-engine?
    Het artikel is 5 jaar oud he, voor de duidelijkheid. Template engines zijn uit, MVC is in.
    Lightwoensdag 27 februari 2008 @ 22:25
    quote:
    Op woensdag 27 februari 2008 22:16 schreef CraZaay het volgende:

    [..]

    Het artikel is 5 jaar oud he, voor de duidelijkheid. Template engines zijn uit, MVC is in.
    Is dat niet te combineren dan, templates en MVC?
    CraZaaywoensdag 27 februari 2008 @ 22:28
    quote:
    Op woensdag 27 februari 2008 22:25 schreef Light het volgende:

    [..]

    Is dat niet te combineren dan, templates en MVC?
    De "V" in MVC staat voor view, templates dus Maar een totaal ander concept dan Smarty.
    Geqxondonderdag 28 februari 2008 @ 01:05
    Call me crazy, maar kan het zijn dat in de recente versies van MySQL je niet meer rekensommen kan toepassen in een UPDATE statement? Dus zo van " `Sort` = `Sort` + 1 " ?
    CraZaaydonderdag 28 februari 2008 @ 08:01
    quote:
    Op donderdag 28 februari 2008 01:05 schreef Geqxon het volgende:
    Call me crazy, maar kan het zijn dat in de recente versies van MySQL je niet meer rekensommen kan toepassen in een UPDATE statement? Dus zo van " `Sort` = `Sort` + 1 " ?
    Het lijkt me heeeeeel sterk
    Geqxondonderdag 28 februari 2008 @ 08:23
    Dan ben ik crazy. Ik neem aan dat dit dan handig via PHP moet?
    Lightdonderdag 28 februari 2008 @ 08:50
    quote:
    Op donderdag 28 februari 2008 01:05 schreef Geqxon het volgende:
    Call me crazy, maar kan het zijn dat in de recente versies van MySQL je niet meer rekensommen kan toepassen in een UPDATE statement? Dus zo van " `Sort` = `Sort` + 1 " ?
    Krijg je een mysql foutmelding dan?

    En over welke recente versie heb je het? Zo'n update werkt iig wel in MySQL 5.0.45.
    Xcaliburdonderdag 28 februari 2008 @ 09:30
    Lijkt me dat dat gewoon moet werken
    Geqxondonderdag 28 februari 2008 @ 10:33
    Ik heb mijn systeembeheerder eens schop gegeven. Het nadeel van in huis je eigen intranet hosten, niemand neemt de moeite om de software eens te updaten.

    Gaat nu prima zo. Ik kreeg net een error die afaik iets was van "Column not found" oid.
    Tarabassdonderdag 28 februari 2008 @ 10:56
    quote:
    Op woensdag 27 februari 2008 22:16 schreef CraZaay het volgende:

    [..]

    Het artikel is 5 jaar oud he, voor de duidelijkheid. Template engines zijn uit, MVC is in.
    Dat het artikel zo oud was wist ik. Dat MVC in is wist ik niet en heb daar ook nog nooit van gehoord. Ik ga me inlezen en kom wellicht met vragen terug

    Heeft iemand nog tips voor wat ik hiervoor kan downloaden en wat een goeie Model-View-Controller is?
    Geqxondonderdag 28 februari 2008 @ 11:10
    Wat een goede MVC is? MVC is een methode, een manier om iets te ontwikkelen. Niet iets dat je als een framework of engine zomaar even download.
    CraZaaydonderdag 28 februari 2008 @ 11:12
    De meest gebruikte MVC-frameworks voor PHP zijn Code Igniter en CakePHP.
    Xcaliburdonderdag 28 februari 2008 @ 11:14
    is Sort geen gereserveerd woord toevallig? Ik gebruik altijd sortorder voor zo'n kolom....


    Edit: dit gaat dus over Geqxon z'n sorteerprobleem... ik had een paar posts op de nieuwe pagina over het hoofd gezien
    Tarabassdonderdag 28 februari 2008 @ 11:14
    quote:
    Op donderdag 28 februari 2008 11:10 schreef Geqxon het volgende:
    Wat een goede MVC is? MVC is een methode, een manier om iets te ontwikkelen. Niet iets dat je als een framework of engine zomaar even download.
    Oké, maar zijn er goeie voorbeelden of tutorials te downloaden waaruit ik het kan leren en zelf kan doen? Ik moet toch ergens beginnen
    Geqxondonderdag 28 februari 2008 @ 11:15
    quote:
    Op donderdag 28 februari 2008 11:14 schreef Xcalibur het volgende:
    is Sort geen gereserveerd woord toevallig? Ik gebruik altijd sortorder voor zo'n kolom....
    Och, ik gebruik backticks. Gaat prima zo.
    Dzydonderdag 28 februari 2008 @ 11:17
    Heb je wel eens met zo'n framework gewerkt tarabass? Als je even in cakephp duikt is het snel duidelijk hoe zo'n MVC werkt, daar wordt je geforceerd zo te werken. Very OOP
    Geqxondonderdag 28 februari 2008 @ 11:24
    Zelf beken ik met schaamte dat ik nog met een template engine werk.
    Tarabassdonderdag 28 februari 2008 @ 11:41
    quote:
    Op donderdag 28 februari 2008 11:17 schreef Dzy het volgende:
    Heb je wel eens met zo'n framework gewerkt tarabass? Als je even in cakephp duikt is het snel duidelijk hoe zo'n MVC werkt, daar wordt je geforceerd zo te werken. Very OOP
    Nee, dat niet. Ik heb de cakephp nu gedownload en moet nu naar mn werk, maar zal vanavond eens die "learn-sectie" van hun site doornemen. Bedankt voor de tips tot dusver
    WyriHaximusdonderdag 28 februari 2008 @ 11:44
    quote:
    Op donderdag 28 februari 2008 11:24 schreef Geqxon het volgende:
    Zelf beken ik met schaamte dat ik nog met een template engine werk.
    Niks mis mee toch? Ga zelf eem template engine bouwen voor het MVC framework wat ik gebruik (CakePHP) .
    Geqxondonderdag 28 februari 2008 @ 11:52
    quote:
    Op donderdag 28 februari 2008 11:44 schreef WyriHaximus het volgende:

    [..]

    Niks mis mee toch? Ga zelf eem template engine bouwen voor het MVC framework wat ik gebruik (CakePHP) .
    Mijn huidige systeem werkt eigenlijk als volgt:

    Reguliere file:
    -Handlen van user-events ($_GET / $_POST)
    -Ophalen van data uit database en in de $output array stoppen
    -Template file includen

    Template file:
    -Een template class starten, en daar stukje bij beetje HTML aan voeden door de opgehaalde data te verwerken
    -Een HTML template file inladen en parsen (dingen als {title} e.d.)
    -De door PHP gegenereerde HTML stukken aan de HTML template file toevoegen
    -GZIP-pen
    -Aan de browser doorgeven.

    Ik zou het heel tof vinden om ook met frameworks aan de slag te gaan, maar dat gaat toch iets te veel boven mijn pet.
    CraZaaydonderdag 28 februari 2008 @ 12:09
    quote:
    Op donderdag 28 februari 2008 11:44 schreef WyriHaximus het volgende:

    [..]

    Niks mis mee toch? Ga zelf eem template engine bouwen voor het MVC framework wat ik gebruik (CakePHP) .
    En waar gebruik je de views dan voor? Ik ben niet bekend met Cake (wel met Code Igniter), maar views zijn toch al templates?
    Chandlerdonderdag 28 februari 2008 @ 12:14
    Ik gebruik geen MCV's juist omdat ik wil weten wat mijn code doet en het liefst zelf alles van a-z maak (met soms een beetje hulp van FOK )
    CraZaaydonderdag 28 februari 2008 @ 12:33
    Als je het MVC-model gebruikt, al dan niet i.c.m. een MVC-framework, moet je natuurlijk ook weten wat je code doet. Het wiel opnieuw uitvinden of je eigen model a la MVC ontwikkelen is mateloos inefficient uiteraard. PHP'ers hebben daar kennelijk toch een handje van, terwijl de rest van de wereld (andere talen) wel al jaaaaaren frameworks gebruiken naar volle tevredenheid.
    Farenjidonderdag 28 februari 2008 @ 12:39
    quote:
    Op donderdag 28 februari 2008 12:14 schreef Chandler het volgende:
    Ik gebruik geen MCV's juist omdat ik wil weten wat mijn code doet en het liefst zelf alles van a-z maak (met soms een beetje hulp van FOK )
    MVC is een manier om je applicatie te structureren, het is geen framework, het is geen software. Het is een aantal richtlijnen voor de architectuur: je scheidt je applicatie op in 3 logische basisblokken: model (datamodel en objectmodel), view (de interface voor de gebruiker) en de controller (die view en model aan elkaar koppelt). Hoe je dat doet is aan jezelf, je kan het van a tot z zelf opbouwen, je kan er verschillende losse modules voor gebruiken of je kan een compleet framework als Cake of Catalyst of wat dan ook voor gebruiken.

    En in webapplicaties bestaat die view meestal gewoon uit een template engine. Het is onzin om te beweren dat template engines "uit" zouden zijn. En MVC is zelf trouwens ook al zo oud als de weg naar rome.
    CraZaaydonderdag 28 februari 2008 @ 13:06
    quote:
    Op donderdag 28 februari 2008 12:39 schreef Farenji het volgende:

    En in webapplicaties bestaat die view meestal gewoon uit een template engine. Het is onzin om te beweren dat template engines "uit" zouden zijn. En MVC is zelf trouwens ook al zo oud als de weg naar rome.
    Natuurlijk wordt een view ook door een template engine gehaald, er moet immers variabele data in. Maar das imo iets anders dan bijv. een Smarty. En natuurlijk is MVC zo oud als de weg naar Rome, maar wordt het daar een slechter concept door?

    Het probleem wat ik bloot bedoelde te leggen met de traditionele template engines is dat PHP'ers daardoor alsnog een ratjetoe van code maken met alles door elkaar (database, logica, etc) om vervolgens alleen voor het tonen een template engine te gebruiken. MVC is absoluut "in", in de betekenis dat het steeds meer gebruikt wordt en je er (imo) nettere code door krijgt die beter te begrijpen is voor derden (convention over configuration enzo).
    WyriHaximusdonderdag 28 februari 2008 @ 13:14
    quote:
    Op donderdag 28 februari 2008 12:09 schreef CraZaay het volgende:

    [..]

    En waar gebruik je de views dan voor? Ik ben niet bekend met Cake (wel met Code Igniter), maar views zijn toch al templates?
    Idd. Alleen mis ik wat dingen, mogelijkheden en opties vandaar dat ik er een eigen systeem voor ga bouwen om dat af te handelen .
    CraZaaydonderdag 28 februari 2008 @ 13:20
    Ah, interessant. Zoals welke opties? Ben niet nieuwsgierig
    super-muffindonderdag 28 februari 2008 @ 13:47
    quote:
    Op donderdag 28 februari 2008 12:14 schreef Chandler het volgende:
    Ik gebruik geen MCV's juist omdat ik wil weten wat mijn code doet en het liefst zelf alles van a-z maak (met soms een beetje hulp van FOK )
    het is MVC, Model View Controller, en het is wat anders dan een framework waar mee jij het verward. Het is een design pattern.

    Ik gebruik ook een MVC voor een project waar ik mee bezig ben, en ik heb alle code van A - Z zelf geschreven.

    Frameworks als CakePHP en CodeIgniter zijn frameworks gebaseerd op het MVC pattern.
    Farenjidonderdag 28 februari 2008 @ 14:26
    quote:
    Op donderdag 28 februari 2008 13:06 schreef CraZaay het volgende:

    [..]

    Natuurlijk wordt een view ook door een template engine gehaald, er moet immers variabele data in. Maar das imo iets anders dan bijv. een Smarty. En natuurlijk is MVC zo oud als de weg naar Rome, maar wordt het daar een slechter concept door?
    Ik heb niet gezegd dat MVC een slecht concept is, integendeel, ik ben een grote fan van MVC. Maar wat is Smarty anders dan een template engine?
    quote:
    Het probleem wat ik bloot bedoelde te leggen met de traditionele template engines is dat PHP'ers daardoor alsnog een ratjetoe van code maken met alles door elkaar (database, logica, etc) om vervolgens alleen voor het tonen een template engine te gebruiken. MVC is absoluut "in", in de betekenis dat het steeds meer gebruikt wordt en je er (imo) nettere code door krijgt die beter te begrijpen is voor derden (convention over configuration enzo).
    Tja, ook als je een framework zoals cake gebruikt kan je er een ranzig onbegrijpelijk teringzooitje van maken. Je hebt ook wat ervaring nodig om je applicatie goed te kunnen ontwerpen, onafhankelijk van wat voor taal, framework, design model of techniek je ook gebruikt. Ik heb in het verleden met praktisch dezelfde software die ik nu nog wel gebruik, ook dingen gemaakt waarvan de tranen nu in mijn onderbroek springen. Dingen als MVC ga je pas echt gebruiken als je de nadelen ervaart van een niet goed ontworpen applicatie - als je een ratjetoe met alles door elkaar moet onderhouden, debuggen of uitbreiden zie je het belang en de logica van iets als MVC vanzelf wel in.
    CraZaaydonderdag 28 februari 2008 @ 14:59
    quote:
    Op donderdag 28 februari 2008 14:26 schreef Farenji het volgende:

    Ik heb niet gezegd dat MVC een slecht concept is, integendeel, ik ben een grote fan van MVC. Maar wat is Smarty anders dan een template engine?
    Niets, dat is precies wat ik bedoelde. Het is enkel een template engine die je alsnog een ranzige structuur toestaat.
    quote:
    Tja, ook als je een framework zoals cake gebruikt kan je er een ranzig onbegrijpelijk teringzooitje van maken. Je hebt ook wat ervaring nodig om je applicatie goed te kunnen ontwerpen, onafhankelijk van wat voor taal, framework, design model of techniek je ook gebruikt. Ik heb in het verleden met praktisch dezelfde software die ik nu nog wel gebruik, ook dingen gemaakt waarvan de tranen nu in mijn onderbroek springen. Dingen als MVC ga je pas echt gebruiken als je de nadelen ervaart van een niet goed ontworpen applicatie - als je een ratjetoe met alles door elkaar moet onderhouden, debuggen of uitbreiden zie je het belang en de logica van iets als MVC vanzelf wel in.
    Dat ben ik met je eens, al vind ik wel dat een framework gebruiken er iig voor zorgt dat de conventies gevolgd worden en het (hopelijk) allemaal minder ranzig wordt
    WyriHaximusdonderdag 28 februari 2008 @ 15:22
    quote:
    Op donderdag 28 februari 2008 13:20 schreef CraZaay het volgende:
    Ah, interessant. Zoals welke opties? Ben niet nieuwsgierig
    Toch niet? Anyway heb nu een database als medium om me templates op te slaan omdat het lekker makkelijk bewerken is zonder dat de hele server er naar kan schrijven (777 op bestanden). (Is eingelijk de belangrijkste reden.) Daarnaast welk ik met bepaalde tags ([LMODULE.],[TEMPLATE.] en [LMODULE.]) in me templates, nieuws berichten en andere dingen en wil ik dat voor de end user makkelijk tebegrijpen houden.
    Farenjidonderdag 28 februari 2008 @ 16:26
    quote:
    Op donderdag 28 februari 2008 14:59 schreef CraZaay het volgende:

    [..]

    Niets, dat is precies wat ik bedoelde. Het is enkel een template engine die je alsnog een ranzige structuur toestaat.
    Ik heb ook wel eens engines gebruikt waar je alleen variabeles in kwijt kan. Dan blijven je templates lekker schoon en begrijpelijk (fijn voor de grafici ) maar moet je weer nare kunstgrepen gaan uithalen in je controller als je bijv een tabel wil opbouwen vanuit een array. Liever heb ik een engine waar je op zijn minst standaard loops en wat conditionals kan gebruiken, maar dat opent inderdaad al snel de weg naar ranzige templates vol logica die er niet hoort. Uiteindelijk is niks af te dwingen en moet je gewoon de discipline hebben om netjes te werken, en de programmeurs die zich niet aan de regels houden heel hard voor hun bek rammen.
    super-muffinzaterdag 1 maart 2008 @ 20:09
    Hoe kan ik RGB waardes omrekenen naar HEX?
    Geqxonzaterdag 1 maart 2008 @ 20:15
    quote:
    Op zaterdag 1 maart 2008 20:09 schreef super-muffin het volgende:
    Hoe kan ik RGB waardes omrekenen naar HEX?

    Een beetje creatief zijn met base_convert. Of dechex.
    Arjan321zaterdag 1 maart 2008 @ 20:15
    bin2hex?
    Geqxonzaterdag 1 maart 2008 @ 20:17
    RGB is toch 0-255 0-255 0-255? Decimaal dus?
    broodmonkehzaterdag 1 maart 2008 @ 20:29
    Korte vraag , jullie weten vast het antwoord wel:

    1
    2
    3
    <?php
    echo "<a href=' " $_SERVER["PHP_SELF"] . "&p=2'>".($i+1)."</a>";
    ?>


    Krijgt als output: <a href='&p=2'>. Als ik $_SERVER['PHP-SELF'] bijv. echo dan krijg ik: www.pagina.nl/index.php?blaat=blaat . Hoe kan het dat ie hem niet weergeeft bij mijn link?
    Thomasszaterdag 1 maart 2008 @ 20:33
    quote:
    Op zaterdag 1 maart 2008 20:17 schreef Geqxon het volgende:
    RGB is toch 0-255 0-255 0-255? Decimaal dus?
    RGB = drie getallen, niets meer en niets minder. En of je de waarden nou opschrijft als 255, 0xFF of als 0377 het blijven gewoon drie getallen tussen de 0 en de 255.
    Thomasszaterdag 1 maart 2008 @ 20:34
    quote:
    Op zaterdag 1 maart 2008 20:29 schreef broodmonkeh het volgende:
    Korte vraag , jullie weten vast het antwoord wel:
    [ code verwijderd ]

    Krijgt als output: <a href='&p=2'>. Als ik $_SERVER['PHP-SELF'] bijv. echo dan krijg ik: www.pagina.nl/index.php?blaat=blaat . Hoe kan het dat ie hem niet weergeeft bij mijn link?
    In je code staat PHP_SELF en in wat je eronder schrijft PHP-SELF
    Ook gebruik je in je code " en in wat je eronder schrijft '

    probeer is $_SERVER['PHP_SELF'], zou moeten werken
    broodmonkehzaterdag 1 maart 2008 @ 21:06
    quote:
    Op zaterdag 1 maart 2008 20:34 schreef Thomass het volgende:

    [..]

    In je code staat PHP_SELF en in wat je eronder schrijft PHP-SELF
    Ook gebruik je in je code " en in wat je eronder schrijft '

    probeer is $_SERVER['PHP_SELF'], zou moeten werken
    Ik ga maar is slapen
    Qunixzondag 2 maart 2008 @ 03:16
    edit

    [ Bericht 77% gewijzigd door Qunix op 02-03-2008 03:28:14 ]
    Geqxonzondag 2 maart 2008 @ 03:21
    mod_rewrite. Of multiviews. Google er maar eens op voor tutorials.
    Chandlerzondag 2 maart 2008 @ 11:58
    Vraagje: hoe bereken je snel de datums van:

    gisteren, huidige week, vorige week, laatste 2 weken, huidige maand, laatste maand, laatste kwartaal en laatste jaar?

    Ik heb al gezocht naar een logische en praktische manier maar kwam helaas met lappen code te zitten.

    Liefst zie ik het als time maar dan zonder berekende uren, minuten en seconden.

    Iemand een idee?

    en dan nog een vraag, ik heb nu een database formaat met apparte velden voor jaar, maand, dag, dagv/dweek. maar vraag mij af of ik dit met een gewone datetime ook snel kan uitlezen?

    bv uit 2008-01-05 welke dag v/d week het is of alles uit week 4 uilezen

    [ Bericht 30% gewijzigd door Chandler op 02-03-2008 12:48:40 ]
    Geqxonzondag 2 maart 2008 @ 13:24
    http://nl2.php.net/manual/en/function.strtotime.php ?

    1
    2
    3
    4
    5
    6
    7
    8
    9
    <?php
    echo strtotime("now"), "\n";
    echo 
    strtotime("10 September 2000"), "\n";
    echo 
    strtotime("+1 day"), "\n";
    echo 
    strtotime("+1 week"), "\n";
    echo 
    strtotime("+1 week 2 days 4 hours 2 seconds"), "\n";
    echo 
    strtotime("next Thursday"), "\n";
    echo 
    strtotime("last Monday"), "\n";
    ?>
    sabanzondag 2 maart 2008 @ 13:30
    quote:
    Op zondag 2 maart 2008 13:24 schreef Geqxon het volgende:
    http://nl2.php.net/manual/en/function.strtotime.php ?
    [ code verwijderd ]
    Handig functie
    Chandlerzondag 2 maart 2008 @ 14:29
    zeer handig geqxon
    warezguy05dinsdag 4 maart 2008 @ 19:22
    ik heb een probleempje met het volgende. onderstaande code moet ervoor zorgen dat, elke keer wanneer een bezoeker een bepaalde pagina opent, er 3 random foto's getoond worden.

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    <?php
    $path = "pics/";

    // Foto's zoeken in directory en array vullen met de urls
    foreach (glob($path. "*") as $imagename) {
    $images[] = $imagename;
    }

    $maxfotos = count($images) - 1;

    $i = 1;
    $foto1 = "tempwaarde1";
    $foto2 = "tempwaarde2";
    $foto3 = "tempwaarde3";

    while ($i < 4 )

    {

       $foto = rand(0, $maxfotos);
       
       
       if ($i == 1)

       {

          $foto1= $foto;
          echo $foto1;

       }

       elseif ($i == 2)

       {

          $foto2= $foto;
          echo $foto2;

       }
       
       elseif ($i == 3)

       {

          $foto3= $foto;
          echo $foto3;

       }
       
       
       if (($foto1 == $foto2) || ($foto1 == $foto3) || ($foto2 == $foto3))
       
       {
       
                
       }
       
       else
       
       {
          
          echo "<img src='$images[$foto]' border='0' height='80' /> ";
          $i++;

       }

    }
    ?>


    het werkt op zich prima..maar op één punt gaat het scriptje de mist in:

    wanneer bij het random selecteren van de foto's toevallig het element met key 0 uit de array $images geselecteerd wordt, en daarna wordt gecontroleerd of deze foto/dit element al een keer geselecteerd is, dan beschouwt hij deze specifieke foto als 'reeds geselecteerd'.

    alleen als element met key 0 geselecteerd wordt als foto 3 dan wordt hij wel zonder problemen getoond.

    weet iemand waar het foutje zit? ik kom er zelf niet uit

    [ Bericht 4% gewijzigd door warezguy05 op 04-03-2008 19:29:03 ]
    ralfiedinsdag 4 maart 2008 @ 20:14
    je doet echt veel te moeilijk, php heeft een speciale functie voor random acties op arrays, bijv

    1
    2
    3
    4
    5
    <?php
    $path 
    "pics/";
    foreach(
    array_rand($x=glob($path"*"), ) as $foto
         echo 
    "<img src=\"{$x[$foto]}\" border=\"0\" height=\"80\" /> ";
    ?>
    warezguy05dinsdag 4 maart 2008 @ 20:24
    quote:
    Op dinsdag 4 maart 2008 20:14 schreef ralfie het volgende:
    je doet echt veel te moeilijk, php heeft een speciale functie voor random acties op arrays, bijv
    [ code verwijderd ]
    ah kijk..dat wist ik als beginner nog niet. maar het werkt fantastisch dus bedankt!
    Likkende_Lassiedinsdag 4 maart 2008 @ 20:40
    Ralfie, waarom echo " " doen en niet echo ' ' ?
    Geqxondinsdag 4 maart 2008 @ 21:06
    quote:
    Op dinsdag 4 maart 2008 20:40 schreef Likkende_Lassie het volgende:
    Ralfie, waarom echo " " doen en niet echo ' ' ?
    Persoonlijke voorkeur? Multiline? Snelheid? Parsen van variabelen?
    Likkende_Lassiedinsdag 4 maart 2008 @ 21:10
    Ik zie vaak dat mensen een dubbele quote gebruiken, maar vervolgens in de hele HTML slashes moeten gebruiken, er onhandig lijkt me toch??
    Geqxondinsdag 4 maart 2008 @ 21:30
    quote:
    Op dinsdag 4 maart 2008 21:10 schreef Likkende_Lassie het volgende:
    Ik zie vaak dat mensen een dubbele quote gebruiken, maar vervolgens in de hele HTML slashes moeten gebruiken, er onhandig lijkt me toch??
    Het mooiste is nog altijd een sprintf in combinatie met single-quotes.
    Likkende_Lassiedinsdag 4 maart 2008 @ 21:42
    Ook dat heb ik vaak gezien, maar nooit gebruikt, terwijl ik al een poosje script, misschien eens handig voor me om naar te kijken!

    Maar zit er nog verschil in een enkele of een dubble quote, behalve dan dat je direct een $string dr in kan zetten? Dat los ik gewoon op door bv.. echo 'blablabla '.$string.' blablabla';

    Farenjidinsdag 4 maart 2008 @ 21:45
    Enkele quotes is sneller, omdat die niet geparsed hoeven te worden.
    Geqxondinsdag 4 maart 2008 @ 21:54
    Direct een variabele in een string vind ik imho behoorlijk bah.

    1
    2
    3
    <?php
         printf
    ('<img src="%s" border="0" height="80">'$x[$foto]);
    ?>


    Als het dan toch moet, vind ik dit het netste.
    Likkende_Lassiedinsdag 4 maart 2008 @ 21:56
    quote:
    Op dinsdag 4 maart 2008 21:54 schreef Geqxon het volgende:
    Direct een variabele in een string vind ik imho behoorlijk bah.
    [ code verwijderd ]

    Als het dan toch moet, vind ik dit het netste.
    Waarom zou iemand het eigenlijk zo willen? Kan me ff niet zo snel een reden bedenken....
    Farenji, logische reden ja
    Geqxondinsdag 4 maart 2008 @ 22:01
    quote:
    Op dinsdag 4 maart 2008 21:56 schreef Likkende_Lassie het volgende:

    [..]

    Waarom zou iemand het eigenlijk zo willen? Kan me ff niet zo snel een reden bedenken....
    Farenji, logische reden ja
    Zo dat ik de statische HTML en de dynamische variabelen in een enkel oogopslag kan onderscheiden. Daarnaast heb je geen ranzige constructies als het aan elkaar plakken van strings (nogmaals : mijn mening), en kun je ook data 'parsen'. Als ik geen %s maar %d had gedaan, dan zou op die plek enkel en alleen een integer kunnen staan. Makkelijk bij bijvoorbeeld 'index.php?id=%d'.
    Geqxondinsdag 4 maart 2008 @ 22:03
    Een voorbeeld van hoe ik op deze wijze een query netjes kan maken:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    <?php
        $sql 
    sprintf("INSERT INTO mod_item 
        (Parent_ID, Title, Content, View)
        VALUES('%d', '%s','%s','%s')"
    ,
        
    $input_parent['ID'],
        
    mysql_real_escape_string($input_title), 
        
    mysql_real_escape_string($input_content),
        
    mysql_real_escape_string($input_view));
    ?>
    Thomassdinsdag 4 maart 2008 @ 22:32
    quote:
    Op dinsdag 4 maart 2008 21:45 schreef Farenji het volgende:
    Enkele quotes is sneller, omdat die niet geparsed hoeven te worden.
    Alsof dat ook maar iets uitmaakt, het feit dat je gewoon variabelen tussen tekst door kan typen is toch geweldig handig? Een beetje editor zorgt dan ook gelijk voor normale highlighting zodat het goed opvalt..
    Likkende_Lassiedinsdag 4 maart 2008 @ 22:33
    ok direct een stuk veiliger dus.. ?

    Dit is trouwens hoe ik al mn querys check, veilig volgens jullie?

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    <?php
    function secureValue($value$html){

       if (!
    $html){
         
    $value strip_tags($value'<b>,<a>,<i>,<u>,<img>');
       }else{
          
    $value htmlnumericentities($value);
       }
       if (!
    $value){
          
    $value NULL;
       }

       switch (
    gettype($value)) {
          case 
    'boolean':
             return 
    $value '1' '0';
          case 
    'integer':
          case 
    'double':
             return (string)
    $value;
          case 
    'string':
             return 
    "'".addslashes($value)."'";
          case 
    'array':
          case 
    'object':
             return 
    "'".addslashes($value)."'";
          default:
             
    //'resource', 'NULL', 'unknown type'
             
    return 'NULL';
             die();
       }
    }
    ?>
    Likkende_Lassiedinsdag 4 maart 2008 @ 22:34
    quote:
    Op dinsdag 4 maart 2008 22:32 schreef Thomass het volgende:

    [..]

    Alsof dat ook maar iets uitmaakt, het feit dat je gewoon variabelen tussen tekst door kan typen is toch geweldig handig? Een beetje editor zorgt dan ook gelijk voor normale highlighting zodat het goed opvalt..
    Ja dat is wel handig, maar ik zelf zou het niet doen als ik een document met veel html zou hebben...
    CraZaaydinsdag 4 maart 2008 @ 22:49
    quote:
    Op dinsdag 4 maart 2008 21:42 schreef Likkende_Lassie het volgende:

    Maar zit er nog verschil in een enkele of een dubble quote, behalve dan dat je direct een $string dr in kan zetten? Dat los ik gewoon op door bv.. echo 'blablabla '.$string.' blablabla';
    Voor het codevoorbeeld dat je geeft zijn nou precies de dubbele quotes bedoeld.
    CraZaaydinsdag 4 maart 2008 @ 22:51
    quote:
    Op dinsdag 4 maart 2008 22:32 schreef Thomass het volgende:

    Alsof dat ook maar iets uitmaakt, het feit dat je gewoon variabelen tussen tekst door kan typen is toch geweldig handig? Een beetje editor zorgt dan ook gelijk voor normale highlighting zodat het goed opvalt..
    Dat maakt iets uit ja. En daarnaast is het gewoon netter. Ieder bedrijf wat ik ken heeft in hun coding standard opgenomen hoe je enkele en dubbele quotes moet gebruiken, en da's dus altijd enkele quotes tenzij er een variabele (e.d.) in moet die geparsed moet worden.
    Geqxondinsdag 4 maart 2008 @ 22:56
    quote:
    Op dinsdag 4 maart 2008 22:33 schreef Likkende_Lassie het volgende:
    ok direct een stuk veiliger dus.. ?

    Dit is trouwens hoe ik al mn querys check, veilig volgens jullie?
    [ code verwijderd ]
    Voor een SQL query kan ik "mysql_real_escape_string" aanraden.
    Geqxondinsdag 4 maart 2008 @ 23:01
    Verder:

    1
    2
    3
    <?php
    echo "In my opinion, red = $color['Blue']";
    ?>


    1
    2
    3
    <?php
    echo "In my opinion, red = $color["Blue"]";
    ?>
    quote:
    Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in C:\xampplite\htdocs\test.php on line 5
    Doe mij maar:
    1
    2
    3
    <?php
    printf
    ('In my opinion, red = %s'$list['Blue'] );
    ?>
    Likkende_Lassiedinsdag 4 maart 2008 @ 23:04
    line 5 ?
    Doe mij maar:
    1
    2
    3
    <?php
    echo 'In my opinion, red = '.$color['Blue'];
    ?>

    Geqxondinsdag 4 maart 2008 @ 23:05
    quote:
    Op dinsdag 4 maart 2008 23:04 schreef Likkende_Lassie het volgende:
    line 5 ?
    Doe mij maar:
    [ code verwijderd ]

    Ik reageerde op:
    quote:
    Op dinsdag 4 maart 2008 22:32 schreef Thomass het volgende:

    [..]

    Alsof dat ook maar iets uitmaakt, het feit dat je gewoon variabelen tussen tekst door kan typen is toch geweldig handig? Een beetje editor zorgt dan ook gelijk voor normale highlighting zodat het goed opvalt..
    CraZaaydinsdag 4 maart 2008 @ 23:15
    Doe het maar gewoon hoe het hoort:

    1
    2
    3
    <?php
    echo "In my opinion, red = {$color['Blue']}";
    ?>
    Geqxondinsdag 4 maart 2008 @ 23:19
    quote:
    Op dinsdag 4 maart 2008 23:15 schreef CraZaay het volgende:
    Doe het maar gewoon hoe het hoort:
    [ code verwijderd ]
    En wat als je je systeem ooit multilingual wilt maken?
    Lightdinsdag 4 maart 2008 @ 23:32
    quote:
    Op dinsdag 4 maart 2008 21:45 schreef Farenji het volgende:
    Enkele quotes is sneller, omdat die niet geparsed hoeven te worden.
    Het typt ook sneller, omdat je geen Shift nodig hebt
    CraZaaydinsdag 4 maart 2008 @ 23:34
    quote:
    Op dinsdag 4 maart 2008 23:19 schreef Geqxon het volgende:

    En wat als je je systeem ooit multilingual wilt maken?
    Dan moet je voordat je gaat bouwen eens goed nadenken en alleen sprintf() gebruiken waar het nodig is. Ik doelde hier vooral op het gebruik van single en double quotes en de error die jij kreeg, omdat je geen gebruik maakte van {}.
    Geqxonwoensdag 5 maart 2008 @ 00:05
    Ieder zo zijn ding. Ik zweer bij printf's en sprintf's. Heerlijk dat ik HTML structuur en data gescheiden kan houden, en ook dat ik geen redundantie heb als ik met placeholders werk. Heeft er mogelijk ook mee te maken dat ik veel in C zit de laatste tijd.
    CraZaaywoensdag 5 maart 2008 @ 00:14
    quote:
    Op woensdag 5 maart 2008 00:05 schreef Geqxon het volgende:
    Ieder zo zijn ding. Ik zweer bij printf's en sprintf's. Heerlijk dat ik HTML structuur en data gescheiden kan houden, en ook dat ik geen redundantie heb als ik met placeholders werk. Heeft er mogelijk ook mee te maken dat ik veel in C zit de laatste tijd.
    HTML hoort überhaupt niet in een PHP string thuis, daar heb je templates voor. Hoe je de veriabelen voor in de templates vult bijvoorbeeld, daar ging het om. Daarnaast is het te pas en te onpas gebruiken van sprintf() nou ook niet direct efficiënter om te parsen dan een simpele string afaik.

    Maar idd, to each his own
    SuperRembowoensdag 5 maart 2008 @ 08:48
    quote:
    Op dinsdag 4 maart 2008 22:56 schreef Geqxon het volgende:

    [..]

    Voor een SQL query kan ik "mysql_real_escape_string" aanraden.
    Voor een SQL query kan ik "PDO" aanraden.
    Likkende_Lassiewoensdag 5 maart 2008 @ 20:50
    ziet dr goed uit, het gebruik hiervan maakt t in 1 keer helemaal veilig ?
    Wat vind je verder van mijn bovenstaande functie ?
    Farenjiwoensdag 5 maart 2008 @ 21:32
    quote:
    Op woensdag 5 maart 2008 20:50 schreef Likkende_Lassie het volgende:
    ziet dr goed uit, het gebruik hiervan maakt t in 1 keer helemaal veilig ?
    Wat vind je verder van mijn bovenstaande functie ?
    Ik zou hem nooit gebruiken als ik jou was. Kijk eens goed naar wat eringaat en eruitkomt. Dat is compleet inconsequent: een 0 of de string "0" geeft NULL, een boolean false ook maar een boolean true geeft "1". Dat gaat geheid problemen opleveren; meestal is een 0 gewoon 0 en wil je absoluut niet dat die als NULL de database ingaat.

    En WTF doet die die() daar?
    CraZaaywoensdag 5 maart 2008 @ 21:45
    Waarom zou je nooit een NULL value in je database willen stoppen (even los van deze functie)?
    Farenjiwoensdag 5 maart 2008 @ 22:27
    quote:
    Op woensdag 5 maart 2008 21:45 schreef CraZaay het volgende:
    Waarom zou je nooit een NULL value in je database willen stoppen (even los van deze functie)?
    Er zijn genoeg redenen om een NULL in je db te stoppen, maar NULL is heel wat anders dan 0 of "0".
    CraZaaywoensdag 5 maart 2008 @ 22:37
    quote:
    Op woensdag 5 maart 2008 22:27 schreef Farenji het volgende:

    [..]

    Er zijn genoeg redenen om een NULL in je db te stoppen, maar NULL is heel wat anders dan 0 of "0".
    Doh Sorry, dan begreep ik je verkeerd.
    Likkende_Lassiewoensdag 5 maart 2008 @ 23:21
    foutje van die die(); daar was ik nog wat aan t testen....
    Farenji, hoe zou jij hem bouwen?

    NULL gebruik ik eigenlijk bij elk veld in de database....altijd handig
    Likkende_Lassiedonderdag 6 maart 2008 @ 00:23
    Hee om nog even terug te komen op de functie printf, wat als je nou 2 keer een waarde wilt herhalen, hoe doe je dat? Moet je dan een nieuwe printf starten?
    Geqxondonderdag 6 maart 2008 @ 00:26
    quote:
    Op donderdag 6 maart 2008 00:23 schreef Likkende_Lassie het volgende:
    Hee om nog even terug te komen op de functie printf, wat als je nou 2 keer een waarde wilt herhalen, hoe doe je dat? Moet je dan een nieuwe printf starten?
    Je kunt het doen als:

    1
    2
    3
    4
    <?php
    sprintf
    ('Waarde uno: %s Waarde dos: %s'$uno$dos);
    sprintf('Waarde uno: %s nogmaals uno: %s'$uno$uno);
    ?>


    of met placeholders:

    1
    2
    3
    4
    5
    <?php
    $format 
    'The %2$s contains %1$d monkeys.
               That\'s a nice %2$s full of %1$d monkeys.'
    ;
    printf($format$num$location);
    ?>
    Likkende_Lassiedonderdag 6 maart 2008 @ 00:40
    kijk dan zou met placeholders al weer iets aantrekkelijker vinden
    WyriHaximusdonderdag 6 maart 2008 @ 08:13
    quote:
    Op donderdag 6 maart 2008 00:40 schreef Likkende_Lassie het volgende:
    kijk dan zou met placeholders al weer iets aantrekkelijker vinden
    Placeholders zijn zeker als je multilang gaat werken erg aantrekkelijk .
    Farenjidonderdag 6 maart 2008 @ 09:18
    quote:
    Op woensdag 5 maart 2008 23:21 schreef Likkende_Lassie het volgende:
    foutje van die die(); daar was ik nog wat aan t testen....
    Farenji, hoe zou jij hem bouwen?
    Niet. Ik gebruik daar altijd placeholders voor. Die functie is compleet overbodig.Maar als je het toch handmatig wil doen: het enige wat van belang is dat je quotes escape't. En dat is precies wat mysql_real_escape doet. Al dat gegoochel met uitzoeken van type is niet nodig, als je een variabele als string behandelt dan zorgt php zelf wel voor de conversie. Niet dat dat altijd even consequent gebeurt maar dat is een ander verhaal.
    quote:
    NULL gebruik ik eigenlijk bij elk veld in de database....altijd handig
    Lang niet altijd. Soms wil je wel eens een left join doen, en wil je onderscheid kunnen maken tussen records die niet matchen en records die wel matchen maar waar velden gewoon leeg zijn. Als je dan NULL in je db hebt staan voor een leeg veld kun je dat onderscheid niet meer maken en ben je de sjaak.
    Likkende_Lassiedonderdag 6 maart 2008 @ 14:54
    Waarom zou je onderscheid willen maken met een leeg veld of een veld met NULL... ?
    JortKdonderdag 6 maart 2008 @ 14:57
    quote:
    Op donderdag 6 maart 2008 14:54 schreef Likkende_Lassie het volgende:
    Waarom zou je onderscheid willen maken met een leeg veld of een veld met NULL... ?
    Ik heb dezelfde vraag
    SuperRembodonderdag 6 maart 2008 @ 15:38
    quote:
    Op donderdag 6 maart 2008 14:54 schreef Likkende_Lassie het volgende:
    Waarom zou je onderscheid willen maken met een leeg veld of een veld met NULL... ?
    Als je een varchar of text veld leeg wil laten dan kan je er meestal wel een lege string in zetten, maar bij andere veld types heb je niet altijd een logische default waarde. Een bedrag van 0.00 hoeft niet overeen te komen met een niet ingevuld bedrag.
    Verder kan het nodig zijn als een veld onderdeel is van een foreign key.
    qu63donderdag 6 maart 2008 @ 16:58
    Hoe kan ik alles printen wat de browser meestuurd?
    kan je meer krijgen dan met
    1
    2
    3
    <?php
    print_r
    ($_SERVER);
    ?>

    ?
    dit heb ik namelijk geprobeerd, maar er komt niks naar boven waar ik mijn locatie uit kan vissen.. iemand tips?

    Ik probeer namelijk een beetje te begrijpen hoe 9292ov.nl weet waar ik ben als ik met mn mobiel de site bekijk :+
    CraZaaydonderdag 6 maart 2008 @ 17:03
    quote:
    Op donderdag 6 maart 2008 16:58 schreef qu63 het volgende:

    Ik probeer namelijk een beetje te begrijpen hoe 9292ov.nl weet waar ik ben als ik met mn mobiel de site bekijk
    Door je IP te matchen in 1 of andere database.
    JortKdonderdag 6 maart 2008 @ 17:08
    IP2location
    qu63donderdag 6 maart 2008 @ 17:09
    quote:
    Op donderdag 6 maart 2008 17:03 schreef CraZaay het volgende:

    [..]

    Door je IP te matchen in 1 of andere database.
    Grappig dat ik steeds een wisselend ip-adres heb als ik met mn mobiel online kom

    of zorgt knp/hi er voor dat het adres wat ik krijg in die buurt 'geregistreerd' is ofzo?
    anders toch maar eens testen als ik weer eens in de trein of zuto zit en een stuk ga rijden
    qu63donderdag 6 maart 2008 @ 17:19
    de 2 links in dit topic geven Amersfoort en Dussun (Noord-Brabant) aan. Mijn huidige locatie is Bussum, Noord-Holland. de eerste zit er dus hemelsbreed 35km naast, en van die 2e wil ik he tniet eens weten

    ip2location zal het dus niet zijn
    qu63donderdag 6 maart 2008 @ 17:23
    en via wap.mobiel.9292ov.nl geeft ie aan dat ik vanaf mijn huidige locatie naar mijn postcode kan lopen, en het ov dus niet nodig heb. Dus duidelijk geen ip2location, of ze hebben een veeeeeel uitgebreidere database
    CraZaaydonderdag 6 maart 2008 @ 17:24
    Ah, via je mobiel. Dan zullen ze het Cell ID gebruiken neem ik aan van de zendmasten in je buurt. Zoals de "locate me" functie op de iPhone. Geen idee hoe je script die uit kan lezen, maar er zijn databases te vinden van de Cell ID's in Nederland (geen idee hoe dekkend die zijn, wellicht dat 9292OV betaalt voor die data).
    Geqxondonderdag 6 maart 2008 @ 18:31
    Dat is waarschijnlijk iets als Navizon. Maar hoe wap.mobiel.9292ov.nl aan je CellID komt??
    qu63donderdag 6 maart 2008 @ 18:40
    quote:
    Op donderdag 6 maart 2008 18:31 schreef Geqxon het volgende:
    Dat is waarschijnlijk iets als Navizon. Maar hoe wap.mobiel.9292ov.nl aan je CellID komt??
    precies, ik hoopte dus uit te kunnen vinden hoe mn CellID meegstuurd wordt, maar dmv print_r($_server) lukt het dus niet..
    qu63donderdag 6 maart 2008 @ 18:44
    quote:
    Op donderdag 6 maart 2008 17:24 schreef CraZaay het volgende:
    Ah, via je mobiel.
    Dat stond ook in mn vraag ja
    PiRANiAdonderdag 6 maart 2008 @ 19:06
    http://www.google.com/gmm/mylocation.html
    Google doet het ook. bij de pagina staat een filmpje hoe ze het doen
    qu63donderdag 6 maart 2008 @ 19:21
    quote:
    Op donderdag 6 maart 2008 19:06 schreef PiRANiA het volgende:
    http://www.google.com/gmm/mylocation.html
    Google doet het ook. bij de pagina staat een filmpje hoe ze het doen
    ik weet wel hoe het werkt, alleen wil ik weten hoe en wanneer zn mn cell-id 'uitlezen'. Mijn telefoon moet het toch op de een of andere manier meezenden maar dat onderscheppen is me dus nog niet gelukt..
    Chandlerdonderdag 6 maart 2008 @ 20:30
    quote:
    Op donderdag 6 maart 2008 17:08 schreef JortK het volgende:
    IP2location
    Lekker prijzig
    __Saviour__donderdag 6 maart 2008 @ 21:42
    Ik wil dynamische tekst over een plaatje kunnen zetten, zoals sommigen bijv. een counter hebben in hun avatar.
    Maar dan dat ik ook grootte en font e.d. kan instellen. Is daar ergens een mooi duidelijk voorbeeldscript of tutorial van?
    PiRANiAdonderdag 6 maart 2008 @ 21:45
    quote:
    Op donderdag 6 maart 2008 21:42 schreef __Saviour__ het volgende:
    Ik wil dynamische tekst over een plaatje kunnen zetten, zoals sommigen bijv. een counter hebben in hun avatar.
    Maar dan dat ik ook grootte en font e.d. kan instellen. Is daar ergens een mooi duidelijk voorbeeldscript of tutorial van?
    GD is wat je zoekt...
    Een tutorial is vast wel te vinden
    PiRANiAdonderdag 6 maart 2008 @ 21:45
    http://www.sitemasters.be/?pagina=tutorials/tutorials&cat=4&id=260
    __Saviour__donderdag 6 maart 2008 @ 21:59
    ah, daarmee gaat het wel lukken. Bedankt
    h.henkievrijdag 7 maart 2008 @ 00:32
    Misschien een rare vraag. Maar ik heb de volgende code
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <?php
    $dbnaam
    ="db";
    $fout "FOUT: openen database mislukt";
    $query="SELECT * FROM db.test";        
            
    mysql_select_db($dbnaam) or die($fout);
            
    $result mysql_query($query) or die (mysql_error());
                while (list(
    $id $invoer $ndag$dag $maand $jaar $naam $status $titel $tekst $ip $ref ) = mysql_fetch_row($result)){
    echo 
    $id
    };
    ?>

    Nu word de data vanaf de bovenkant tot de onderkant van de database in gelezen en weergegeven. Maar ik wil eigenlijk dat het andersom word gedaan. Dus de laatste invoer als eerste weergeven en de eerste invoer als laatste word weergegeven.
    Hoe doe ik dat?
    Geqxonvrijdag 7 maart 2008 @ 00:35
    1
    2
    3
    <?php
    $query
    ="SELECT * FROM db.test ORDER BY id DESC"
    ?>
    h.henkievrijdag 7 maart 2008 @ 01:00
    quote:
    Op vrijdag 7 maart 2008 00:35 schreef Geqxon het volgende:

    [ code verwijderd ]
    En dank je wel.
    commentatorvrijdag 7 maart 2008 @ 20:12
    ik heb een klein probleempje en hoop dat iemand hier de oplossing heeft aangezien ik t ff niet gevonden krijg

    ik heb een tabel

    nummer type
    002234 bocht
    013457 staaf
    145976 driehoek
    145976 staaf
    145976 wit
    enz

    nu is de vraag
    hoe krijg ik de nummers eruit die zowel van het type wit als het type staaf zijn?
    broodmonkehvrijdag 7 maart 2008 @ 20:25
    SELECT * FROM tabel WHERE type = 'wit' OR type = 'staaf'

    zoiets?
    SuperRembovrijdag 7 maart 2008 @ 20:41
    Je hebt n voorwaarden waaraan moet worden voldaan. Je haalt alle regels op die aan een van de voorwaarden voldoen. Dan groepeer je op id en hou je alleen de id's over die aan precies n voorwaarden voldoen.
    1
    2
    3
    4
    5
    SELECT id
    FROM mytable
    WHERE option IN ('foo', 'bar', 'baz')
    GROUP BY id
    HAVING COUNT(*) = 3
    SuperRembovrijdag 7 maart 2008 @ 20:45
    quote:
    Op vrijdag 7 maart 2008 20:25 schreef broodmonkeh het volgende:
    SELECT * FROM tabel WHERE type = 'wit' OR type = 'staaf'

    zoiets?
    Dan krijg je ook de regels die alleen aan 'wit' of alleen aan 'staaf' voldoen.
    commentatorvrijdag 7 maart 2008 @ 20:48
    quote:
    Op vrijdag 7 maart 2008 20:25 schreef broodmonkeh het volgende:
    SELECT * FROM tabel WHERE type = 'wit' OR type = 'staaf'

    zoiets?
    dat is niet van en maar van of
    quote:
    Op vrijdag 7 maart 2008 20:41 schreef SuperRembo het volgende:
    Je hebt n voorwaarden waaraan moet worden voldaan. Je haalt alle regels op die aan een van de voorwaarden voldoen. Dan groepeer je op id en hou je alleen de id's over die aan precies n voorwaarden voldoen.
    [ code verwijderd ]
    maar dan nog is het niet zo dat er altijd drie van zijn dat kan ook 10 dingen bevatten en dan zoek ik toch alleen van de twee dingen uit het voorbeeld

    [ Bericht 48% gewijzigd door commentator op 07-03-2008 21:10:30 ]
    SuperRembovrijdag 7 maart 2008 @ 22:36
    quote:
    Op vrijdag 7 maart 2008 20:48 schreef commentator het volgende:
    maar dan nog is het niet zo dat er altijd drie van zijn dat kan ook 10 dingen bevatten en dan zoek ik toch alleen van de twee dingen uit het voorbeeld
    Hoe bedoel je dat? Moet het precies voldoen aan de voorwaarden of tenminste aan de voorwaarden? Als een item de types 'wit', 'staaf' en 'driehoek' bevat zoals nummer 145976 uit je voorbeeld, als je dan zoekt op 'wit' en 'staaf', wil je dan nummer 145976 terugkrijgen of niet?
    commentatorvrijdag 7 maart 2008 @ 23:32
    idd, als ik zoek op wit en staaf dan wil ik dat nummer terug krijgen (en maar 1keer dus) ook al komt het nummer met weet ik wat voor types nog voor
    SuperRembozaterdag 8 maart 2008 @ 00:45
    quote:
    Op vrijdag 7 maart 2008 23:32 schreef commentator het volgende:
    idd, als ik zoek op wit en staaf dan wil ik dat nummer terug krijgen (en maar 1keer dus) ook al komt het nummer met weet ik wat voor types nog voor
    In dat geval kan je die query die ik gaf gebruiken.
    GioStylemaandag 10 maart 2008 @ 20:03
    Ik heb mijn site iets aangepast en verder ingevuld.
    Het principe werkt gewoon alleen ik krijg 1 foutmelding.
    quote:
    Notice: Undefined index: pagina in url on line 19
    Het gaat om het volgende stukje code:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    <?php
    switch ($_GET['pagina']) {
       case 
    'home':
          include(
    'home.php');
       break;
       case 
    'personalTwee':
          include(
    'personalTwee.php');
       break;
       case 
    'uniRelatedEen':
          include(
    'uniRelatedEen.php');
       break;
       case 
    'uniRelatedTwee':
          include(
    'uniRelatedTwee.php');
       break;

       default:
          include(
    'home.php');
       break;
    }
    ?>


    Ik snap dat hij die code aangeeft omdat die pagina nog niet in de array voorkomt.
    Maar hoe kan ik die fout mooi omzeilen? :)
    Chandlermaandag 10 maart 2008 @ 20:22
    Ik heb een klein probleempje maar kan het niet vinden, zit er al 20 minuten naar te kijken maar zie het niet.

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    <?php
                            
    if (isSet($err) && strlen($err) == 0)
                            {
                                
    $sql "SELECT id
                                        FROM banned
                                        WHERE ip    = '" 
    mysql_escape_string($_POST['ban_ip']) . "'
                                        AND   host  = '" 
    mysql_escape_string($_POST['ban_host']) . "'
                                        AND   titel = '" 
    mysql_escape_string($_POST['ban_titel']) . "'
                                        LIMIT 1"
    ;
                                
    $query mysql_query($sql);
                                
    $items mysql_num_rows($query);

                                if (
    $items == 0)
                                {
                                    
    $sql "INSERT INTO `banned` (`id`, `host`, `titel`, `sid`)
                                            VALUES ('" 
    mysql_escape_string($_POST['ban_ip']) . "',
                                                    '" 
    mysql_escape_string($_POST['ban_host']) . "',
                                                    '" 
    mysql_escape_string($_POST['ban_titel']) . "',
                                                    '" 
    is_numeric($_POST['ban_sid']) ? $_POST['ban_sid'] : "')";
                                    if (
    mysql_query($sql))
                                    {
                                        
    parseRecord($tpl"%bewaren%"true);
                                    }
                                    else
                                    {
                                        
    parseRecord($tpl"%err%""Fout bij opslaan van gegevens");
                                    }
                                }
                            }                              `

                            else
                            
    {
                                if (isSet($err) && strlen($err) > 0)
                                
    {
                                    parseRecord($tpl, "%err%", $err);
                                
    }                              `
                            }
    ?>


    Bovenstaande stukje heb ik nu gecommend met /* en */ maar als ik deze verwijder krijg ik de volgende fout

    Parse error: syntax error, unexpected '}' in D:\www\Bedrijf\www.ipcounter.nl\stat_counters.php on line 232

    en regel 232 is de laatste regel in het voorbeeld.. Iemand een idee?
    mcDavidmaandag 10 maart 2008 @ 20:32
    quote:
    Op maandag 10 maart 2008 20:03 schreef GioStyle het volgende:
    Ik heb mijn site iets aangepast en verder ingevuld.
    Het principe werkt gewoon alleen ik krijg 1 foutmelding.
    [..]

    Het gaat om het volgende stukje code:


    [ code verwijderd ]


    Ik snap dat hij die code aangeeft omdat die pagina nog niet in de array voorkomt.
    Maar hoe kan ik die fout mooi omzeilen?
    Dan help ik je hier maar gelijk

    Ik heb nog niet echt php-ervaring, maar lees dit ff: http://www.w3schools.com/php/php_switch.asp

    Zoals ik het begrijp zou hij als een pagina niet bestaat gewoon de default pagina moeten weergeven. Bestaat die wel?
    super-muffinmaandag 10 maart 2008 @ 20:41
    quote:
    Op maandag 10 maart 2008 20:22 schreef Chandler het volgende:
    Ik heb een klein probleempje maar kan het niet vinden, zit er al 20 minuten naar te kijken maar zie het niet.
    [ code verwijderd ]

    Bovenstaande stukje heb ik nu gecommend met /* en */ maar als ik deze verwijder krijg ik de volgende fout

    Parse error: syntax error, unexpected '}' in D:\www\Bedrijf\www.ipcounter.nl\stat_counters.php on line 232

    en regel 232 is de laatste regel in het voorbeeld.. Iemand een idee?
    Check je haakjes eens. En heb je wel eens gehoord van else if()? ;)

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <?php
    if($Condition)
    {
        
    // bla
    } else if($Alternative)
    {
        
    // bla
    } else
    {
        
    // bla
    }
    ?>
    SuperRembomaandag 10 maart 2008 @ 21:06
    quote:
    Op maandag 10 maart 2008 20:22 schreef Chandler het volgende:
    Parse error: syntax error, unexpected '}' in D:\www\Bedrijf\www.ipcounter.nl\stat_counters.php on line 232
    Wat doen die backticks daar?
    qu63maandag 10 maart 2008 @ 21:38
    quote:
    Op donderdag 6 maart 2008 19:21 schreef qu63 het volgende:

    [..]

    ik weet wel hoe het werkt, alleen wil ik weten hoe en wanneer zn mn cell-id 'uitlezen'. Mijn telefoon moet het toch op de een of andere manier meezenden maar dat onderscheppen is me dus nog niet gelukt..
    (n)iemand?

    of is dit een van de grote geheimen op het internet?
    Geqxonmaandag 10 maart 2008 @ 21:58
    quote:
    Op maandag 10 maart 2008 21:38 schreef qu63 het volgende:

    [..]

    (n)iemand?

    of is dit een van de grote geheimen op het internet?

    sssssst.
    qu63maandag 10 maart 2008 @ 22:06
    quote:
    Op maandag 10 maart 2008 21:58 schreef Geqxon het volgende:

    [..]

    sssssst.
    dus moet ik alleen zelf nog uitvinden hoe ik $data juist gevuld krijg?

    ik weet wel dat er proggies voor zijn die op mn telefoon draaien, maar niet of dat ook via php kan..
    Lightmaandag 10 maart 2008 @ 23:19
    quote:
    Op maandag 10 maart 2008 20:03 schreef GioStyle het volgende:
    Ik heb mijn site iets aangepast en verder ingevuld.
    Het principe werkt gewoon alleen ik krijg 1 foutmelding.
    [..]

    Het gaat om het volgende stukje code:
    [ code verwijderd ]

    Ik snap dat hij die code aangeeft omdat die pagina nog niet in de array voorkomt.
    Maar hoe kan ik die fout mooi omzeilen? :)
    1
    2
    3
    4
    5
    6
    <?php
    $pagina 
    = (!empty($_GET['pagina'])) ? $_GET['pagina'] : 'home';
    switch (
    $pagina) {
    ...
    }
    ?>

    Er zijn dan ook nog andere opties om het overzichtelijker te houden, maar da's voor later.
    droomkoninginmaandag 10 maart 2008 @ 23:43
    ik heb een contactformulier, het draait op meerdere websites zonder problemen...
    nu heb ik het geplaatst op www.mijndomeinnaam.nl bij een nieuwe hoster en het werkt niet meer zoals het hoort

    als ik de ontvanger instel als bijv: info@mijndomeinnaam.nl dan wordt het formulier netjes verstuurd naar dit adres.
    maar als ik de ontvanger instel als: info@anderedomeinnaam.nl dan komt de mail niet aan... ik krijg ook geen foutmelding

    als ik hetzelfde formulier gebruik op een website bij een andere hoster werkt het prima, dus met het script zelf zal niks mis zijn.

    heeft iemand een idee waar dit aan kan liggen? van de helpdesk van de nieuwe hoster ben ik tot nu toe nog niet wijzer geworden helaas
    mcDaviddinsdag 11 maart 2008 @ 00:19
    Waarschijnlijk draait je host PHP safe mode.
    Voor zover ik het begrijp gaat dat (ivm veiligheidsoverwegingen) moeilijk doen als je script andere domeinen probeert te benaderen. Maar meer weet ik er ook niet van, dus google het eens of wacht op iemand die er meer vanaf weet
    sabandinsdag 11 maart 2008 @ 00:24
    Zolang de afzender domein hetzelfde is als de domein waar het op draait zou het moeten werken.
    Lijkt me erg stug dat je niet mag mailen naar andere domeinen
    sabandinsdag 11 maart 2008 @ 00:29
    quote:
    Op maandag 10 maart 2008 20:03 schreef GioStyle het volgende:
    Ik heb mijn site iets aangepast en verder ingevuld.
    Het principe werkt gewoon alleen ik krijg 1 foutmelding.
    [..]

    Het gaat om het volgende stukje code:
    [ code verwijderd ]

    Ik snap dat hij die code aangeeft omdat die pagina nog niet in de array voorkomt.
    Maar hoe kan ik die fout mooi omzeilen?
    Waarom heb je na default nog een break?
    Waarom doe je geen include 'file.php' maar ('file.php') ?
    Thomassdinsdag 11 maart 2008 @ 01:46
    quote:
    Op maandag 10 maart 2008 20:03 schreef GioStyle het volgende:
    Ik heb mijn site iets aangepast en verder ingevuld.
    Het principe werkt gewoon alleen ik krijg 1 foutmelding.
    [..]

    Het gaat om het volgende stukje code:
    [ code verwijderd ]

    Ik snap dat hij die code aangeeft omdat die pagina nog niet in de array voorkomt.
    Maar hoe kan ik die fout mooi omzeilen? :)
    1
    2
    3
    4
    5
    6
    7
    <?php
    $bestand 
    = isset($_GET['pagina']) ? $_GET['pagina'] : 'home';
    $bestand .= '.php';
    if (
    file_exists($bestand))
        include 
    $bestand;
    else include 
    'error.php';
    ?>


    is dit misschien iets voor je? :)
    Chandlerdinsdag 11 maart 2008 @ 07:38
    quote:
    Op maandag 10 maart 2008 20:41 schreef super-muffin het volgende:
    Check je haakjes eens. En heb je wel eens gehoord van else if()?
    [ code verwijderd ]
    Ik was nog niet klaar met coden hé maar elseif zit er nu in
    quote:
    Op maandag 10 maart 2008 21:06 schreef SuperRembo het volgende:
    Wat doen die backticks daar?
    die heb ik dus zekers 20 minuten over het hoofd gezien
    WyriHaximusdinsdag 11 maart 2008 @ 08:30
    quote:
    Op maandag 10 maart 2008 21:58 schreef Geqxon het volgende:

    [..]

    sssssst.
    Oe interesant straks maar eens goed naar kijken !
    CraZaaydinsdag 11 maart 2008 @ 08:45
    quote:
    Op dinsdag 11 maart 2008 01:46 schreef Thomass het volgende:

    is dit misschien iets voor je?
    Dan zou ik toch voor de optie van Light gaan ipv deze gevaarlijke methode. Een bezoeker kan zo dus ieder .php bestand includen, zowel op het file system als remote.
    CraZaaydinsdag 11 maart 2008 @ 08:48
    quote:
    Op dinsdag 11 maart 2008 00:29 schreef saban het volgende:

    Waarom doe je geen include 'file.php' maar ('file.php') ?
    Omdat 'ie dat overzichtelijker vindt denk ik? In de meeste coding standards is het gangbaar om haakjes te gebruiken voor functies.
    Farenjidinsdag 11 maart 2008 @ 09:18
    quote:
    Op maandag 10 maart 2008 23:43 schreef droomkoningin het volgende:
    ik heb een contactformulier, het draait op meerdere websites zonder problemen...
    nu heb ik het geplaatst op www.mijndomeinnaam.nl bij een nieuwe hoster en het werkt niet meer zoals het hoort

    als ik de ontvanger instel als bijv: info@mijndomeinnaam.nl dan wordt het formulier netjes verstuurd naar dit adres.
    maar als ik de ontvanger instel als: info@anderedomeinnaam.nl dan komt de mail niet aan... ik krijg ook geen foutmelding

    als ik hetzelfde formulier gebruik op een website bij een andere hoster werkt het prima, dus met het script zelf zal niks mis zijn.

    heeft iemand een idee waar dit aan kan liggen? van de helpdesk van de nieuwe hoster ben ik tot nu toe nog niet wijzer geworden helaas
    Heb je geen andere smtp host die je kan gebruiken? Misschien eentje van je hoster? Je gebruikt nu waarschijnlijk localhost en die staat blijkbaar ingesteld dat die geen mail voor jou naar buiten relay't.
    Lightdinsdag 11 maart 2008 @ 09:32
    quote:
    Op dinsdag 11 maart 2008 08:45 schreef CraZaay het volgende:

    [..]

    Dan zou ik toch voor de optie van Light gaan ipv deze gevaarlijke methode. Een bezoeker kan zo dus ieder .php bestand includen, zowel op het file system als remote.
    Er zijn meer opties natuurlijk, en veilig combineren kan ook.
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <?php
    $veilig 
    = array('home''personalTwee''uniRelatedEen''uniRelatedTwee');
    $pagina = (!empty($_GET['pagina'])) ? $_GET['pagina'] : 'home';
    if(
    in_array($pagina$veilig)) {
        include 
    $pagina.'.php';
    } else {
        include 
    'home.php';
    }
    ?>
    CraZaaydinsdag 11 maart 2008 @ 11:28
    quote:
    Op dinsdag 11 maart 2008 09:32 schreef Light het volgende:

    [..]

    Er zijn meer opties natuurlijk, en veilig combineren kan ook.
    Daar zeg ik ook niets van, ik zei alleen dat het ene codevoorbeeld wat gewoon include wat een user wil onveilig is en niet op die manier klakkeloos overgenomen moet worden.
    Thomassdinsdag 11 maart 2008 @ 12:50
    quote:
    Op dinsdag 11 maart 2008 11:28 schreef CraZaay het volgende:

    [..]

    Daar zeg ik ook niets van, ik zei alleen dat het ene codevoorbeeld wat gewoon include wat een user wil onveilig is en niet op die manier klakkeloos overgenomen moet worden.
    Dan moeten users eerst weten wat de namen en paden zijn van de php bestanden, daarbuiten gebruik ik dit zelf ook maar zet ik er eerst een directory voor waarin mijn php bestanden staan, die directory weet de user niet en krijgen ze ook niet te weten en van die directory kunnen ze tevens geen index opvragen.

    Overigens denk ik dat degene die dit vroeg een 'dummy' is op het gebied van php etc. en zal het dus écht niet veel uitmaken voor wat betreft security op zijn website
    Farenjidinsdag 11 maart 2008 @ 13:01
    quote:
    Op dinsdag 11 maart 2008 12:50 schreef Thomass het volgende:

    Overigens denk ik dat degene die dit vroeg een 'dummy' is op het gebied van php etc. en zal het dus écht niet veel uitmaken voor wat betreft security op zijn website
    Ook voor dummies is security belangrijk. Security is niet een leuke optie voor geavanceerde programmeurs, maar een vereiste voor alle programmeurs. Op het moment dat je publiekelijk toegankelijke webapplicaties maakt moeten die veilig zijn, net zoals je een veilige auto moet hebben op het moment dat je je op de snelweg begeeft.

    En hoe eerder je dat leert, hoe beter. Een belangrijke grondregel: alle userinput is *per definitie nooit te vertrouwen*.
    CraZaaydinsdag 11 maart 2008 @ 13:30
    quote:
    Op dinsdag 11 maart 2008 12:50 schreef Thomass het volgende:

    Dan moeten users eerst weten wat de namen en paden zijn van de php bestanden, daarbuiten gebruik ik dit zelf ook maar zet ik er eerst een directory voor waarin mijn php bestanden staan, die directory weet de user niet en krijgen ze ook niet te weten en van die directory kunnen ze tevens geen index opvragen.
    "Security through obscurity" is geen security. Jij zet er wellicht een dir voor, maar je voorbeeld zou prima gebruikt kunnen worden om een bestand op een externe server te includen, etc. Dat wil je liever niet ivm Cross Site Scripting bijvoorbeeld.

    Ik kan dan op mijn site wat HTML plempen, zorgen dat een user naar een bepaalde URL gaat waar ik die HTML include op jouw manier, vervolgens het JS cookie uitlezen en met een form posten naar mijn site. En da's slechts één mogelijke toepassing
    Tarabassdinsdag 11 maart 2008 @ 13:55
    Ik zit met een probleempje. Ik ben bezig met een blog-pagina waar op de 'frontpage' het begin van het blogitem weergegeven wordt (dus bijv. max 100 karakters) en waarbij het hele bericht te lezen is via een link 'Lees verder', die aan het einde van de 100 karakters wordt weergegeven.

    Nu heb ik het voor elkaar om dus de gehele tekst te strippen op 100 karakters en na honderd karakters de link 'Lees verder' neer te zetten. Maar daarbij worden dus woorden in het midden afgekapt, wat erg lelijk is.

    Hoe kan ik er voor zorgen dat de string afgekapt wordt op de laatste spatie voor de max van 100 karakters en die vervangen woord door drie puntjes, zodat er altijd hele woorden worden weergegeven?
    qu63dinsdag 11 maart 2008 @ 14:09
    quote:
    Op dinsdag 11 maart 2008 13:55 schreef Tarabass het volgende:
    Ik zit met een probleempje. Ik ben bezig met een blog-pagina waar op de 'frontpage' het begin van het blogitem weergegeven wordt (dus bijv. max 100 karakters) en waarbij het hele bericht te lezen is via een link 'Lees verder', die aan het einde van de 100 karakters wordt weergegeven.

    Nu heb ik het voor elkaar om dus de gehele tekst te strippen op 100 karakters en na honderd karakters de link 'Lees verder' neer te zetten. Maar daarbij worden dus woorden in het midden afgekapt, wat erg lelijk is.

    Hoe kan ik er voor zorgen dat de string afgekapt wordt op de laatste spatie voor de max van 100 karakters en die vervangen woord door drie puntjes, zodat er altijd hele woorden worden weergegeven?
    $bericht = stripslashes($row['Inhoud1'])." ".stripslashes($row['Inhoud2'])." ".stripslashes($row['Inhoud3']);
    $bericht = strip_tags($bericht);
    $excerpt = preg_replace('#^((\w+\W*){0,15}).*?$#s', '\1', $bericht);
    echo " <td class=\"ber_\">".$excerpt."... <a href=\"message.php?id=".$row['ID']."\">Lees verder!</a></td>\n";

    Zo heb ik het in mijn geval gedaan
    eerste 15 woorden dus
    mcDaviddinsdag 11 maart 2008 @ 14:26
    quote:
    Op dinsdag 11 maart 2008 13:55 schreef Tarabass het volgende:
    Ik zit met een probleempje. Ik ben bezig met een blog-pagina waar op de 'frontpage' het begin van het blogitem weergegeven wordt (dus bijv. max 100 karakters) en waarbij het hele bericht te lezen is via een link 'Lees verder', die aan het einde van de 100 karakters wordt weergegeven.

    Nu heb ik het voor elkaar om dus de gehele tekst te strippen op 100 karakters en na honderd karakters de link 'Lees verder' neer te zetten. Maar daarbij worden dus woorden in het midden afgekapt, wat erg lelijk is.

    Hoe kan ik er voor zorgen dat de string afgekapt wordt op de laatste spatie voor de max van 100 karakters en die vervangen woord door drie puntjes, zodat er altijd hele woorden worden weergegeven?
    volgens mij kun je hier wel wat mee: http://www.w3schools.com/php/func_string_strrpos.asp
    Als je die vanaf positie 100 laat zoeken naar een spatie, geeft 'ie de positie waar je je bericht af moet kappen.
    CraZaaydinsdag 11 maart 2008 @ 15:06
    quote:
    Op dinsdag 11 maart 2008 14:09 schreef qu63 het volgende:

    Zo heb ik het in mijn geval gedaan
    eerste 15 woorden dus
    En hoe zorg je ervoor dat die 15 woorden geen 300 karakters bevatten?
    qu63dinsdag 11 maart 2008 @ 15:17
    quote:
    Op dinsdag 11 maart 2008 15:06 schreef CraZaay het volgende:

    [..]

    En hoe zorg je ervoor dat die 15 woorden geen 300 karakters bevatten?
    Ik tik(te) de berichten zelf
    Thomassdinsdag 11 maart 2008 @ 15:25
    quote:
    Op dinsdag 11 maart 2008 13:30 schreef CraZaay het volgende:

    [..]

    "Security through obscurity" is geen security. Jij zet er wellicht een dir voor, maar je voorbeeld zou prima gebruikt kunnen worden om een bestand op een externe server te includen, etc. Dat wil je liever niet ivm Cross Site Scripting bijvoorbeeld.

    Ik kan dan op mijn site wat HTML plempen, zorgen dat een user naar een bepaalde URL gaat waar ik die HTML include op jouw manier, vervolgens het JS cookie uitlezen en met een form posten naar mijn site. En da's slechts één mogelijke toepassing :)
    Hoe dan in dit voorbeeld:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <?php
    if (isset($_GET['p'])
        
    $page $_GET['p'];
    else 
    $page 'home';

    $path 'subpages/'.$page.'.php';
    if (
    file_exists($path))
        include 
    $path;
    else include 
    'subpages/home.php';
    ?>
    CraZaaydinsdag 11 maart 2008 @ 15:56
    Da's wel ff iets anders dan je eerdere codevoorbeeld he Maar ook hier zou je als je het pad weet met subpages/../../../bla.php in principe nog ver kunnen komen. Vandaar dat het mijn voorkeur zou hebben om gewoon een lijst bij te houden van paginanamen die okay zijn
    Farenjidinsdag 11 maart 2008 @ 16:02
    quote:
    Op dinsdag 11 maart 2008 15:25 schreef Thomass het volgende:

    [..]

    Hoe dan in dit voorbeeld:
    [ code verwijderd ]
    Dan komt er zometeen een slimmerik die script.php?p=../../../../andere/map/geheimscript.php opvraagt. Of stel je eens voor dat het script zelf op deze manier wordt geinclude... ik weet eigenlijk niet hoe php hier mee omgaat maar het kan best dat dit je server (tijdelijk) op zijn bek trekt.

    Je kan om dit te voorkomen beter ook checken op bijv dat er alleen letters en cijfers in de bestandsnaam mogen zitten (bijv met een regular expression). Zo niet, fallback naar "home".
    Thomassdinsdag 11 maart 2008 @ 16:02
    quote:
    Op dinsdag 11 maart 2008 15:56 schreef CraZaay het volgende:
    Da's wel ff iets anders dan je eerdere codevoorbeeld he Maar ook hier zou je als je het pad weet met subpages/../../../bla.php in principe nog ver kunnen komen. Vandaar dat het mijn voorkeur zou hebben om gewoon een lijst bij te houden van paginanamen die okay zijn
    Mja ok, op deze manier doe ik het (ongeveer), sowieso kun je volgens mij geen externe dingen includen en al helemaal niks buiten public_html (of heb ik het fout hier?), en wat er aan php geinclude kan worden kunnen ze ook op de normale manier bij, door het pad in te typen in de url balk enzo.. Maargoed wellicht heb je gelijk (tis alleen zoveel gedoe als je nieuwe paginas maakt )
    Tarabassdinsdag 11 maart 2008 @ 16:43
    quote:
    Op dinsdag 11 maart 2008 14:09 schreef qu63 het volgende:

    [..]

    $bericht = stripslashes($row['Inhoud1'])." ".stripslashes($row['Inhoud2'])." ".stripslashes($row['Inhoud3']);
    $bericht = strip_tags($bericht);
    $excerpt = preg_replace('#^((\w+\W*){0,15}).*?$#s', '\1', $bericht);
    echo " <td class=\"ber_\">".$excerpt."... <a href=\"message.php?id=".$row['ID']."\">Lees verder!</a></td>\n";

    Zo heb ik het in mijn geval gedaan :)
    eerste 15 woorden dus
    Bedankt voor je input, maar hier heb ik weinig aan. Bovendien vind ik je code nogal langdradig, en zou je misschien zoiets moeten proberen, en dan met een countertje of whatever als $no == 15 is:
    1
    2
    3
    4
    5
    6
    7
    <?php
    function count_words($str
     {
     
    $no count(explode(" ",$str));
     return 
    $no;
     }
    ?>

    Wat natuurlijk gewoon meedenken is want ik ben ook maar een naab ;)
    CraZaaydinsdag 11 maart 2008 @ 16:53
    quote:
    Op dinsdag 11 maart 2008 16:02 schreef Thomass het volgende:

    Mja ok, op deze manier doe ik het (ongeveer), sowieso kun je volgens mij geen externe dingen includen en al helemaal niks buiten public_html (of heb ik het fout hier?)
    Ja, daar ga je redelijk de mist in

    PHP kan gewoon overal komen waar je rechten hebt op het filesystem, dus afhankelijk van de server config kun je meestal ook hoger komen dan public_html. Daarnaast kun je met include ook gewoon pagina's laden van http://www.example.com/ bijvoorbeeld. Zoals ik al eerder zei kun je zo dus exploits krijgen, omdat je als je direct naar dat externe adres gaat niet met Javascript op jouwdomein.nl kunt komen, maar als je de JS include en draait op jouwdomein.nl dus wel
    Geqxondinsdag 11 maart 2008 @ 17:01
    Als je lui bent: Je kunt ook alle files in de directory waar het draaiende .PHP bestand staat scannen, en enkel die toelaten. Met bijvoorbeeld in_array of array_key_exists.
    Tarabassdinsdag 11 maart 2008 @ 17:15
    quote:
    Op dinsdag 11 maart 2008 14:26 schreef mcDavid het volgende:

    [..]

    volgens mij kun je hier wel wat mee: http://www.w3schools.com/php/func_string_strrpos.asp
    Als je die vanaf positie 100 laat zoeken naar een spatie, geeft 'ie de positie waar je je bericht af moet kappen.
    Bedankt voor je input. Ik heb even een snippet gemaakt, als het nog beter of korter kan hoor ik het graag natuurlijk. Ik zal de regel even met jullie delen:
    1
    2
    3
    <?php
    echo $bericht substr($bericht substr($bericht,0,100),0,substr(strrpos($bericht," "),0)) . "... <a href=''>Lees verder</a>";
    ?>


    CraZaaydinsdag 11 maart 2008 @ 17:28
    Niet getest, maar zou volgens mij ook moeten werken (jouw code snap ik niet eens, zoiets kun je echt beter over meerdere vars verspreiden als je over een maand nog wilt weten wat het deed).

    1
    2
    3
    <?php
    $bericht 
    substr($bericht0strpos($bericht' '100)-1) . '<a href="#">Lees verder</a>';
    ?>


    Zoek de eerste spatie na 100 karakters en gebruik de positie daarvan -1 (anders krijg je een string incl. de spatie) als length binnen substr().
    splendorwoensdag 12 maart 2008 @ 12:18
    Ik heb een aantal vragen mbt de taal instellen op een website.

    Als ik in php de headers overschrijf, moet ik dan Accept-language hebben of Content-language? De een is een respons en de ander een request header, maar vanuit waaruit bekeken dan? Doet de bezoeker van de site een aanvraag en is de php pagina die terug wordt gestuurd een respons?

    En verder heb ik de taal van de website ook nog in de meta tag gedefinieerd, moet het nog ergens anders?

    Doel van dit alles is dat ik een engels en nederlands gedeelte op mijn website heb ( www.site.nl/nl/ en www.site.nl/en/ ) en ik wil dat o.a. google het zo goed mogelijk indexeert.

    Nog meer tips zijn welkom!
    Geqxonwoensdag 12 maart 2008 @ 13:24
    "Accept-language" is de bezoeker die zegt zo van ... "Hey! Doe mij maar een Nederlandse pagina!", en "Content-language" is de server die een pagina afgeeft zo van "Hey! Dit is een Nederlandse pagina!".

    De taal in de meta-tag is makkelijk voor Google, evenals de taal in de HTML tag als je XHTML gebruikt. Maar ook daar kan de client gebruik van maken.
    CraZaaywoensdag 12 maart 2008 @ 13:30
    De accept-language is dus de request, en de content-language de respons
    splendorwoensdag 12 maart 2008 @ 13:41
    Okee bedankt, dan moet ik dus de content-language instellen.
    Ik gebruik geen xhtml, dus dan moet ik even kijken waar het lang= attribuut allemaal gebruikt mag worden van html4.01.

    Is het overigens niet zo dat de meta tag in principe overbodig wordt, wanneer je het al in de header vermeld? Want het is een http-equiv. Of geeft google meer prioriteit aan de meta dan aan de header? (in dit geval dan)
    Geqxonwoensdag 12 maart 2008 @ 13:58
    Lees anders Day 7: Identifying your language van A Dive Into Accessibility maar eens door, daar staat exact wat jij zoekt.