FOK!forum / Digital Corner / [PHP/(My)SQL] voor dummies - deel 55
JortKdinsdag 29 januari 2008 @ 12:52

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


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
  • JortKdinsdag 29 januari 2008 @ 12:52
    En de laatste post:
    quote:
    Op dinsdag 29 januari 2008 12:51 schreef JortK het volgende:
    Hoeveel trager dan?

    Ik werk op echt grote omgevingen (MSSQL) maar daar merk ik het echt niet

    Wat ik wel merk in performance is of je je joins left in de WHERE of in de FROM
    Dreammasterdinsdag 29 januari 2008 @ 12:56
    dat hangt ook af van de hoeveelheid data die in je tabel staat en hoeveel gebruik er van wordt gemaakt.
    vergelijk het maar eens in phpMyAdmin eerst met aliassen en daarna zonder.
    Tarabassdinsdag 29 januari 2008 @ 12:58
    tvp again
    Farenjidinsdag 29 januari 2008 @ 13:03
    quote:
    Op dinsdag 29 januari 2008 11:53 schreef Chandler het volgende:

    [..]

    Dat wist ik ook niet weer wat geleerd, vind zo ie zo dat aliassen vies zijn, het is imho duidelijker om gewoon de gehele tabelnaam te gebruiken, weet je gelijk wat waar voor dient!
    Als je een tabel een of meerdere keren met zichzelf joint dan ontkom je natuurlijk niet aan aliassen... dat het performance kost wist ik ook niet eigenlijk.
    Chandlerdinsdag 29 januari 2008 @ 13:13
    quote:
    Op dinsdag 29 januari 2008 13:03 schreef Farenji het volgende:

    [..]

    Als je een tabel een of meerdere keren met zichzelf joint dan ontkom je natuurlijk niet aan aliassen... dat het performance kost wist ik ook niet eigenlijk.
    Dat klopt maar als je een tabel meerdere keren koppelt doe je imho iets fout
    JortKdinsdag 29 januari 2008 @ 13:23
    quote:
    Op dinsdag 29 januari 2008 13:13 schreef Chandler het volgende:

    [..]

    Dat klopt maar als je een tabel meerdere keren koppelt doe je imho iets fout
    Nee hoor hoeft absoluut niet
    Dreammasterdinsdag 29 januari 2008 @ 13:29
    quote:
    Op dinsdag 29 januari 2008 13:13 schreef Chandler het volgende:

    [..]

    Dat klopt maar als je een tabel meerdere keren koppelt doe je imho iets fout
    Nee hoor.. in sommige situaties is dat noodzakelijk. Als je met parent_id's werkt bijvoorbeeld.
    Chandlerdinsdag 29 januari 2008 @ 13:56
    quote:
    Op dinsdag 29 januari 2008 13:23 schreef JortK het volgende:

    [..]

    Nee hoor hoeft absoluut niet
    Geef eens een voorbeeld
    qu63dinsdag 29 januari 2008 @ 14:04
    quote:
    Op dinsdag 29 januari 2008 12:58 schreef Tarabass het volgende:
    tvp again
    JortKdinsdag 29 januari 2008 @ 14:10
    quote:
    Op dinsdag 29 januari 2008 13:56 schreef Chandler het volgende:

    [..]

    Geef eens een voorbeeld ;)
    Als jij dat wilt ;)

    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
    SELECT TBL_MPM.MPM_ID,TBL_MPM.ORG_ID,TBL_MPM.MPM_TAB,SUBSTRING(TBL_MPM_009.MPM_TEXT,1,13) AS [TBL_MPM_VELD009],SUBSTRING(TBL_MPM_011.MPM_TEXT,1,192) AS [TBL_MPM_VELD011],SUBSTRING(TBL_MPM_016.MPM_TEXT,1,50) AS [TBL_MPM_VELD016],SUBSTRING(TBL_MPM_019.MPM_TEXT,1,192) AS [TBL_MPM_VELD019],TBL_MPM_022.MPM_TEXT AS [TBL_MPM_VELD022],TBL_MPM_023.MPM_TEXT AS [TBL_MPM_VELD023],TBL_MPM_027.MPM_TEXT AS [TBL_MPM_VELD027],TBL_MPM_028.MPM_TEXT AS [TBL_MPM_VELD028],TBL_MPM_032.MPM_TEXT AS [TBL_MPM_VELD032],TBL_MPM_033.MPM_TEXT AS [TBL_MPM_VELD033],TBL_MPM_038.MPM_TEXT AS [TBL_MPM_VELD038],TBL_MPM_039.MPM_TEXT AS [TBL_MPM_VELD039],TBL_MPM_040.MPM_TEXT AS [TBL_MPM_VELD040],TBL_MPM_041.MPM_TEXT AS [TBL_MPM_VELD041],CAST(CAST(TBL_MPM_037.MPM_DATA AS VARBINARY(8000)) AS VARCHAR(8000)) AS [TBL_MPM_VELD037],LEN(CAST(CAST(TBL_MPM_037.MPM_DATA AS VARBINARY(8000)) AS VARCHAR(8000))) AS [TBL_MPM_VELD037_Warning_Max_Length_8000],TBL_MPM_037.MPM_TEXT AS [TBL_MPM_VELD037_TextSource],TBL_MPM_037.MPM_DATA AS [TBL_MPM_VELD037_ImageSource],CAST(CAST(TBL_MPM_042.MPM_DATA AS VARBINARY(8000)) AS VARCHAR(8000)) AS [TBL_MPM_VELD042],LEN(CAST(CAST(TBL_MPM_042.MPM_DATA AS VARBINARY(8000)) AS VARCHAR(8000))) AS [TBL_MPM_VELD042_Warning_Max_Length_8000],TBL_MPM_042.MPM_TEXT AS [TBL_MPM_VELD042_TextSource],TBL_MPM_042.MPM_DATA AS [TBL_MPM_VELD042_ImageSource],SUBSTRING(TBL_MPM_044.MPM_TEXT,1,10) AS [TBL_MPM_VELD044],SUBSTRING(TBL_MPM_045.MPM_TEXT,1,10) AS [TBL_MPM_VELD045],SUBSTRING(TBL_MPM_046.MPM_TEXT,1,10) AS [TBL_MPM_VELD046],CAST(CAST(TBL_MPM_047.MPM_DATA AS VARBINARY(8000)) AS VARCHAR(8000)) AS [TBL_MPM_VELD047],LEN(CAST(CAST(TBL_MPM_047.MPM_DATA AS VARBINARY(8000)) AS VARCHAR(8000))) AS [TBL_MPM_VELD047_Warning_Max_Length_8000],TBL_MPM_047.MPM_TEXT AS [TBL_MPM_VELD047_TextSource],TBL_MPM_047.MPM_DATA AS [TBL_MPM_VELD047_ImageSource],SUBSTRING(TBL_MPM_048.MPM_TEXT,1,192) AS [TBL_MPM_VELD048]
    FROM TBL_MPM
    LEFT OUTER JOIN TBL_MPM AS TBL_MPM_009 ON TBL_MPM_009.MPM_PARENT_ID=TBL_MPM.MPM_ID AND TBL_MPM_009.MPM_TAB='A' AND TBL_MPM_009.MPM_FIELD='009'
    LEFT OUTER JOIN TBL_MPM AS TBL_MPM_011 ON TBL_MPM_011.MPM_PARENT_ID=TBL_MPM.MPM_ID AND TBL_MPM_011.MPM_TAB='A' AND TBL_MPM_011.MPM_FIELD='011'
    LEFT OUTER JOIN TBL_MPM AS TBL_MPM_016 ON TBL_MPM_016.MPM_PARENT_ID=TBL_MPM.MPM_ID AND TBL_MPM_016.MPM_TAB='A' AND TBL_MPM_016.MPM_FIELD='016'
    LEFT OUTER JOIN TBL_MPM AS TBL_MPM_019 ON TBL_MPM_019.MPM_PARENT_ID=TBL_MPM.MPM_ID AND TBL_MPM_019.MPM_TAB='A' AND TBL_MPM_019.MPM_FIELD='019'
    LEFT OUTER JOIN TBL_MPM AS TBL_MPM_022 ON TBL_MPM_022.MPM_PARENT_ID=TBL_MPM.MPM_ID AND TBL_MPM_022.MPM_TAB='A' AND TBL_MPM_022.MPM_FIELD='022'
    LEFT OUTER JOIN TBL_MPM AS TBL_MPM_023 ON TBL_MPM_023.MPM_PARENT_ID=TBL_MPM.MPM_ID AND TBL_MPM_023.MPM_TAB='A' AND TBL_MPM_023.MPM_FIELD='023'
    LEFT OUTER JOIN TBL_MPM AS TBL_MPM_027 ON TBL_MPM_027.MPM_PARENT_ID=TBL_MPM.MPM_ID AND TBL_MPM_027.MPM_TAB='A' AND TBL_MPM_027.MPM_FIELD='027'
    LEFT OUTER JOIN TBL_MPM AS TBL_MPM_028 ON TBL_MPM_028.MPM_PARENT_ID=TBL_MPM.MPM_ID AND TBL_MPM_028.MPM_TAB='A' AND TBL_MPM_028.MPM_FIELD='028'
    LEFT OUTER JOIN TBL_MPM AS TBL_MPM_032 ON TBL_MPM_032.MPM_PARENT_ID=TBL_MPM.MPM_ID AND TBL_MPM_032.MPM_TAB='A' AND TBL_MPM_032.MPM_FIELD='032'
    LEFT OUTER JOIN TBL_MPM AS TBL_MPM_033 ON TBL_MPM_033.MPM_PARENT_ID=TBL_MPM.MPM_ID AND TBL_MPM_033.MPM_TAB='A' AND TBL_MPM_033.MPM_FIELD='033'
    LEFT OUTER JOIN TBL_MPM AS TBL_MPM_038 ON TBL_MPM_038.MPM_PARENT_ID=TBL_MPM.MPM_ID AND TBL_MPM_038.MPM_TAB='A' AND TBL_MPM_038.MPM_FIELD='038'
    LEFT OUTER JOIN TBL_MPM AS TBL_MPM_039 ON TBL_MPM_039.MPM_PARENT_ID=TBL_MPM.MPM_ID AND TBL_MPM_039.MPM_TAB='A' AND TBL_MPM_039.MPM_FIELD='039'
    LEFT OUTER JOIN TBL_MPM AS TBL_MPM_040 ON TBL_MPM_040.MPM_PARENT_ID=TBL_MPM.MPM_ID AND TBL_MPM_040.MPM_TAB='A' AND TBL_MPM_040.MPM_FIELD='040'
    LEFT OUTER JOIN TBL_MPM AS TBL_MPM_041 ON TBL_MPM_041.MPM_PARENT_ID=TBL_MPM.MPM_ID AND TBL_MPM_041.MPM_TAB='A' AND TBL_MPM_041.MPM_FIELD='041'
    LEFT OUTER JOIN TBL_MPM AS TBL_MPM_037 ON TBL_MPM_037.MPM_PARENT_ID=TBL_MPM.MPM_ID AND TBL_MPM_037.MPM_TAB='A' AND TBL_MPM_037.MPM_FIELD='037'
    LEFT OUTER JOIN TBL_MPM AS TBL_MPM_042 ON TBL_MPM_042.MPM_PARENT_ID=TBL_MPM.MPM_ID AND TBL_MPM_042.MPM_TAB='A' AND TBL_MPM_042.MPM_FIELD='042'
    LEFT OUTER JOIN TBL_MPM AS TBL_MPM_044 ON TBL_MPM_044.MPM_PARENT_ID=TBL_MPM.MPM_ID AND TBL_MPM_044.MPM_TAB='A' AND TBL_MPM_044.MPM_FIELD='044'
    LEFT OUTER JOIN TBL_MPM AS TBL_MPM_045 ON TBL_MPM_045.MPM_PARENT_ID=TBL_MPM.MPM_ID AND TBL_MPM_045.MPM_TAB='A' AND TBL_MPM_045.MPM_FIELD='045'
    LEFT OUTER JOIN TBL_MPM AS TBL_MPM_046 ON TBL_MPM_046.MPM_PARENT_ID=TBL_MPM.MPM_ID AND TBL_MPM_046.MPM_TAB='A' AND TBL_MPM_046.MPM_FIELD='046'
    LEFT OUTER JOIN TBL_MPM AS TBL_MPM_047 ON TBL_MPM_047.MPM_PARENT_ID=TBL_MPM.MPM_ID AND TBL_MPM_047.MPM_TAB='A' AND TBL_MPM_047.MPM_FIELD='047'
    LEFT OUTER JOIN TBL_MPM AS TBL_MPM_048 ON TBL_MPM_048.MPM_PARENT_ID=TBL_MPM.MPM_ID AND TBL_MPM_048.MPM_TAB='A' AND TBL_MPM_048.MPM_FIELD='048'
    WHERE
    TBL_MPM.MPM_TAB='A' AND TBL_MPM.MPM_FIELD='GRD'


    Wanneer je met parent_id's werkt heb je het wel degelijk nodig ;)
    Chandlerdinsdag 29 januari 2008 @ 14:24
    Sjeetje
    JortKdinsdag 29 januari 2008 @ 14:53
    quote:
    Op dinsdag 29 januari 2008 14:24 schreef Chandler het volgende:
    Sjeetje
    Overtuigd dan of niet ?
    Chandlerdinsdag 29 januari 2008 @ 14:55
    Ja hoor, helemaal
    Geqxondinsdag 29 januari 2008 @ 15:00
    Bij tree-structuren ontkom je er ook niet aan.
    Jantehdinsdag 29 januari 2008 @ 15:25
    Is het mogelijk om php output te laten sturen terwijl hij nog aan het parsen is? Ik heb een script wat heel lang moet draaien en ik zou graag willen dat ik de voortgang al op mn scherm krijg terwijl hij nog bezig is, of moet ik dan aan de cli gaan denken oid?
    Dreammasterdinsdag 29 januari 2008 @ 15:27
    quote:
    Op dinsdag 29 januari 2008 15:25 schreef Janteh het volgende:
    Is het mogelijk om php output te laten sturen terwijl hij nog aan het parsen is? Ik heb een script wat heel lang moet draaien en ik zou graag willen dat ik de voortgang al op mn scherm krijg terwijl hij nog bezig is, of moet ik dan aan de cli gaan denken oid?
    dat kan met flush();
    Xcaliburdinsdag 29 januari 2008 @ 15:56
    quote:
    Op dinsdag 29 januari 2008 13:03 schreef Farenji het volgende:
    Als je een tabel een of meerdere keren met zichzelf joint dan ontkom je natuurlijk niet aan aliassen... dat het performance kost wist ik ook niet eigenlijk.
    Daar sta ik ook van te kijken eigenlijk.... ik maak meestal standaard een alias, eens een benchmarkje maken om te kijken hoeveel het scheelt
    PiRANiAdinsdag 29 januari 2008 @ 16:21
    quote:
    Op dinsdag 29 januari 2008 15:27 schreef Dreammaster het volgende:

    [..]

    dat kan met flush();
    Die ga ik onthouden
    schwa78dinsdag 29 januari 2008 @ 16:44
    quote:
    Op dinsdag 29 januari 2008 15:56 schreef Xcalibur het volgende:

    [..]

    Daar sta ik ook van te kijken eigenlijk.... ik maak meestal standaard een alias, eens een benchmarkje maken om te kijken hoeveel het scheelt
    Laat je de uitkomsten weten?

    Ik maak eigenlijk ook standaard aliassen (A)
    JortKdinsdag 29 januari 2008 @ 18:41
    quote:
    Op dinsdag 29 januari 2008 15:56 schreef Xcalibur het volgende:

    [..]

    Daar sta ik ook van te kijken eigenlijk.... ik maak meestal standaard een alias, eens een benchmarkje maken om te kijken hoeveel het scheelt
    Please post the results
    Xcaliburdinsdag 29 januari 2008 @ 19:41
    Ik maak eigenlijk nooit benchmarks, dus ik hoop dat ik een beetje iets zinnigs geproduceerd heb

    - Tabel met bijna 3940 records
    - Query 1: SELECT * FROM clients
    - Query 2: SELECT * FROM clients AS clients
    - Loop waarin de query 100x uitgevoerd wordt
    - PHP microtime die de tijd registreert voor en na de loop

    Gemiddelde resultaat over 10 metingen zonder alias: 10,82319 seconden
    Gemiddelde resultaat over 10 metingen met alias: 11,13025 seconden
    Verschil over 1000 queriesl: 2,83% trager met alias

    Dit is natuurlijk een zeer beperkt aantal queries wat ik gedraaid heb, maar ik denk wel dat het redelijk betrouwbaar is... Met alias is iets trager, maar ik denk dat je het op een per-query basis echt niet gaat merken, tenzij je echt veel bezoekers op je site hebt
    JortKdinsdag 29 januari 2008 @ 19:46
    quote:
    Op dinsdag 29 januari 2008 19:41 schreef Xcalibur het volgende:
    Ik maak eigenlijk nooit benchmarks, dus ik hoop dat ik een beetje iets zinnigs geproduceerd heb :P

    - Tabel met bijna 3940 records
    - Query 1: SELECT * FROM clients
    - Query 2: SELECT * FROM clients AS clients
    - Loop waarin de query 100x uitgevoerd wordt
    - PHP microtime die de tijd registreert voor en na de loop

    Gemiddelde resultaat over 10 metingen zonder alias: 10,82319 seconden
    Gemiddelde resultaat over 10 metingen met alias: 11,13025 seconden
    Verschil over 1000 queriesl: 2,83% trager met alias

    Dit is natuurlijk een zeer beperkt aantal queries wat ik gedraaid heb, maar ik denk wel dat het redelijk betrouwbaar is... Met alias is iets trager, maar ik denk dat je het op een per-query basis echt niet gaat merken, tenzij je echt veel bezoekers op je site hebt :)
    Ja heel leuk, maar niet echt praktijk gericht volgens mij :)

    Hoeveel velden bevat die tabel?

    Haal eens zoiets op

    1SELECT a.field1, a.field2, a.field3, a.field4 FROM clients a


    Mensen halen nooit een complete tabel op volgens mij :?

    En wie draait in één script 1000 queries :?

    Ik denk dat als je de praktijk zal bekijken dat het verschil te verwaarlozen is :)
    Xcaliburdinsdag 29 januari 2008 @ 19:51
    quote:
    Op dinsdag 29 januari 2008 19:46 schreef JortK het volgende:
    Hoeveel velden bevat die tabel?
    21 velden per rij
    Waarom zou ik minder velden ophalen, dan wordt het verschil toch alleen maar kleiner?
    quote:
    Op dinsdag 29 januari 2008 19:46 schreef JortK het volgende:
    En wie draait in één script 1000 queries
    Geen hond. 1 query duurt alleen maar 0,0001 seconde, en dan wordt het verschil zo lastig te maken....

    Hoe zou jij het benchmarken dan?
    Geqxondinsdag 29 januari 2008 @ 19:58
    Nu ik veel meer met OOP werk zal mijn totale systeem waarschijnlijk ook 2.83 procent trager worden. Niet interresant, want het programmeert wel stukken beter.
    Jantehdinsdag 29 januari 2008 @ 20:10
    Hoe kan ik zorgen dat php mijn geheugen leeg houdt? Ik heb een functie die ik automatisch laat loopen die elke keer een pagina ophaalt door middel van curl, maar het lijkt wel alsof hij deze in zijn geheugen houdt ook al gebruik ik curl_close(). Elke pagina is rond de 10kb dus na 300 pagina's stopt het script omdat de geheugenlimiet bereikt is, niet ideaal dus. Ik heb ook al de variabele met alle html geunset nadat ik deze niet meer nodig heb maar dat verandert ook niks aan het geheugengebruik. Kan ik op een of andere manier het geheugen gedeeltelijk 'leeg' maken of is het enige wat er op zit de geheugenlimiet verhogen (wat natuurlijk geen oplossing is aangezien ik niet weet hoeveel pagina's er gedownload moeten worden).
    Farenjidinsdag 29 januari 2008 @ 20:43
    Klinkt als een geheugenlek. Welke php versie gebruik je?
    Jantehdinsdag 29 januari 2008 @ 20:53
    quote:
    Op dinsdag 29 januari 2008 20:43 schreef Farenji het volgende:
    Klinkt als een geheugenlek. Welke php versie gebruik je?
    5.2.5.

    Ik snap er zelf ook niks van, hij zou toch het geheugen weer vrij moeten maken bij curl_close() en als ik variabelen unset?
    ralfiedinsdag 29 januari 2008 @ 21:26
    In principe wel, maar 300 paginas ophalen met curl is misschien niet iets waar het voor gemaakt is...

    je kunt wat kloten met memory_get_usage(), misschien geeft het wat aanwijzingen over waar het fout gaat
    Jantehdinsdag 29 januari 2008 @ 21:42
    quote:
    Op dinsdag 29 januari 2008 21:26 schreef ralfie het volgende:
    In principe wel, maar 300 paginas ophalen met curl is misschien niet iets waar het voor gemaakt is...

    je kunt wat kloten met memory_get_usage(), misschien geeft het wat aanwijzingen over waar het fout gaat
    ongetwijfeld, maar dat zijn andere functies voor dit doeleinde ook niet.

    Met memory_get_usage() zie ik heel mooi dat na elk rondje er ongeveer 10 kb bijkomt, wat precies de grootte van de pagina is.
    Mordrethdinsdag 29 januari 2008 @ 23:09
    tvp enz .
    Farenjidinsdag 29 januari 2008 @ 23:23
    quote:
    Op dinsdag 29 januari 2008 21:42 schreef Janteh het volgende:

    [..]

    ongetwijfeld, maar dat zijn andere functies voor dit doeleinde ook niet.

    Met memory_get_usage() zie ik heel mooi dat na elk rondje er ongeveer 10 kb bijkomt, wat precies de grootte van de pagina is.
    Post je script eens?
    Litsowoensdag 30 januari 2008 @ 02:12
    Vraagje, ik ben een tag-systeem aan het bouwen en om de ingevoerde tags op te splitsen gebruik ik

    1      $tagsarray = preg_split('/[^a-zA-Z\'"-]+/', $tags, -1, PREG_SPLIT_NO_EMPTY); 


    De pattern heb ik ergens gecopypaste van een script waarbij alle woorden uit een zin werden gesplitst, maar ik kom er nu achter dat hij zo dus ook cijfers weglaat. Eigenlijk wil ik wel datums in kunnen voeren, dus de -, de / en de cijfers wil ik er in laten staan. Ik kom alleen maar niet uit hoe je dat nou voor elkaar krijgt, ik krijg de pattern gewoon niet ontcijferd
    Iemand?
    PiRANiAwoensdag 30 januari 2008 @ 08:38
    quote:
    $tagsarray = preg_split('/[^a-zA-Z0-9-\/\'"-]+/', $tags, -1, PREG_SPLIT_NO_EMPTY);
    denk ik
    -J-D-woensdag 30 januari 2008 @ 09:12
    Op http://85.92.147.131/~obcreunie/ ben ik bezig met het maken van een site in Joomla. Normaal gesproken is het in Joomla niet erg als je van PHP weinig afweet, aangezien er een mooi CMS omheen zit, maar ik heb het nu even nodig.
    Op die site je het logo van "Over Betuwe College" in beeld staan. Deze probeer ik te centreren.
    Volgens mij wordt deze banner geladen vanuit dit stukje:
    quote:
    <td width="100%" valign="top" class="body_outer">
    <?php if (mosCountModules('banner')) { ?>
    <div class="banner_inner"><?php mosLoadModules( 'banner', 1 ); ?></div>
    <?php } ?>
    <?php if ( $user1 > 0 ) {?>
    <table width="100%" border="0" cellpadding="0" cellspacing="0" class="content_table">
    <?php
    if ($colspan > 0) {
    ?>
    <tr valign="top">
    <?php
    if ( $user1 > 0 ) {
    ?>
    <td width="50%">
    <div class="user1_inner">
    <?php mosLoadModules ( 'user1' ); ?>
    </div>
    </td>
    In mn CSS file staat
    quote:
    #banner_inner {
    float: left;
    padding: 0px;
    height: 70px;
    border: 1px solid #FCFCFC;
    Hoe kan ik het aanpassen zodat het plaatje gecentreerd staat?
    Erikwoensdag 30 januari 2008 @ 11:12
    ik wil in een veld een getal opslaan met 2 decimalen. Met phpmyadmin kies ik het type double voor dit veld, maar als ik een rond bedrag invul (dus met 2 nullen na de punt), wordt het getal weggeschreven als getal zonder decimalen.

    Welke type moet ik kiezen om alle bedragen als 2 decimalen opgeslagen te krigen?
    Chandlerwoensdag 30 januari 2008 @ 11:18
    Double kort alleen af als er een 0 achter aan staat. Toch? probeer eens 25,66
    Erikwoensdag 30 januari 2008 @ 11:33
    Klopt, 25.66 wordt weggeschreven als 25.66, maar bijvoorbeeld 145.00 wordt weggeschreven als 145

    Ik zou graag zien dat 145.00 ook als 145.00 wordt weggeschreven naar de database, maar hoe?

    -edit-

    Of is sprintf ook een nette oplossing hiervoor?

    1
    2
    3
    <?php
    sprintf
    ('%01.2f'$variable
    ?>


    [ Bericht 58% gewijzigd door Erik op 30-01-2008 11:42:32 ]
    Geqxonwoensdag 30 januari 2008 @ 11:47
    Afaik kan dat alleen als string. Mijn tip: Schrijf het als echte integer naar de database, en voeg die 00 (str_pad?) er in de presentatie-laag pas aan toe.
    Farenjiwoensdag 30 januari 2008 @ 12:10
    Gewoon als double onafgerond opslaan en in je code inderdaad sprintf gebruiken om te formatteren, dat is imo het netste en krijg je ook geen afrondingsfouten. Maar je hebt in mysql ook het type DECIMAL(M,N) type, als je perse een vast aantal getallen achter de komma wil hebben (maar ik kan niet echt een goede reden bedenken hiervoor).
    Dreammasterwoensdag 30 januari 2008 @ 12:27
    quote:
    Op woensdag 30 januari 2008 11:47 schreef Geqxon het volgende:
    Afaik kan dat alleen als string. Mijn tip: Schrijf het als echte integer naar de database, en voeg die 00 (str_pad?) er in de presentatie-laag pas aan toe.
    number_format($getal, 2);
    Erikwoensdag 30 januari 2008 @ 13:02
    Dank voor jullie tips, schrijf hem nu weg zonder de decimalen, in de presentatielaag gebruik ik number_format
    Timenswoensdag 30 januari 2008 @ 13:02
    Okay ik heb een leuke voor jullie:

    met HTMLspecialchars wil hij bij het uitlezen van mn DB niet een <br> zetten(alles komt achterelkaar aan)
    En als ik str_replace doe, krijg ik letterlijk <BR> tussen de woorden te zien... Howcome?
    Dreammasterwoensdag 30 januari 2008 @ 13:05
    je gooit het met htmlspecialchars(); in de database? dan moet je bij het uitlezen htmlspecialchars_decode(); gebruiken
    Timenswoensdag 30 januari 2008 @ 13:05
    quote:
    Op woensdag 30 januari 2008 13:05 schreef Dreammaster het volgende:
    je gooit het met htmlspecialchars(); in de database? dan moet je bij het uitlezen htmlspecialchars_decode(); gebruiken
    Waar moet ik dat omheen zetten? om mijn hele lus?(Met tabel en alles erbij)
    Dreammasterwoensdag 30 januari 2008 @ 13:11
    in de variabele waar je html in staat... maar ik zie het nut niet echt om iets met htmlspecialchars in de database te zetten om het vervolgens weer de decoden...
    Timenswoensdag 30 januari 2008 @ 13:13
    quote:
    Op woensdag 30 januari 2008 13:11 schreef Dreammaster het volgende:
    in de variabele waar je html in staat... maar ik zie het nut niet echt om iets met htmlspecialchars in de database te zetten om het vervolgens weer de decoden...

    Sowieso niet, die HTMLspecialchars staat erin zodat ik quotjes enz. kan typen... maar niet echt aardig dat ie die BR dan niet pakt..
    Timenswoensdag 30 januari 2008 @ 13:14
    anywho..

    1
    2
    3
    4
    5
    6
    7
    8
    9
          $_POST['name'] = addslashes($_POST['name']);
          $_POST['name'] = htmlspecialchars($_POST['name']);
          $_POST['message'] = addslashes($_POST['message']);
          $_POST['message'] = htmlspecialchars($_POST['message']);

          if($_POST['name'] && $_POST['message']){
             $query = "INSERT INTO reacties(naam, bericht, getID) VALUES ('$_POST[name]', '$_POST[message]', '$_GET[id]')";
             mysql_query($query);
          }


    Das de query
    Dreammasterwoensdag 30 januari 2008 @ 13:43
    probeer het volgende eens in plaats van addslashes en htmlspecialchars
    1
    2
    3
    <?php
    $_POST
    ['name'] = mysql_real_escape_string($_POST['name']);
    ?>
    Tarabasswoensdag 30 januari 2008 @ 13:57
    En escapen doe je in de query natuurlijk O-)

    1
    2
    3
    4
    5
    6
    7
    8
    9
    <?php
          $name 
    $_POST['name'];
          
    $message $_POST['message'];

          if(
    is_string($name) && is_string($message) {
             
    $query "INSERT INTO reacties(naam, bericht, getID) VALUES ('" mysql_real_escape_string($name) . "' , '" mysql_real_escape_string($message) . "', '$_GET[id]')";
             
    mysql_query($query);
          }
    ?>
    Geqxonwoensdag 30 januari 2008 @ 14:17
    Escapen in de query is persoonlije voorkeur, zelf vind ik het mooier om in een sprintf constructie te werken.

    1
    2
    3
    4
    5
    6
    7
    <?php
    $sql 
    sprintf(  "INSERT INTO reacties (naam, bericht, getID) VALUES ('%s', '%s', %d)",
                      
    mysql_real_escape_string($name), 
                      
    mysql_real_escape_string($message), 
                      
    $_GET['id'] );
    mysql_query($sql);
    ?>


    [ Bericht 51% gewijzigd door Geqxon op 30-01-2008 14:28:35 ]
    Litsowoensdag 30 januari 2008 @ 14:59
    quote:
    Op woensdag 30 januari 2008 08:38 schreef PiRANiA het volgende:

    [..]

    denk ik
    Dankje, ik probeer het even.
    Kan je ook uitleggen waarom? Klopt het dat je binnen de [haakjes] staat wat er wél mag? Wat doen dan de slashes en bv. die plus buiten de haakjes, ook in het origineel?
    Geqxonwoensdag 30 januari 2008 @ 15:06
    quote:
    Op woensdag 30 januari 2008 14:59 schreef Litso het volgende:

    [..]

    Dankje, ik probeer het even.
    Kan je ook uitleggen waarom? Klopt het dat je binnen de [haakjes] staat wat er wél mag? Wat doen dan de slashes en bv. die plus buiten de haakjes, ook in het origineel?
    Afaik omsluiten de haakjes een collectie van karakters en tekens van wat er voor mag komen.
    -J-D-woensdag 30 januari 2008 @ 18:08
    quote:
    Op woensdag 30 januari 2008 09:12 schreef -J-D- het volgende:
    Op http://85.92.147.131/~obcreunie/ ben ik bezig met het maken van een site in Joomla. Normaal gesproken is het in Joomla niet erg als je van PHP weinig afweet, aangezien er een mooi CMS omheen zit, maar ik heb het nu even nodig.
    Op die site je het logo van "Over Betuwe College" in beeld staan. Deze probeer ik te centreren.
    Volgens mij wordt deze banner geladen vanuit dit stukje:
    [..]

    In mn CSS file staat
    [..]

    Hoe kan ik het aanpassen zodat het plaatje gecentreerd staat?
    Iemand nog een idee voor dit "probleem"?
    Tarabasswoensdag 30 januari 2008 @ 18:13
    quote:
    Op woensdag 30 januari 2008 18:08 schreef -J-D- het volgende:
    Iemand nog een idee voor dit "probleem"?
    Niet echt een probleem die hier thuis hoort, aangezien het gaat over css en html. Iig kan je wat proberen met die float:left; maar dat is moeilijk zeggen aangezien niet de gehele code duidelijk is.

    Je moet weten waar dat plaatje in opgesloten wordt en hoe breed dat is. Dat zul je of breder moeten maken en een text-align:center; mee moeten geven in css of dus die float:left; weghalen.
    -J-D-woensdag 30 januari 2008 @ 18:57
    Ok, dat ga ik proberen.

    Andere vraag waar google me nog heeft kunnen helpen:
    Hoe benader ik vanuit Joomla een tabel uit de mysql-database? Ik weet de code, dat is het probleem niet. Maar waar in Joomla laat ik die opdracht achter zodat die tabel op een pagina verschijnt?
    Jantehwoensdag 30 januari 2008 @ 19:26
    Goed ik wil mijn nieuwe projectje met OOP gaan maken, omdat ik ik hier niks van af weet en het me toch wel veel duidelijker lijkt, maar waar kan ik een goede tutorial/uitleg/boek vinden wat je leert OOP te coden met een 'normale' codestijl achtergrond? Ik heb her en der wat gezocht maar nog niks echt geschikt gevonden.
    Farenjidonderdag 31 januari 2008 @ 09:08
    quote:
    Op woensdag 30 januari 2008 14:17 schreef Geqxon het volgende:
    Escapen in de query is persoonlije voorkeur, zelf vind ik het mooier om in een sprintf constructie te werken.
    Leer gewoon aan om altijd placeholders te gebruiken voor je sql query argumenten, dat heeft php afgekeken van perl maar met een goede reden. Het is veel beter (en efficienter, als je dezelfde query vaker gebruikt) dan dat ranzige gehack met dat ge-escape enzo want sql injection wordt er automatisch onmogelijk door gemaakt zonder dat je daar zelf nog over in hoeft te zitten.

    http://www.marksiedle.com/show_article.php?cat=3&id=11
    SuperRembodonderdag 31 januari 2008 @ 11:03
    quote:
    Op donderdag 31 januari 2008 09:08 schreef Farenji het volgende:
    [..]
    Leer gewoon aan om altijd placeholders te gebruiken voor je sql query argumenten, [...]
    http://www.marksiedle.com/show_article.php?cat=3&id=11
    Of gebruik PDO.
    Litsodonderdag 31 januari 2008 @ 12:17
    Ok, even een logical operators vraagje. Ik heb een functie in mediawiki gebouwd waarbij ik tags toevoeg, en bij iedere verandering wordt dat gelogged door de functie changeTags() aan te roepen met daarin o.a. de titel, user, timestamp, en (belangrijk) of het plaatje in de gallery stond, er nu in staat, wat de oude tags waren en wat de nieuwe tags waren.

    Nu heb ik 5 situaties kunnen bedenken, waarbij deze variabelen elk verschillen, en wel als volgt:

    uploaden van een bestand
    oldig: '' , newig: '1' (ig is inGallery)
    oldtags: '', newtags: x (maakt niet uit, de nieuwe tags)

    in gallery plaatsen:
    oldig: '0' newig: '1'
    oldtags: '', newtags: x

    uit de gallery halen:
    oldig: '1', newig: '0'
    oldtags: x, newtags: '' (wanneer een afbeelding uit de gallery wordt gehaald worden de tags verwijderd)

    tags wijzigen:
    oldig: '1', newig: '1'
    oldtags: x, newtags: y (maakt beide niet uit, als ze maar verschillen)

    afbeelding deleten (en dus de tags)
    oldig: '1', newig: ''
    oldtags: x, newtags: ''

    (deleten van een afbeelding die toch al niet in de gallery stond is op dit moment niet zo interessant, evenals het uploaden van een image die niet in de gallery gezet wordt)

    Hoe kan ik dit nu het beste in de database gooien. In de changeTags() een if constructie bouwen om alle mogelijke situaties af te vangen? Bij het aanroepen van de changeTags() een variabele meegeven waarin ik zeg wat voor soort wijziging het is? Of gewoon helemaal niet in de database zetten omdat ik het er toch wel uit af kan lezen?

    In dat laatste geval: als ik de veranderingen dan weer wil geven, wat is dán de meest praktische manier om te kijken onder welke situatie een log valt? een if-else constructie? of proberen zo efficient mogelijk if-jes te nesten?
    Geqxondonderdag 31 januari 2008 @ 13:18
    Binair het verschil tussen oud en nieuw bekijken, en dat in de database wegschrijven? Een tabel genaamd "History" oid?
    Litsodonderdag 31 januari 2008 @ 13:23
    quote:
    Op donderdag 31 januari 2008 13:18 schreef Geqxon het volgende:
    Binair het verschil tussen oud en nieuw bekijken, en dat in de database wegschrijven? Een tabel genaamd "History" oid?
    Hmm, ik begrijp niet wat je bedoelt?
    Ik hou wel een changelog bij in elk geval, maar geen daadwerkelijke geschiedenis per file of tag. Wanneer ik een plaatje verwijder kijk ik eerst wat de oude ingallery status en de tags waren, dan verwijder ik het plaatje en de tags, en vervolgens zet ik in de changelog wat de oude en nieuwe ingallery status en de oude en nieuwe tags waren.
    Of bedoel je dat ik dan in de log gewoon alsnog behalve die info ook moet neerzetten wat voor type wijziging het was?
    Tarabassdonderdag 31 januari 2008 @ 14:13
    quote:
    Op donderdag 31 januari 2008 09:08 schreef Farenji het volgende:

    [..]

    Leer gewoon aan om altijd placeholders te gebruiken voor je sql query argumenten, dat heeft php afgekeken van perl maar met een goede reden. Het is veel beter (en efficienter, als je dezelfde query vaker gebruikt) dan dat ranzige gehack met dat ge-escape enzo want sql injection wordt er automatisch onmogelijk door gemaakt zonder dat je daar zelf nog over in hoeft te zitten.

    http://www.marksiedle.com/show_article.php?cat=3&id=11
    Dit is interessant
    qu63donderdag 31 januari 2008 @ 15:43
    Heeft er iemand enig idee hoe ik het makkelijkst een .md5 (of een .txt-file met md5-waarden) kanuitlezen?
    het formaat van de .md5/.txt is ongeveer zo:
    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
    ; Fsum Frontend v1.5.1
    ;
    ; Generated on 2008-01-31 at 15:22:08
    ;
    ; Size: 620 bytes, Creation date: 2006-03-15 14:34:33, Modification date: 2006-03-15 14:34:33
    e59d318ae34e9190f51e10544d17ab9a *POTWDVD019 - Rock Aid America - The Making of Smoke On The Water.md5
    ; Size: 2021 bytes, Creation date: 2006-03-15 14:34:34, Modification date: 2006-03-15 14:34:34
    a9417892c908eef3c573220b6a24c3bf *POTWDVD019.txt
    ; Size: 14309 bytes, Creation date: 2006-03-15 14:34:08, Modification date: 2006-03-15 14:34:09
    65eccd74397d7a6fa403d871f30870a1 *VIDEO_TS\VIDEO_TS.BUP
    ; Size: 26597 bytes, Creation date: 2006-03-15 14:34:10, Modification date: 2006-03-15 14:34:11
    65eccd74397d7a6fa403d871f30870a1 *VIDEO_TS\VIDEO_TS.IFO
    ; Size: 73701 bytes, Creation date: 2006-03-15 14:34:12, Modification date: 2006-03-15 14:34:12
    196d82e1f7afacc6ea4f4a1caa0dbc2f *VIDEO_TS\VIDEO_TS.VOB
    ; Size: 114661 bytes, Creation date: 2006-03-15 14:34:13, Modification date: 2006-03-15 14:34:19
    f7e5eb930e876929c42064702dc9a111 *VIDEO_TS\VTS_01_0.BUP
    ; Size: 155621 bytes, Creation date: 2006-03-15 14:34:20, Modification date: 2006-03-15 14:34:23
    f7e5eb930e876929c42064702dc9a111 *VIDEO_TS\VTS_01_0.IFO
    ; Size: 10924005 bytes, Creation date: 2006-03-15 14:34:34, Modification date: 2006-03-15 15:24:07
    5defea3427c04218c81dff47ee69f1a0 *VIDEO_TS\VTS_01_0.VOB
    ; Size: 1083848677 bytes, Creation date: 2006-03-15 15:24:08, Modification date: 2006-03-28 03:14:40
    72b9c827ec29e43ce356b8733e5e2957 *VIDEO_TS\VTS_01_1.VOB
    ; Size: 2156382181 bytes, Creation date: 2006-04-02 13:17:52, Modification date: 2006-04-18 10:15:47
    d1db84986d126e5838f167bd52e3be56 *VIDEO_TS\VTS_01_2.VOB
    ; Size: 3229100005 bytes, Creation date: 2006-04-03 14:09:27, Modification date: 2006-04-16 17:39:54
    48e67b2589ddc5e60ef2e156d4e23b0b *VIDEO_TS\VTS_01_3.VOB
    ; Size: 3329441765 bytes, Creation date: 2006-04-08 06:02:52, Modification date: 2006-04-08 08:19:34
    c308f264d32ff5b645e9b9485e7b34c1 *VIDEO_TS\VTS_01_4.VOB

    of zo
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    a9417892c908eef3c573220b6a24c3bf *POTWDVD019.txt
    65eccd74397d7a6fa403d871f30870a1 *VIDEO_TS\VIDEO_TS.BUP
    65eccd74397d7a6fa403d871f30870a1 *VIDEO_TS\VIDEO_TS.IFO
    196d82e1f7afacc6ea4f4a1caa0dbc2f *VIDEO_TS\VIDEO_TS.VOB
    f7e5eb930e876929c42064702dc9a111 *VIDEO_TS\VTS_01_0.BUP
    f7e5eb930e876929c42064702dc9a111 *VIDEO_TS\VTS_01_0.IFO
    5defea3427c04218c81dff47ee69f1a0 *VIDEO_TS\VTS_01_0.VOB
    72b9c827ec29e43ce356b8733e5e2957 *VIDEO_TS\VTS_01_1.VOB
    d1db84986d126e5838f167bd52e3be56 *VIDEO_TS\VTS_01_2.VOB
    48e67b2589ddc5e60ef2e156d4e23b0b *VIDEO_TS\VTS_01_3.VOB
    c308f264d32ff5b645e9b9485e7b34c1 *VIDEO_TS\VTS_01_4.VOB


    Het is de bedoeling dat het bestand uitgelezen wordt en dan in een database komt.
    en dan de volgende waarden in de database:
    1
    2
    3
    dvd naam (zelf opgeven)
    filename (uit /md5/.txt)
    hash (uit /md5/.txt)


    Uit eindelijk is het de bedoeling:
    - dat een hash-code op te vragen is om te kijken bij welke dvd en filename het hoort.
    - dat een dvd gekozen kan worden en dat er een overzicht komt met filenames en hashcodes.
    - dat men zelf een .md5/.txt-file kan uploaden, welke gestript wordt en in de datase komt.

    Iemand enig idee :?
    of het überhaupt te doen is :?
    Timensdonderdag 31 januari 2008 @ 16:42
    wederom een klein vraagje:
    Weten jullie hoe ik 1 enkele array kan verwijderen uit een tabel?
    1$query="DELETE FROM home WHERE homeID = '$id'";

    Die query, maar ik wil dus dat de andere arrays met zelfde ID blijven staan, behalve diegene die ik delete..
    Ik wil dus niet dat heel homeID 1 verdwijnt, alleen een stukje daarvan...

    edit:
    $id is een $_GET
    Farenjidonderdag 31 januari 2008 @ 16:44
    - de tekst per regel inlezen
    - als de regel met een ; begint: skippen
    - met een regexp de md5 hash en de filename eruitfilteren:

    Ongetest:
    /^([a-f0-9]{32})/ voor de md5 (het gaat om het gedeelte tussen haakjes)
    /\*(.*)$/ voor de filename

    De md5 hashcode is (per definitie!) uniek voor een bestand dus die kun je als key gebruiken in je database.
    qu63donderdag 31 januari 2008 @ 16:49
    quote:
    Op donderdag 31 januari 2008 16:44 schreef Farenji het volgende:
    - de tekst per regel inlezen
    werkt dat ook met upload?
    Of is een textarea makkelijker?
    quote:
    - als de regel met een ; begint: skippen
    - met een regexp de md5 hash en de filename eruitfilteren:

    Ongetest:
    /^([a-f0-9]{32})/ voor de md5 (het gaat om het gedeelte tussen haakjes)
    /\*(.*)$/ voor de filename

    De md5 hashcode is (per definitie!) uniek voor een bestand dus die kun je als key gebruiken in je database.
    helaas niet echt
    wikipedia:
    quote:
    In 2007 is het een groep wetenschappers gelukt om twaalf verschillende PDF-bestanden te maken met dezelfde hashcode. De auteurs hebben daarmee aangetoond dat MD5 beter niet meer gebruikt kan worden als een verificatiemethode.
    qu63donderdag 31 januari 2008 @ 16:57
    Maar in mijn geval zijn de bestanden uniek genoeg
    qu63donderdag 31 januari 2008 @ 16:58
    quote:
    Op donderdag 31 januari 2008 16:42 schreef Timens het volgende:
    wederom een klein vraagje:
    Weten jullie hoe ik 1 enkele array kan verwijderen uit een tabel?
    [ code verwijderd ]

    Die query, maar ik wil dus dat de andere arrays met zelfde ID blijven staan, behalve diegene die ik delete..
    Ik wil dus niet dat heel homeID 1 verdwijnt, alleen een stukje daarvan...

    edit:
    $id is een $_GET
    LIMIT 1?

    lama
    Timensdonderdag 31 januari 2008 @ 17:03
    quote:
    Op donderdag 31 januari 2008 16:58 schreef qu63 het volgende:

    [..]

    LIMIT 1?

    lama
    het is een DELETE niet een SELECT...?
    Farenjidonderdag 31 januari 2008 @ 17:24
    quote:
    Op donderdag 31 januari 2008 16:57 schreef qu63 het volgende:
    Maar in mijn geval zijn de bestanden uniek genoeg
    Als je echt zekerheid wil hebben dat het uniek is moet je een SHA1 hash gebruiken.
    -J-D-donderdag 31 januari 2008 @ 17:43
    quote:
    Op woensdag 30 januari 2008 18:57 schreef -J-D- het volgende:
    Ok, dat ga ik proberen.

    Andere vraag waar google me nog heeft kunnen helpen:
    Hoe benader ik vanuit Joomla een tabel uit de mysql-database? Ik weet de code, dat is het probleem niet. Maar waar in Joomla laat ik die opdracht achter zodat die tabel op een pagina verschijnt?
    Opgelost via Fabrik.
    Op mijn opzetje van de site kan je het werkend zien.
    Als je het ook wil en Fabrik lastig vindt, geef ik je groot gelijk.
    Ik weet ook alleen hoe ik een tabel op een site kan plaatsen.
    Meer niet.
    qu63donderdag 31 januari 2008 @ 18:00
    quote:
    Op donderdag 31 januari 2008 17:24 schreef Farenji het volgende:

    [..]

    Als je echt zekerheid wil hebben dat het uniek is moet je een SHA1 hash gebruiken.
    de kans dat een VTS_01_0.VOB van 0,99 GB van een andere film dezelfde hash heeft lijkt mij vrij klein
    MD5 voldoet dus
    Dreammasterdonderdag 31 januari 2008 @ 18:40
    quote:
    Op donderdag 31 januari 2008 17:03 schreef Timens het volgende:

    [..]

    het is een DELETE niet een SELECT...?
    LIMIT 1 werkt ook bij DELETE en lijkt mij ook de juiste oplossing voor jouw vraag
    Lightdonderdag 31 januari 2008 @ 18:48
    quote:
    Op donderdag 31 januari 2008 16:42 schreef Timens het volgende:
    wederom een klein vraagje:
    Weten jullie hoe ik 1 enkele array kan verwijderen uit een tabel?
    [ code verwijderd ]

    Die query, maar ik wil dus dat de andere arrays met zelfde ID blijven staan, behalve diegene die ik delete..
    Ik wil dus niet dat heel homeID 1 verdwijnt, alleen een stukje daarvan...
    Is er iets anders unieks dat bepaalt welke (van de tig) dingen met homeID=1 weg moet en welke moet blijven staan?
    Lightdonderdag 31 januari 2008 @ 18:50
    quote:
    Op donderdag 31 januari 2008 18:40 schreef Dreammaster het volgende:

    [..]

    LIMIT 1 werkt ook bij DELETE en lijkt mij ook de juiste oplossing voor jouw vraag
    Met LIMIT 1 weet je niet welk item je verwijdert. Als je 1 item wilt verwijderen is het beter om een unique key (of primary key) te gebruiken om de rij te identificeren. Dan heb je echt iets unieks.
    Lightdonderdag 31 januari 2008 @ 19:15
    quote:
    Op donderdag 31 januari 2008 17:24 schreef Farenji het volgende:

    [..]

    Als je echt zekerheid wil hebben dat het uniek is moet je een SHA1 hash gebruiken.
    Ook daar zijn collisions gevonden. En met hashes ontkom je niet aan collisions of dubbelen. MD5 is 128 bit, SHA-1 is 160 bit. Er zijn veel meer dan 2160 bestanden en mogelijkheden. Anders kunnen we pas echt ruimte besparen. Complete DVD's (4GB) in 160 bits, leuke compressie
    Pelgrimdonderdag 31 januari 2008 @ 22:35
    Ik weet niet of het hier hoort maar misschien weet iemand de oplossing:

    In de volgende rewriterule heb ik het volgende probleem: hij pakt wel register en password, maar login kan hij niet vinden.
    RewriteRule ^user/(register|password|login)/?$ user/$1.php [L]
    Xcaliburdonderdag 31 januari 2008 @ 23:03
    quote:
    Op donderdag 31 januari 2008 19:15 schreef Light het volgende:
    Anders kunnen we pas echt ruimte besparen. Complete DVD's (4GB) in 160 bits, leuke compressie
    jammer dat je em niet kunt omdraaien omdat je een flink deel van de info weggooit.... maar anders was het een mooie compressiemethode geweest
    Qunixvrijdag 1 februari 2008 @ 00:57
    Weet iemand hier een gratis fatsoenlijk PHP editor programma met highlight code?

    Liefst met de volledige PHP library van PHP 5. (hoeft niet maar liever wel zoals dreamweaver van adobe ook heeft.)
    Geqxonvrijdag 1 februari 2008 @ 01:25
    Notepad 2? Does the trick op kleine scriptjes.
    Qunixvrijdag 1 februari 2008 @ 01:37
    quote:
    Op vrijdag 1 februari 2008 01:25 schreef Geqxon het volgende:
    Notepad 2? Does the trick op kleine scriptjes.
    Weet je nog een andere voor wat grotere scripts ?

    Notepad onthoud ik
    Geqxonvrijdag 1 februari 2008 @ 01:50
    Deze Notepad2 is het overigens, zo te zien zijn er meerdere.

    Voor grotere projecten? Ondanks dat ik er persoonlijk 0,0 ervaring mee heb, een klasgenoot van mij gebruikt deze: http://www.mpsoftware.dk/
    Qunixvrijdag 1 februari 2008 @ 02:02
    quote:
    Op vrijdag 1 februari 2008 01:50 schreef Geqxon het volgende:
    Deze Notepad2 is het overigens, zo te zien zijn er meerdere.

    Voor grotere projecten? Ondanks dat ik er persoonlijk 0,0 ervaring mee heb, een klasgenoot van mij gebruikt deze: http://www.mpsoftware.dk/
    Hmmm....

    Ik had een andere notepad gezien. Thanks, die ga ik gebruiken!
    PiRANiAvrijdag 1 februari 2008 @ 07:44
    quote:
    Op vrijdag 1 februari 2008 00:57 schreef Qunix het volgende:
    Weet iemand hier een gratis fatsoenlijk PHP editor programma met highlight code?

    Liefst met de volledige PHP library van PHP 5. (hoeft niet maar liever wel zoals dreamweaver van adobe ook heeft.)
    gPHPEdit. Werkt geweldig! Supersnelle check van je syntax en een highlighting voor php/javascript/html en nog vele anderen.

    Ik gebruik het al jaren
    Het is alleen niet voor windows
    Tarabassvrijdag 1 februari 2008 @ 09:31
    Notepad++ FTW
    SuperRembovrijdag 1 februari 2008 @ 10:18
    He ja, laten we het hele topic weer eens volspammen met alle mogelijke texteditors
    Litsovrijdag 1 februari 2008 @ 10:45
    quote:
    Op vrijdag 1 februari 2008 10:18 schreef SuperRembo het volgende:
    He ja, laten we het hele topic weer eens volspammen met alle mogelijke texteditors
    Hij vraagt er toch om? Als in, letterlijk?
    JortKvrijdag 1 februari 2008 @ 10:57
    quote:
    Op vrijdag 1 februari 2008 01:50 schreef Geqxon het volgende:
    Deze Notepad2 is het overigens, zo te zien zijn er meerdere.

    Voor grotere projecten? Ondanks dat ik er persoonlijk 0,0 ervaring mee heb, een klasgenoot van mij gebruikt deze: http://www.mpsoftware.dk/
    Die gebruik ik ook, die auto-completion
    SuperRembovrijdag 1 februari 2008 @ 12:56
    quote:
    Op vrijdag 1 februari 2008 10:45 schreef Litso het volgende:

    [..]

    Hij vraagt er toch om? Als in, letterlijk?
    Het is al zo vaak voorbij gekomen. Vaak wordt het niet veel meer dan een enorme opsomming van editors waar je niet veel wijzer van wordt. Er is ook een eigen topic voor: Welke editor voor PHP?
    Dreammastervrijdag 1 februari 2008 @ 13:13
    quote:
    Op vrijdag 1 februari 2008 12:56 schreef SuperRembo het volgende:

    [..]

    Het is al zo vaak voorbij gekomen. Vaak wordt het niet veel meer dan een enorme opsomming van editors waar je niet veel wijzer van wordt. Er is ook een eigen topic voor: Welke editor voor PHP?
    Misschien is het handig om dat topic ook even in de OP te zetten
    -J-D-zaterdag 2 februari 2008 @ 15:07
    Hier een vraag van een php-noob.

    Ik probeer een simpele query uit die niet werkt.
    quote:
    <?php
    mysql_connect("localhost", "gebruikersnaam", "pass");
    mysql_select_db("db");

    $res = mysql_query("SELECT * FROM jos_aanmeldingen");
    mysql_free_result($res);
    ?>
    Gebruikersnaam, pass en db zijn goed ingevoerd.
    Als ik deze query uitvoer, krijg ik een leeg scherm.
    Zit er een fout in de code? Deze heb ik van een tutorialsite geleend.
    Arjan321zaterdag 2 februari 2008 @ 15:12
    mysql_query stuurt de query naar de db-server. Zijn antwoord moet je zelf expliciet opvragen, bijvoorbeeld met http://nl3.php.net/manual/en/function.mysql-result.php of http://nl3.php.net/manual/en/function.mysql-fetch-assoc.php

    Zie de examples op die pagina's
    -J-D-zaterdag 2 februari 2008 @ 15:32
    Dank tot zover
    Ben nu een stukje verder.

    Ik heb nu deze code in het bestand staan:
    quote:
    $res = mysql_query("SELECT * FROM jos_aanmeldingen");
    while ($row = mysql_fetch_assoc($res)) {
    echo $row["Naam"];
    echo $row["Adres"];
    echo $row["Woonplaats"];
    echo $row["Beginjaar"];
    echo $row["Laatsejaar"];
    }
    mysql_free_result($res);
    Ik dacht hiermee een overzicht te maken van die tabel. Hij pakt alleen de laatste kolom niet.
    Los dat de uitdraai er nog niet uitziet, zie ik dat Laatsejaar ontbreekt.
    zie http://85.92.147.131/~obcreunie/php/test2.php
    Ook merk ik dat mijn idee met echo $row niet werkt.
    Kan je me nog verder helpen hiermee?
    Geqxonzaterdag 2 februari 2008 @ 15:35
    Probeer eens "print_r($row)", dan zie je exact welke data $row bevat.
    -J-D-zaterdag 2 februari 2008 @ 15:37
    -edit-
    Ik puzzel even verder en pas VEEL aan en kom dan later terug met een andere vraag.

    [ Bericht 27% gewijzigd door -J-D- op 02-02-2008 16:05:20 ]
    Tarabasszaterdag 2 februari 2008 @ 22:07
    Ik ben een oop-cms aan het bouwen en had wat voorbeeldjes gedownload omdat ik niet zo thuis ben in oop. Nou kwam ik het volgende tegen waar ik heel vreemd tegen aan kijk.

    Ik heb een class die checkt of een user is ingelogd en wat zijn status is. In die class zit een functie die er zo uit ziet:
    1
    2
    3
    4
    5
    <?php
        
    function checkLogin($user ''$pass ''$group 4$goodRedirect ''$badRedirect '') {
            [
    code]...[/code]
        }
    ?>


    Nu is één van de pagina's beveiligt en enkel te benaderen door een admin. Die beveiliging ziet er zo uit:
    1
    2
    3
    <?php
        
    if (!$classname->checkLogin(2) ){ header("Location: login.php"); die(); }
    ?>


    Zoals je ziet komen de parameters bij het aanroepen van de functie in de class niet overeen, toch werkt het. Ik begrijp niet wat hier gebeurt en hoe het werkt. Kan iemand mij uitleggen wat hier gebeurt?
    Geqxonzaterdag 2 februari 2008 @ 22:23
    Als je die paar parameters niet meegeeft, dan vult PHP deze parameters zelf in. In het geval van "group" is dit 4. Het gaat echter wel fout als je geen "default value" meegeeft, maar dat doe jij met elke parameter. Bij goodRedirect is dit bijvoorbeeld ' '.
    ralfiezondag 3 februari 2008 @ 10:31
    quote:
    Op zaterdag 2 februari 2008 22:07 schreef Tarabass het volgende:
    Ik ben een oop-cms aan het bouwen en had wat voorbeeldjes gedownload omdat ik niet zo thuis ben in oop. Nou kwam ik het volgende tegen waar ik heel vreemd tegen aan kijk.

    Ik heb een class die checkt of een user is ingelogd en wat zijn status is. In die class zit een functie die er zo uit ziet:
    [ code verwijderd ]

    }
    ?>
    [/php]

    Nu is één van de pagina's beveiligt en enkel te benaderen door een admin. Die beveiliging ziet er zo uit:
    [ code verwijderd ]

    Zoals je ziet komen de parameters bij het aanroepen van de functie in de class niet overeen, toch werkt het. Ik begrijp niet wat hier gebeurt en hoe het werkt. Kan iemand mij uitleggen wat hier gebeurt?
    Ik neem aan dat je een group checked? dan zul je de eerste twee parameters moeten geven om php te laten merken dat die 2 bij de derde parameter hoort

    1
    2
    3
    <?php
    if (!$classname->checkLogin(''''2) ){ header("Location: login.php"); die(); }
    ?>
    Tarabasszondag 3 februari 2008 @ 11:21
    @Geqxon
    Ik neem aan dat die 2 in de aanroep dan voor de variable group is? Want het vreemde is dat een admin group-nummer 1 heeft, maar het is dus om alleen admins op de pagina te laten. Is de meegegeven parameter dan een maximum? Want geef ik dit mee dan werkt het niet:

    1
    2
    3
    <?php
        
    if (!$classname->checkLogin(1) ){ header("Location: login.php"); die(); }
    ?>


    Editors (group 2) kunnen nu nog steeds op de pagina komen :?


    @ralfie
    Tja, dat was juist mijn vraag. Logisch gedacht check ik inderdaad de group en dan hoeven de eerste twee parameters niet meegegeven te worden, want het werkt zoals ik het er neergezet heb. Maar na wat testen begin ik te twijfelen of het wel de group is die ik check.
    Lightzondag 3 februari 2008 @ 11:52
    quote:
    Op zondag 3 februari 2008 11:21 schreef Tarabass het volgende:
    @Geqxon
    Ik neem aan dat die 2 in de aanroep dan voor de variable group is? Want het vreemde is dat een admin group-nummer 1 heeft, maar het is dus om alleen admins op de pagina te laten. Is de meegegeven parameter dan een maximum? Want geef ik dit mee dan werkt het niet:
    [ code verwijderd ]

    Editors (group 2) kunnen nu nog steeds op de pagina komen


    @ralfie
    Tja, dat was juist mijn vraag. Logisch gedacht check ik inderdaad de group en dan hoeven de eerste twee parameters niet meegegeven te worden, want het werkt zoals ik het er neergezet heb. Maar na wat testen begin ik te twijfelen of het wel de group is die ik check.
    Als er 1 parameter wordt meegegeven dan wordt dit als eerste parameter doorgegeven. Zie ook bij Example 5.
    Geqxonzondag 3 februari 2008 @ 16:11
    Kan PHP geen functies met dezelfde namen hebben? Maar dan met een andere parameter-count of andere parameters? Dus dat je twee maal checklogin hebt, maar dan met een andere parameter-count of type parameters?
    JortKzondag 3 februari 2008 @ 16:13
    quote:
    Op zondag 3 februari 2008 16:11 schreef Geqxon het volgende:
    Kan PHP geen functies met dezelfde namen hebben? Maar dan met een andere parameter-count of andere parameters? Dus dat je twee maal checklogin hebt, maar dan met een andere parameter-count of type parameters?
    Ik denk het niet ....
    Geqxonzondag 3 februari 2008 @ 16:16
    quote:
    Op zondag 3 februari 2008 16:13 schreef JortK het volgende:

    [..]

    Ik denk het niet ....
    Misschien wel een toffe voor PHP6
    SuperRembozondag 3 februari 2008 @ 16:47
    quote:
    Op zondag 3 februari 2008 16:11 schreef Geqxon het volgende:
    Kan PHP geen functies met dezelfde namen hebben?
    Je kunt geen echte overloads maken in PHP, maar met default waarden voor parameters of anders met func_get_args () / func_num_args() kan je wel bereiken wat jij wil.
    Chandlermaandag 4 februari 2008 @ 11:49
    -opgelost-

    [ Bericht 93% gewijzigd door Chandler op 04-02-2008 13:59:49 ]
    Johnnsmaandag 4 februari 2008 @ 14:07
    Ik ben bezig met het maken van een Wordpress template, en zit even met het volgende. Bij het genereren van een <ul> met daarin alle bestaande categorieen krijg ik de volgende output:

    1
    2
    3
    4
    5
    6
    <li class="cat-item cat-item-3"><a href="http://localhost:8080/wordpress/?cat=3" title="View all posts filed under Nieuws">Nieuws</a>
    </li>
    <li class="cat-item cat-item-4 current-cat"><a href="http://localhost:8080/wordpress/?cat=4" title="View all posts filed under Filmpjes">Filmpjes</a>
    </li>
    <li class="cat-item cat-item-5 current-cat"><a href="http://localhost:8080/wordpress/?cat=4" title="View all posts filed under Opmerkelijk">Opmerkelijk</a>
    </li>


    Zoals je kan zien krijgt elk nieuwe item een cat-item-$id mee als CSS class. Nu moet mijn menu er als volgt uitzien (kleuren zijn eigenlijk bg-images maar het gaat even om het idee van het verloopje)


    Nu ben ik opzoek naar een soort PHP krabbeltje die ik in de <head> kan zetten dat de <li> class met een even ID de volgende css krijgt:

    1{background-image:url(images/menu-aan.png) no-repeat;}


    en de <li> class met een oneven ID de volgende css:

    1{background-image:url(images/menu-uit.png) no-repeat;}


    Kan iemand zo lief zijn om zoiets voor mij uit te schrijven? Volgens mij is het een best simpel iets, maar gezien ik nogal een PHP leek ben...

    Bij voorbaat dank
    super-muffinmaandag 4 februari 2008 @ 14:20
    In deze richting:

    1
    2
    3
    4
    5
    6
    7
    8
    <?php
    $List 
    '';
    foreach(
    $Items as $Index => $Item)
    {
        
    $Class $Index 'uit' 'aan';
        
    $List .= sprintf('<li class="%s">%s</li>'$Class'Tekst');
    }
    ?>


    Vraagje: Hoe slaan jullie booleans op in een MySQL database? gewoon als 0 als false en 1 als true?
    Geqxonmaandag 4 februari 2008 @ 15:09
    quote:
    Op maandag 4 februari 2008 14:20 schreef super-muffin het volgende:
    In deze richting:
    [ code verwijderd ]

    Vraagje: Hoe slaan jullie booleans op in een MySQL database? gewoon als 0 als false en 1 als true?
    Kan als enum, met 0 een 1.
    Mordrethmaandag 4 februari 2008 @ 15:34
    quote:
    Op maandag 4 februari 2008 14:20 schreef super-muffin het volgende:
    In deze richting:
    [ code verwijderd ]

    Vraagje: Hoe slaan jullie booleans op in een MySQL database? gewoon als 0 als false en 1 als true?
    een int en dan gewoon 0 en 1
    -J-D-maandag 4 februari 2008 @ 15:51
    Ben bezig met een cronjob om een testdatabase te backuppen naar een ftp server en een gmail-adres.
    Dit lukt niet echt.
    Ik hoop dat iemand zin heeft om te helpen via msn ( msn apenstaart maarten.es )
    Dan kan die persoon namens mij misschien inloggen en kijken wat ik fout doen.

    [ Bericht 0% gewijzigd door -J-D- op 04-02-2008 16:07:20 (verkeerde msn adres :)) ]
    Lightmaandag 4 februari 2008 @ 16:34
    quote:
    Op maandag 4 februari 2008 15:34 schreef Mordreth het volgende:

    [..]

    een int en dan gewoon 0 en 1
    Tinyint, scheelt db-ruimte. Niet dat die ruimte heel erg boeit, maar toch.
    -J-D-maandag 4 februari 2008 @ 21:57
    quote:
    Op maandag 4 februari 2008 15:51 schreef -J-D- het volgende:
    Ben bezig met een cronjob om een testdatabase te backuppen naar een ftp server en een gmail-adres.
    Dit lukt niet echt.
    Ik hoop dat iemand zin heeft om te helpen via msn ( msn apenstaart maarten.es )
    Dan kan die persoon namens mij misschien inloggen en kijken wat ik fout doen.
    Probeer het nu via JomBackup.
    Die schijnt eens per dag automatisch een backup te mailen.
    Maar weet niet wanneer hij dat doet en wat hij precies verstuurd.
    Even een dagje wachten en dan zie ik het.
    MrDoegewoonmaandag 4 februari 2008 @ 23:41
    Oke ik ben er net achtergekomen dat ik een klein foutje in m'n database heb zitten (denk ik tenminste)

    Ik heb 3 tabellen.

    - Wedstrijden
    - Competities
    - Teams

    Nu staat in de wedstrijden tabel een veld met een thuis en eentje met een uit team, beide bevatten een id die overeenkomt met het id nummer in de teams database. Hetzelfde geld voor het veld voor de competie. Nu is het met gelukt om de query te bouwen die zorgt dat de juiste compname opgepakt word.

    1
    2
    3
    4
    5
    6
    7
    8
    <?php
    SELECT
     c.comp_name
    FROM
     whufc_wedstrijden w, whufc_comps c, whufc_teams t
    WHERE
     w.wedstrijd_cid = c.comp_id
    ?>


    Maar hoe zorg ik ervoor dat zowel de juist team naam aan het thuis en uit speelende team gelink word?
    Geqxonmaandag 4 februari 2008 @ 23:47
    Ik gok zoiets:

    1
    2
    3
    4
    5
    SELECT c.comp_name AS Competitie, w.HIERHETVELDVOORWEDSTRIJDNAAM AS Wedstrijd, u.HIERHETVELDVOORTEAMNAAM AS Uit, t.HIERHETVELDVOORTEAMNAAM AS Thuis
    FROM whufc_comps c
    LEFT JOIN whufc_wedstrijden AS w ON c.ID = w.wedstrijd_cid
    LEFT JOIN whufc_teams AS u ON w.HIERHETVELDVOORUITID = u.ID
    LEFT JOIN whufc_teams AS t ON w.HIERHETVELDVOORTHUISID = t.ID


    Vul de hoofdletters zelf maar in.

    [ Bericht 2% gewijzigd door Geqxon op 04-02-2008 23:52:53 ]
    MrDoegewoonmaandag 4 februari 2008 @ 23:49
    quote:
    Op maandag 4 februari 2008 23:47 schreef Geqxon het volgende:
    Ik gok zoiets:
    [ code verwijderd ]

    Vul de hoofdletters zelf maar in.
    Thnx, ga me gelijk weer is inlezen in die joins .
    Geqxonmaandag 4 februari 2008 @ 23:49
    Al is het laat en moet iemand mij waarschijnlijk wel even corrigeren.
    MrDoegewoonmaandag 4 februari 2008 @ 23:53
    Ik ga er iig morgen meer klooien, ga nu slapen .
    Doc.Browndinsdag 5 februari 2008 @ 12:14
    Grmbl, als ik deze query probeer te draaien dan geeft hij alsnog records weer QTY (voorraad) 0 hebben Terwijl ik toch duidelijk zeg AND QTY > 0..
    quote:
    SELECT ID, QTY, ARTIST, TITLES, MEDIA, PRICE, CTY FROM producten WHERE ARTIST LIKE 'GOODWIN & OTHERS, RON' OR TITLES LIKE 'GOODWIN & OTHERS, RON' OR LABEL LIKE 'GOODWIN & OTHERS, RON' AND QTY > 0 ORDER BY TITLES ASC
    Iemand enig idee waar dit aan kan liggen?\

    Overigens roep ik het zo aan in PHP:

    1
    2
    3
    <?php
    mysql_query
    ("SELECT ID, ARTIST, TITLES, MEDIA, PRICE, CTY FROM producten WHERE (ARTIST LIKE '%$input%') OR (TITLES LIKE '%$input%') OR (LABEL LIKE '%$input%') AND QTY > 0 ORDER BY TITLES ASC")
    ?>


    [ Bericht 15% gewijzigd door Doc.Brown op 05-02-2008 12:26:20 ]
    Geqxondinsdag 5 februari 2008 @ 13:35
    Is QTY wel een integer?

    En anders: Werken met haakjes! Mogelijk leest hij het nu als "WHERE A OF B OF (C EN D)".
    SuperRembodinsdag 5 februari 2008 @ 13:39
    Zet haakjes om de OR's

    1
    2
    3
    4
    5
    SELECT ID, ARTIST, TITLES, MEDIA, PRICE, CTY 
    FROM producten 
    WHERE ((ARTIST LIKE '%$input%') OR (TITLES LIKE '%$input%') OR (LABEL LIKE '%$input%') )
       AND QTY > 0 
    ORDER BY TITLES ASC
    Doc.Browndinsdag 5 februari 2008 @ 13:43
    Ah, in PHP staan wel haakjes om de individuele OR's, maar niet om álle OR's. Zal het eens proberen
    Geqxondinsdag 5 februari 2008 @ 13:54
    quote:
    Op dinsdag 5 februari 2008 13:43 schreef Doc.Brown het volgende:
    Ah, in PHP staan wel haakjes om de individuele OR's, maar niet om álle OR's. Zal het eens proberen
    Het is niet zozeer dat het om alle ORs moet. In jouw geval is het "Het moet voldoen aan (A OF B OF C) EN D". En dan moet je de haakjes plaatsen zoals SuperRembo dat hierboven toont.
    Doc.Browndinsdag 5 februari 2008 @ 13:57
    Ahzo! Het is inmiddels opgelost, een maat van me had iets anders geprobeerd:
    quote:
    WHERE (ARTIST LIKE '%$input%' AND QTY > 0) or (TITLES LIKE '%$input%' AND QTY > 0) or (LABEL LIKE '%$input%' AND QTY > 0)
    Dat werkt, misschien niet de meest nette oplossing dan? Maar het werkt

    In ieder geval bedankt
    Geqxondinsdag 5 februari 2008 @ 19:53
    Beetje offtopic.... over crontab. Mijn timing: " 0 */4 * * * ". Dit via cPanel ingesteld, dus ik vertrouw het wel.

    Klopt het dat hij nu om 0:00, 04:00, 08:00, 12:00, 16:00 en 20:00 draait?

    Edit:
    05-02-2008 20:00 - Ran update



    [ Bericht 20% gewijzigd door Geqxon op 05-02-2008 20:02:45 ]
    Farenjidinsdag 5 februari 2008 @ 21:50
    quote:
    Op dinsdag 5 februari 2008 13:57 schreef Doc.Brown het volgende:
    Ahzo! Het is inmiddels opgelost, een maat van me had iets anders geprobeerd:
    [..]

    Dat werkt, misschien niet de meest nette oplossing dan? Maar het werkt

    In ieder geval bedankt
    Hou er wel rekening mee dat query's met like en wildcards aan het begin en eind een van de traagste query's zijn; mysql kan er geen gebruik maken van indexes en dat ga je echt merken als je meer dan een paar records in je tabel hebt zitten. Dan wordt het moddertraag.
    Tarabasswoensdag 6 februari 2008 @ 18:55
    Vraagje:

    Hoe geef ik twee modes mee aan de functie file_put_contents()?

    Ik wil 'FILE_APPEND' én 'LOCK_EX' meegeven, maar weet dus niet hoe. Wat ik tot nu toe heb:
    1
    2
    3
    <?php
    file_put_contents
    ($this->errLog$this->timestamp " " implode(',',$this->errors) . "\r\n"FILE_APPEND);
    ?>


    Wie weet hoe ik ze allebei mee kan geven?
    Arjan321woensdag 6 februari 2008 @ 19:21
    zoals de documentatie zegt:
    quote:
    joined with the binary OR (|) operator.
    http://nl3.php.net/manual/en/function.file-put-contents.php

    dus
    1
    2
    3
    <?php
    FILE_APPEND 
    LOCK_EX
    ?>
    Chandlerwoensdag 6 februari 2008 @ 20:03
    Vraagje, als ik op mijn lokale machine openssl wil toevoegen aan php.ini krijg ik de volgende error



    wat kan ik hier aan doen? tevens werkt openssl dan niet
    Tarabasswoensdag 6 februari 2008 @ 23:06
    quote:
    Op woensdag 6 februari 2008 20:03 schreef Chandler het volgende:
    Vraagje, als ik op mijn lokale machine openssl wil toevoegen aan php.ini krijg ik de volgende error

    [ afbeelding ]

    wat kan ik hier aan doen? tevens werkt openssl dan niet
    Je hebt alle benodigde dll's op de aangegeven plaats staan?
    http://www.phpbuilder.com/board/showthread.php?t=10337286
    http://www.php.net/manual/en/ref.openssl.php

    @Arjan321
    Gaan we even testen. Waarschijnlijk overheen gelezen omdat ik op zoek was naar een And/& niet naar een OR/|
    wondererwoensdag 6 februari 2008 @ 23:34
    Ik heb een dropdown met een zooi kleuren waar mensen uit kunnen kiezen. De hexcode wordt dan naar een andere tabel weggeschreven, de dropdown wordt uit een tabel gegenereerd. Meestal gaat het goed, maar bij bepaalde kleuren gebeurt er iets vreemds, die pakt hij niet.

    688E23 verandert in 3e+25, maar 6B8E23 pakt hij wel gewoon. Het zijn allebei gewoon varchar(6) velden.. Ik snap er geen hol van. Iemand hier misschien?
    Lightwoensdag 6 februari 2008 @ 23:41
    688E23 wordt gelezen als een getal (688 * 1023, ofwel 6,88 * 1025) en dat wordt als integer weggeschreven. Je hebt die problemen met alle hexcodes waar 1 E in zit en geen andere letter, en die E mag ook niet als eerste teken staan. Een oplossing heb ik even niet zo snel.
    Farenjiwoensdag 6 februari 2008 @ 23:46
    688E23 is een andere manier van schrijven voor 688 * 1023. Dit werkt alleen met decimale getallen dus 6B8 ziet ie niet als een geldig getal.

    Je moet zorgen dat php de hexcodes als een string behandelt, en niet als een getal. Als je ze uitprint kun je dat bijv doen door:

    1
    2
    3
    <?php
    print $hexcode . "";
    ?>


    Je kan ook een variabele casten als een string:

    1
    2
    3
    <?php
    var $hexstring = (string) $hexcode;
    ?>
    wondererdonderdag 7 februari 2008 @ 00:13
    Oooh. Heh. Okee, ga ik proberen, dank je wel.

    Edit: weird. ik dacht, laat ik settype() gebruiken. Werkte niet. Toen het trucje met .""; erachter. WErkte ook niet. Even controleren wat voor soort string het is met gettype(): string!

    En nu weet ik het niet meer Het is dus een string, waarom slaat hij het niet als zodanig op?

    [ Bericht 80% gewijzigd door wonderer op 07-02-2008 01:21:12 ]
    PiRANiAdonderdag 7 februari 2008 @ 07:41
    quote:
    Op donderdag 7 februari 2008 00:13 schreef wonderer het volgende:
    Oooh. Heh. Okee, ga ik proberen, dank je wel.

    Edit: weird. ik dacht, laat ik settype() gebruiken. Werkte niet. Toen het trucje met .""; erachter. WErkte ook niet. Even controleren wat voor soort string het is met gettype(): string!

    En nu weet ik het niet meer Het is dus een string, waarom slaat hij het niet als zodanig op?
    waarom zou je niet char() doen in je database?
    Chandlerdonderdag 7 februari 2008 @ 10:23
    quote:
    Op woensdag 6 februari 2008 23:06 schreef Tarabass het volgende:
    Je hebt alle benodigde dll's op de aangegeven plaats staan?
    http://www.phpbuilder.com/board/showthread.php?t=10337286
    http://www.php.net/manual/en/ref.openssl.php
    Ze staan op dezelfde plek als ook GD en de rest van de DLL's bestaan gewoon, maar ik vraag me af wat die %1 betekend
    WyriHaximusdonderdag 7 februari 2008 @ 10:27
    Kort vraagje: Is het met MySQL mogelijk om in een text veld een stukje text op te zoeken en dit te vervangen met een ander stukje text? (str_replace() idee)
    Xcaliburdonderdag 7 februari 2008 @ 10:31
    Ik denk niet dat je het met SQL zelf kunt, maar je kunt natuurlijk wel de records ophalen met die tekst, str_replace eroverheen (in PHP) en de records weer updaten
    WyriHaximusdonderdag 7 februari 2008 @ 10:40
    quote:
    Op donderdag 7 februari 2008 10:31 schreef Xcalibur het volgende:
    Ik denk niet dat je het met SQL zelf kunt, maar je kunt natuurlijk wel de records ophalen met die tekst, str_replace eroverheen (in PHP) en de records weer updaten
    Yeah weet ik maar heeft niet men voorkeur .
    Chandlerdonderdag 7 februari 2008 @ 10:41
    replace string in all records from a table :
    update mytable set myfield = replace (myfield, "one", "two");
    display a modified record set
    SELECT REPLACE(myfield, 'one', 'two') from mytable;
    WyriHaximusdonderdag 7 februari 2008 @ 10:44
    quote:
    Op donderdag 7 februari 2008 10:41 schreef Chandler het volgende:
    replace string in all records from a table :
    update mytable set myfield = replace (myfield, "one", "two");
    display a modified record set
    SELECT REPLACE(myfield, 'one', 'two') from mytable;
    Tof dankje ff proberen zo . * WyriHaximus gaat backup maken .
    Xcaliburdonderdag 7 februari 2008 @ 10:52
    hmmm, wist ik niet
    Backup lijkt me niet onverstandig inderdaad
    Chandlerdonderdag 7 februari 2008 @ 14:25
    Haha WyriHaximus, had niet verwacht dat jij deze niet zou kennen
    WyriHaximusdonderdag 7 februari 2008 @ 14:33
    quote:
    Op donderdag 7 februari 2008 14:25 schreef Chandler het volgende:
    Haha WyriHaximus, had niet verwacht dat jij deze niet zou kennen
    Hehe moet eerlijk zeggen dat ik de docs niet echt lekker vond smorgens voordat ik poste http://dev.mysql.com/doc/refman/4.1/en/replace.html
    SuperRembodonderdag 7 februari 2008 @ 15:32
    quote:
    Op donderdag 7 februari 2008 14:33 schreef WyriHaximus het volgende:
    [..]
    Hehe moet eerlijk zeggen dat ik de docs niet echt lekker vond smorgens voordat ik poste http://dev.mysql.com/doc/refman/4.1/en/replace.html
    Je moet ook naar de replace functie kijken, niet naar het replace statement
    WyriHaximusdonderdag 7 februari 2008 @ 15:50
    quote:
    Op donderdag 7 februari 2008 15:32 schreef SuperRembo het volgende:

    [..]

    Je moet ook naar de replace functie kijken, niet naar het replace statement
    Aye . (Heb daarnaast altijd ruzie met dingen op hun site te zoeken .)
    wondererdonderdag 7 februari 2008 @ 19:58
    *zucht* Het werkt niet. Ik heb verschillende kolomtypen geprobeerd (char, tinyblob, tinytext) maar niks slaat het werkelijk als string op.

    Ik snap er geen flikker van
    Arjan321donderdag 7 februari 2008 @ 20:11
    zowel (var)char als *text slaan dingen als strings op? Wat probeer je?
    Chandlerdonderdag 7 februari 2008 @ 20:31
    Hoe zet je de gegevens in je formulier?

    Laat eens wat code zien, je moet gewoon een kleine fout hebben gemaakt
    wondererdonderdag 7 februari 2008 @ 20:42
    1
    2
    3
    4
    5
    6
    <select name="kleur" id="kleur" style="background-color:#000000;color:#ffeeee;">
    <option style="color:#ffffff;" value="ffffff">wit</option>
    <option style="color:#000080;" value="000080">marine blauw</option>
    <option style="color:#000099;" value="000099">000099</option>

    etc


    En dan in de code:
    $kleur=$_POST["kleur"];
    en gewoon een update query, niks bijzonders. Hij doet het bij andere kleurcodes ook gewoon, alleen bij degene met maar een "e" erin dus niet...
    Ik haal wel alle variabelen die uit een formulier komen door een magic_quotes dinges tegen sql-injection, maar ik denk niet dat dat er iets mee te maken heeft...

    Overigens doe ik echo gettype($kleur) en echo $kleur bij het bericht dat het is opgeslagen, en daar klopt de waarde en is het een string. Er gaat dus iets mis bij het opslaan

    Als ik het er via phpMyAdmin inzet, werkt het wel, maar da's verre van ideaal natuurlijk.
    MrDoegewoondonderdag 7 februari 2008 @ 21:01
    quote:
    Op maandag 4 februari 2008 23:47 schreef Geqxon het volgende:
    Ik gok zoiets:
    [ code verwijderd ]

    Vul de hoofdletters zelf maar in. :+
    Dit is hem uiteindelijk geworden:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    SELECT
             w.wedstrijd_id AS wid,
             w.wedstrijd_datum AS datum,
             t.team_naam AS thuis,
             u.team_naam AS uit,
             w.wedstrijd_score AS score,
             c.comp_name AS compnaam
          FROM
             whufc_wedstrijden w
          INNER JOIN
             whufc_teams AS t ON w.wedstrijd_thuis = t.team_id
          INNER JOIN 
             whufc_teams AS u ON w.wedstrijd_uit = u.team_id
          INNER JOIN 
             whufc_comps AS c ON w.wedstrijd_cid = c.comp_id
          WHERE
             w.wedstrijd_sid = $actsid
          ORDER BY
             w.wedstrijd_datum
    Geqxondonderdag 7 februari 2008 @ 21:10
    quote:
    Op donderdag 7 februari 2008 21:01 schreef MrDoegewoon het volgende:

    [..]

    Dit is hem uiteindelijk geworden:
    [ code verwijderd ]
    Top dat het gelukt is!
    Lightdonderdag 7 februari 2008 @ 21:39
    quote:
    Op donderdag 7 februari 2008 20:42 schreef wonderer het volgende:

    Overigens doe ik echo gettype($kleur) en echo $kleur bij het bericht dat het is opgeslagen, en daar klopt de waarde en is het een string. Er gaat dus iets mis bij het opslaan
    Gaat het fout bij het opslaan of bij het weer uitlezen? Als je eerst opslaat en dan met phpmyadmin kijkt wat er dan staat dan heb je vast meer info

    Toevoeging: heb je ook de hele query, zoals je die in php opbouwt? Ik denk dat het daar mis gaat namelijk.

    [ Bericht 7% gewijzigd door Light op 07-02-2008 21:49:08 (Toevoeging) ]
    donroycodonderdag 7 februari 2008 @ 21:41
    Even een tvp, wil een (simpel) gastenboek opzetten, maar weet helemaal niet waar ik moet beginnen
    wondererdonderdag 7 februari 2008 @ 21:50
    quote:
    Op donderdag 7 februari 2008 21:39 schreef Light het volgende:

    [..]

    Gaat het fout bij het opslaan of bij het weer uitlezen? Als je eerst opslaat en dan met phpmyadmin kijkt wat er dan staat dan heb je vast meer info

    Toevoeging: heb je ook de hele query, zoals je die in php opbouwt? Ik denk dat het daar mis gaat namelijk.
    Opslaan. Hij slaat het als numerieke waarde (of zo) op, namelijk (bijv) 7e+23. En dat is dan 688E25.
    Lightdonderdag 7 februari 2008 @ 22:35
    quote:
    Op donderdag 7 februari 2008 21:50 schreef wonderer het volgende:

    [..]

    Opslaan. Hij slaat het als numerieke waarde (of zo) op, namelijk (bijv) 7e+23. En dat is dan 688E25.
    Hoe bouw je die query op in php? Als in, wat geef je mysql_query mee? Ik denk dat het daar mis gaat, en dan wel met de quotjes.
    wondererdonderdag 7 februari 2008 @ 22:57
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    <?php
    $d
    =connectDB();

    $result=runquery("UPDATE chat_handles SET chatname=".quote_smart($chatname,$d).", avatar=".quote_smart($avatar,$d).", kleur=".quote_smart($kleur,$d).", accesskey=".quote_smart($accesskey,$d).", description=".quote_smart($description,$d)." WHERE saveas=".quote_smart($saveas,$d)." AND username=".quote_smart($user,$d),$d);

    function 
    quote_smart($value,$dblink)
    {
     if (
    get_magic_quotes_gpc()) {
      
    $value stripslashes($value);
     }

     if (!
    is_numeric($value)) {
      
    $value "'" mysql_real_escape_string($value,$dblink) . "'";
     }
     return 
    $value;
    }
    ?>


    Helpt dit? ;)
    Arjan321donderdag 7 februari 2008 @ 23:22
    de is_numeric op (688E25) geeft (waarschijnlijk) true terug, waardoor je dus geen quotes in je query krijgt, en je dus een integer (688E25) in je string kolom`kleur` probeert op te slaan.

    Om dit op te lossen kan je bijvoorbeeld een derde optionele parameter maken die forced om toch quotes om je value heen te geven..
    1
    2
    3
    4
    5
    <?php
    if (!is_numeric($value) || $force) {
      
    $value = "'" . mysql_real_escape_string($value,$dblink) . "'";
    }
    ?>


    sowieso kan je op jouw huidige manier (een hoop) onnodige conversies in je database server krijgen, omdat dingen als string worden opgeslagen maar als integer kunnen binnenkomen..
    Lightdonderdag 7 februari 2008 @ 23:23
    quote:
    Op donderdag 7 februari 2008 22:57 schreef wonderer het volgende:

    [ code verwijderd ]

    Helpt dit?
    Ja Het gaat mis door de is_numeric() want is_numeric('688e23') levert true op.
    Lightdonderdag 7 februari 2008 @ 23:35
    quote:
    Op donderdag 7 februari 2008 23:22 schreef Arjan321 het volgende:
    de is_numeric op (688E25) geeft (waarschijnlijk) true terug, waardoor je dus geen quotes in je query krijgt, en je dus een integer (688E25) in je string kolom`kleur` probeert op te slaan.

    Om dit op te lossen kan je bijvoorbeeld een derde optionele parameter maken die forced om toch quotes om je value heen te geven..
    [ code verwijderd ]

    sowieso kan je op jouw huidige manier (een hoop) onnodige conversies in je database server krijgen, omdat dingen als string worden opgeslagen maar als integer kunnen binnenkomen..
    Alles wat in een text/(var)char veld in een database moet komen, moet worden voorzien van quotes. En alles wat in een getalveld komt, mag juist geen quotes hebben. Niet dat MySQL zo strikt is, maar 't is beter om het goed aan te wennen.

    Ik zou het zo doen:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <?php
    $result
    =runquery("UPDATE chat_handles SET chatname='".quote_smart($chatname,$d)."', avatar='".quote_smart($avatar,$d)."', kleur='".quote_smart($kleur,$d)."', accesskey='".quote_smart($accesskey,$d)."', description='".quote_smart($description,$d)."' WHERE saveas='".quote_smart($saveas,$d)."' AND username='".quote_smart($user,$d)."'",$d);

    function 
    quote_smart($value,$dblink)
    {
     if (
    get_magic_quotes_gpc()) {
      
    $value stripslashes($value);
     }

     
    //Het is niet echt erg om een getal te string_escapen, het getal verandert er iig niet door.
     
    return mysql_real_escape_string($value,$dblink);
    }
    ?>
    qu63vrijdag 8 februari 2008 @ 00:04
    quote:
    Op donderdag 31 januari 2008 16:44 schreef Farenji het volgende:
    - de tekst per regel inlezen
    - als de regel met een ; begint: skippen
    - met een regexp de md5 hash en de filename eruitfilteren:

    Ongetest:
    /^([a-f0-9]{32})/ voor de md5 (het gaat om het gedeelte tussen haakjes)
    /\*(.*)$/ voor de filename

    De md5 hashcode is (per definitie!) uniek voor een bestand dus die kun je als key gebruiken in je database.
    eerste regexp doet niks, en de 2e doet het half :{
    1
    2
    3
    4
    <?php
    preg_match_all
    ("/\*(.*)$/ ",$_POST["hash"],$hash);
    print_r($hash);
    ?>


    inhoud van $_PST["hash"] is
    1; Fsum Frontend v1.5.1 ; ; Generated on 2008-01-31 at 15:22:08 ; ; Size: 620 bytes, Creation date: 2006-03-15 14:34:33, Modification date: 2006-03-15 14:34:33 e59d318ae34e9190f51e10544d17ab9a *POTWDVD019 - Rock Aid America - The Making of Smoke On The Water.md5 ; Size: 2021 bytes, Creation date: 2006-03-15 14:34:34, Modification date: 2006-03-15 14:34:34 a9417892c908eef3c573220b6a24c3bf *POTWDVD019.txt ; Size: 14309 bytes, Creation date: 2006-03-15 14:34:08, Modification date: 2006-03-15 14:34:09 65eccd74397d7a6fa403d871f30870a1 *VIDEO_TS\VIDEO_TS.BUP ; Size: 26597 bytes, Creation date: 2006-03-15 14:34:10, Modification date: 2006-03-15 14:34:11 65eccd74397d7a6fa403d871f30870a1 *VIDEO_TS\VIDEO_TS.IFO ; Size: 73701 bytes, Creation date: 2006-03-15 14:34:12, Modification date: 2006-03-15 14:34:12 196d82e1f7afacc6ea4f4a1caa0dbc2f *VIDEO_TS\VIDEO_TS.VOB ; Size: 114661 bytes, Creation date: 2006-03-15 14:34:13, Modification date: 2006-03-15 14:34:19 f7e5eb930e876929c42064702dc9a111 *VIDEO_TS\VTS_01_0.BUP ; Size: 155621 bytes, Creation date: 2006-03-15 14:34:20, Modification date: 2006-03-15 14:34:23 f7e5eb930e876929c42064702dc9a111 *VIDEO_TS\VTS_01_0.IFO ; Size: 10924005 bytes, Creation date: 2006-03-15 14:34:34, Modification date: 2006-03-15 15:24:07 5defea3427c04218c81dff47ee69f1a0 *VIDEO_TS\VTS_01_0.VOB ; Size: 1083848677 bytes, Creation date: 2006-03-15 15:24:08, Modification date: 2006-03-28 03:14:40 72b9c827ec29e43ce356b8733e5e2957 *VIDEO_TS\VTS_01_1.VOB ; Size: 2156382181 bytes, Creation date: 2006-04-02 13:17:52, Modification date: 2006-04-18 10:15:47 d1db84986d126e5838f167bd52e3be56 *VIDEO_TS\VTS_01_2.VOB ; Size: 3229100005 bytes, Creation date: 2006-04-03 14:09:27, Modification date: 2006-04-16 17:39:54 48e67b2589ddc5e60ef2e156d4e23b0b *VIDEO_TS\VTS_01_3.VOB ; Size: 3329441765 bytes, Creation date: 2006-04-08 06:02:52, Modification date: 2006-04-08 08:19:34 c308f264d32ff5b645e9b9485e7b34c1 *VIDEO_TS\VTS_01_4.VOB


    en de uitkomst is:
    1Array ( [0] => Array ( [0] => *VIDEO_TS\VTS_01_4.VOB ) [1] => Array ( [0] => VIDEO_TS\VTS_01_4.VOB ) )


    -O-

    iemand een tip :?
    wonderervrijdag 8 februari 2008 @ 05:19
    Ah! Okee, thanks.
    Ga ik proberen
    Xcaliburvrijdag 8 februari 2008 @ 08:42
    quote:
    Op vrijdag 8 februari 2008 00:04 schreef qu63 het volgende:
    iemand een tip
    http://www.regular-expressions.info/
    sabanvrijdag 8 februari 2008 @ 09:09
    teeveephp
    Lightvrijdag 8 februari 2008 @ 09:19
    quote:
    Op vrijdag 8 februari 2008 00:04 schreef qu63 het volgende:

    inhoud van $_PST["hash"] is
    [ code verwijderd ]
    Weet je zeker dat het bestand netjes per regel wordt ingelezen? Het lijkt er op dat het een bestand van 1 regel is, of dat het als zodanig wordt ingelezen.
    qu63vrijdag 8 februari 2008 @ 09:59
    quote:
    Op vrijdag 8 februari 2008 09:19 schreef Light het volgende:

    [..]

    Weet je zeker dat het bestand netjes per regel wordt ingelezen? Het lijkt er op dat het een bestand van 1 regel is, of dat het als zodanig wordt ingelezen.
    in de textarea staat het over meerdere regels verspreid, maar in de $_POST komt het als 1 regel er uit geloof ik.. Ik ga wel weer wat aanklooien
    Xcaliburvrijdag 8 februari 2008 @ 12:01
    check eens op \r\n, \r en \n als regeleinden....
    qu63vrijdag 8 februari 2008 @ 12:06
    quote:
    Op vrijdag 8 februari 2008 12:01 schreef Xcalibur het volgende:
    check eens op \r\n, \r en \n als regeleinden.... :)
    ik heb wel
    1
    2
    3
    4
    <?php
    preg_match_all
    ("/\*(.*)$/ ",str_replace("\n","<br>",$_POST["hash"]),$hash);
    print_r($hash);
    ?>

    geprobeerd, maar dan komt er
    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
    Array ( [0] => Array ( [0] => *POTWDVD019 - Rock Aid America - The Making of Smoke On The Water.md5
    ; Size: 2021 bytes, Creation date: 2006-03-15 14:34:34, Modification date: 2006-03-15 14:34:34
    a9417892c908eef3c573220b6a24c3bf *POTWDVD019.txt
    ; Size: 14309 bytes, Creation date: 2006-03-15 14:34:08, Modification date: 2006-03-15 14:34:09
    65eccd74397d7a6fa403d871f30870a1 *VIDEO_TS\VIDEO_TS.BUP
    ; Size: 26597 bytes, Creation date: 2006-03-15 14:34:10, Modification date: 2006-03-15 14:34:11
    65eccd74397d7a6fa403d871f30870a1 *VIDEO_TS\VIDEO_TS.IFO
    ; Size: 73701 bytes, Creation date: 2006-03-15 14:34:12, Modification date: 2006-03-15 14:34:12
    196d82e1f7afacc6ea4f4a1caa0dbc2f *VIDEO_TS\VIDEO_TS.VOB
    ; Size: 114661 bytes, Creation date: 2006-03-15 14:34:13, Modification date: 2006-03-15 14:34:19
    f7e5eb930e876929c42064702dc9a111 *VIDEO_TS\VTS_01_0.BUP
    ; Size: 155621 bytes, Creation date: 2006-03-15 14:34:20, Modification date: 2006-03-15 14:34:23
    f7e5eb930e876929c42064702dc9a111 *VIDEO_TS\VTS_01_0.IFO
    ; Size: 10924005 bytes, Creation date: 2006-03-15 14:34:34, Modification date: 2006-03-15 15:24:07
    5defea3427c04218c81dff47ee69f1a0 *VIDEO_TS\VTS_01_0.VOB
    ; Size: 1083848677 bytes, Creation date: 2006-03-15 15:24:08, Modification date: 2006-03-28 03:14:40
    72b9c827ec29e43ce356b8733e5e2957 *VIDEO_TS\VTS_01_1.VOB
    ; Size: 2156382181 bytes, Creation date: 2006-04-02 13:17:52, Modification date: 2006-04-18 10:15:47
    d1db84986d126e5838f167bd52e3be56 *VIDEO_TS\VTS_01_2.VOB
    ; Size: 3229100005 bytes, Creation date: 2006-04-03 14:09:27, Modification date: 2006-04-16 17:39:54
    48e67b2589ddc5e60ef2e156d4e23b0b *VIDEO_TS\VTS_01_3.VOB
    ; Size: 3329441765 bytes, Creation date: 2006-04-08 06:02:52, Modification date: 2006-04-08 08:19:34
    c308f264d32ff5b645e9b9485e7b34c1 *VIDEO_TS\VTS_01_4.VOB ) [1] => Array ( [0] => POTWDVD019 - Rock Aid America - The Making of Smoke On The Water.md5
    ; Size: 2021 bytes, Creation date: 2006-03-15 14:34:34, Modification date: 2006-03-15 14:34:34
    a9417892c908eef3c573220b6a24c3bf *POTWDVD019.txt
    ; Size: 14309 bytes, Creation date: 2006-03-15 14:34:08, Modification date: 2006-03-15 14:34:09
    65eccd74397d7a6fa403d871f30870a1 *VIDEO_TS\VIDEO_TS.BUP
    ; Size: 26597 bytes, Creation date: 2006-03-15 14:34:10, Modification date: 2006-03-15 14:34:11
    65eccd74397d7a6fa403d871f30870a1 *VIDEO_TS\VIDEO_TS.IFO
    ; Size: 73701 bytes, Creation date: 2006-03-15 14:34:12, Modification date: 2006-03-15 14:34:12
    196d82e1f7afacc6ea4f4a1caa0dbc2f *VIDEO_TS\VIDEO_TS.VOB
    ; Size: 114661 bytes, Creation date: 2006-03-15 14:34:13, Modification date: 2006-03-15 14:34:19
    f7e5eb930e876929c42064702dc9a111 *VIDEO_TS\VTS_01_0.BUP
    ; Size: 155621 bytes, Creation date: 2006-03-15 14:34:20, Modification date: 2006-03-15 14:34:23
    f7e5eb930e876929c42064702dc9a111 *VIDEO_TS\VTS_01_0.IFO
    ; Size: 10924005 bytes, Creation date: 2006-03-15 14:34:34, Modification date: 2006-03-15 15:24:07
    5defea3427c04218c81dff47ee69f1a0 *VIDEO_TS\VTS_01_0.VOB
    ; Size: 1083848677 bytes, Creation date: 2006-03-15 15:24:08, Modification date: 2006-03-28 03:14:40
    72b9c827ec29e43ce356b8733e5e2957 *VIDEO_TS\VTS_01_1.VOB
    ; Size: 2156382181 bytes, Creation date: 2006-04-02 13:17:52, Modification date: 2006-04-18 10:15:47
    d1db84986d126e5838f167bd52e3be56 *VIDEO_TS\VTS_01_2.VOB
    ; Size: 3229100005 bytes, Creation date: 2006-04-03 14:09:27, Modification date: 2006-04-16 17:39:54
    48e67b2589ddc5e60ef2e156d4e23b0b *VIDEO_TS\VTS_01_3.VOB
    ; Size: 3329441765 bytes, Creation date: 2006-04-08 06:02:52, Modification date: 2006-04-08 08:19:34
    c308f264d32ff5b645e9b9485e7b34c1 *VIDEO_TS\VTS_01_4.VOB ) )

    uit.

    Dan pakt ie dus weer alles..
    Xcaliburvrijdag 8 februari 2008 @ 13:16
    maar je leest het bestand niet per regel in dan?
    Dat lijkt me wel een goed begin namelijk.....

    En dan dus per regel de regex eroverheen, dan moet het een stuk overzichtelijker worden
    Geqxonvrijdag 8 februari 2008 @ 13:36
    qu63, met deze regex krijg ik de uitgebreide variant prima geregext:

    1
    2
    3
    4
    5
    6
    7
    8
    <?php
        $regular_expression 
    '#; Size: ([0-9]{1,20}) bytes, ';
        
    $regular_expression .= 'Creation date: ([0-9]{4}-[0-9]{2}-[0-9]{2}) ([0-9]{2}:[0-9]{2}:[0-9]{2}), ';
        
    $regular_expression .= 'Modification date: ([0-9]{4}-[0-9]{2}-[0-9]{2}) ([0-9]{2}:[0-9]{2}:[0-9]{2})';
        
    $regular_expression .= '\r\n([a-z0-9]{32})';
        
    $regular_expression .= ' \*(.*)\r\n#Us';
        
    preg_match_all($regular_expression$data$matchesPREG_SET_ORDER);
    ?>
    qu63vrijdag 8 februari 2008 @ 13:58
    quote:
    Op vrijdag 8 februari 2008 13:16 schreef Xcalibur het volgende:
    maar je leest het bestand niet per regel in dan?
    Dat lijkt me wel een goed begin namelijk.....

    En dan dus per regel de regex eroverheen, dan moet het een stuk overzichtelijker worden
    ik heb er nu een textarea van gemaakt ipv een file-upload.
    qu63vrijdag 8 februari 2008 @ 13:58
    quote:
    Op vrijdag 8 februari 2008 13:36 schreef Geqxon het volgende:
    qu63, met deze regex krijg ik de uitgebreide variant prima geregext:
    [ code verwijderd ]
    thanks, ik ga daar wel ff mee spelen
    warezguy05vrijdag 8 februari 2008 @ 15:16
    ik zit met het volgende probleem

    ik heb bijvoorbeeld een array met ingredienten die van toepassing zijn op 1 pizza en nou wil ik deze array uitlezen en er 1! link van maken dus je moet iets krijgen als:

    Link1: kaas, tomaat, ui

    wanneer ik op deze manier uitlees, dan krijg ik wel de ingredienten te zien maar dan als 3 losse linkjes alhoewel ze wel naar één document verwijzen

    1
    2
    3
    4
    5
    foreach ($ingredienten as $key => $value)

       {
       echo $value="<a href='pizza.php?id=" . $pizzaID . "'>$value</a>";
       }



    hoe kan ik dit combineren zodat die 3 losse elementen samengevoegd worden tot 1 link? dat staat wat mooier nl :)
    Geqxonvrijdag 8 februari 2008 @ 15:28
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <?php
    echo "<a href='pizza.php?id=" $pizzaID "'>";

    foreach (
    $ingredienten as $key => $value)

       {
       echo 
    $value;
       }

    echo 
    "</a>";
    ?>


    Zoiets?
    fokME2vrijdag 8 februari 2008 @ 15:30
    @warezguy05: Je zou eerst door de ingrediënten kunnen loopen en daarna pas de link opbouwen?
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    <?php
    //bij dit voorbeeld ga ik er vanuit dat je een array hebt die
    //oplopende getallen heeft als keys
    $ingredientenlink '';
    $aantal_ingredienten count($ingredienten);
    for(
    $i 0$i$aantal_ingredienten$i++)
    {
        
    //het stukje na de . kijkt of het het laatste ingredient uit de array is
     
    $ingredientenlink .= $ingredienten[$i] . ($i == $aantal_ingredienten '' ', ');
    }
        echo 
    '<a href="pizza.php?id=' $pizzaID '">' $ingredientenlink '</a>';

    //bij dit voorbeeld maakt het niet uit wat de keys van je array zijn
    $ingredientenlink '';
    $aantal_ingredienten count($ingredienten);
    $i 1;
    foreach(
    $ingredienten as $ingredient)
    {
     
    $ingredientenlink .= $ingredient . ($i == $aantal_ingredienten '' ', ');
     
    $i++;
    }
        echo 
    '<a href="pizza.php?id=' $pizzaID '">' $ingredientenlink '</a>';
    ?>


    Edit: Geqxon was eerder.

    [ Bericht 6% gewijzigd door fokME2 op 08-02-2008 15:50:04 (ik zat niet op te letten :') ) ]
    Geqxonvrijdag 8 februari 2008 @ 15:39
    fokME2, what the hell.
    fokME2vrijdag 8 februari 2008 @ 15:44
    Wat?
    SPOILER
    Code aangepast, weet niet waar ik mee bezig was dat ik dat kon posten.


    [ Bericht 56% gewijzigd door fokME2 op 08-02-2008 15:51:49 ]
    Geqxonvrijdag 8 februari 2008 @ 15:56
    Bring it on!

    1
    2
    3
    <?php
    printf
    ("<a href='pizza.php?id=%s>%s</a>"$pizzaID implode(",",$ingredienten) );
    ?>


    :6
    Geqxonvrijdag 8 februari 2008 @ 15:59
    Ha! Daar heb je niet van terug he!
    qu63vrijdag 8 februari 2008 @ 16:03
    hoe kan ik weten hoeveel matches ik heb met Geqxon's preg_match_all?
    Chandlervrijdag 8 februari 2008 @ 16:06
    Kleine vraag; hoe kan ik alle karakters uit een stuk test die niet a-Z0-9_- zijn verwijderen?
    Geqxonvrijdag 8 februari 2008 @ 16:07
    quote:
    Op vrijdag 8 februari 2008 16:03 schreef qu63 het volgende:
    hoe kan ik weten hoeveel matches ik heb met Geqxon's preg_match_all?
    Als de PREG_SET_ORDER flag aan staat kan dat met "count($matches)", waarbij $matches de array met gevonden resultaten is.
    Chandlervrijdag 8 februari 2008 @ 16:14
    quote:
    Op vrijdag 8 februari 2008 16:06 schreef Chandler het volgende:
    Kleine vraag; hoe kan ik alle karakters uit een stuk test die niet a-Z0-9_- zijn verwijderen?
    ereg_replace("[^A-Za-z0-9]", "", $string);
    warezguy05vrijdag 8 februari 2008 @ 16:22
    quote:
    Op vrijdag 8 februari 2008 15:28 schreef Geqxon het volgende:

    [ code verwijderd ]

    Zoiets?
    lol ja zo simpel is het

    fokME2, ook bedankt voor de suggestie!
    Computeraapvrijdag 8 februari 2008 @ 16:28
    Moggel

    Ik ben bezig met een projectje, bij de opzet hiervan heb ik gekozen om de page routing te laten lopen via een custom 404. Op die manier krijg je mooie urls als http://www.computeraap.com/foo/bar/. Ook kan ik zo makkelijk dingen gescheiden houden en dynamisch uitvoeren.

    Werkt allemaal prima, alleen bij het posten van een formulier naar /foo/bar/ blijft de $_POST variabele leeg, dit zal wel te maken hebben met die 404.

    Iemand misschien een oplossing hiervoor? Behalve natuurlijk alles opsplitsen in phptjes en daar naar toe posten.
    Dreammastervrijdag 8 februari 2008 @ 16:37
    waarom niet met een ModRewrite

    [ Bericht 13% gewijzigd door Dreammaster op 08-02-2008 16:45:45 ]
    qu63vrijdag 8 februari 2008 @ 16:55
    op de een of andere naier skipped die preg_match_all de laatste .VOB in de lijst
    Geqxonvrijdag 8 februari 2008 @ 17:01
    quote:
    Op vrijdag 8 februari 2008 16:55 schreef qu63 het volgende:
    op de een of andere naier skipped die preg_match_all de laatste .VOB in de lijst
    Ik zie het al. Dat komt zo te zien door de \r\n op het einde. Probeer het eens met deze weggehaald?
    qu63vrijdag 8 februari 2008 @ 17:09
    quote:
    Op vrijdag 8 februari 2008 17:01 schreef Geqxon het volgende:

    [..]

    Ik zie het al. Dat komt zo te zien door de \r\n op het einde. Probeer het eens met deze weggehaald?
    dan pakt ie wel alle bestanden ja, alleen nu werken alleen de hashcodes nog, filename blijft leeg
    SuperRembovrijdag 8 februari 2008 @ 18:49
    quote:
    Op vrijdag 8 februari 2008 15:56 schreef Geqxon het volgende:
    Bring it on!
    [ code verwijderd ]

    :6
    O leuk, gaan we golfen? :)

    1
    2
    3
    <?php
    echo "<a href='pizza.php?id=$pizzaID'>".join(',',$ingredienten)."</a>";
    ?>
    Geqxonzaterdag 9 februari 2008 @ 00:21
    quote:
    Op vrijdag 8 februari 2008 18:49 schreef SuperRembo het volgende:

    [..]

    O leuk, gaan we golfen?
    [ code verwijderd ]
    "join — Alias of implode()".

    Na-apert.
    fokME2zaterdag 9 februari 2008 @ 03:26
    quote:
    Op vrijdag 8 februari 2008 18:49 schreef SuperRembo het volgende:

    [..]

    O leuk, gaan we golfen?
    [ code verwijderd ]
    1<?="<a href=pizza.php?id=$pizzaID>".join(', ',$ingredienten)."</a>"



    Met spatie!

    Naja, ik ben slapen.

    [ Bericht 14% gewijzigd door fokME2 op 09-02-2008 12:45:53 ]
    Chandlerzaterdag 9 februari 2008 @ 17:11
    Een vraagje.

    Ik gebruik het volgende

    1stristr($url_tmp, $query1)


    $url_tmp = http://www.google.nl/search?hl=nl&q=een+zoek+woord&meta=
    $query1 = q=

    maar zag ik een query afkomstig van google met aq er in :{ oftewel

    http://www.google.nl/search?hl=nl&q=een+zoek+woord&aq=een+ander+zoek+woord&meta=

    maar nu zou ik graag de stristr functie willen replacen met iets waarbij ik ook goed ? of & kan uitlezen.

    Heeft iemand een goed idee?
    Geqxonzaterdag 9 februari 2008 @ 17:55
    Zoiets:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <?php
        $url 
    "http://www.google.nl/search?hl=nl&q=een+zoek+woord&aq=een+ander+zoek+woord&meta=";
        
    $parameters parse_url($urlPHP_URL_QUERY);
        
    $parameters explode("&"$parameters);
        
    $parameter_array = array();
        
        foreach (
    $parameters as $parameter){
            list(
    $key$value) = explode("="$parameter);
            
            
    $parameter_array[$key] = $value;
        }
    ?>

    ?

    Al kan een regex ook prima.

    [ Bericht 21% gewijzigd door Geqxon op 09-02-2008 18:04:18 ]
    Arjan321zondag 10 februari 2008 @ 13:10
    ik denk dat je voor het mooie zelfs het parsen van de query string kan laten uitvoeren door parse_str, http://nl3.php.net/manual/en/function.parse-str.php
    Chandlerzondag 10 februari 2008 @ 17:34
    Idd Geqxon, dat is ook een optie... maar ik denk even verder
    @Arjan321: kan ook, zal er even naar kijken.

    Iets anders

    Aangezien parsen van vele sites nogal intensief is vraag ik mij af of dit (zie code) te behappen is als je bv 1000 gebruikers p/minuut op je site krijgt.

    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
    69
    70
    <?php
    function getmicrotime()
    {
        list(
    $usec$sec) = explode(" "microtime());
        return ((float)
    $usec + (float)$sec);
    }
    function 
    php_get_browser($agent NULL)
    {
        
    $agent $agent $agent $_SERVER['HTTP_USER_AGENT'];
        
    $yu    = array();
        
    $q_s   = array("#\.#","#\*#","#\?#");
        
    $q_r   = array("\.",".*",".?");
        
    $brows parse_ini_file("browscap.ini"true);

        foreach (
    $brows as $k => $t)
        {
            if (
    fnmatch($k$agent))
            {
                
    $yu['browser_name_pattern'] = $k;
                
    $pat preg_replace($q_s$q_r$k);
                
    $yu['browser_name_regex'] = strtolower("^" $pat "$");

                foreach (
    $brows as $g => $r)
                {
                    if (
    $t['Parent'] == $g)
                    {
                        foreach (
    $brows as $a => $b)
                        {
                            if (
    $r['Parent'] == $a)
                            {
                                
    $yu array_merge($yu$b$r$t);
                                foreach(
    $yu as $d => $z)
                                {
                                    
    $l strtolower($d);
                                    
    $hu[$l] = $z;
                                }
                            }
                        }
                    }
                }

                break;
            }
        }
        
        return 
    $hu;
    }


    $start getMicroTime();

    if (!
    function_exists('fnmatch'))
    {
        function 
    fnmatch($pattern$string)
        {
            return @
    preg_match('/^' strtr(addcslashes($pattern'/\\.+^$(){}=!<>|'), array('*' => '.*''?' => '.?')) . '$/i'$string);
        }
    }

    echo 
    '<pre>';

    $brouwser php_get_browser();

    $brouwser['browser'] = str_replace("IE""Internet Explorer"$brouwser['browser']);

    print_r($brouwser);

    echo 
    round(getMicroTime() - $start2);
     
    ?>


    Voorbeeld: http://www.ipcounter.nl/test/getbrowser.php

    Ps. browscap.ini is ruim 300KB!

    Op mijn host kan ik namelijk geen get_browser gebruiken aangezien de browscap.ini niet gezet is
    SuperRembozondag 10 februari 2008 @ 19:59
    quote:
    Op zondag 10 februari 2008 17:34 schreef Chandler het volgende:
    Aangezien parsen van vele sites nogal intensief is vraag ik mij af of dit (zie code) te behappen is als je bv 1000 gebruikers p/minuut op je site krijgt.
    [ code verwijderd ]
    Wat is er zo vreselijk interessant aan welke browser/os een bezoeker precies gebruikt, waarom zou je daar zo veel webserverpower aan verspillen?

    $brouwser
    Farenjizondag 10 februari 2008 @ 20:14
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
        foreach ($brows as $k => $t)
        {
        [..]
        
            foreach ($brows as $g => $r)
                {
                [..]
                        foreach ($brows as $a => $b)
                        {
                        [..]
                                $yu = array_merge($yu, $b, $r, $t);
                                foreach($yu as $d => $z)


    Dit lijkt me niet echt optimaal, heel zachtjes uitgedrukt.
    Chandlerzondag 10 februari 2008 @ 20:16
    quote:
    Op zondag 10 februari 2008 19:59 schreef SuperRembo het volgende:

    [..]

    Wat is er zo vreselijk interessant aan welke browser/os een bezoeker precies gebruikt, waarom zou je daar zo veel webserverpower aan verspillen?

    $brouwser
    Ja ja Brouwser

    Maaruh gewoon, ik wil deze statistieken bewaren
    SuperRembozondag 10 februari 2008 @ 20:29
    quote:
    Op zondag 10 februari 2008 20:16 schreef Chandler het volgende:

    [..]

    Ja ja Brouwser

    Maaruh gewoon, ik wil deze statistieken bewaren
    Dan zal je nog het een en ander moeten optimaliseren, want nu haal je nog geen 15 pagina's per seconde.
    Als ik me goed herinner is foreach niet de snelste manier om door een array te lopen. Je zou ook een scriptje kunnen schrijven die de browsecap.ini file om zet naar een php inlcude file waar je alvast wat voorbereiding hebt gedaan. Je kan er dan ook voor zorgen dat de meest populaire browsers vooraan staan en de zeldzame achteraan.
    ralfiezondag 10 februari 2008 @ 21:09
    Met wat voorwerk kun je dat script véél efficienter maken.. Enkele voorbeelden:

    *gebruik eerst array_key_search oid, grote kans dat de meeste browsers er dan al uitrollen zonder dat je die hele tabel 400 keer op en neer moet

    * foreach: niet gebruiken. Foreach gebruikt een kopie van de array waar je um op zet, dus als je array om en nabij de 300 kb is en je foreach in foreach in foreach lust ben je niet slim bezig

    * Verschillende keren zie je parent=naamxxxx staan. Kijk eens of je daar een numerieke verwijzing aan kan hangen, gaat veel sneller

    * Splitsen van browserherkenning en info in verschillende bestanden, bijvoorbeeld met binary trees

    * Erg omslachtig natuurlijk, maar databases zijn erg goed in het snel opzoeken van dit soort informatie in dit soort tabellen

    etc

    EDIT, oh enneh

    1
    2
    3
    4
    5
    6
    <?php
    foreach ($brows as $g => $r)
                {
                    if (
    $t['Parent'] == $g)
                    {
    ?>

    Wat is er mis met $brows[ $t['parent'] ] ?
    Geqxonzondag 10 februari 2008 @ 21:14
    -

    [ Bericht 94% gewijzigd door Geqxon op 10-02-2008 21:15:13 ]
    Lightzondag 10 februari 2008 @ 22:37
    quote:
    Op zondag 10 februari 2008 20:16 schreef Chandler het volgende:

    [..]

    Ja ja Brouwser

    Maaruh gewoon, ik wil deze statistieken bewaren
    Dan is het toch voldoende om $_SERVER['HTTP_USER_AGENT'] op te slaan bij iedere request?
    Chandlerzondag 10 februari 2008 @ 23:01
    Ik heb nu een functie gemaakt die idd de meest gangbare browsers detecteerd, maar om er zeker van te zijn ga ik nu ook gewoon de browser string opslaan!

    Ps. Is het handig om alle data zoals, dag, maand, jaar, cookies, plugins, referer, zoekwoorden en dergelijke infomatie in 1 tabel te zetten of is het handiger om dit in apparte tabellen te zetten?
    Geqxonzondag 10 februari 2008 @ 23:12
    quote:
    Op zondag 10 februari 2008 23:01 schreef Chandler het volgende:
    Ik heb nu een functie gemaakt die idd de meest gangbare browsers detecteerd, maar om er zeker van te zijn ga ik nu ook gewoon de browser string opslaan!

    Ps. Is het handig om alle data zoals, dag, maand, jaar, cookies, plugins, referer, zoekwoorden en dergelijke infomatie in 1 tabel te zetten of is het handiger om dit in apparte tabellen te zetten?
    Is dat niet nog simpeler? Enkel de browser-string opslaan, en pas bij het uitlezen deze "encoden" ?
    Lightzondag 10 februari 2008 @ 23:47
    quote:
    Op zondag 10 februari 2008 23:01 schreef Chandler het volgende:
    Ik heb nu een functie gemaakt die idd de meest gangbare browsers detecteerd, maar om er zeker van te zijn ga ik nu ook gewoon de browser string opslaan!
    Die functie werkt toch ook op basis van de browserstring? Dus meer heb je echt niet nodig.

    Trouwens, een browserstring is manipuleerbaar. Je kunt er geen 100% garantie uit halen. Ik heb zo snel geen voorbeeld van een programma waar je die string volledig zelf kunt bepalen, maar er zijn vast wel van die programma's.
    qu63zondag 10 februari 2008 @ 23:54
    quote:
    Op zondag 10 februari 2008 23:47 schreef Light het volgende:

    [..]

    Die functie werkt toch ook op basis van de browserstring? Dus meer heb je echt niet nodig.

    Trouwens, een browserstring is manipuleerbaar. Je kunt er geen 100% garantie uit halen. Ik heb zo snel geen voorbeeld van een programma waar je die string volledig zelf kunt bepalen, maar er zijn vast wel van die programma's.
    Er zijn legio plugins voor FireFox waar je het mee kan doen, ikzelf gebruik "Modify Headers", kan je alles zelf invullen
    Geqxonmaandag 11 februari 2008 @ 00:02
    "User Agent Switcher".
    fokME2maandag 11 februari 2008 @ 00:03
    Waarom wil je in godensnaam al die dingen opslaan? Als je zo graag die dingen wil hebben ga dan gewoon je apache logs parsen?
    quote:
    Apache/2.0.59 (Unix) mod_perl/1.99_17-dev Perl/v5.8.6 mod_ssl/2.0.59 OpenSSL/0.9.8e PHP/5.2.3 Server at www.ericbruggema.nl Port 80
    Edit: Je hebt realtime statistieken die je aanbied oid? Dan schiet het inderdaad niet op.

    [ Bericht 53% gewijzigd door fokME2 op 11-02-2008 00:08:20 ]
    Farenjimaandag 11 februari 2008 @ 00:13
    quote:
    Op zondag 10 februari 2008 23:01 schreef Chandler het volgende:
    Ik heb nu een functie gemaakt die idd de meest gangbare browsers detecteerd, maar om er zeker van te zijn ga ik nu ook gewoon de browser string opslaan!

    Ps. Is het handig om alle data zoals, dag, maand, jaar, cookies, plugins, referer, zoekwoorden en dergelijke infomatie in 1 tabel te zetten of is het handiger om dit in apparte tabellen te zetten?
    Het is niet handig om dat nu allemaal op te slaan. Ten eerste ga je nooit al die info nodig hebben of gebruiken en ten tweede hoef je niet alles te berekenen - sla alleen de data op waaruit je de info kan destilleren,gewoon in ruwe vorm. Dan maak je later wel een scriptje om de benodigde velden te berekenen. Als je het on the fly gaat bereken met dat scriptje dat je hebt gepost dan trek je de server snel op zijn bek denk ik.
    Chandlermaandag 11 februari 2008 @ 08:04
    @Iedereen; het scriptje dat browscap.ini parst ga ik niet gebruiken. Aangezien het toch nogal wat preformance vraagt van de server. Ik doe nu gewoon 2 dingen voor mijn statistieken script. 1 is de $_SERVER['HTTP_USER_AGENT'] opslaan plus dat ik deze string op een paar bekende browsers check, en deze sla ik ook weer op.

    Iemand nog een antwoord op mijn gebruik van de database? is dit te behappen wat ik doe of moet ik apparte tabellen voor alle onderdelen gebruiken?

    [PHP/(My)SQL] voor dummies - deel 55
    Xcaliburmaandag 11 februari 2008 @ 08:45
    quote:
    Op maandag 11 februari 2008 08:04 schreef Chandler het volgende:
    @Iedereen; het scriptje dat browscap.ini parst ga ik niet gebruiken. Aangezien het toch nogal wat preformance vraagt van de server. Ik doe nu gewoon 2 dingen voor mijn statistieken script. 1 is de $_SERVER['HTTP_USER_AGENT'] opslaan plus dat ik deze string op een paar bekende browsers check, en deze sla ik ook weer op.

    Iemand nog een antwoord op mijn gebruik van de database? is dit te behappen wat ik doe of moet ik apparte tabellen voor alle onderdelen gebruiken?

    [PHP/(My)SQL] voor dummies - deel 55
    Deze vraag is al vaker langsgeweest, ook op Tweakers.... dus met even zoeken moet je er wel komen

    Volgens mij (uit m'n hoofd) is de meest gangbare manier om alles apart in 1 tabel, maar na een week / maand / jaar / etc. samen te vatten in een nieuwe tabel met alleen de totalen. Op die manier blijft je logtabel te behappen, en kan je gemakkelijk de overzichten maken

    Het lijkt me niet onverstandig om aparte tabellen maken voor de browsers, schermresolutie, etc. en daar alleen de unieke waarden in opslaan. Dan heb je in je logtabel alleen nog een ID nodig, dat lijkt me een stuk sneller en eenvoudiger te verwerken...
    Chandlermaandag 11 februari 2008 @ 09:46
    Ik heb even gezocht op Tweakers en daar staat dat het handiger is om alles in 1 tabel te stoppen ik ben dus al goed bezig! maar denk dat het toch handiger is voor mij om een tabel voor tekst en een tabel voor nummeriek op te zetten. Zo splits ik wat data en zal het zoeken / lezen van records sneller gaan!
    Swetseneggermaandag 11 februari 2008 @ 11:52
    Daar ben ik weer eens.

    Momenteel ben ik met een scriptje bezig waarbij de pagina die je voorgeschotelt krijgt afhankelijk is van welk persoon de pagina bekijkt. Nu kan ik dat uiteraard met een login script doet, maar aangezien het nogal vaak gebruikt moet worden is dat niet erg gebruiksvriendelijk.

    Nu zit ik hier op het bedrijfsnetwerk en zijn mensen uiteraard al ingelogd. LDAP dus.

    Ondertussen kan ik al info uit de LDAP server lezen, maar ik wil nu de credentials waar mensen mee zijn ingelogd vergelijken met de server om te authenticeren. Maar..., ik dnek dat ik het niet goed benader, want je credentials worden denk ik niet in de header info meegestuurd ofzo? Is dit uberhaupt mogelijk?
    Geqxonmaandag 11 februari 2008 @ 12:02
    quote:
    Op maandag 11 februari 2008 11:52 schreef Swetsenegger het volgende:
    Daar ben ik weer eens.

    Momenteel ben ik met een scriptje bezig waarbij de pagina die je voorgeschotelt krijgt afhankelijk is van welk persoon de pagina bekijkt. Nu kan ik dat uiteraard met een login script doet, maar aangezien het nogal vaak gebruikt moet worden is dat niet erg gebruiksvriendelijk.

    Nu zit ik hier op het bedrijfsnetwerk en zijn mensen uiteraard al ingelogd. LDAP dus.

    Ondertussen kan ik al info uit de LDAP server lezen, maar ik wil nu de credentials waar mensen mee zijn ingelogd vergelijken met de server om te authenticeren. Maar..., ik dnek dat ik het niet goed benader, want je credentials worden denk ik niet in de header info meegestuurd ofzo? Is dit uberhaupt mogelijk?
    Draait de webserver toevallig in hetzelfde domain als waar de gebruikers ingelogd zijn?
    1
    2
    3
    <?php
    $_SERVER
    ['LOGON_USER']
    ?>
    of
    1
    2
    3
    <?php
    $_SERVER
    ['AUTH_USER']
    ?>
    is dan een optie. Werkt enkel onder IIS, voor Apache heb je mod_ntlm nodig.
    Swetseneggermaandag 11 februari 2008 @ 12:52
    quote:
    Op maandag 11 februari 2008 12:02 schreef Geqxon het volgende:

    [..]

    Draait de webserver toevallig in hetzelfde domain als waar de gebruikers ingelogd zijn?
    [ code verwijderd ]

    of
    [ code verwijderd ]

    is dan een optie. Werkt enkel onder IIS, voor Apache heb je mod_ntlm nodig.
    Hij draait in hetzelfde domain, onder apache
    mod ntlm heb ik volgens mij al, ik ga ff checken, thanks

    -edit- herinner me nu dat ik me een jaar geleden al eens de tering gezocht heb. mod_ntlm is in apache2 vervangen door mod_auth_sspi

    [ Bericht 10% gewijzigd door Swetsenegger op 11-02-2008 13:06:47 ]
    fokME2maandag 11 februari 2008 @ 13:16
    @Chandler: Als ik jou was zou ik die server strings opslaan voor de stats en dan met een cronjob periodiek de info bereken etc. Dan lopen je grafieken wel xx tijd achter, maar dan heb je denk ik wel de meeste performance.

    Als ik als gebruiker de pagina laad, dan sla je alleen mijn browser-string op en merk ik verder geen traagheid.

    @Swetsenegger: Met LDAP authorisatie heb ik ook eens gespeeld en het werkte goed. Ik dacht dat ik er een classe voor had gebruikt. Misschien dat ik het thuis nog kan vinden.
    Tarabassmaandag 11 februari 2008 @ 13:40
    Zoals ik al eerder in dit topic aangaf ben ik bezig met een oop-cms. Alles gaat lekker alleen loop ik tegen een probleempje aan. Inloggen gaat goed, session-variables worden geset, en de user wordt doorgestuurd naar de index page. Daar include ik een 'safe-file' die check of de session is aangemaakt, die safe.php ziet er zo uit:

    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
    <?php
    require_once('includes/dbconnector.class.php');
    $connector = new DbConnector();

    if(isset(
    $_SESSION['user_id'])) {
        
    //Login correct, update lastactive in db
        
    $connector->query("UPDATE cmsusers SET lastactive=NOW() WHERE id='".$_SESSION['user_id']."'");
    }
    else{
        if(isset(
    $_COOKIE['user_id'])) {
            
    $result = $connector->query("SELECT pass,thegroup FROM cmsusers WHERE id='".$_COOKIE['user_id']."'");
            
    $row = $connector->fetchArray($result);

            
    $dbpass = $row->pass;
            
    $dbstatus = $row->thegroup;
            if(
    $dbpass == $_COOKIE['user_password']) {
                
    $_SESSION['user_id'] = $_COOKIE['user_id'];
                
    $_SESSION['user_status'] = $dbstatus;
            }
            else {
                
    setcookie("user_id", "", time() - 3600);
                
    setcookie("user_password", "", time() - 3600);
                echo
    "Cookies incorrect. Cookies verwijderd.";
                
    header("Location: login.php");
            }
        }
        else{
            
    //Hij blijft hierheen gaan
            
    header("Location: login.php");
        }
    }
    ?>


    Echter blijft de safe-file redirecten naar de login-page. Ik heb getest of de session is geset en dit is zeker weten het geval. Zien jullie wat ik verkeerd doe, want dit is erg frustrerend :(

    ps: Heb deze manier van werken al in een andere website gebruikt en daar werkte het perfect. Met een safe.php en een safe_admin.php beveiligde ik de pages, met een redirect naar login.php. Dit was echter wel zonder classes..
    Swetseneggermaandag 11 februari 2008 @ 13:55
    quote:
    Op maandag 11 februari 2008 13:16 schreef fokME2 het volgende:

    @Swetsenegger: Met LDAP authorisatie heb ik ook eens gespeeld en het werkte goed. Ik dacht dat ik er een classe voor had gebruikt. Misschien dat ik het thuis nog kan vinden.
    Ik had alles blijkbaar al eens geconfigureerd, en de login is nu transparant (met IE, met elke andere browser krijg je gewoon een login prompt). Maar.... ik wil nu de username terug vinden van degene die op de pagina zit. De suggesties van geqxon geeft niets terug en ook $_SERVER['PHP_AUTH_USER'] geeft niets terug.
    Geqxonmaandag 11 februari 2008 @ 13:58
    Swets, wat mij bij staat is dat als je de boel met .htaccess en .htpasswd beveiligd, dat Internet Explorer dan eerst met de username en password van de domein-gebruiker in probeert te loggen. Misschien een optie?
    Swetseneggermaandag 11 februari 2008 @ 14:11
    quote:
    Op maandag 11 februari 2008 13:58 schreef Geqxon het volgende:
    Swets, wat mij bij staat is dat als je de boel met .htaccess en .htpasswd beveiligd, dat Internet Explorer dan eerst met de username en password van de domein-gebruiker in probeert te loggen. Misschien een optie?
    Nee, de authenticatie op zich werkte al, ik kon alleen nog niet achterhalen wie de ingelogde gebruiker was. In principe mag elke gebruiker van het domein op die pagina komen, maar afhankelijk van de gebruiker kan het zijn dat je andere opties hebt.

    $_SERVER['REMOTE_USER']; does the trick
    Dzymaandag 11 februari 2008 @ 14:18
    quote:
    Op maandag 11 februari 2008 13:40 schreef Tarabass het volgende:
    Zoals ik al eerder in dit topic aangaf ben ik bezig met een oop-cms. Alles gaat lekker alleen loop ik tegen een probleempje aan. Inloggen gaat goed, session-variables worden geset, en de user wordt doorgestuurd naar de index page. Daar include ik een 'safe-file' die check of de session is aangemaakt, die safe.php ziet er zo uit:
    [ code verwijderd ]

    Echter blijft de safe-file redirecten naar de login-page. Ik heb getest of de session is geset en dit is zeker weten het geval. Zien jullie wat ik verkeerd doe, want dit is erg frustrerend

    ps: Heb deze manier van werken al in een andere website gebruikt en daar werkte het perfect. Met een safe.php en een safe_admin.php beveiligde ik de pages, met een redirect naar login.php. Dit was echter wel zonder classes..
    Laat de login.php eens zien, want volgens mij set je je cookies niet goed.

    Edit: En dit gaat uiteraard ook niet werken:

    1
    2
                echo "Cookies incorrect. Cookies verwijderd.";
                header("Location: login.php");


    Want een header sturen na output is natuurlijk te laat.
    Farenjimaandag 11 februari 2008 @ 14:22
    quote:
    Op maandag 11 februari 2008 13:40 schreef Tarabass het volgende:
    Zoals ik al eerder in dit topic aangaf ben ik bezig met een oop-cms. Alles gaat lekker alleen loop ik tegen een probleempje aan. Inloggen gaat goed, session-variables worden geset, en de user wordt doorgestuurd naar de index page. Daar include ik een 'safe-file' die check of de session is aangemaakt, die safe.php ziet er zo uit:
    [ code verwijderd ]

    Echter blijft de safe-file redirecten naar de login-page. Ik heb getest of de session is geset en dit is zeker weten het geval. Zien jullie wat ik verkeerd doe, want dit is erg frustrerend

    ps: Heb deze manier van werken al in een andere website gebruikt en daar werkte het perfect. Met een safe.php en een safe_admin.php beveiligde ik de pages, met een redirect naar login.php. Dit was echter wel zonder classes..
    Waarschijnlijk gaat het ophalen van de sessie data niet goed in je safe include. Initialiseer je de sessie wel goed?
    Die safe include is overigens niet echt oop.
    Het idee achter OOP is dat je functionaliteit groepeert in logische bouwblokken waaruit je je applicatie opbouwt. Het is dan logisch om een session class te maken, waar je alle session management in regelt. Eventueel zou je die sessie class deel kunnen laten uitmaken van de user class (als in: wel aparte classes maar een user object bevat/encapsuleert een session object). Het idee is dan dat je een objectmethode maakt (bijv $user->isLoggedIn()) die je overal kan gebruiken. Deze methode van de class user kijkt dan in de sessie (maw in het sessie object dat in het user object zit) van betreffende user of alles ok is en geeft dan een 1 (ingelogd) of een 0 (niet ingelogd) terug. Aan de hand daarvan kun je dan de gevraagde pagina tonen of redirecten naar de loginpagina.
    Tarabassmaandag 11 februari 2008 @ 14:24
    quote:
    Op maandag 11 februari 2008 14:18 schreef Dzy het volgende:

    [..]

    Laat de login.php eens zien, want volgens mij set je je cookies niet goed.

    Edit: En dit gaat uiteraard ook niet werken:
    [ code verwijderd ]

    Want een header sturen na output is natuurlijk te laat.
    De login gebruikt een functie in een class om in te loggen en eventueel cookies te zetten.

    Cookies worden zo gezet:

    1
    2
    3
    4
    5
    6
    <?php
        
    function setCookie($userid$userpass) {
            
    setcookie("user_id"$useridtime() + 365 86400);
            
    setcookie("user_password"$userpasstime() + 365 86400);
        }
    ?>
    Dzymaandag 11 februari 2008 @ 14:28
    Als je je code even duidelijk indent zie je dat hij dus altijd over de if constructie met isset(cookie) heen knalt. Daarom moeten je cookies wel niet goed staan. Ik hoop dat je wel session_start ook aanroept he?
    Tarabassmaandag 11 februari 2008 @ 14:29
    quote:
    Op maandag 11 februari 2008 14:22 schreef Farenji het volgende:

    [..]

    Waarschijnlijk gaat het ophalen van de sessie data niet goed in je safe include. Initialiseer je de sessie wel goed?
    Die safe include is overigens niet echt oop.
    Het idee achter OOP is dat je functionaliteit groepeert in logische bouwblokken waaruit je je applicatie opbouwt. Het is dan logisch om een session class te maken, waar je alle session management in regelt. Eventueel zou je die sessie class deel kunnen laten uitmaken van de user class (als in: wel aparte classes maar een user object bevat/encapsuleert een session object). Het idee is dan dat je een objectmethode maakt (bijv $user->isLoggedIn()) die je overal kan gebruiken. Deze methode van de class user kijkt dan in de sessie (maw in het sessie object dat in het user object zit) van betreffende user of alles ok is en geeft dan een 1 (ingelogd) of een 0 (niet ingelogd) terug. Aan de hand daarvan kun je dan de gevraagde pagina tonen of redirecten naar de loginpagina.
    Dat is inderdaad de bedoeling. Maar omdat het niet werkte ben ik eerst een stap terug gegaan naar een losse file waarin gecheckt wordt of de sessie wel bestaat. De functionaliteit komt inderdaad in een functie in de sentry-class die ik dan bovenaan de pages aanroep. Maar nogmaals, classes zijn nieuw voor mij en daarom probeer ik eerst op een manier wat duidelijk voor mij is de code uit.

    De sessie bestaat overigens wel (en wordt ook aangemaakt door de class 'sentry' in dit geval) want in het menu heb ik linkjes verborgen achter een "if(isset($_SESSION['user_id']))" en die linkjes zie ik ook na inloggen..
    Dzymaandag 11 februari 2008 @ 14:34
    Als de sessie daadwerkelijk zou bestaan zou hij niet naar login.php gaan. Doe eens een var_dump op $_SESSION en op $_COOKIE boven de if-then-else constructies.
    Tarabassmaandag 11 februari 2008 @ 14:38
    quote:
    Op maandag 11 februari 2008 14:34 schreef Dzy het volgende:
    Als de sessie daadwerkelijk zou bestaan zou hij niet naar login.php gaan. Doe eens een var_dump op $_SESSION en op $_COOKIE boven de if-then-else constructies.
    Geeft inderdaad NULL, terwijl de linkjes in het menu in het if(isset($_SESSION['user_id'])-statement wel worden weergegeven :S
    Tarabassmaandag 11 februari 2008 @ 14:43
    Het heeft inderdaad te maken met session_start, terwijl ik die wel in de class 'sentry' in de function login() aanroep en daarna de variables vul. Als ik dus op de index.php voor de include van safe.php session_start() meegeef doet hij het wel.
    Dzymaandag 11 februari 2008 @ 15:41
    Werd er niet per ongeluk al output gegenereerd? (Denk het niet want dan zou je header redirect ook niet werken maar je weet het maar nooit). Kan ook whitespace zijn.
    Tarabassmaandag 11 februari 2008 @ 18:55
    quote:
    Op maandag 11 februari 2008 15:41 schreef Dzy het volgende:
    Werd er niet per ongeluk al output gegenereerd? (Denk het niet want dan zou je header redirect ook niet werken maar je weet het maar nooit). Kan ook whitespace zijn.
    Nee, ik weet al waar het in zat. De session werd gestart in de constructor van de sentry-class, maar die had een verkeerde naam. Nu werkt alles zoals het moet. Erg bedankt voor het meedenken want zo wist ik welke richting ik op moest zoeken
    Chandlermaandag 11 februari 2008 @ 20:14
    Ik heb nog een leuke, ik wil records verwijderen maar de 10 meest recente laten staan... hoe kan ik dit verwezenlijken zonder een query te doen op het aantal regels?
    SuperRembomaandag 11 februari 2008 @ 20:42
    1
    2
    3
    4
    5
    6
    7
    DELETE FROM foo
    WHERE id NOT IN (
       SELECT id 
       FROM foo
       ORDER BY created DESC
       LIMIT 10
    )


    (Als je niet een hele oude MySQL versie gebruikt)
    BaggerUsermaandag 11 februari 2008 @ 20:45
    hoi,

    ben aan het proberen om advertenties van marktplaats uit te lezen en op die manier ook op een eigen site te zetten (anders moeten ze altijd twee keer worden toegevoegd op twee verschillende sites en dat is nogal een werk.

    ik heb op dit moment dit:

    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
    function getLine($page$keyword$pattern) { 
      foreach (
    $page as $line_num => $line) { 
        if(
    strstr($line$keyword)){ 
          if(
    ereg($pattern$line$output)){ 
            
    $result $line_num
          } 
        } 
      } 
      return 
    $result


    // URL van de pagina die doorzocht moet worden
    $url "http://auto.marktplaats.nl/audi/132476134-150x-audi-a3-a4-a6-tdi-golf-4-5-tdi-benzine-seat-leon-tdi.html?return=eJwdyEEOgyAQheG7mOiuIJIuxBhDb0KURiLIhBmTpk3v3qGbme9%2FzijzCaaf0Ki7Mg16V9Z92onASHlk8KdIrhwE0TlCcUbpLso35LcFuY5a7JTi8oqz6jacKbfaqlY%2FIh87%2FjVU6SpivQMw8bkhBwvq2DMS7%2Fa8ki9h5cwYuIcO4Jr7Zvr%2BAA4JNF8%3D&fta=eNptVm1uGzkMvcv86G%2FxSxQ1yBX2CoFRp10DTmLETje7Qe5ejuiRVGBRIGheKJKPfCTnUEv9vPqP5f3t%2FPjrcL4uq%2F8qdfk4P8C34%2FXh9lphPUM1%2F4nVaD3f6n%2Bny3r9cbzW9XKraX2%2B1Jf356e30%2Ff1%2FFGREpmt53%2BrYC6E6%2Bv1VPHb5fL%2BkDbnXJfL4efTsp7c8bVSXU5Hj3qokKh%2BntzftVpdgJA1A%2FFuuGGOFEoFNgx3OyZjQ9ww6naKRilvGO9Y9oeU2luZ7LLG2zxjSLJhuscQIvEoG1Z2Oyol59Ji2PQWC2vLeSfCnjUxBpHOhPw5SoA4WeaC1MDORVjBCTawkwFk49SShIkNmHJYdjqIbgwtddBumYATRZ6dEEKyogHujJBLLqW0QNgZpYyg1vLEzsgdkFe5gZ2RgKjlFh07I1A1k9LAzkjZgCh8zowYc%2FicGgRkUU%2FUP5K%2F%2B%2ByMMmQQaAVBG3mqsjZL6oxcsm4YItoZEWlJrsMG4oievCQtT6KhBXMdtjypMxIyUAiwM3K5qVJEzyNPcbU2RqRDIQRQInoZfUeQFNE7I05IaO05pylPL12rPMMfeQZN7oxQsfifGjgYKakEd%2B6MCF3yGpajR5i8nG2ueDAyTUnj%2BaQ6E5YmMC4TqG7dwJ0RFSWy0qokQ3VIHijAzojZhHJ7LqNH2ew%2BMtIZ5eLMpSlZOiMvvc9hamBnJEmdaWyKPGTjC4rjuQ4li9cvno%2FFQFuRIs%2BhOvHB5tajnOYWl1hxecyR7ymJPZXHZrDs%2FWyVzzTRlBJTnHkabSixGfLOyIWYwCB8jh7l5AsjwM4oS1aOec9ltMPdcmOUbci7METjNE0poUrTvMLw6XoIeStOYGFqpVOaQGVqKSnPzzWUrDJbQmot1s6IuKQcI6M6gwUjzzKDEHOkNoMYNMvoEXjqsVjKdIcsSYih9EOUIXGOFpcxRwSC1miWoTp2IUJYDkbmF4rixuReedmSj%2BidkfcS%2FV8Dy3Qafau20pXBKPkaCJqWRuOEOU6PzZdVfEIaOHrki94XYwNptqQ4E8b9QLrs7sNlMhaLOB4%2Bp81QXLOR0pij7NA9z3GPkGw%2FsPY%2FXwCQ0uzUBzzQaZJE7mvVpTI8%2BCxu%2BX9d%2FcrW5fZ6ORyvj%2Benl5%2B3v%2FevCEh1%2Bf7%2B9vZ4ejk%2BfWzoPdbz4eNx%2B37xT5ZjbHCsy%2BGfZf3r%2Ft9f27dMqp9fX78BmNgwHA%3D%3D&fta_ind=1&df=1"

    // Naar welk begindeel moet er worden gezocht:
    $search1 'Vermogen'

    // Naar welk einddeel moet er worden gezocht: 
    $search2 'Cylinderinhoud'

    // Wat moeten er van die regel worden opgenomen:
    // Het patroon maakt gebruik van reguliere expressies 
    //$pattern = '.*'; 
    $pattern '.*.'

    //////

    $lines file($url); 
    $begin getLine($lines$search1$pattern); 
    $end getLine($lines$search2$pattern); 

    for(
    $i=$begin$i $end$i++) { 
      echo 
    $lines[$i]; 

      
    ?>


    probleem waar ik mee zit (ik heb even een willekeurige advertentie gepakt, zie link in script)

    is dat ik de bovenste info wel kan uitlezen , maar de onderste info (in het 2e kopje dus oa die met cyllinderinhoud) niet. iemand enig idee hoe dat kan?

    sowieso, niet iemand die een minder omslachtige manier weet?
    sabanmaandag 11 februari 2008 @ 21:30
    quote:
    Op maandag 11 februari 2008 20:42 schreef SuperRembo het volgende:

    [ code verwijderd ]

    (Als je niet een hele oude MySQL versie gebruikt)
    Handig!
    Wist niet dat MySQL ook kon sorteren op created
    Geqxonmaandag 11 februari 2008 @ 21:38
    quote:
    Op maandag 11 februari 2008 20:42 schreef SuperRembo het volgende:

    [ code verwijderd ]

    (Als je niet een hele oude MySQL versie gebruikt)
    "created? Geniaal, die maakte ik normaal altijd zelf.

    Bestaat "updated" ook?
    Farenjimaandag 11 februari 2008 @ 21:43
    "created" is gewoon een veld in de tabel, die moet wel bestaan of moet je zelf aanmaken. Maar als je "created" van het type timestamp maakt en het is de enige timestamp in de tabel, dan wordt ie automatisch uptodate gehouden door MySQL, met de tijd van laatste aanpassing, of creatie van het database record.
    Geqxonmaandag 11 februari 2008 @ 21:51
    O, ik dacht dat MySQL dat veld altijd zelf aanmaakt. In dat geval hou ik het wel zoals ik het nu doe, een veld date_added en een veld date_updated.
    SuperRembomaandag 11 februari 2008 @ 22:08
    quote:
    Op maandag 11 februari 2008 21:51 schreef Geqxon het volgende:
    O, ik dacht dat MySQL dat veld altijd zelf aanmaakt. In dat geval hou ik het wel zoals ik het nu doe, een veld date_added en een veld date_updated.
    En die noem ik dus meestal created en modified
    Dzydinsdag 12 februari 2008 @ 00:58
    quote:
    Op maandag 11 februari 2008 18:55 schreef Tarabass het volgende:

    [..]

    Nee, ik weet al waar het in zat. De session werd gestart in de constructor van de sentry-class, maar die had een verkeerde naam. Nu werkt alles zoals het moet. Erg bedankt voor het meedenken want zo wist ik welke richting ik op moest zoeken
    Geen probleem. Blij dat het gelukt is.

    Een korte vraag deze keer maar vooral even laten weten wat voor tofs ik aan het maken ben

    Ik en mijn vrienden hebben best wel een gedeelde muzieksmaak (livesets van DJs) en hebben samen wel een verzameling van zo'n 2 terabyte. Nu heb ik helaas niet genoeg ruimte om dat alles op te slaan, net als de rest overigens. Nu heb ik ze zo ver gekregen dat ze allemaal wel een FTP servertje willen draaien maar om niet moeilijk te doen met FTP clients en rechten instellen en files slepen gaan ze gewoon allemaal 1 root account aanmaken die overal bij kan en dan kunnen ze zelf bestanden aan de database toevoegen (locatie welke FTP server en waar op de FTP server). Mijn files komen rechtstreeks van mijn webserver die hier dus draait af. Dat werkt allemaal prima, maar als iemand een bestand wil downloaden die op een van de andere FTP servers draait moet mijn webserver eerst dat ding daarvandaan downloaden en dan versturen. Is er niet iets mogelijk dat die rechtstreeks daarvandaan gedownload word zonder met een FTP client in te loggen en toch niet die dubbele download te hebben? Of bijvoorbeeld mogelijk om elke 1024 bytes die de server download alvast door te sturen naar de downloader? Daar ken ik het FTP protocol niet goed genoeg voor en ik weet ook niet of daar al ftp classes voor zijn.

    Iemand een idee?
    Lightdinsdag 12 februari 2008 @ 07:03
    quote:
    Op maandag 11 februari 2008 13:40 schreef Tarabass het volgende:
    Zoals ik al eerder in dit topic aangaf ben ik bezig met een oop-cms. Alles gaat lekker alleen loop ik tegen een probleempje aan. Inloggen gaat goed, session-variables worden geset, en de user wordt doorgestuurd naar de index page. Daar include ik een 'safe-file' die check of de session is aangemaakt, die safe.php ziet er zo uit:
    [ code verwijderd ]

    Echter blijft de safe-file redirecten naar de login-page. Ik heb getest of de session is geset en dit is zeker weten het geval. Zien jullie wat ik verkeerd doe, want dit is erg frustrerend :(

    ps: Heb deze manier van werken al in een andere website gebruikt en daar werkte het perfect. Met een safe.php en een safe_admin.php beveiligde ik de pages, met een redirect naar login.php. Dit was echter wel zonder classes..
    Je hebt het al opgelost, maar er zijn toch nog een paar puntjes waar je op kunt letten:

    1
    2
    3
    4
    5
    6
    7
    <?php
            $result 
    $connector->query("SELECT pass,thegroup FROM cmsusers WHERE id='".$_COOKIE['user_id']."'");
            
    $row $connector->fetchArray($result);

            
    $dbpass $row->pass;
            
    $dbstatus $row->thegroup;
    ?>


    $_COOKIE is externe input en dus onbetrouwbaar. Je geeft $_COOKIE['user'] mee als string (terwijl het waarschijnlijk een integerwaarde is) en dan mag je daar wel mysql_real_escape_string() overheen halen. Of iets als intval() om er een integer van te maken.

    Ik ken je functie fetchArray niet, maar de naam doet mij vermoeden dat er een array wordt opgehaald en dat $row dus een array wordt. Die kun je dan niet uitlezen met $row->pass, wel met bijvoorbeeld $row[0] of $row['pass'], afhankelijk van de opbouw van de array.
    Chandlerdinsdag 12 februari 2008 @ 07:44
    quote:
    Op maandag 11 februari 2008 20:42 schreef SuperRembo het volgende:

    [ code verwijderd ]

    (Als je niet een hele oude MySQL versie gebruikt)
    En als ik nu wel een iets te oude versie heb
    Lightdinsdag 12 februari 2008 @ 07:53
    quote:
    Op dinsdag 12 februari 2008 07:44 schreef Chandler het volgende:

    [..]

    En als ik nu wel een iets te oude versie heb
    Dan moet je eens kijken naar de mogelijkheden om te upgraden
    Chandlerdinsdag 12 februari 2008 @ 08:30
    True True! maar als die mogelijkheid er nu niet is?

    [ Bericht 85% gewijzigd door Chandler op 12-02-2008 10:21:52 ]
    Geqxondinsdag 12 februari 2008 @ 09:23
    Mijn hosting-provider gebruikt altijd de laatste versie van PHP, MySQL en cPanel.
    Farenjidinsdag 12 februari 2008 @ 12:01
    quote:
    Op dinsdag 12 februari 2008 08:30 schreef Chandler het volgende:
    True True! maar als die mogelijkheid er nu niet is?
    Dan moet je het in 2 aparte queries doen: eerst een lijst van de recente records ophalen, en deze vervolgens wissen in een tweede query. Veel queries met subqueries kun je herschrijven tot een enkelvoudige query, maar bovenstaande is een goed voorbeeld waar dat niet kan.

    Ik zit overigens op mijn werk ook opgescheept met mysql 4.0 (uit debian sarge), die heeft geen subquery support.
    Upgraden van tientallen servers en bovendien met software die niet 100% op nieuwere versies draait is niet zo makkelijk. Maar binnenkort moeten we wel, dat wordt dus nog leuk...
    sabandinsdag 12 februari 2008 @ 13:24
    * saban heeft nog steeds genoeg vrije tijd over om iets te bouwen .. ben er nog steeds niet uit 'wat'

    Gastenboek? Heb je binnen paar uur klaar.
    Factuursysteem? Kan, lijkt me leuk met FPDF bijv..
    More?
    Chandlerdinsdag 12 februari 2008 @ 13:35
    Doe maar een factuursysteem waarbij de facturen ook opgeslagen worden in de database eventueel ook een klanten tabel! plus opslag van facturen om eventueel bij nieuwe layout de facturen in een nieuwe layout te zetten
    Xcaliburdinsdag 12 februari 2008 @ 14:29
    quote:
    Op dinsdag 12 februari 2008 13:24 schreef saban het volgende:
    * saban heeft nog steeds genoeg vrije tijd over om iets te bouwen .. ben er nog steeds niet uit 'wat'

    Gastenboek? Heb je binnen paar uur klaar.
    Factuursysteem? Kan, lijkt me leuk met FPDF bijv..
    More?
    Loginsysteem met challenge-response systeem, sessie management en verschillende userrollen?
    Automatische login en username/password opvragen met een 'geheime vraag' zijn leuke extra's
    BaggerUserdinsdag 12 februari 2008 @ 15:14
    quote:
    Op maandag 11 februari 2008 20:45 schreef BaggerUser het volgende:
    hoi,

    ben aan het proberen om advertenties van marktplaats uit te lezen en op die manier ook op een eigen site te zetten (anders moeten ze altijd twee keer worden toegevoegd op twee verschillende sites en dat is nogal een werk.

    ik heb op dit moment dit:
    [ code verwijderd ]

    probleem waar ik mee zit (ik heb even een willekeurige advertentie gepakt, zie link in script)

    is dat ik de bovenste info wel kan uitlezen , maar de onderste info (in het 2e kopje dus oa die met cyllinderinhoud) niet. iemand enig idee hoe dat kan?

    sowieso, niet iemand die een minder omslachtige manier weet?

    iemand?
    Dzydinsdag 12 februari 2008 @ 15:33
    quote:
    Op dinsdag 12 februari 2008 15:14 schreef BaggerUser het volgende:

    [..]

    iemand?
    Weet je zeker dat je geen typo hebt gemaakt met Cylinder?
    sabandinsdag 12 februari 2008 @ 16:17
    quote:
    Op dinsdag 12 februari 2008 13:35 schreef Chandler het volgende:
    Doe maar een factuursysteem waarbij de facturen ook opgeslagen worden in de database eventueel ook een klanten tabel! plus opslag van facturen om eventueel bij nieuwe layout de facturen in een nieuwe layout te zetten
    Weet je toevallig ook een gratis (webbased) facturatiesysteem?
    Geqxondinsdag 12 februari 2008 @ 16:46
    dompdf.
    Chandlerdinsdag 12 februari 2008 @ 16:57
    quote:
    Op dinsdag 12 februari 2008 16:17 schreef saban het volgende:

    [..]

    Weet je toevallig ook een gratis (webbased) facturatiesysteem?
    Was het maar waar, dan zou ik daar zekers gebruik van maken
    Chandlerdinsdag 12 februari 2008 @ 18:05
    Leuke vraag,

    Wat is het verschil met tinyint(1) en tinyint(2) etc, zelfde geld voor INT
    Lightdinsdag 12 februari 2008 @ 18:28
    quote:
    Op dinsdag 12 februari 2008 12:01 schreef Farenji het volgende:

    Ik zit overigens op mijn werk ook opgescheept met mysql 4.0 (uit debian sarge), die heeft geen subquery support.
    Upgraden van tientallen servers en bovendien met software die niet 100% op nieuwere versies draait is niet zo makkelijk. Maar binnenkort moeten we wel, dat wordt dus nog leuk...
    Dat ken ik. Nog leuker is het als je iets maakt voor een klant en er dan achter komt dat het niet werkt omdat er php-instellingen niet goed staan. Dingen als register_globals en magic_quotes_gpc mogen wmb wel uit, maar sommige hosters laten het niet toe dat aan te passen (zelfs niet met .htaccess bestandjes)
    Lightdinsdag 12 februari 2008 @ 18:29
    quote:
    Op dinsdag 12 februari 2008 18:05 schreef Chandler het volgende:
    Leuke vraag,

    Wat is het verschil met tinyint(1) en tinyint(2) etc, zelfde geld voor INT
    Niets, tenzij je zerofill aanzet. En da's een overbodige optie, want dat past beter in een presentatie-layer.
    Farenjidinsdag 12 februari 2008 @ 18:35
    quote:
    Op dinsdag 12 februari 2008 18:05 schreef Chandler het volgende:
    Leuke vraag,

    Wat is het verschil met tinyint(1) en tinyint(2) etc, zelfde geld voor INT
    Dit getal heeft alleen invloed op eventuele padding, en alleen als je ZEROFILL voor de kolom aanzet. Het heeft geen invloed op wat je in het veld kan stoppen of hoeveel ruimte je nodig hebt. Dus als je de waarde 1 in een tinyint(3) stopt in een veld met zerofill, komt dat eruit als 001.
    Geqxondinsdag 12 februari 2008 @ 19:22
    Ik dacht vroeger altijd dat dat het gereserveerde geheugen voor het integer veld was.
    Chandlerdinsdag 12 februari 2008 @ 21:51
    Duidelijk!
    Dzywoensdag 13 februari 2008 @ 01:27
    Hebben jullie nog een idee hoe ik die FTP stream ga aanpakken? Ik heb nog wat meer onderzoek gedaan en de beste keuze is denk ik:

    1
    2
    3
    <?php
    ftp
    -nb-fget
    ?>


    Deze streamt het naar een non-blocking (betekent het dat ik hem gelijktijdig kan uitlezen?) file die ik dan elke seconde kan checken en het nieuwe gedeelte doorsturen. Zo kan ik het in chunks van 1 mb doen en dan weer opnieuw requesten van de ftp zodat ik het memory gebruik laag houdt.

    Edit: Maar hoe pak ik dit aan? Met welke functies kan ik die file snel checken hoeveel hij groter is en dat nieuwe gedeelte doorflushen naar de browser?
    Dreammasterwoensdag 13 februari 2008 @ 12:29
    quote:
    Op dinsdag 12 februari 2008 18:35 schreef Farenji het volgende:

    [..]

    Dit getal heeft alleen invloed op eventuele padding, en alleen als je ZEROFILL voor de kolom aanzet. Het heeft geen invloed op wat je in het veld kan stoppen of hoeveel ruimte je nodig hebt. Dus als je de waarde 1 in een tinyint(3) stopt in een veld met zerofill, komt dat eruit als 001.
    er van uitgaande dat het veld unsigned is:
    een tinyint(1) kan 10 verschillende waardes hebben namelijk 0 t/m 9
    een tinyint(2) kan 100 verschillende waardes hebben 0 t/m 99
    een tinyint(3) kan 256 verschillende waardes hebben 0 t/m 255

    signed:
    een tinyint(1) kan 19 verschillende waardes hebben namelijk -9 t/m 9
    een tinyint(2) kan 199 verschillende waardes hebben -99 t/m 99
    een tinyint(3) kan 256 verschillende waardes hebben -128 t/m 127

    -edit- bron
    Farenjiwoensdag 13 februari 2008 @ 13:23
    quote:
    Op woensdag 13 februari 2008 12:29 schreef Dreammaster het volgende:

    [..]

    er van uitgaande dat het veld unsigned is:
    een tinyint(1) kan 10 verschillende waardes hebben namelijk 0 t/m 9
    een tinyint(2) kan 100 verschillende waardes hebben 0 t/m 99
    een tinyint(3) kan 256 verschillende waardes hebben 0 t/m 255

    signed:
    een tinyint(1) kan 19 verschillende waardes hebben namelijk -9 t/m 9
    een tinyint(2) kan 199 verschillende waardes hebben -99 t/m 99
    een tinyint(3) kan 256 verschillende waardes hebben -128 t/m 127

    -edit- bron
    Goed lezen:
    quote:
    The display width does not constrain the range of values that can be stored in the column, nor the number of digits that are displayed for values having a width exceeding that specified for the column. For example, a column specified as SMALLINT(3) has the usual SMALLINT range of -32768 to 32767, and values outside the range allowed by three characters are displayed using more than three characters.
    Chandlerwoensdag 13 februari 2008 @ 17:21
    Even een vraag:

    1
    2
    3
    4
    5
    6
    7
    <?php
                $GLOBALS
    ['queries']++;
                
    $GLOBALS['query'][$GLOBALS['queries']] = array("sql"   => $sql,
                                                               
    "start" => $start,
                                                               
    "end"   => $end,
                                                               
    "time"  => round($end $start2));
    ?>


    Ik krijg een error op lijn 51.

    Unkown error type: [2] Cannot use a scalar value as an array

    wat kan dit betekenen?
    SuperRembowoensdag 13 februari 2008 @ 17:42
    $GLOBALS['query'] zal wel geen array zijn. Een beetje zelf debuggen kan geen kwaad (var_dump van $GLOBALS bijvoorbeeld).
    Chandlerwoensdag 13 februari 2008 @ 17:56
    Was wel een array! maar blijkbaar heeft het gebruik gemaakt van een variabel die ook $query heet! ik heb de namen gerenamed en zag deze error niet meer!.
    SuperRembowoensdag 13 februari 2008 @ 18:49
    quote:
    Op woensdag 13 februari 2008 17:56 schreef Chandler het volgende:
    Was wel een array! maar blijkbaar heeft het gebruik gemaakt van een variabel die ook $query heet! ik heb de namen gerenamed en zag deze error niet meer!.
    Dan heb je die variabele waarschijnlijk als global in een functie gebruikt. Dan komt hij namelijk automatisch ook in de $GLOBALS array te staan.
    sabanwoensdag 13 februari 2008 @ 22:05
    Ik heb een functie gemaakt om <tr> en <td> inclusief waardes weer te geven, zodat ik geen html door mijn code heb staan.
    Kan dit beter/makkelijker/netter?

    Functie:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    <?php
    function MakeTD($tr_start,$width,$height,$bgcolor,$value,$tr_end)
    {
        
    $td    =    '';
        if (!empty(
    $tr_start)) {
            
    $td .=    '<tr>';
        }
        
        if (empty(
    $bgcolor)) {
            
    $td .=    '<td width="'$width .'" height="'$height .'">'$value .'</td>';
        } else {
            
    $td .=    '<td width="'$width .'" height="'$height .'" bgcolor="#'$bgcolor .'">'$value .'</td>';
        }
        
        if (!empty(
    $tr_end)) {
            
    $td .=    '</tr>';
        }
        
        echo 
    $td;
    }
    ?>


    Beginnend met <tr> een <td>waarde</td>:
    1
    2
    3
    4
    5
    6
    <?php
    MakeTD
    ("tr","70","25","000","waarde","");

    // output:
    // <tr><td width="70" height="25" bgcolor="#000">waarde</td>
    ?>


    Een aantal <td>waardes</tr> zonder beginnend of eindigend met <tr>
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <?php
    MakeTD
    ("","70","25","000","waardes","");
    MakeTD("","70","25","000","waardes","");
    MakeTD("","70","25","000","waardes","");

    // output:
    // <td width="70" height="25" bgcolor="#000">waardes</td>
    // <td width="70" height="25" bgcolor="#000">waardes</td>
    // <td width="70" height="25" bgcolor="#000">waardes</td>
    ?>


    En natuurlijk afsluiten met </tr>:
    1
    2
    3
    4
    5
    6
    <?php
    MakeTD
    ("","70","25","000","waardes","tr");

    // output:
    // <td width="70" height="25" bgcolor="#000">waardes</td></tr>
    ?>
    sabanwoensdag 13 februari 2008 @ 22:13
    Wat ik me nu zo bedenk is dat ik van MakeTD(); gewoon MakeTable(); moet maken.
    $start_table, $table_width, $table_bgcolor, $table_end toevoegen aan mijn functie en ik kan een tabel in html maken
    Geqxonwoensdag 13 februari 2008 @ 22:23
    Wat dacht je ervan om een complete table-array in een object te gooien?

    Verder, heb je dan echt zoveel tabellen nodig?
    sabanwoensdag 13 februari 2008 @ 22:29
    quote:
    Op woensdag 13 februari 2008 22:23 schreef Geqxon het volgende:
    Wat dacht je ervan om een complete table-array in een object te gooien?

    Verder, heb je dan echt zoveel tabellen nodig?
    Moet veel overzichten weergeven
    Geqxonwoensdag 13 februari 2008 @ 22:34
    Voorbeeld van hoe mijn Menu class er uit ziet:

    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
    <?php
    class Menu{

       private $selected;
       
       public function Menu($selected){
          $this->selected = $selected;
       }
       
       public function getOutput(){
          global $input_parent;
       
          $result = mysql_query(" SELECT Name, HTML FROM mod_parent ORDER BY Sort ASC ");
          
          $output = '<ul id="menu">';
          
          if ($result){
             $first = true;

             while ($row = mysql_fetch_assoc($result)){
                $selected = ($this->selected == $row['Name']);
                $classes = array();
             
                if ($first){
                   $classes[] = 'first';
                }
                if ($selected){
                   $classes[] = 'selected';
                }
                
                $first = false;
                $class = (!empty($classes)) ? ' class="'.implode(" ", $classes).'"' : '';
             
                $output .= sprintf('<li%s><a href="%s?parent=%s">%s</a></li>', 
                               $class, 
                               BASE_PAGE, 
                               mod_format_string($row['Name']),
                               mod_format_string($row['HTML']));
             }
          }
          
          $output .= '</ul>';
          
          return $output;
       }
    }
    ?>


    Yeah I know, Smarty ownage, maar voor kleinschalige dingetjes vind ik dit prima werken. :)
    sabanwoensdag 13 februari 2008 @ 22:35
    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
    <?php
    function MakeTable($table_start,$table_width,$table_bgcolor,$tr_start,$td_width,$td_height,$td_bgcolor,$td_value,$tr_end,$table_end)
    {
        
    $table    =    '';
        
        if (!empty(
    $table_start) AND empty($table_bgcolor)) {
            
    $table    .=    '<table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" width="'$table_width .'">';
        }
        
        if (!empty(
    $table_start) AND !empty($table_bgcolor)) {
            
    $table    .=    '<table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" width="'$table_width .'" bgcolor="#'$table_bgcolor .'">';
        }
        
        if (!empty(
    $tr_start)) {
            
    $table .=    '<tr>';
        }
        
        if (empty(
    $td_bgcolor)) {
            
    $table .=    '<td width="'$td_width .'" height="'$td_height .'">'$td_value .'</td>';
        } else {
            
    $table .=    '<td width="'$td_width .'" height="'$td_height .'" bgcolor="#'$td_bgcolor .'">'$td_value .'</td>';
        }

        if (!empty(
    $tr_end)) {
            
    $table .=    '</tr>';
        }
        
        if (!empty(
    $table_end)) {
            
    $table .=    '</table>';
        }
        
        echo 
    $table;
    }

    MakeTable("table_start","500","000000","tr","100","30","ffffff","waarde van veld 1","","");
    MakeTable("","","","","100","30","ffffff","de waarde van veld 2","","");
    MakeTable("","","","","100","30","ffffff","de waarde van veld 3","","");
    MakeTable("","","","","100","30","ffffff","de waarde van veld 4","","");
    MakeTable("","","","","100","30","ffffff","de waarde van veld 5","tr","table_end");

    // output:
    //
    // <table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" width="500" bgcolor="#000000">
    // <tr>
    // <td width="100" height="30" bgcolor="#ffffff">waarde van veld 1</td>
    // <td width="100" height="30" bgcolor="#ffffff">de waarde van veld 2</td>
    // <td width="100" height="30" bgcolor="#ffffff">de waarde van veld 3</td>
    // <td width="100" height="30" bgcolor="#ffffff">de waarde van veld 4</td>
    // <td width="100" height="30" bgcolor="#ffffff">de waarde van veld 5</td>
    // </tr>
    // </table>
    ?>
    fokME2woensdag 13 februari 2008 @ 22:43
    @saban: Is het geen idee om sommige opties als array mee te geven?
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <?php
        $td_style 
    = array(
                            
    'width' => '70px',
                            
    'height' => '25px',
                            
    'bgcolor' => '#000'
                                                
    );
        
    $td_options = array(
                                                
    'class' => 'blabla classe'
                                                
    );
        
    MakeTD("waarde",$td_options$td_style);
    ?>


    Als je dan vaak dezelfde waardes gebruikt kan je het makkelijk aanpassen door een array in je config oid. Je kan het zo gek niet bedenken!

    Edit: Je hebt zelf al geklust. Misschien dat het tijd wordt voor classes!
    sabanwoensdag 13 februari 2008 @ 22:47
    quote:
    Op woensdag 13 februari 2008 22:43 schreef fokME2 het volgende:
    @saban: Is het geen idee om sommige opties als array mee te geven?
    [ code verwijderd ]

    Als je dan vaak dezelfde waardes gebruikt kan je het makkelijk aanpassen door een array in je config oid. Je kan het zo gek niet bedenken!

    Edit: Je hebt zelf al geklust. Misschien dat het tijd wordt voor classes!
    Zo ver ben ik nog niet dat ik met classes kan werken.
    Ben bezig met teveel dingen tegelijk. Zit ook een beetje te knoeien met CSS

    Vandaag mijn eerste 'ontwerp' in CSS met DIV'jes gemaakt
    fokME2woensdag 13 februari 2008 @ 23:05
    quote:
    Op woensdag 13 februari 2008 22:47 schreef saban het volgende:

    [..]

    Zo ver ben ik nog niet dat ik met classes kan werken.
    Ben bezig met teveel dingen tegelijk. Zit ook een beetje te knoeien met CSS

    Vandaag mijn eerste 'ontwerp' in CSS met DIV'jes gemaakt
    Voor hetgene wat je wil is het gewoon heel geschikt.

    @CSS: Gooi het eens door de w3-validator?
    sabanwoensdag 13 februari 2008 @ 23:07
    quote:
    Op woensdag 13 februari 2008 23:05 schreef fokME2 het volgende:

    [..]

    Voor hetgene wat je wil is het gewoon heel geschikt.

    @CSS: Gooi het eens door de w3-validator?
    Haha, zou ik niet durven. Heb pas vandaag geleerd hoe CSS (DIV'jes) ongeveer werkt, ga niet gelijk door een validator
    Chandlerdonderdag 14 februari 2008 @ 11:27
    Weet iemand een handige functie die het zelfde werkt als addslashes / magic quotes en ga zo maar door!
    PiRANiAdonderdag 14 februari 2008 @ 14:24
    quote:
    Op donderdag 14 februari 2008 11:27 schreef Chandler het volgende:
    Weet iemand een handige functie die het zelfde werkt als addslashes / magic quotes en ga zo maar door!
    escape of
    mysql_real_escape_string
    ?
    Xcaliburdonderdag 14 februari 2008 @ 18:15
    quote:
    Op donderdag 14 februari 2008 11:27 schreef Chandler het volgende:
    Weet iemand een handige functie die het zelfde werkt als addslashes / magic quotes en ga zo maar door!
    Als je een functie zoekt die hetzelfde doet als addslashes zou ik toch addslashes willen adviseren
    Maar eigenlijk wil je wat anders vragen vermoed ik....?
    Flacciddonderdag 14 februari 2008 @ 19:37
    Ik heb een cms geschreven zelf. Heel simpel, je kan pagina's aanmaken, met titel enzo. Maar hoe kan ik het makkelijkst, en het veiligst die informatie uit een database halen. In zon database staat de inhoud van de pagina, de titel enz. Moet ik dat met een GET doen? Ik dacht zelf aan iets, dat je gewoon een .html moet intypen, maar dat hij dan stiekem in php de pagina pakt. Dus bijvoorbeeld: about.html , moet op een manier, met php een variable about krijgen. Als ik die variable heb, is het genoeg.
    ralfiedonderdag 14 februari 2008 @ 19:42
    quote:
    Op donderdag 14 februari 2008 19:37 schreef Flaccid het volgende:
    Ik heb een cms geschreven zelf. Heel simpel, je kan pagina's aanmaken, met titel enzo. Maar hoe kan ik het makkelijkst, en het veiligst die informatie uit een database halen. In zon database staat de inhoud van de pagina, de titel enz. Moet ik dat met een GET doen? Ik dacht zelf aan iets, dat je gewoon een .html moet intypen, maar dat hij dan stiekem in php de pagina pakt. Dus bijvoorbeeld: about.html , moet op een manier, met php een variable about krijgen. Als ik die variable heb, is het genoeg.
    dat kan met mod_rewrite, maar dat is geen php (maar meer een optie van de serversoftware zelf). Google er maar eens op, zat voorbeelden
    Flacciddonderdag 14 februari 2008 @ 19:49
    quote:
    Op donderdag 14 februari 2008 19:42 schreef ralfie het volgende:

    [..]

    dat kan met mod_rewrite, maar dat is geen php (maar meer een optie van de serversoftware zelf). Google er maar eens op, zat voorbeelden
    dat is pittig. Hoe kan ik het dan het beste doen?
    SuperRembodonderdag 14 februari 2008 @ 19:53
    quote:
    Op donderdag 14 februari 2008 19:37 schreef Flaccid het volgende:
    Ik dacht zelf aan iets, dat je gewoon een .html moet intypen, maar dat hij dan stiekem in php de pagina pakt. Dus bijvoorbeeld: about.html , moet op een manier, met php een variable about krijgen. Als ik die variable heb, is het genoeg.
    Waarom denk je dat dat veiliger is dan bijvoorbeeld about.php of index.php?page=about?
    colourAggadonderdag 14 februari 2008 @ 19:58
    Het beste werkt dat gewoon via multiviews.

    @SuperRembo: hij gelooft in security through obscurity gok ik zo. Niet dat dat ook maar voor ene flikker werkt maar ach, ieder zijn ding, zolang je alsnog maar nooit vertrouwt wat de user opgeeft dan komt alles goed.
    Flacciddonderdag 14 februari 2008 @ 20:06
    quote:
    Op donderdag 14 februari 2008 19:53 schreef SuperRembo het volgende:

    [..]

    Waarom denk je dat dat veiliger is dan bijvoorbeeld about.php of index.php?page=about?
    iemand zei dat als je include door get doet, dat het dan mis gaat?
    colourAggadonderdag 14 februari 2008 @ 20:09
    Als jij gewoon

    1
    2
    3
    <?php
    include( 'content/' $_GET'content' ] . '.php' );
    ?>

    Doet dan kan het inderdaad gruwelijk misbruikt worden ja. Als jij echter ook een array gebruikt (of uit de database) met toegestane waarden is het wel redelijk proof hoor

    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
    <?php
    # Allowed content
    $allowed = array( 'home''foo''bar' );

    # Check for content and if content in allowed
    if( isset( $_GET'content' ] ) AND in_array$_GET'content' ], $allowed ) )
    {

      
    # Allowed
      
    include( 'content/' $_GET'content' ] . '.php' );

    }
    elseif( 
    false == isset( $_GET'content' ] ) )
    {

      
    # Not set

    }
    elseif( 
    false == in_array$_GET'content' ], $allowed ) )
    {

      
    # Not allowed

    }
    ?>
    Flacciddonderdag 14 februari 2008 @ 20:14
    quote:
    Op donderdag 14 februari 2008 20:09 schreef colourAgga het volgende:
    Als jij gewoon
    [ code verwijderd ]

    Doet dan kan het inderdaad gruwelijk misbruikt worden ja. Als jij echter ook een array gebruikt (of uit de database) met toegestane waarden is het wel redelijk proof hoor
    [ code verwijderd ]
    Ja dat doe ik ook altijd zo.

    is het btw ook mogelijk/moeilijk sms berichten te versturen/ontvangen via php?
    colourAggadonderdag 14 februari 2008 @ 20:15
    quote:
    Op donderdag 14 februari 2008 20:14 schreef Flaccid het volgende:

    [..]

    Ja dat doe ik ook altijd zo.

    is het btw ook mogelijk/moeilijk sms berichten te versturen/ontvangen via php?
    Er zijn zat diensten waar je sms-credits in kan kopen en vervolgens met PHP via een API berichten kan versturen.
    Flacciddonderdag 14 februari 2008 @ 20:20
    quote:
    Op donderdag 14 februari 2008 20:15 schreef colourAgga het volgende:

    [..]

    Er zijn zat diensten waar je sms-credits in kan kopen en vervolgens met PHP via een API berichten kan versturen.
    Had namelijk een idee voor een script:
    Een online cijferkaart, waar je je cijfers naar kan toe sms'en, en dat ie dan automatisch het gemiddelde uitrekent en dergelijken. Wat je dan ook weer via sms kan opvragen. Met format: 8.5 nederlands 3x - cijfer , vak, weging. Ook kan je online toevoegen en bekijken. Is het een goed idee of te complex?
    colourAggadonderdag 14 februari 2008 @ 20:24
    quote:
    Op donderdag 14 februari 2008 20:20 schreef Flaccid het volgende:

    [..]

    Had namelijk een idee voor een script:
    Een online cijferkaart, waar je je cijfers naar kan toe sms'en, en dat ie dan automatisch het gemiddelde uitrekent en dergelijken. Wat je dan ook weer via sms kan opvragen. Met format: 8.5 nederlands 3x - cijfer , vak, weging. Ook kan je online toevoegen en bekijken. Is het een goed idee of te complex?
    Goed idee, kun je beter zelf bepalen. Ik ga niet naar school. Kijk of er vraag is, zoek eventueel een investeerder, schrijf een goede robuuste applicatie. Kom met een plan om er geld mee te verdienen en gaan!
    Flacciddonderdag 14 februari 2008 @ 20:36
    quote:
    Op donderdag 14 februari 2008 20:24 schreef colourAgga het volgende:

    [..]

    Goed idee, kun je beter zelf bepalen. Ik ga niet naar school. Kijk of er vraag is, zoek eventueel een investeerder, schrijf een goede robuuste applicatie. Kom met een plan om er geld mee te verdienen en gaan!
    Als 16 jarige is dat lastig allemaal.
    colourAggadonderdag 14 februari 2008 @ 20:38
    quote:
    Op donderdag 14 februari 2008 20:36 schreef Flaccid het volgende:

    [..]

    Als 16 jarige is dat lastig allemaal.
    Da's helemaal niet zo lastig, als je meer vragen hebt over technisch/financieel haalbaar moet je me maar contacten via mail/msn op adres in mijn profiel anders slibt het hier ook weer zo dicht
    Dzydonderdag 14 februari 2008 @ 21:09
    Niemand die iets weet van FTP files downloaden en tijdens het downloaden al doorflushen naar de browser?
    Flacciddonderdag 14 februari 2008 @ 21:25
    quote:
    Op donderdag 14 februari 2008 20:38 schreef colourAgga het volgende:

    [..]

    Da's helemaal niet zo lastig, als je meer vragen hebt over technisch/financieel haalbaar moet je me maar contacten via mail/msn op adres in mijn profiel anders slibt het hier ook weer zo dicht
    added @ msn
    Geqxondonderdag 14 februari 2008 @ 21:28
    quote:
    Op donderdag 14 februari 2008 21:09 schreef Dzy het volgende:
    Niemand die iets weet van FTP files downloaden en tijdens het downloaden al doorflushen naar de browser?
    http://nl3.php.net/ftp/#ftp.examples ?
    Flacciddonderdag 14 februari 2008 @ 22:32
    quote:
    ik denk dat hij een filmpje aan het downloaden is die op60% is en hij al een deel wil zien?
    qu63donderdag 14 februari 2008 @ 22:53
    Maar goed dat ik niet mn hersen ben gaan breken over die hash-pagina

    een *.BUP en een *.IFO zijn net zo groot en hebben dezelfde hash

    a9417892c908eef3c573220b6a24c3bf *POTWDVD019.txt
    65eccd74397d7a6fa403d871f30870a1 *VIDEO_TS\VIDEO_TS.BUP
    65eccd74397d7a6fa403d871f30870a1 *VIDEO_TS\VIDEO_TS.IFO

    196d82e1f7afacc6ea4f4a1caa0dbc2f *VIDEO_TS\VIDEO_TS.VOB
    f7e5eb930e876929c42064702dc9a111 *VIDEO_TS\VTS_01_0.BUP
    f7e5eb930e876929c42064702dc9a111 *VIDEO_TS\VTS_01_0.IFO

    5defea3427c04218c81dff47ee69f1a0 *VIDEO_TS\VTS_01_0.VOB
    72b9c827ec29e43ce356b8733e5e2957 *VIDEO_TS\VTS_01_1.VOB
    d1db84986d126e5838f167bd52e3be56 *VIDEO_TS\VTS_01_2.VOB
    48e67b2589ddc5e60ef2e156d4e23b0b *VIDEO_TS\VTS_01_3.VOB
    c308f264d32ff5b645e9b9485e7b34c1 *VIDEO_TS\VTS_01_4.VOB
    Geqxondonderdag 14 februari 2008 @ 22:59
    Het is intern niet gewoon hetzelfde bestand?
    Chandlerzaterdag 16 februari 2008 @ 13:00
    Even iets over zoeken.

    Ik heb een database tabel met apparte velden voor jaar, maand, dag, nu wil ik zoeken binnen 2 data's (begin tijd en eind tijd) maar krijg nul resultaten maar er zijn er wel heel veel.

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    SELECT DISTINCT (
    value
    ), sum( `count` ) AS counter
    FROM statreferer
    WHERE sid = '7'
    AND TYPE = 'E'
    AND (
    statreferer.year >= '2008'
    AND statreferer.month >= '08'
    AND statreferer.day >= '11'
    )
    AND (
    statreferer.year <= '2008'
    AND statreferer.month <= '11'
    AND statreferer.day <= '19'
    )
    GROUP BY value
    ORDER BY `counter` DESC 
    LIMIT 0 , 250 


    Iemand die ziet waar ik de fout in ga?

    [ Bericht 31% gewijzigd door Chandler op 16-02-2008 13:00:43 (smilieeeeez) ]
    Farenjizaterdag 16 februari 2008 @ 13:13
    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.