FOK!forum / Digital Corner / [PHP/(My)SQL] voor dummies - Deel 68
Lightzondag 1 februari 2009 @ 13:30

cd niet bijgeleverd

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

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

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

    [ Bericht 49% gewijzigd door Light op 01-02-2009 13:40:49 ]
  • GlowMousezondag 1 februari 2009 @ 13:33
    Sorry, zag niet dat het pagina zeven was.
    cablegunmasterzondag 1 februari 2009 @ 13:36
    tvp zal vast wel meer vragen hebben
    Lightzondag 1 februari 2009 @ 13:41
    quote:
    Op zondag 1 februari 2009 13:33 schreef GlowMouse het volgende:
    Sorry, zag niet dat het pagina zeven was.
    Kan gebeuren
    Kerolzondag 1 februari 2009 @ 14:45
    tvp
    urselzondag 1 februari 2009 @ 15:35
    Present..
    veldmuiszondag 1 februari 2009 @ 16:44
    Ik heb een vraag (alweer :@)
    het resultaat van deze query:
    1SELECT actief FROM tbl_test WHERE id =  ".$id 

    is een 0 of een 1. Die wil ik omkeren en dan terug in de DB proppen:
    1UPDATE tbl_test SET actief = ".$actief." WHERE id = ".$id


    Ik krijg het niet voor elkaar. Kan ik dit in één query doen? Ik weet hoe een subquery werkt, maar hoe ik een 0 in een 1 kan omtoveren met een subquery weet ik niet. Kan dat sowieso wel?
    GlowMousezondag 1 februari 2009 @ 16:45
    1"UPDATE tbl_test SET actief = 1-actief WHERE id=" . $id

    Moet je wel zeker weten dat actief altijd 0 of 1 is

    Groetjes,
    GlowMouse
    cablegunmasterzondag 1 februari 2009 @ 16:56
    quote:
    Op zondag 1 februari 2009 16:45 schreef GlowMouse het volgende:

    [ code verwijderd ]

    Moet je wel zeker weten dat actief altijd 0 of 1 is

    Groetjes,
    GlowMouse
    stel het gaat om leden en je wil meerdere rijen bijwerken. hoe gaat dit dan in zijn werking?

    1 ophaal query
    2 aanpassen in html bvb lid is van actief naar inactief.
    3 alles in $_POST dingen?
    en for each ( $_POST[status] update query? ?
    GlowMousezondag 1 februari 2009 @ 16:59
    Alle id's in een arraytje stoppen, imploden op een komma, en WHERE id IN(" . $ids . ")" gebruiken. Zeker bij MyISAM moet je zoveel mogelijk in één UPDATE-query doen.
    urselzondag 1 februari 2009 @ 17:02
    quote:
    Op zondag 1 februari 2009 16:59 schreef GlowMouse het volgende:
    Alle id's in een arraytje stoppen, imploden op een komma, en WHERE id IN(" . $ids . ")" gebruiken. Zeker bij MyISAM moet je zoveel mogelijk in één UPDATE-query doen.
    Hoezo zeker bij MyISAM??
    GlowMousezondag 1 februari 2009 @ 17:06
    quote:
    Op zondag 1 februari 2009 17:02 schreef ursel het volgende:

    [..]

    Hoezo zeker bij MyISAM??
    Omdat je bij MyISAM voor iedere UPDATE-query de table lockt en daarvoor op alle SELECT-queries moet wachten en zowel tijdens het wachten als tijdens het updaten alle nieuwe SELECT-queries laat wachten. Dat ga je merken als je wat meer bezoekers hebt.
    veldmuiszondag 1 februari 2009 @ 17:09
    quote:
    Op zondag 1 februari 2009 16:45 schreef GlowMouse het volgende:

    [ code verwijderd ]

    Moet je wel zeker weten dat actief altijd 0 of 1 is

    Groetjes,
    GlowMouse
    Thanks! Ik wist niet dat dat ook op die manier kan met een update query! Tof, wel!
    urselzondag 1 februari 2009 @ 17:09
    quote:
    Op zondag 1 februari 2009 17:06 schreef GlowMouse het volgende:

    [..]

    Omdat je bij MyISAM voor iedere UPDATE-query de table lockt en daarvoor op alle SELECT-queries moet wachten en zowel tijdens het wachten als tijdens het updaten alle nieuwe SELECT-queries laat wachten. Dat ga je merken als je wat meer bezoekers hebt.
    Ok, dat wisten we niet, weer wat geleerd..
    GlowMousezondag 1 februari 2009 @ 17:11
    quote:
    Op zondag 1 februari 2009 17:09 schreef veldmuis het volgende:

    [..]

    Thanks! Ik wist niet dat dat ook op die manier kan met een update query! Tof, wel!
    Die manier is met name handig bij tellertjes. Als je eerst een SELECT en daarna een UPDATE zou doen, heb je kans dat twee vrijwel gelijktijdige requests eerst allebei de SELECT doen en daarna met UPDATE de teller maar met één ophogen in plaats van met twee.
    veldmuiszondag 1 februari 2009 @ 17:15
    quote:
    Op zondag 1 februari 2009 17:11 schreef GlowMouse het volgende:

    [..]

    Die manier is met name handig bij tellertjes. Als je eerst een SELECT en daarna een UPDATE zou doen, heb je kans dat twee vrijwel gelijktijdige requests eerst allebei de SELECT doen en daarna met UPDATE de teller maar met één ophogen in plaats van met twee.
    Hmm, klinkt logisch inderdaad. Ik heb nog behoorlijk wat te leren .
    Roy_Tzondag 1 februari 2009 @ 21:51
    quote:
    Op zondag 1 februari 2009 17:09 schreef ursel het volgende:

    Ok, dat wisten we niet, weer wat geleerd..
    Dat is dus ook waarom je per tabel moet bekijken of je (bijv.) MyISAM of InnoDB wilt gebruiken. Voor tabellen met veel schrijf- en leesacties kun je InnoDB overwegen; die maakt namelijk gebruik van row locking, en niet van table locking (en ook handig: je kunt transacties gebruiken).
    Tiemiemaandag 2 februari 2009 @ 00:43
    quote:
    Op zondag 1 februari 2009 16:44 schreef veldmuis het volgende:
    Ik heb een vraag (alweer )
    het resultaat van deze query:
    [ code verwijderd ]

    is een 0 of een 1. Die wil ik omkeren en dan terug in de DB proppen:
    [ code verwijderd ]

    Ik krijg het niet voor elkaar. Kan ik dit in één query doen? Ik weet hoe een subquery werkt, maar hoe ik een 0 in een 1 kan omtoveren met een subquery weet ik niet. Kan dat sowieso wel?
    1UPDATE tbl_test SET actief = ABS(actief-1)

    zo kan het ook
    GlowMousemaandag 2 februari 2009 @ 00:51
    Ja, of
    1UPDATE tbl_test SET actief = 1-ABS(actief)


    [ Bericht 0% gewijzigd door GlowMouse op 02-02-2009 00:55:06 (doe ik het nog fout) ]
    mstxmaandag 2 februari 2009 @ 09:37
    tvp
    PiRANiAmaandag 2 februari 2009 @ 09:39
    Oeh ik was deze kwijt, maar door die post 301 heb ik hem weer gevonden
    Lightmaandag 2 februari 2009 @ 10:07
    quote:
    Op maandag 2 februari 2009 00:51 schreef GlowMouse het volgende:
    Ja, of
    [ code verwijderd ]
    Dan is die ABS() bij actief wel wat overbodig, tenzij actief ook negatief kan zijn. En dat lijkt me weer wat onlogisch.
    SuperRembomaandag 2 februari 2009 @ 10:54
    quote:
    Op maandag 2 februari 2009 00:51 schreef GlowMouse het volgende:
    Ja, of
    [ code verwijderd ]
    Maak er dan dit van:
    1UPDATE tbl_test SET actief = IF(actief = 0, 1, 0) WHERE post = 'tvp'
    Chandlermaandag 2 februari 2009 @ 14:36
    tvp
    Flaccidmaandag 2 februari 2009 @ 15:38
    Ik heb een scriptje die foto's upload en de geuploade foto laat zien. Nu wil ik deze resizen tot maximaal een breedte van 500px. Hoe zorg ik dan dat de andere hoogte in proportie blijft? En dat ie alleen resized als het moet?
    GlowMousemaandag 2 februari 2009 @ 15:43
    Iets met getimagesize, een if en een new_height = 500/old_width * old_height.
    Boschkaboutermaandag 2 februari 2009 @ 16:03
    Ik ben nog niet zo lang bezig met php & MySQL, maar hoe moeilijk is het om een webshop te maken?
    Hebben jullie toevallig nog tips of trucs die ik kan gebruiken?
    Flaccidmaandag 2 februari 2009 @ 16:05
    quote:
    Op maandag 2 februari 2009 15:43 schreef GlowMouse het volgende:
    Iets met getimagesize, een if en een new_height = 500/old_width * old_height.
    Aha. Slim!
    GlowMousemaandag 2 februari 2009 @ 16:18
    quote:
    Op maandag 2 februari 2009 16:03 schreef Boschkabouter het volgende:
    Ik ben nog niet zo lang bezig met php & MySQL, maar hoe moeilijk is het om een webshop te maken?
    Hebben jullie toevallig nog tips of trucs die ik kan gebruiken?
    Ik zou er niet aan beginnen omdat je beveiliging goed op orde moet zijn.
    erikkllmaandag 2 februari 2009 @ 18:04
    Ik heb de volgende php code:

    1
    2
    3
    echo "1: ".$_POST['aantal0'].$_POST['product0'].$_POST['prijs0']."<br />"
        ."2: ".$_POST['aantal1'].$_POST['product1'].$_POST['prijs1']."<br />"
        ."3: ".$_POST['aantal2'].$_POST['product2'].$_POST['prijs2']."<br />";


    Het aantal posts kan in principe oneindig lang zijn, dus aantal3, aantal4 etc kan allemaal bestaan.

    Wat ik graag zou willen:
    - aantal0, product0, prijs0 weergeven
    - kijken of aantal1, product1 en prijs1 gepost zijn
    - zoja, die ook weergeven
    - zo nee, dan stoppen
    - als aantal1, product1 en prijs1 bestaan, dan kijken of ze ook bestaan met nr 2.
    - etc.

    dit moet toch met een loopje kunnen ofzo? :@
    GlowMousemaandag 2 februari 2009 @ 18:06
    Dat kan inderdaad met een loopje, kijk eens naar while
    erikkllmaandag 2 februari 2009 @ 18:14
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    $id = 0;

    for ( $teller = 1; $teller <= 100; $teller += 1) {
         
       if ( isset($_POST['aantal$id'] ) {   
        echo "$id: ".$_POST['aantal$id'].$_POST['product$id'].$_POST['prijs$id']."<br />";
        id+=1    
           }
        }
    }
    erikkllmaandag 2 februari 2009 @ 18:15
    Iets zegt me dat het enorm dubbelop is om zowel $id bij te houden als $teller
    (daarnaast werkt het niet )
    erikkllmaandag 2 februari 2009 @ 18:22
    Ok, naar aanleiding van de tip eens naar de while loop te kijken heb ik dit stukje niet werkende code gefabriceerd:

    1
    2
    3
    4
    5
    while ( isset($_POST['aantal$id']  )) {
         
       echo "$id: ".$_POST['aantal$id'].$_POST['product$id'].$_POST['prijs$id']."<br />";
       id+=1    
    }


    de code:
    Parse error: syntax error, unexpected T_PLUS_EQUAL in /var/www/fact/maakxml3.php on line 27
    HuHumaandag 2 februari 2009 @ 18:25
    Je bent de $ voor id+=1 en de ; erna vergeten. Je kunt er ook $id++; van maken.
    HuHumaandag 2 februari 2009 @ 18:26
    Let ook op dat $_POST['product$id'] niet zal werken, dat moet $_POST['product'.$id] of $_POST["product$id"] zijn.
    erikkllmaandag 2 februari 2009 @ 18:27
    ok, ik ga het proberen
    erikkllmaandag 2 februari 2009 @ 18:30
    Ik krijg geen foutmelding meer! :D maar ook geen echo's :{

    1
    2
    3
    4
    5
    while ( isset($_POST['aantal'.$id] )) {
         
       echo "$id: ".$_POST['aantal'.$id].$_POST['product'.$id].$_POST['prijs'.$id]."<br />";
       $id++  ;  
    Lightmaandag 2 februari 2009 @ 18:36
    quote:
    Op maandag 2 februari 2009 18:30 schreef erikkll het volgende:
    Ik krijg geen foutmelding meer! maar ook geen echo's
    [ code verwijderd ]
    Wat is de waarde van $id voordat de lus begint?
    erikkllmaandag 2 februari 2009 @ 18:40
    1
    2
    3
    4
    5
    6
    7
    $id = 0;

    while ( isset($_POST['aantal'.$id] )) {
         
       echo "$id: ".$_POST['aantal'.$id].$_POST['product'.$id].$_POST['prijs'.$id]."<br />";
       $id++  ;  
    HuHumaandag 2 februari 2009 @ 18:43
    Dan is natuurlijk de vraag of $_POST['aantal0'] bestaat.
    erikkllmaandag 2 februari 2009 @ 18:45
    Yeah! Hij bestond, maar er ging iets mis, eerder in de code waardoor hij al niet tot de while loop kwam! Heel erg bedankt!
    cablegunmastermaandag 2 februari 2009 @ 18:46
    kan je de waardes niet beter in een tabel gooien en ze daarvan uit echo'en?

    of snap je niet hoe dat moet ?
    erikkllmaandag 2 februari 2009 @ 19:02
    quote:
    Op maandag 2 februari 2009 18:46 schreef cablegunmaster het volgende:
    kan je de waardes niet beter in een tabel gooien en ze daarvan uit echo'en?

    of snap je niet hoe dat moet ?
    Jawel, maar ik wil er een xml file van maken, uiteindelijk. Die echo was alleen om te kijken of 't uberhaupt zou werken
    Boschkaboutermaandag 2 februari 2009 @ 21:27
    quote:
    Op maandag 2 februari 2009 16:18 schreef GlowMouse het volgende:

    [..]

    Ik zou er niet aan beginnen omdat je beveiliging goed op orde moet zijn.
    Kijk, het hoeft geen super uitgebreide shop te worden. Zo was er geen winkelwagensysteem nodig (er hoeft maar 1 product gekocht te worden) en betalen kan in het begin gewoon per overschrijving/iDeal.
    Maar wat voor een dingen moet ik dan beveiligen, is het een kwestie van het afschermen van de database/backoffice en SQL injection van andere scripts voorkomen? Of zijn er nog dingen waar ik rekening mee moet houden?
    Flacciddinsdag 3 februari 2009 @ 12:59
    Ik ben ondertussen aan het googlen, maar misschien weet iemand zo snel iets uit zijn hoofd.

    Ik zoek een simpele text editor script die html files kan openen en bewerken, met simpele markup als bold, italic, linkjes en plaatjes. Hoeft niet geavanceerd te zijn.
    veldmuisdinsdag 3 februari 2009 @ 13:03
    Zou je dan niet gewoon notepad++ pakken?
    Flacciddinsdag 3 februari 2009 @ 13:20
    quote:
    Op dinsdag 3 februari 2009 13:03 schreef veldmuis het volgende:
    Zou je dan niet gewoon notepad++ pakken?
    Ik bedoel een online editor. Eentje die ik upload en dan online kan gebruiken. Html tags moeten als weergave omgezet worden dus.
    veldmuisdinsdag 3 februari 2009 @ 13:33
    Oow zo. FCKEditor?
    TinyMCE?

    Zijn allebei te strippen tot een heel kale editor.

    FCKEditor heeft als voordeel dat de uploadmogelijkheid er standaard in zit, bij TinyMCE is dat een betaalde optie.

    FCKEdit poept XHTML uit, TinyMCE kan HTML en XHTML. Is wat je wil.
    Flacciddinsdag 3 februari 2009 @ 14:12
    quote:
    Op dinsdag 3 februari 2009 13:33 schreef veldmuis het volgende:
    Oow zo. FCKEditor?
    TinyMCE?

    Zijn allebei te strippen tot een heel kale editor.

    FCKEditor heeft als voordeel dat de uploadmogelijkheid er standaard in zit, bij TinyMCE is dat een betaalde optie.

    FCKEdit poept XHTML uit, TinyMCE kan HTML en XHTML. Is wat je wil.
    Ik vind de organisatie van beide nogal lastig. Ik wil namelijk omdat er maar 4 standaard html files zijn die aan te passen zijn een dropdown menu erboven. Ik hoef dus niet te uploaden, maar iets wat al staat op de server.
    veldmuisdinsdag 3 februari 2009 @ 14:13
    Dat kan toch? Zo gebruik ik de FCKeditor ook.
    Chandlerdinsdag 3 februari 2009 @ 14:32
    Weet iemand (niet echt PHP maar goed) hoe je dit soort vragen noemt

    1
    2
    3
    4
    5
    6
    7
    8
             Goed - Redelijk - Slecht

    PHP       *         *         *
    MySQL     *         *         *
    Java      *         *         *
    ETC       *         *         *

    * = keuze in te vullen door gebruiker
    Flacciddinsdag 3 februari 2009 @ 14:33
    quote:
    Op dinsdag 3 februari 2009 14:32 schreef Chandler het volgende:
    Weet iemand (niet echt PHP maar goed) hoe je dit soort vragen noemt
    [ code verwijderd ]
    Matrices?
    Flacciddinsdag 3 februari 2009 @ 14:34
    quote:
    Op dinsdag 3 februari 2009 14:13 schreef veldmuis het volgende:
    Dat kan toch? Zo gebruik ik de FCKeditor ook.
    Heb je toevallig een scriptje wat jij runt dan? Of is makkelijker voor mij om los te beginnen.
    Chandlerdinsdag 3 februari 2009 @ 14:40
    quote:
    Op dinsdag 3 februari 2009 14:33 schreef Flaccid het volgende:
    Matrices?
    Ik noemde het zelf matrix vragen (waarom weet ik niet )
    veldmuisdinsdag 3 februari 2009 @ 14:42
    quote:
    Op dinsdag 3 februari 2009 14:32 schreef Chandler het volgende:
    Weet iemand (niet echt PHP maar goed) hoe je dit soort vragen noemt
    [ code verwijderd ]
    Een enquete?
    veldmuisdinsdag 3 februari 2009 @ 14:43
    quote:
    Op dinsdag 3 februari 2009 14:34 schreef Flaccid het volgende:

    [..]

    Heb je toevallig een scriptje wat jij runt dan? Of is makkelijker voor mij om los te beginnen.
    Ik geef in de url een id mee, dat ID hang ik aan een query die netjes de inhoud uit de db die ik wil hebben in de FCKEditor stopt.
    In diezelfde pagina wordt de inhoud ook geupdated als er postdata wordt meegezonden, en die postdata komt, jawel, van de FCKEditor.

    Werkt bij mij perfect.
    Chandlerdinsdag 3 februari 2009 @ 15:13
    quote:
    Op dinsdag 3 februari 2009 14:42 schreef veldmuis het volgende:
    Een enquete?
    Klopt maar in een enquete heb je meer vraag soorten.

    Open vragen, gesloten vragen, multiple choice vragen, multiple choice vragen met meerdere antwoord mogelijkheden etc...

    En wilde dus precies weten hoe deze vraagstelling genoemd wordt.
    Flacciddinsdag 3 februari 2009 @ 15:21
    quote:
    Op dinsdag 3 februari 2009 14:43 schreef veldmuis het volgende:

    [..]

    Ik geef in de url een id mee, dat ID hang ik aan een query die netjes de inhoud uit de db die ik wil hebben in de FCKEditor stopt.
    In diezelfde pagina wordt de inhoud ook geupdated als er postdata wordt meegezonden, en die postdata komt, jawel, van de FCKEditor.

    Werkt bij mij perfect.
    Ik heb deze gevonden:
    http://themaninblue.com/writing/perspective/2005/01/27/

    En heb ik nu netjes kunnen modificeren tot precies wat ik wil. 1 ding alleen: Het eurotekentje. € komt er te staan.
    Hoe kan ik daaromheen komen?
    GlowMousedinsdag 3 februari 2009 @ 15:42
    Overal dezelfde content-type gebruiken (geen UTF-8 en ISO-8859 door elkaar gebruiken).
    mstxdinsdag 3 februari 2009 @ 15:52
    quote:
    Op dinsdag 3 februari 2009 15:42 schreef GlowMouse het volgende:
    Overal dezelfde content-type gebruiken (geen UTF-8 en ISO-8859 door elkaar gebruiken).
    Als je UTF-8 gebruikt moet je dat bij bepaalde PHP functies ook meegeven. Bijv. bij htmlentities() en html_entity_decode(), anders probeert hij het default in ISO-8859-1 te veranderen, wat niet goed gaat.
    (Daar heb ik zelf ooit eens een paar uur mee lopen kloten voordat ik daar achter kwam.)
    GlowMousedinsdag 3 februari 2009 @ 15:54
    quote:
    Op dinsdag 3 februari 2009 15:52 schreef mstx het volgende:

    [..]

    Als je UTF-8 gebruikt moet je dat bij bepaalde PHP functies ook meegeven. Bijv. bij htmlentities() en html_entity_decode(), anders probeert hij het default in ISO-8859-1 te veranderen, wat niet goed gaat.
    (Daar heb ik zelf ooit eens een paar uur mee lopen kloten voordat ik daar achter kwam.)
    Bij veel string functies kan dat niet, dus tenzij het echt nodig is zou ik tot PHP6 uitkomt bij UTF-8 uit de buurt blijven.
    mstxdinsdag 3 februari 2009 @ 16:02
    quote:
    Op dinsdag 3 februari 2009 15:54 schreef GlowMouse het volgende:

    [..]

    Bij veel string functies kan dat niet, dus tenzij het echt nodig is zou ik tot PHP6 uitkomt bij UTF-8 uit de buurt blijven.
    Het hoeft gelukkig ook maar bij een beperkt aantal functies.
    WIj maken eigenlijk alle sites met UTF-8, zolang je het overal hetzelfde houdt heb je er nauwelijks problemen mee.
    GVRuuddinsdag 3 februari 2009 @ 17:08
    1SELECT * FROM ad WHERE group_id IN (1,2,3)


    Dit levert alle ad records op die in groep 1 2 of 3 vallen. Prima, maar nu wil ik dat er per groep maximaal 2 records worden teruggegeven. Met een simpele LIMIT lukt dat niet, aangezien deze geen rekening houdt met de WHERE clause.

    Iemand een idee?
    GlowMousedinsdag 3 februari 2009 @ 17:25
    Dat is niet zo eenvoudig, zie http://www.artfulsoftware.com/infotree/queries.php?&bw=1280#104 (Within-group quotas (Top N per group)).
    Flacciddinsdag 3 februari 2009 @ 17:44
    quote:
    Op dinsdag 3 februari 2009 15:42 schreef GlowMouse het volgende:
    Overal dezelfde content-type gebruiken (geen UTF-8 en ISO-8859 door elkaar gebruiken).
    de html files die ik hgebruik bevatten geen content type. Zou dat het kunnen zijn? Ik dacht dit is niet nodig omdat ze toch ge-include worden.
    GlowMousedinsdag 3 februari 2009 @ 18:11
    quote:
    Op dinsdag 3 februari 2009 17:44 schreef Flaccid het volgende:

    [..]

    de html files die ik hgebruik bevatten geen content type. Zou dat het kunnen zijn? Ik dacht dit is niet nodig omdat ze toch ge-include worden.
    Het gaat om de communicatie tussen server en client.
    Chandlerdinsdag 3 februari 2009 @ 18:30
    Ik heb een vraagje en snap iets niet

    Onderstaande functie probeert eerst data uit een geposte form te h alen, als deze niet bestaat kijkt hij of een sessie is aangemaakt en zo ja gebruikt hij deze, als deze ook niet bestaat en een default value is ingevuld wordt deze gebruikt en anders wordt er niets terug gegeven.

    Op zich zou je zeggen dat er niets mis mee is! maar toch wel.

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    <?php
    function getSesPost($pst$ses$def '')
    {
        if (isSet(
    $_POST[$pst]))
        {
            return 
    $_POST[$pst];
        }
        elseif (isSet(
    $_SESSION['card']) && isSet($_SESSION['card'][$ses])) //zal deze wel zijn
        
    // lijn 11 <img class="rde_img_smiley" src="http://i.fok.nl/s/biggrin.gif" width="15" height="15" alt="" />
            
    return $_SESSION['card'][$ses];
        }
        elseif (
    $def != '')
        {
            return 
    $def;
        }
        
        return;
    }
    ?>


    Ik krijg namelijk de volgende error

    1<b>Fatal error</b>:  Cannot use object of type stdClass as array in <b>/home/testertje/domains/****/public_html/test.php</b> on line <b>11</b><br />


    nu zou je zeggen dat card een array is aangezien ik deze in de code aanmaak met $_SESSION['card'] = array() maar toch gaat er iets fout, wat zou hiervoor de oplossing kunnen zijn?

    [ Bericht 4% gewijzigd door Chandler op 03-02-2009 18:30:42 (extra info) ]
    GlowMousedinsdag 3 februari 2009 @ 18:37
    var_dump($_SESSION)?

    En het is isset, niet isSet.
    Flacciddinsdag 3 februari 2009 @ 18:50
    quote:
    Op dinsdag 3 februari 2009 18:11 schreef GlowMouse het volgende:

    [..]

    Het gaat om de communicatie tussen server en client.
    Maar wat moet ikd us nu doen voor ?[/dom]
    GlowMousedinsdag 3 februari 2009 @ 18:51
    quote:
    Op dinsdag 3 februari 2009 18:50 schreef Flaccid het volgende:

    [..]

    Maar wat moet ikd us nu doen voor ?[/dom]
    Kijken waar dat fout gaat.
    Chandlerdinsdag 3 februari 2009 @ 19:13
    quote:
    Op dinsdag 3 februari 2009 18:37 schreef GlowMouse het volgende:
    var_dump($_SESSION)?

    En het is isset, niet isSet.
    Hmm... maakt dat zoveel verschil dan?

    en ik zal $_SESSION eens dumpen :U

    print_r
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    Array
    (
        [card] => stdClass Object
            (
                [id] => 71
                [cat_id] => 1
                [code] => f8b88367
                [filename] => f8b88367.jpg
                [filehash] => 1539814517
                [titel] => 
                [omschrijving] => 
                [views] => 0
                [send] => 0
                [validated] => 1
                [cat_titel] => algemeen
            )
    )


    weird of niet? maar het lijkt wel of iets $_SESSION['card'] over schrijft terwijl ik geen $_SESSION['card'] gebruik maar wel $card enzovoorts...
    HuHudinsdag 3 februari 2009 @ 19:22
    Card is dus geen array, maar een Object van type stdClass. Die kun je blijkbaar niet als array benaderen, waardoor de [ ] operator niet werkt. Dat zou kunnen als je ergens mysql_fetch_object gebruikt, waardoor je iets moet doen als $_SESSION['card']->id;
    Roy_Twoensdag 4 februari 2009 @ 01:22
    Geloof me, dat object komt niet op magische wijze in de sessie. Er zit écht ergens iets in je code wat daarvoor zorgt
    veldmuiswoensdag 4 februari 2009 @ 12:40
    Ik zit weer te knoeien met een query .

    tabel1 heeft een rij id's (1 t/m 5), tabel2 heeft alleen id 2 en 3.

    Nou wil ik alles uit tabel1 weergeven, en visueel maken wanneer datzelfde id ook in tabel2 voorkomt.

    Redt ik dat met 1 query
    HuHuwoensdag 4 februari 2009 @ 12:48
    1SELECT * FROM tabel1 WHERE id IN (SELECT id FROM tabel2);
    veldmuiswoensdag 4 februari 2009 @ 12:51
    Ik denk dat ik dat niet helemaal bedoel. Ik wil *alles* uit tabel1 weergeven. De output moet zoiets zijn:

    1
    2
    3
    4
    5
    1 blabla
    2 blabla *
    3 blabla *
    4 blabla
    5 blabla


    Waar die * dus betekent dat het id ook in tabel2 voorkomt.
    mstxwoensdag 4 februari 2009 @ 13:05
    1SELECT *, (SELECT id FROM tabel2 WHERE tabel2.id=tabel1.id) AS tabel2_id FROM tabel1
    veldmuiswoensdag 4 februari 2009 @ 13:10
    Nice! Voor nu even snel erin gezet, straks even goed ontleden!

    Bedankt!
    raptorixwoensdag 4 februari 2009 @ 13:40
    quote:
    Op dinsdag 3 februari 2009 14:32 schreef Chandler het volgende:
    Weet iemand (niet echt PHP maar goed) hoe je dit soort vragen noemt
    [ code verwijderd ]
    Competence Matrix?
    veldmuiswoensdag 4 februari 2009 @ 20:13
    Kun je checken of een bestand geincluded is, en zo niet, dat je dan bijvoorbeeld een exit geeft?
    GlowMousewoensdag 4 februari 2009 @ 20:17
    http://nl3.php.net/get_included_fails

    Maar als het zo belangrijk is om te includen, kun je toch require gebruiken?
    mstxwoensdag 4 februari 2009 @ 20:22
    quote:
    Op woensdag 4 februari 2009 20:17 schreef GlowMouse het volgende:
    http://nl3.php.net/get_included_fails

    Maar als het zo belangrijk is om te includen, kun je toch require gebruiken?
    Waarschijnlijk bedoelt hij het bestand dat geinclude moet worden wat je dan niet op zichzelf in de browser moet kunnen openen.
    Ik zou dan gewoon een variabele in het "hoofdbestand" defineren en in het te includen bestand een exit geven als die variabele niet bestaat.

    Zelf zet ik die bestanden gewoon buiten de publieke map, veel makkelijker.
    GlowMousewoensdag 4 februari 2009 @ 20:43
    Of buiten de www-root zetten, of je er niet druk om maken, of met .htaccess afschermen, of naar de REQUEST_URI kijken.
    veldmuiswoensdag 4 februari 2009 @ 22:15
    Buiten de www-root zetten is wel een idee.

    Niet druk om maken, och, ben nog in de lerende fase dus doe het liever een beetje goed nu. Kan als ik het wat beter onder de knie heb altijd nog afwijken van dat soort dingen.

    Thanks!
    qu63vrijdag 6 februari 2009 @ 00:33
    Ok, ik heb een stukje code wat op zoek gaat naar een bepaald topic in een subforum:
    1
    2
    3
    4
    5
    6
    7
    8
    $html = file_get_contents('http://forum.fok.nl/forum/9');
          if(preg_match_all('/([\[{]WFL\-[a-zA-Z0-9]{0,}[0-9 #]{0,6}[\]}]).*">\t<a href="topic\/([0-9]{6,})\"/', $html, $matches))
             {
                $topics = array();
                   foreach($matches[2] as $index => $id)
                $topics[] = array('id' => $id, 'title' => $matches[2][$index]);
                $wfl = 'Laatste WFL-LFC topic: <a href="http://forum.fok.nl/topic/'.$topics[0]['id'].'/1/50">'.$topics[0]['id'].'</a><br>';
             }

    Alleen zit er nu een 'tikfout' in de laatste TT, namelijk WFl ipv WFl... Wat moet ik nou veranderen aan mn preg_match_all om niet hoofdlettergevoelig te zijn?
    En kan deze code eventueel nog beter?
    Lightvrijdag 6 februari 2009 @ 06:31
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <?php
    $html 
    file_get_contents('http://forum.fok.nl/forum/9');
    if(
    preg_match_all('/([\[{]WFL\-.*#\d+[\]}]).*">\t<a href="topic\/(\d{6,})\"/Ui'$html$matches))  {
        
    $topics = array();
        foreach(
    $matches[2] as $index => $id) {
            
    $topics[] = array('id' => $id'title' => $matches[2][$index]);
        }
        
    $wfl 'Laatste WFL-LFC topic: <a href="http://forum.fok.nl/topic/'.$topics[0]['id'].'">'.$topics[0]['id'].'</a><br>';
    }
    ?>

    Iets korter gemaakt, en hoofdletterongevoelig. Dat laatste doe je met de i na de reguliere expressie. De U is om de expressie ungreedy te maken, dan pakt'ie met het stukje .*# alles tot en met het eerste #. En \d betekent een digit, is dus hetzelfde als [0-9].

    Zoals altijd geldt ook voor deze code dat'ie niet getest is :)
    qu63vrijdag 6 februari 2009 @ 09:42
    quote:
    Op vrijdag 6 februari 2009 06:31 schreef Light het volgende:

    [ code verwijderd ]

    Iets korter gemaakt, en hoofdletterongevoelig. Dat laatste doe je met de i na de reguliere expressie. De U is om de expressie ungreedy te maken, dan pakt'ie met het stukje .*# alles tot en met het eerste #. En \d betekent een digit, is dus hetzelfde als [0-9].

    Zoals altijd geldt ook voor deze code dat'ie niet getest is
    Werkt!

    Zou je deze ook nog aan kunnen passen/na kunnen lopen?
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <?php
    $html 
    file_get_contents('http://forum.fok.nl/forum/3');
            if(
    preg_match_all('/([\[{]{0,1}SC[\]}].*[a-zA-Z0-9 #]{0,15})\">\t<a href="topic\/([0-9]{6,})\"/'$html$matches))
                {
                    
    $topics = array();
                        foreach(
    $matches[2] as $index => $id)
                    
    $topics[] = array('id' => $id'title' => $matches[2][$index]);
                    
    $gc 'Laatste GC-Slowchat topic: <a href="http://forum.fok.nl/topic/'.$topics[0]['id'].'/1/50">'.$topics[0]['id'].'</a><br>';
                }
    ?>
    veldmuisvrijdag 6 februari 2009 @ 12:34
    Ik doe nog eens een vraag :+.

    Ik probeer een html mail te versturen, en dat gaat best prima, alleen is de ontvangende server van mening dat er nog een header bij moet:
    1X-Spam-Checker-Version: SpamAssassin...etc 


    Prima, maar die code komt bovenaan de mail te staan. In de source staan dan ook die regels, en daarna komt pas de <html>tag.

    Iemand een idee of dat op te lossen is? Dat moet toch kunnen? :o
    Xcaliburvrijdag 6 februari 2009 @ 12:38
    Hoe zet je hem in die mail dan? Gewoon als plaintext ofzo?
    De andere headers zie je toch ook niet in de mail staan... ?

    En waarom zou je uberhaupt in je mail zetten dat er iets met Spamassassin is?
    Roy_Tvrijdag 6 februari 2009 @ 12:48
    Je moet hem wel als header meesturen natuurlijk. Ik vind het overigens meer dan dubieus om een header mee te sturen die "liegt" dat SpamAssassin een spam-check gedaan heeft. SpamAssassin voegt die header zelf wel toe na het scannen.
    RoW_0vrijdag 6 februari 2009 @ 13:26
    mensen, ik wil een klein website maken 'een visitekaartje' en ik wil graag weten welke programma's het beste zijn om met een paar muisklikjes een leuke website te ontwerpen.

    iemand?

    beetje in de stijl van wordpress. zonder een database.
    veldmuisvrijdag 6 februari 2009 @ 13:31
    quote:
    Op vrijdag 6 februari 2009 12:48 schreef Roy_T het volgende:
    Je moet hem wel als header meesturen natuurlijk. Ik vind het overigens meer dan dubieus om een header mee te sturen die "liegt" dat SpamAssassin een spam-check gedaan heeft. SpamAssassin voegt die header zelf wel toe na het scannen.

    Nee, die header wordt door de ontvangende server toegevoegd, maar dus niet als header.
    Ik voeg die zeker niet toe, als ik die mail naar mn gmail account stuur is er dan ook niets aan de hand en heb ik die header niet. Via een ander account wordt die header er wel bij gezet, door de ontvangende server dus.
    Alleen wordt het niet echt als header toegevoegd, maar komt het bovenin de mail te staan. En dat wil ik dus niet, maar de vraag is of ik daar wat aan kan doen, omdat ik nogal weinig invloed heb op wat de ontvangende server met een mailtje doet natuurlijkl
    veldmuisvrijdag 6 februari 2009 @ 13:31
    quote:
    Op vrijdag 6 februari 2009 13:26 schreef RoW_0 het volgende:
    mensen, ik wil een klein website maken 'een visitekaartje' en ik wil graag weten welke programma's het beste zijn om met een paar muisklikjes een leuke website te ontwerpen.

    iemand?

    beetje in de stijl van wordpress. zonder een database.
    Dan zit je hier niet helemaal goed denk ik. Je kunt bijvoorbeeld Dreamweaver proberen, maar met een paar klikken een leuke website bouwen is eigenlijk niet te doen imo.
    HuHuvrijdag 6 februari 2009 @ 13:35
    quote:
    Op vrijdag 6 februari 2009 12:34 schreef veldmuis het volgende:
    Ik doe nog eens een vraag .

    Ik probeer een html mail te versturen, en dat gaat best prima, alleen is de ontvangende server van mening dat er nog een header bij moet:
    [ code verwijderd ]

    Prima, maar die code komt bovenaan de mail te staan. In de source staan dan ook die regels, en daarna komt pas de <html>tag.

    Iemand een idee of dat op te lossen is? Dat moet toch kunnen?
    Termineer je de header van de mail wel goed? Wat is de mail zoals je hem weg stuurt?
    veldmuisvrijdag 6 februari 2009 @ 13:56
    Zo:
    1
    2
    3
    4
    5
    6
    7
    8
    $subject = "xxx";
    $headers = "To: xxx <xxx@xxx.nl>\r\n";
    $headers .= "From: xxx <xxx@xxx.nl>\r\n";
    $headers .= "X-Mailer: xxx\n";
    $headers .= 'MIME-Version: 1.0' . "\n";
    $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";

    mail($to, $subject, $message, $headers);

    $message bevat <html> t/m </html>
    GlowMousevrijdag 6 februari 2009 @ 14:01
    PHPMailer gebruiken, met HTML-mails gaat gewoon teveel mis. En als het dan nog niet werkt, kun je terecht SpamAssassin de schuld geven

    Groetjes,
    GlowMouse
    HuHuvrijdag 6 februari 2009 @ 14:02
    quote:
    Op vrijdag 6 februari 2009 13:56 schreef veldmuis het volgende:
    Zo:
    [ code verwijderd ]

    $message bevat <html> t/m </html>
    Ik weet het niet precies, maar regel 4 en 5 moet je ook met "\r\n" afsluiten.
    quote:
    Op vrijdag 6 februari 2009 14:01 schreef GlowMouse het volgende:
    PHPMailer gebruiken, met HTML-mails gaat gewoon teveel mis. En als het dan nog niet werkt, kun je terecht SpamAssassin de schuld geven
    Dat is sowieso een goed idee.
    veldmuisvrijdag 6 februari 2009 @ 14:25
    quote:
    Op vrijdag 6 februari 2009 14:02 schreef HuHu het volgende:

    [..]

    Ik weet het niet precies, maar regel 4 en 5 moet je ook met "\r\n" afsluiten.
    Dan komt de mail gewoon als plaintext binnen, en zie ik dus lekker de html zut. Ik ga eens kijken naar PHPMailer
    RoW_0vrijdag 6 februari 2009 @ 16:09
    Okay nee goed ik heb dus een pagina gemaakt in dreamweaver. maar maakt hij geen 'Projectbestand' op? hij maakt alleen maar een paar html bestandjes aan. Maar als ik het afsluit en weer opstart, welke bestand moet ik op klikken dan/? als ik de frameset open krijg ik niet de balken om bijv de linker frame groter of kleiner te maken... en als ik 6 frames heb.., in welke zet ik dan de titel die in de taakbar verschijnt?
    veldmuisvrijdag 6 februari 2009 @ 16:13
    Als je nu begint met het bouwen van een website, ga dan iets moderns lezen. Frames gebruik je gewoon niet meer. Dat is antiek.

    Blijf weg bij die handleidinghtml.nl enzo, dat soort sites hebben teksten die in de 90's bedacht zijn .
    qu63vrijdag 6 februari 2009 @ 16:13
    quote:
    Op vrijdag 6 februari 2009 16:09 schreef RoW_0 het volgende:
    Okay nee goed ik heb dus een pagina gemaakt in dreamweaver. maar maakt hij geen 'Projectbestand' op? hij maakt alleen maar een paar html bestandjes aan. Maar als ik het afsluit en weer opstart, welke bestand moet ik op klikken dan/? als ik de frameset open krijg ik niet de balken om bijv de linker frame groter of kleiner te maken... en als ik 6 frames heb.., in welke zet ik dan de titel die in de taakbar verschijnt?
    http://www.w3schools.com/
    RoW_0vrijdag 6 februari 2009 @ 16:15
    cablegunmasterzaterdag 7 februari 2009 @ 11:15
    quote:
    Op vrijdag 6 februari 2009 16:13 schreef veldmuis het volgende:
    Als je nu begint met het bouwen van een website, ga dan iets moderns lezen. Frames gebruik je gewoon niet meer. Dat is antiek.

    Blijf weg bij die handleidinghtml.nl enzo, dat soort sites hebben teksten die in de 90's bedacht zijn .
    ik heb dat allemaal gebruikt op die site ,alleen frames niet met een uitzondering van een Iframe om 20 pagina's te linken en te lui was om het anders te doen.
    SunBoomzondag 8 februari 2009 @ 16:05
    [PHP] Loginscript voor 1 gebruiker zonder database!
    cablegunmasterzondag 8 februari 2009 @ 16:25
    1
    2
    3
    4
    5
    <?php
                    $query  
    "UPDATE verkooporder              SET status = '".$status."' WHERE vo_nr = '".$vo_nr."';";
                    
    $query2 "UPDATE verkooporderregel         SET geleverd = geleverd + besteld, besteld = '0' WHERE vo_nr = '".$vo_nr."';";
                    
    $query3 "UPDATE artikel,verkooporderregel SET voorverkopen = voorverkopen - besteld where vo_nr = '".$vo_nr."' and artikel.art_nr = verkooporderregel.art_nr ;";
    ?>

    zou dit in minder querys kunnen ?
    PiRANiAzondag 8 februari 2009 @ 16:32
    quote:
    Op zondag 8 februari 2009 16:25 schreef cablegunmaster het volgende:

    [ code verwijderd ]

    zou dit in minder querys kunnen ?
    als je met cascading regels gaat werken misschien
    HuHuzondag 8 februari 2009 @ 16:35
    quote:
    Op zondag 8 februari 2009 16:25 schreef cablegunmaster het volgende:

    [ code verwijderd ]

    zou dit in minder querys kunnen ?
    Waarom zou je dat willen? Je doet drie updates, dus waarom zou dat in minder dan 3 update-queries moeten?
    cablegunmasterzondag 8 februari 2009 @ 16:39
    quote:
    Op zondag 8 februari 2009 16:35 schreef HuHu het volgende:

    [..]

    Waarom zou je dat willen? Je doet drie updates, dus waarom zou dat in minder dan 3 update-queries moeten?
    ik dacht dat je dan alle tabellen lockte.

    oh ja resultaat hiervan is

    www.dgb.clanslayers.com
    user: verkoop
    pass: verkoop

    HuHuzondag 8 februari 2009 @ 17:05
    quote:
    Op zondag 8 februari 2009 16:39 schreef cablegunmaster het volgende:

    [..]

    ik dacht dat je dan alle tabellen lockte.
    Die microseconde dat een tabel gelocked is ga je echt niet merken. Waarschijnlijk is het uitvoeren van 3 losse queries ook nog eens sneller dan één ingewikkelde query die meerdere tabellen update en allemaal tegelijk locked.
    cablegunmasterzondag 8 februari 2009 @ 17:06
    quote:
    Op zondag 8 februari 2009 17:05 schreef HuHu het volgende:

    [..]

    Die microseconde dat een tabel gelocked is ga je echt niet merken. Waarschijnlijk is het uitvoeren van 3 losse queries ook nog eens sneller dan één ingewikkelde query die meerdere tabellen update en allemaal tegelijk locked.
    ah ok
    GlowMousezondag 8 februari 2009 @ 17:07
    quote:
    Op zondag 8 februari 2009 16:39 schreef cablegunmaster het volgende:

    [..]

    ik dacht dat je dan alle tabellen lockte.
    Bij UPDATE tbl doe je niets met andere tabellen, dus andere tabellen worden niet gelockt.
    Roy_Tzondag 8 februari 2009 @ 17:44
    Als je bang bent voor locking (door relatief veel schrijfactiviteit) zou je InnoDB kunnen overwegen, met row locking ipv table locking.
    cablegunmasterzondag 8 februari 2009 @ 21:50
    quote:
    Op zondag 8 februari 2009 17:44 schreef Roy_T het volgende:
    Als je bang bent voor locking (door relatief veel schrijfactiviteit) zou je InnoDB kunnen overwegen, met row locking ipv table locking.
    zo groot word het denk ik nog niet ik was aan het vooruit denken waarom hoe en wat.
    cablegunmasterzondag 8 februari 2009 @ 22:05
    maar hoe krigj ik een timestamp + 2 weken eigenlijk ? bijvoorbeeld

    ik heb een veld in sql dat als ik hem verander zo aanpas. maar hoe krijg ik nou een uiterstbetaaldatum die +2 weken is
    HuHuzondag 8 februari 2009 @ 22:08
    1SELECT DATE_ADD(timestamp, INTERVAL 2 WEEK) FROM tabel;


    of gewoon

    1SELECT timestamp + INTERVAL 2 WEEK FROM tabel;
    Chandlerwoensdag 11 februari 2009 @ 09:07
    Ik zit met een vraagstuk.

    Op dit moment gebruikt mijn statistieken script 2 tabellen voor het opslaan van referres (externe en interne)

    Nu maken deze tabellen mijn statistieken script nogal sloom. Een vriend van mij kwam met een oplossing door ipv 2 tabellen er 1 te maken die alle gegevens combineert. Echter krijg je dan veel duplicate data, daarvoor wil ik dus een oplossing zoeken.

    Opzet huidige tabellen
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    CREATE TABLE IF NOT EXISTS `stats_referer` (
      `id` int(10) unsigned NOT NULL auto_increment,
      `type_id` enum('i','e') NOT NULL default 'e',
      `link` varchar(128) NOT NULL,
      PRIMARY KEY  (`id`),
      UNIQUE KEY `type_id` (`type_id`,`link`)
    ) ENGINE=MyISAM  DEFAULT CHARSET=latin1;

    CREATE TABLE IF NOT EXISTS `stats_referer_link` (
      `stat_id` int(10) unsigned NOT NULL,
      `referer_id` int(10) unsigned NOT NULL,
      `date` date NOT NULL,
      `hits` mediumint(8) unsigned NOT NULL,
      `lastdate` time NOT NULL,
      UNIQUE KEY `stat_id` (`stat_id`,`referer_id`,`date`),
      KEY `referer_id` (`referer_id`,`lastdate`)
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1;


    De huidige opzet van de indexes worden gebruikt voor het script dat de statistieken registreert en opslaat.

    Nieuwe opzet van vriend
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    CREATE TABLE IF NOT EXISTS `stats_referer` (
      `id` int(10) unsigned NOT NULL auto_increment,
      `type_id` enum('i','e') NOT NULL default 'e',
      `link` varchar(128) NOT NULL,
      `stat_id` int(10) unsigned NOT NULL,
      `date` date NOT NULL,
      `hits` mediumint(8) unsigned NOT NULL,
      `lastdate` time NOT NULL,
      PRIMARY KEY  (`id`)
    ) ;


    Hoe kan ik deze data reduceren maar toch een snelle database opzet maken?
    Roy_Twoensdag 11 februari 2009 @ 09:09
    Wanneer is 'ie precies sloom, bij welke bewerking? Dit is natuurlijk koffiedik kijken; die tabellen maken je script niet sloom, maar het gebruik ervan
    cablegunmasterwoensdag 11 februari 2009 @ 09:16
    quote:
    Op zondag 8 februari 2009 22:08 schreef HuHu het volgende:

    [ code verwijderd ]

    of gewoon
    [ code verwijderd ]


    tof ik had hem nodig voor een scriptie waarmee hij een uiterst betaaldatum neerzette en had even geen idee hoe (mn gastenboek scriptje word overigens steeds toffer

    v1 input output
    v1.02 input output met pagina's! limit dinkie ^^;;
    v1.03 textarea whitespace css wrap.
    v1.04 scriptje wrap de comment met te lange woorden ( waarom heeft fok niet zo'n script?)
    veldmuiswoensdag 11 februari 2009 @ 10:51
    Als ik een $_SESSION['ingelogd'] maak, en die na het inloggen op true, en bovenaan elke pagina een if(!$_SESSION['ingelogd']) {exit;}, is dat dan veilig?
    cablegunmasterwoensdag 11 februari 2009 @ 11:07
    quote:
    Op woensdag 11 februari 2009 10:51 schreef veldmuis het volgende:
    Als ik een $_SESSION['ingelogd'] maak, en die na het inloggen op true, en bovenaan elke pagina een if(!$_SESSION['ingelogd']) {exit;}, is dat dan veilig?
    het is veilig alleen je kan het nog makkelijker doen door er een header aan toe te voegen die je eruit forceert

    1
    2
    3
    4
    5
    6
    7
    8
    9
    <?php
    if(!$_SESSION['ingelogd'] == true 
    header('Location: http://www.example.com/index.php'); exit;
    }else{

    blablabla deze is voor ingelogde mensen

    }
    ?>




    ik basseer het inloggen liever op isset($_SESSION['user'] )

    [ Bericht 2% gewijzigd door cablegunmaster op 11-02-2009 11:18:47 ]
    Tijnwoensdag 11 februari 2009 @ 11:18
    quote:
    Op woensdag 11 februari 2009 10:51 schreef veldmuis het volgende:
    Als ik een $_SESSION['ingelogd'] maak, en die na het inloggen op true, en bovenaan elke pagina een if(!$_SESSION['ingelogd']) {exit;}, is dat dan veilig?
    Als je op shared hosting zit, is het vertandig om een eigen directory met sessie-gegevens te definiëren. Standaard worden in een shared hosting omgeving de sessiegegevens meestal in een algemene temp-directory gezet en daar kunnen alle gebruikers van de server bij. Het lijkt me niet dat je wil dat andere users van je webhost jouw sessiedata kunnen uitlezen of wijzigen.

    Daarnaast is het ook verstandig om een eigen sessie-dir te gebruiken als er gebruik wordt gemaakt van meerdere verschillende webservers voor één website, zoals je bv bij loadbalancing ziet. Elke server heeft dan vaak z'n eigen tmp-dir met daarin je sessiegegevens en als een gebruiker halverwege het surfen opeens naar een andere webserver wordt geschakeld, is z'n sessie kwijt en lijkt 'ie te worden uitgelogd. Dat wil je natuurlijk ook niet.

    De beste plek om je sessie-gegevens te bewaren is in je homedir, ergens boven de webroot. Mijn homedir is bijvoorbeeld /home/martijn en m'n webroot is /home/martijn/www. M'n mapje voor sessies noem ik /home/martijn/sessies en zorg dmv chmod dat de user waaronder PHP draait hier schrijfrechten heeft.

    Vervolgens vertel ik PHP dat 'ie deze map moet gebruiken met de functie session_save_path(). Dat moet je doen voordat je session_start() aanroept. Een script die sessies gebruikt ziet er dan bijvoorbeeld zo uit:

    1
    2
    3
    4
    <?php
    session_save_path
    ('/home/martijn/sessies');
    session_start();
    ?>


    Om te checken of PHP inderdaad de sessies op de goede plek wegschrijft, kun je session_save_path() zonder argumenten aan roepen. De functie returned dan de huidige locatie voor sessiegegevens.
    Chandlerwoensdag 11 februari 2009 @ 11:45
    quote:
    Op woensdag 11 februari 2009 09:09 schreef Roy_T het volgende:
    Wanneer is 'ie precies sloom, bij welke bewerking? Dit is natuurlijk koffiedik kijken; die tabellen maken je script niet sloom, maar het gebruik ervan
    Dat is eingelijk vrij simpel, wanneer ik de tabellen JOIN om de gegevens uit te lezen.

    Ik wil namelijk referers uitlezen op bepaalde data

    Voorbeeld:

    1
    2
    3
    4
    5
    6
    7
    SELECT stats_referer.link, stats_referer_link.hits 
    FROM stats_referer 
    LEFT JOIN stats_referer_link ON stats_referer_link.referer_id = stats_referer.id 
    WHERE stats_referer_link.stat_id = '12' AND stats_referer.type_id = 'e' 
    AND stats_referer_link.`date` = '2009-02-11' 
    ORDER BY stats_referer_link.lastdate DESC 
    LIMIT 25


    Echter moet ik de huidige indexes gebruiken voor het script wat de statistieken opslaat, als ik deze verander wordt het opslaan van de statistieken slomer en dat is niet de bedoeling (statistieken opslaan kost 0.010 seconde)

    Deze query kost 20 seconden NA F5 1/20 daarvan!
    Lightwoensdag 11 februari 2009 @ 12:03
    quote:
    Op woensdag 11 februari 2009 11:45 schreef Chandler het volgende:

    [..]

    Dat is eingelijk vrij simpel, wanneer ik de tabellen JOIN om de gegevens uit te lezen.

    Ik wil namelijk referers uitlezen op bepaalde data

    Voorbeeld:
    [ code verwijderd ]

    Echter moet ik de huidige indexes gebruiken voor het script wat de statistieken opslaat, als ik deze verander wordt het opslaan van de statistieken slomer en dat is niet de bedoeling (statistieken opslaan kost 0.010 seconde)

    Deze query kost 20 seconden NA F5 1/20 daarvan!
    En wat levert de EXPLAIN van die query op?
    veldmuiswoensdag 11 februari 2009 @ 12:05
    quote:
    Op woensdag 11 februari 2009 11:18 schreef Tijn het volgende:

    [..]

    Als je op shared hosting zit, is het vertandig om een eigen directory met sessie-gegevens te definiëren. Standaard worden in een shared hosting omgeving de sessiegegevens meestal in een algemene temp-directory gezet en daar kunnen alle gebruikers van de server bij. Het lijkt me niet dat je wil dat andere users van je webhost jouw sessiedata kunnen uitlezen of wijzigen.

    Daarnaast is het ook verstandig om een eigen sessie-dir te gebruiken als er gebruik wordt gemaakt van meerdere verschillende webservers voor één website, zoals je bv bij loadbalancing ziet. Elke server heeft dan vaak z'n eigen tmp-dir met daarin je sessiegegevens en als een gebruiker halverwege het surfen opeens naar een andere webserver wordt geschakeld, is z'n sessie kwijt en lijkt 'ie te worden uitgelogd. Dat wil je natuurlijk ook niet.

    De beste plek om je sessie-gegevens te bewaren is in je homedir, ergens boven de webroot. Mijn homedir is bijvoorbeeld /home/martijn en m'n webroot is /home/martijn/www. M'n mapje voor sessies noem ik /home/martijn/sessies en zorg dmv chmod dat de user waaronder PHP draait hier schrijfrechten heeft.

    Vervolgens vertel ik PHP dat 'ie deze map moet gebruiken met de functie session_save_path(). Dat moet je doen voordat je session_start() aanroept. Een script die sessies gebruikt ziet er dan bijvoorbeeld zo uit:
    [ code verwijderd ]

    Om te checken of PHP inderdaad de sessies op de goede plek wegschrijft, kun je session_save_path() zonder argumenten aan roepen. De functie returned dan de huidige locatie voor sessiegegevens.
    Dat is een nette tip! Ik dank u hartelijk .
    Roy_Twoensdag 11 februari 2009 @ 12:11
    quote:
    Op woensdag 11 februari 2009 11:18 schreef Tijn het volgende:

    Daarnaast is het ook verstandig om een eigen sessie-dir te gebruiken als er gebruik wordt gemaakt van meerdere verschillende webservers voor één website, zoals je bv bij loadbalancing ziet. Elke server heeft dan vaak z'n eigen tmp-dir met daarin je sessiegegevens en als een gebruiker halverwege het surfen opeens naar een andere webserver wordt geschakeld, is z'n sessie kwijt en lijkt 'ie te worden uitgelogd. Dat wil je natuurlijk ook niet.
    Dat kun je vaak oplossen door "sticky sessions" aan te zetten op de load balancer. Neemt niet weg dat je een valide punt maakt
    Chandlerwoensdag 11 februari 2009 @ 12:20
    1
    2
    1 SIMPLE stats_referer ref PRIMARY,type_id type_id 1 const 138048 Using where; Using temporary; Using filesort 
    1 SIMPLE stats_referer_link eq_ref stat_id,referer_id stat_id 11 const,gfxstatcom_db1.stats_referer.id,const 1 Using where 


    Heeft idd weer te maken met die temporary filesort :(
    cablegunmasterwoensdag 11 februari 2009 @ 12:59
    ik wou een array krijgen van elk een artikel_nr , een artikel aantal alleen ik snap de foreach nog niet helemaal

    hoe krijg ik al mijn artikelen van deze array in een andere variabele ?
    ( net gelukt om een array te maken voor artikelen (nu nog boven de 0 )
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <?php
             
    if(isset($_POST['artikelaantal'])){
                    foreach(
    $_POST['artikelaantal'] as $artikelaantal => $aantal 
                    {
                
    /*    $artikel  = $_POST['artikel_nr'];
                    $aantal   = $_POST['artikelaantal'];
                    $prijs    = $_POST['prijs'];*/
                    
    }
                    echo 
    $artikel." ".$aantal." "$prijs;
                 }
    ?>


    DONE!


    [ Bericht 5% gewijzigd door cablegunmaster op 11-02-2009 14:07:47 ]
    Likkende_Lassiewoensdag 11 februari 2009 @ 13:03
    Ik heb icm met AJAX een aantal kolomen zoals in dit voorbeeld:



    De gebruiker kan al op een interactive manier de kolomen verplaatsen etc, maar nu zou het mooi zijn
    als het ook mogelijk is om de kolom breedte aan te kunnen passen, door te slepen.

    Heb het vaker gezien, dus het zou mogelijk moeten zijn. Iemand een idee hoe te doen??
    GlowMousewoensdag 11 februari 2009 @ 13:32
    Chandler, ik snap je query niet goed. Waarom doe je een left_join op stats_referer_link? Ik zou zeggen dat wanneer voor een bepaalde stat_id een link niet voorkomt, je die link niet in je queryresultaat wilt hebben. Ik zou het eerder andersom doen: staat de link per ongeluk niet in stats_referer, dat je toch die regel wilt tonen.

    1
    2
    3
    4
    5
    6
    SELECT stats_referer.link, stats_referer_link.hits 
    FROM stats_referer_link l
    LEFT JOIN stats_referer r ON (l.referer_id = r.id)
    WHERE l.stat_id = '12' AND r.type_id = 'e' AND l.`date` = '2009-02-11' 
    ORDER BY l.lastdate DESC 
    LIMIT 25

    Indices:
    stats_referer_link: (stat_id,date,lastdate)
    stats_referer: (id, type_id)

    Deze query moet binnen 0.01s uit te voeren zijn.
    GlowMousewoensdag 11 februari 2009 @ 13:35
    quote:
    Op woensdag 11 februari 2009 13:03 schreef Likkende_Lassie het volgende:
    Ik heb icm met AJAX een aantal kolomen zoals in dit voorbeeld:

    [ afbeelding ]

    De gebruiker kan al op een interactive manier de kolomen verplaatsen etc, maar nu zou het mooi zijn
    als het ook mogelijk is om de kolom breedte aan te kunnen passen, door te slepen.

    Heb het vaker gezien, dus het zou mogelijk moeten zijn. Iemand een idee hoe te doen??
    Dat is geen PHP; [Javascript] voor dummies (deel 8)
    cablegunmasterwoensdag 11 februari 2009 @ 13:37
    1
    2
    3
    4
    5
    6
    7
    8
    <?php
    function trim_value($value

        
    $new_string trim($value); 
        
    $end_string rtrim($new_string);
        return 
    $value;
    }
    ?>

    <input type=\"text\" name=\"artikelaantal[]\" size=\"7\" maxlength=\"5\" value=\"";
    1
    2
    3
    4
    5
    6
    <?php
                                               
    if(!empty($_POST))
                                               { 
    array_walk($_POST['artikelaantal'], 'trim_value');
                                                  echo 
    $_POST['artikelaantal'][$i]; $i++;}
                                               if(empty(
    $_POST)){ echo '0';} echo " \">
    ?>

    </td>
    ik krijg een irritante wit spatie achter alle artikelaantallen hoe haal ik dit weg? want ik krijg die trim functie niet goed werkend iemand een idee ?
    mstxwoensdag 11 februari 2009 @ 13:40
    quote:
    Op woensdag 11 februari 2009 13:37 schreef cablegunmaster het volgende:

    [ code verwijderd ]

    <input type="text" name="artikelaantal[]" size="7" maxlength="5" value="";
    if(!empty($_POST))
    { array_walk($_POST['artikelaantal'], 'trim_value');
    echo $_POST['artikelaantal'][$i]; $i++;}
    if(empty($_POST)){ echo '0';} echo " "></td>
    [/php]

    ik krijg een irritante wit spatie achter alle artikelaantallen hoe haal ik dit weg? want ik krijg die trim functie niet goed werkend iemand een idee ?
    In die functie krijg je $value weer precies zo terug als dat hij erin is gegaan...
    GlowMousewoensdag 11 februari 2009 @ 13:40
    Waarom je eigen trim-functie definieren als je net zo goed de ingebouwde kunt gebruiken (trim is een combinatie van ltrim en rtrim)? Je functie werkt ook niet goed omdat je $value teruggeeft maar niet verandert.
    HuHuwoensdag 11 februari 2009 @ 13:41
    Je trim_value geeft de ongewijzigde input terug hè.
    cablegunmasterwoensdag 11 februari 2009 @ 13:48
    quote:
    Op woensdag 11 februari 2009 13:41 schreef HuHu het volgende:
    Je trim_value geeft de ongewijzigde input terug hè.
    klopt vergat $end_string; ipv $value
    ben nieuw met functies heb er vandaag al 2 gebruikt deze had ook direct gekund! maar om een of andere reden toch nog witspaties in mijn value= veld die zichzelf opstapelen ( elke keer dat je op submit drukt voegt hij een witspatie toe)

    maarja ze worden getrimt dus opzich niet zo heel erg


    yay de foreach uitgevogeld

    [ Bericht 19% gewijzigd door cablegunmaster op 11-02-2009 14:06:22 ]
    Likkende_Lassiewoensdag 11 februari 2009 @ 14:00
    quote:
    Op woensdag 11 februari 2009 13:35 schreef GlowMouse het volgende:

    [..]

    Dat is geen PHP; [Javascript] voor dummies (deel 8)

    Klopt, maar was vergeten te melden dat ik de waarde wil opslaan in een database..
    Chandlerwoensdag 11 februari 2009 @ 14:18
    quote:
    Op woensdag 11 februari 2009 13:32 schreef GlowMouse het volgende:
    Chandler, ik snap je query niet goed. Waarom doe je een left_join op stats_referer_link? Ik zou zeggen dat wanneer voor een bepaalde stat_id een link niet voorkomt, je die link niet in je queryresultaat wilt hebben. Ik zou het eerder andersom doen: staat de link per ongeluk niet in stats_referer, dat je toch die regel wilt tonen.
    [ code verwijderd ]

    Indices:
    stats_referer_link: (stat_id,date,lastdate)
    stats_referer: (id, type_id)

    Deze query moet binnen 0.01s uit te voeren zijn.
    Een vraagje voordat ik het ga uitvoeren, is het gebruiken van meerdere indexes handig? aangezien ik op de tabel van de referrs al een index heb voor type_id en link.
    GlowMousewoensdag 11 februari 2009 @ 14:21
    Indices zijn dodelijk voor inserts/updates. Maar als je ze vaak nodig hebt is het toch maar beter om ze wel te plaatsen.
    Als deze tabellen beschreven worden elke keer als een user je site bezoekt, zou ik eens kijken naar rowbased-locking ipv tablebased-locking.
    Chandlerwoensdag 11 februari 2009 @ 15:39
    Er wordt meer geupdated/geinserted dan gelezen, dat is gewoon een feit. Aangezien de backend 15-21 queries heeft voor het up to date houden van de statistieken.

    Laten we het zo even zeggen, voor 1 bezoeker die de statisteken bekijkt worden 10000 updates op tabellen gedaan (dus statistieken geteld).

    Dus werkt je versie imho averechts op het huidige model...
    Roy_Twoensdag 11 februari 2009 @ 15:43
    Dan gebruik je al InnoDB neem ik aan, en geen MyISAM? Want met al die schrijfactiviteit wil je, zoals gezegd, row locking ipv table locking.
    Chandlerwoensdag 11 februari 2009 @ 15:49
    Ik gebruik idd MyISAM (mysql) en geen innoDB, heb werkelijk ook geen idee wat het is maar ga eens researchen!

    -edit-

    Ik lees idd dat innoDB veel handiger is voor inserts/updates idd maar dan is het nog maar de vraag hoe het omgaat met de lees acties... want ook tussen al het inserten en updaten moet er af en toe wat gelezen worden

    [ Bericht 66% gewijzigd door Chandler op 11-02-2009 15:57:55 ]
    Roy_Twoensdag 11 februari 2009 @ 16:19
    quote:
    Op woensdag 11 februari 2009 15:49 schreef Chandler het volgende:

    Ik lees idd dat innoDB veel handiger is voor inserts/updates idd maar dan is het nog maar de vraag hoe het omgaat met de lees acties... want ook tussen al het inserten en updaten moet er af en toe wat gelezen worden
    Dat gaat ook prima hoor

    Eigenlijk zou je voor ieder project per tabel moeten kijken of je er MyISAM of InnoDB voor wilt gebruiken.
    Chandlerwoensdag 11 februari 2009 @ 17:13
    Ik heb even een test gedraaid.

    1
    2
    3
    4
    5
    6
    SELECT r.link, l.hits 
    FROM stats_referer_link l
    LEFT JOIN stats_referer r ON (l.referer_id = r.id)
    WHERE l.stat_id = '12' AND r.type_id = 'e' AND l.`date` = '2009-02-11' 
    ORDER BY l.lastdate DESC 
    LIMIT 25


    Lokaal krijg ik bij myISAM 0.9 seconden en innoDB 1.0 (meerdere keren getest)...
    Roy_Twoensdag 11 februari 2009 @ 18:00
    quote:
    Op woensdag 11 februari 2009 17:13 schreef Chandler het volgende:
    Ik heb even een test gedraaid.
    [ code verwijderd ]

    Lokaal krijg ik bij myISAM 0.9 seconden en innoDB 1.0 (meerdere keren getest)...
    Je was tegelijkertijd ook 20 keer zoveel write queries aan het doen dan reads, zoals naar jouw zeggen in je real life situatie?
    slacker_nlwoensdag 11 februari 2009 @ 18:21
    quote:
    Op woensdag 11 februari 2009 13:37 schreef cablegunmaster het volgende:

    [ code verwijderd ]

    <input type=\"text\" name=\"artikelaantal[]\" size=\"7\" maxlength=\"5\" value=\"";
    [ code verwijderd ]

    </td>
    ik krijg een irritante wit spatie achter alle artikelaantallen hoe haal ik dit weg? want ik krijg die trim functie niet goed werkend iemand een idee ?
    Vet tijdstip!

    Maar je trimfunctie moet zo volgens mij:

    1
    2
    3
    4
    5
    6
    <?php
    function trim_value(&$value

        
    $value trim($value); 
    }
    ?>


    Het geheim zit 'm in references.

    Er is ook een andere manier om precies hetzelfde te doen:
    [PHP/(My)SQL] voor dummies - Deel 63

    Allemachtig, het antwoord wordt zelfs gegeven in de trim documentatie:

    http://nl.php.net/trim

    [ Bericht 16% gewijzigd door slacker_nl op 11-02-2009 18:30:21 ]
    cablegunmasterwoensdag 11 februari 2009 @ 18:26
    nu heb ik 2 arrays hoe krijg ik ze mooi naast elkaar?


    artikelnummer
    0=1
    1=2
    2=3
    3=4
    4=5
    5=6
    aantal
    0=0
    1=5
    2=4
    3=10
    4=20
    5=30

    1
    2
    3
    4
    5
    6
    7
    8
    <?php
    print "artikelnr:<br/>";
                                foreach(
    $_POST['artikel_nr'] as $a => $art_nr)
                                print(
    $a ' = ' $art_nr'<br/>');
    print 
    "aantallen:<br/>";
                                foreach(
    $_POST['artikelaantal'] as $i => $aantal){
                                print(
    $i ' = ' $aantal'<br/>');
    ?>


    ik kreeg ze op deze manier onderelkaar , alleen hoe krijg ik ze naast elkaar

    kreeg ze wel onderelkaar !

    [ Bericht 32% gewijzigd door cablegunmaster op 11-02-2009 18:48:01 ]
    slacker_nlwoensdag 11 februari 2009 @ 18:28
    Table?
    veldmuiswoensdag 11 februari 2009 @ 18:32
    Je ziet dat er een <br/> in je print staat?
    cablegunmasterwoensdag 11 februari 2009 @ 18:38
    quote:
    Op woensdag 11 februari 2009 18:32 schreef veldmuis het volgende:
    Je ziet dat er een <br/> in je print staat?
    ja nee niet op die manier.. maar hoe krijg ik die 2 in 1 table.
    cablegunmasterwoensdag 11 februari 2009 @ 18:38
    quote:
    Op woensdag 11 februari 2009 18:28 schreef slacker_nl het volgende:
    Table?
    maar hoe krijg ik dan dat er artikel _ nr en dan aantal volgende regel herhaal komt te staan ?

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <?php
    while($i count($one)) {
       
        while(
    $a each($two)) {
            echo 
    $a[1]." - ".$one[$i].", ";
        }
        
    $i++;
       
    }
    ?>


    eens kijken of dit helpt

    [ Bericht 64% gewijzigd door cablegunmaster op 11-02-2009 19:24:09 ]
    Lightwoensdag 11 februari 2009 @ 19:27
    quote:
    Op woensdag 11 februari 2009 18:38 schreef cablegunmaster het volgende:

    [..]

    :Y maar hoe krijg ik dan dat er artikel _ nr en dan aantal volgende regel herhaal komt te staan ? :P
    Da's niet zo moeilijk toch? Gewoon nadenken wat je wilt, namelijk artikelnummer en aantal op dezelfde regel (table row).
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <?php
    echo '<table>';
    for(
    $i 0$i count($art_no); $i++) {
      echo 
    '<tr>';
      echo 
    '<td>'.$i.'</td>';
      echo 
    '<td>'.$art_no[$i].'</td>';
      echo 
    '<td>'.$aantal[$i].'</td>';
      echo 
    '</tr>';
    }
    echo 
    '</table>';
    ?>
    slacker_nlwoensdag 11 februari 2009 @ 19:43
    Die count even uit de loop halen mensen.
    cablegunmasterwoensdag 11 februari 2009 @ 19:43
    quote:
    Op woensdag 11 februari 2009 19:27 schreef Light het volgende:

    [..]

    Da's niet zo moeilijk toch? Gewoon nadenken wat je wilt, namelijk artikelnummer en aantal op dezelfde regel (table row).
    [ code verwijderd ]


    Held ! Dankje Hiermee haal ik het wel ^^. ik dacht een moeilijke while met elke while dit maar een for is beter
    cablegunmasterwoensdag 11 februari 2009 @ 19:47
    quote:
    Op woensdag 11 februari 2009 19:43 schreef cablegunmaster het volgende:

    [..]

    Held ! Dankje Hiermee haal ik het wel ^^. ik dacht een moeilijke while met elke while dit maar een for is beter

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <?php
    $k 
    count($art_no);
    echo 
    '<table>';
    for(
    $i 0$i $k $i++) {
      if(
    $aantal[$i] > ){
      echo 
    '<tr>';
      echo 
    '<td>'.$i.'</td>';
      echo 
    '<td>'.$art_no[$i].'</td>';
      echo 
    '<td>'.$aantal[$i].'</td>';
      echo 
    '</tr>';
      }
    }
    echo 
    '</table>';
    ?>


    zo heb ik hem dus als aantal groter is dan 0 toch ?
    Lightwoensdag 11 februari 2009 @ 20:10
    quote:
    Op woensdag 11 februari 2009 19:43 schreef slacker_nl het volgende:
    Die count even uit de loop halen mensen.
    Kan, ik weet niet of dat een (duidelijke) snelheidswinst oplevert.
    Lightwoensdag 11 februari 2009 @ 20:10
    quote:
    Op woensdag 11 februari 2009 19:47 schreef cablegunmaster het volgende:

    [..]
    [ code verwijderd ]

    zo heb ik hem dus als aantal groter is dan 0 toch ?
    Correct
    cablegunmasterwoensdag 11 februari 2009 @ 20:31
    quote:
    Op woensdag 11 februari 2009 20:10 schreef Light het volgende:

    [..]

    Correct
    maar dan krijg ik 0 6 2 te zien ipv de waardes
    doe ik toch iets fouts
    * gaat napluizen
    laatste getal is laatste $aantal maar dan alleen het eerste cijfer
    $i is 0
    en mn $k echot 1 uit
    die 6 komt van art_nrs die wel goed doortellen
    1
    2
    3
    4
    5
    <?php
    echo $art_nr;
    $k count($art_nr);
    echo 
    $k."<br/>";
    ?>

    uitkomst:
    $art_nr = 6
    $k = 1
    doe ik toch iets fout ( count is voor arrays en ik nam aan dat er 6 waardes in zitten maar hij vind van niet )
    zelfs met apache testen kom ik hierop 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
    <?php
                 
    If(!empty($_POST)){ echo "<br/>".Var_dump($_POST)."<br/>";
    print 
    "artikelnr:<br/>";
                                foreach(
    $_POST['artikel_nr'] as $i => $art_nr)
                                print(
    $i ' = ' $art_nr'<br/>');
    print 
    "aantallen:<br/>";
                                foreach(
    $_POST['artikelaantal'] as $i => $aantal){
                                print(
    $i ' = ' $aantal'<br/>');
    }

    $k count($art_nr[$i]);
    echo 
    $k."<br/>";
    echo 
    $art_nr;

    echo 
    '<table>';
    for(
    $i 0$i $k$i++) {
      echo 
    '<tr>';
      echo 
    '<td>'.$i.'</td>';
      echo 
    '<td>'.$art_nr[$i].'</td>';
      echo 
    '<td>'.$aantal[$i].'</td>';
      echo 
    '</tr>';
    }
    echo 
    '</table>';
    echo 
    $k;
                                    }
    ?>


    terwijl bij de foreach hij wel alles er mooi uitgooit

    [ Bericht 10% gewijzigd door cablegunmaster op 11-02-2009 21:16:14 ]
    Chandlerwoensdag 11 februari 2009 @ 21:03
    quote:
    Op woensdag 11 februari 2009 18:00 schreef Roy_T het volgende:
    Je was tegelijkertijd ook 20 keer zoveel write queries aan het doen dan reads, zoals naar jouw zeggen in je real life situatie?
    Nee natuurlijk niet

    Maar ik heb getest op een database van myISAM en dezelfde database maar dan geconverteerd naar innoDB en het verschil wsa praktisch nihil
    GlowMousewoensdag 11 februari 2009 @ 21:15
    quote:
    Op woensdag 11 februari 2009 21:03 schreef Chandler het volgende:

    [..]

    Maar ik heb getest op een database van myISAM en dezelfde database maar dan geconverteerd naar innoDB en het verschil wsa praktisch nihil
    Gelukkig maar, bij jouw situatie hoor je geen grote verschillen te ontdekken. Die zie je pas bij grote belasting. Die indices zouden je query wel 100x sneller maken. Wellicht dat je nog andere queries hebt die er profijt van hebben, want ik zou toch neigen naar wel toevoegen.
    slacker_nlwoensdag 11 februari 2009 @ 21:16
    quote:
    Op woensdag 11 februari 2009 20:10 schreef Light het volgende:

    [..]

    Kan, ik weet niet of dat een (duidelijke) snelheidswinst oplevert.
    Met dit kleine voorbeeld niet, maar met grotere arrays wel.
    Lightwoensdag 11 februari 2009 @ 21:37
    quote:
    Op woensdag 11 februari 2009 20:31 schreef cablegunmaster het volgende:

    [..]

    maar dan krijg ik 0 6 2 te zien ipv de waardes
    doe ik toch iets fouts
    * gaat napluizen
    laatste getal is laatste $aantal maar dan alleen het eerste cijfer
    $i is 0
    en mn $k echot 1 uit
    die 6 komt van art_nrs die wel goed doortellen
    [ code verwijderd ]

    uitkomst:
    $art_nr = 6
    $k = 1
    doe ik toch iets fout ( count is voor arrays en ik nam aan dat er 6 waardes in zitten maar hij vind van niet )
    zelfs met apache testen kom ik hierop uit
    [ code verwijderd ]

    terwijl bij de foreach hij wel alles er mooi uitgooit
    Oh, dan moet je in mijn stukje code $art_nr en $aantal vervangen door $_POST['artikel_nr'] en $_POST['artikelaantal']. Maar dat kon je natuurlijk ook zelf bedenken.
    cablegunmasterwoensdag 11 februari 2009 @ 22:24
    quote:
    Op woensdag 11 februari 2009 21:37 schreef Light het volgende:

    [..]

    Oh, dan moet je in mijn stukje code $art_nr en $aantal vervangen door $_POST['artikel_nr'] en $_POST['artikelaantal']. Maar dat kon je natuurlijk ook zelf bedenken.

    dank voor de tip het is me gelukt
    Resultaat komt binnenkort Bestellen pagina heb ik hier de hele tijd moeite mee
    maar het vordert nu heb ik al een winkelmandje zo te zeggen een primitieve maar het werkt
    Roy_Twoensdag 11 februari 2009 @ 23:32
    quote:
    Op woensdag 11 februari 2009 21:03 schreef Chandler het volgende:

    Nee natuurlijk niet

    Maar ik heb getest op een database van myISAM en dezelfde database maar dan geconverteerd naar innoDB en het verschil wsa praktisch nihil
    Het hele row vs table locking voordeel gaat op bij veel writes, dus je testcase is waardeloos
    cablegunmasterdonderdag 12 februari 2009 @ 00:22
    quote:
    Op woensdag 11 februari 2009 21:37 schreef Light het volgende:

    [..]

    Oh, dan moet je in mijn stukje code $art_nr en $aantal vervangen door $_POST['artikel_nr'] en $_POST['artikelaantal']. Maar dat kon je natuurlijk ook zelf bedenken.
    ja toen ik het eenmaal door had heb ik dit geschreven

    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
    <?php
    $p 
    count($_SESSION['artikelnr']);
            
    // k= aantal regels van het winkelmandje
    $k 1;
    $totaalprijs0;
    for(
    $i 0$i $p$i++)
        {
        if(
    $_SESSION['artikelaantal'][$i] > )
            {
                if(
    is_numeric($_SESSION['artikelaantal'][$i]))
                {
                    if(
    $_SESSION['artikelaantal'][$i] <= $_SESSION['voorraad'][$i])
                    {
                    echo 
    '<tr>';
                    echo 
    '<td>'.$k.'</td>';
                    echo 
    '<td>'.$_SESSION['artikelnr'][$i].'</td>';
                    echo 
    '<td>'.$_SESSION['omschrijving'][$i].'</td>';
                    echo 
    '<td>'.$_SESSION['artikelaantal'][$i].'</td>';
                    echo 
    '<td>'.$_SESSION['artikelprijs'][$i].'</td>';
                    echo 
    '</tr>';
                    
    $k $k+1;
                    
    $totaalprijs $totaalprijs +($_SESSION['artikelprijs'][$i] * $_SESSION['artikelaantal'][$i]);
                    }
                }
            }
        }
        echo 
    "<tr><td colspan =\"4\">Totaal prijs  ¤".$totaalprijs."</td></tr></table></form><br/>";
    }
    ?>


    en ja het werkt

    http://dgb.clanslayers.com/

    user: klant
    pass: klant

    [ Bericht 1% gewijzigd door cablegunmaster op 12-02-2009 00:28:01 ]
    Roy_Tdonderdag 12 februari 2009 @ 00:38
    Waarom gebruik je drie if's binnen elkaar, en niet gewoon:

    1if (is_numeric($_SESSION['artikelaantal'][$i]) && $_SESSION['artikelaantal'][$i] > 0 && $_SESSION['artikelaantal'][$i] <= $_SESSION['voorraad'][$i])


    (het lijkt me overigens logischer om eerst te kijken of iets numeriek is, voordat je gaat kijken of het groter is dan 0 )
    cablegunmasterdonderdag 12 februari 2009 @ 00:41
    quote:
    Op donderdag 12 februari 2009 00:38 schreef Roy_T het volgende:
    Waarom gebruik je drie if's binnen elkaar, en niet gewoon:
    [ code verwijderd ]

    (het lijkt me overigens logischer om eerst te kijken of iets numeriek is, voordat je gaat kijken of het groter is dan 0 )
    * shrugs * kon zo ook ja maar ik vind het zo'n gedoe met && en || dan moet je weer met extra haakjes werken

    maar heb hem nu als 1 regel staan dankzij jou
    Roy_Tdonderdag 12 februari 2009 @ 00:43
    quote:
    Op donderdag 12 februari 2009 00:41 schreef cablegunmaster het volgende:

    * shrugs * kon zo ook ja maar ik vind het zo'n gedoe met && en || dan moet je weer met extra haakjes werken
    In dit geval geen extra haakjes nodig hoor

    Jouw manier werkt, maar is allesbehalve "marktconform" (en zou bij ieder bedrijf onacceptabel zijn ).
    cablegunmasterdonderdag 12 februari 2009 @ 00:46
    quote:
    Op donderdag 12 februari 2009 00:43 schreef Roy_T het volgende:

    [..]

    In dit geval geen extra haakjes nodig hoor

    Jouw manier werkt, maar is allesbehalve "marktconform" (en zou bij ieder bedrijf onacceptabel zijn ).
    het is voor een school project waar niemand meehelpt en ik een hoog cijfer op ga halen
    ik push iedereen en als ze zo door blijven gaan betekent dat voor hun een onvoldoende en voor mij een 8

    en ik heb geen idee hoe het in het zakelijke leven hiermee gaat . 1e jaars ict studentje.
    Net begonnen aan php (10 weekjes )
    Roy_Tdonderdag 12 februari 2009 @ 00:58
    Het idee is iig om geen overbodige statements te gebruiken, dus als het in één if kan: stop het in één if (tenzij het echt onleesbaar wordt, maar dat is hier niet het geval).

    Wanneer "is_numeric($_SESSION['artikelaantal'][$i])" false is trouwens, dan voert 'ie de rest van de if niet uit, dus je zorgt niet voor extra overhead
    cablegunmasterdonderdag 12 februari 2009 @ 01:02
    quote:
    Op donderdag 12 februari 2009 00:58 schreef Roy_T het volgende:
    Het idee is iig om geen overbodige statements te gebruiken, dus als het in één if kan: stop het in één if (tenzij het echt onleesbaar wordt, maar dat is hier niet het geval).

    Wanneer "is_numeric($_SESSION['artikelaantal'][$i])" false is trouwens, dan voert 'ie de rest van de if niet uit, dus je zorgt niet voor extra overhead
    extra overhead = rekenkracht ?
    Xcaliburdonderdag 12 februari 2009 @ 08:28
    quote:
    Op donderdag 12 februari 2009 00:58 schreef Roy_T het volgende:
    Het idee is iig om geen overbodige statements te gebruiken, dus als het in één if kan: stop het in één if (tenzij het echt onleesbaar wordt, maar dat is hier niet het geval).
    tenzij je foutmeldingen of iets anders wilt triggeren, afhankelijk van wat er fout gaat, dan kom je er niet uit met 1 statement.... maar in dit geval (zonder else statements) is 1 statement wel een stuk netter ja.

    Feitelijk voer je ook maar 1 controle uit, met 1 resultaat (goed of fout) -> 1 regel.
    Roy_Tdonderdag 12 februari 2009 @ 09:08
    quote:
    Op donderdag 12 februari 2009 08:28 schreef Xcalibur het volgende:

    tenzij je foutmeldingen of iets anders wilt triggeren, afhankelijk van wat er fout gaat, dan kom je er niet uit met 1 statement.... maar in dit geval (zonder else statements) is 1 statement wel een stuk netter ja.
    Dat leek mij voor zich te spreken
    Keiichidonderdag 12 februari 2009 @ 11:30
    Weet iemand toevallig een scriptje/programma die een database structuur graphisch kan weergeven?
    cablegunmasterdonderdag 12 februari 2009 @ 11:36
    quote:
    Op donderdag 12 februari 2009 11:30 schreef Keiichi het volgende:
    Weet iemand toevallig een scriptje/programma die een database structuur graphisch kan weergeven?
    ik weet dat het met visio kan implementeren maar dat was ook ver van volledig maar je kon wel verbinding maken met de database en alles binnen halen. hoe en wat geen idee

    Maar een ex-projectgenoot kreeg het voor elkaar.
    Roy_Tdonderdag 12 februari 2009 @ 11:37
    quote:
    Op donderdag 12 februari 2009 11:30 schreef Keiichi het volgende:
    Weet iemand toevallig een scriptje/programma die een database structuur graphisch kan weergeven?
    DBDesigner 4 kan dat wel volgens mij, als je een Windows app zoekt. Freeware volgens mij.
    Chandlerdonderdag 12 februari 2009 @ 12:42
    quote:
    Op woensdag 11 februari 2009 21:15 schreef GlowMouse het volgende:

    [..]

    Gelukkig maar, bij jouw situatie hoor je geen grote verschillen te ontdekken. Die zie je pas bij grote belasting. Die indices zouden je query wel 100x sneller maken. Wellicht dat je nog andere queries hebt die er profijt van hebben, want ik zou toch neigen naar wel toevoegen.
    Ws zet ik het wel om, maar goed. Toch vind ik het vervelend dat het uitlezen van zo weinig data zoveel tijd moet kosten
    quote:
    Op woensdag 11 februari 2009 23:32 schreef Roy_T het volgende:
    Het hele row vs table locking voordeel gaat op bij veel writes, dus je testcase is waardeloos
    Klopt, daarin heb je gelijk. Maar testen op de huidige server is gewoon niet te doen

    Er is blijkbaar geen andere / betere opzet qua structuur, dat is wel balen
    Roy_Tdonderdag 12 februari 2009 @ 12:43
    quote:
    Op donderdag 12 februari 2009 12:42 schreef Chandler het volgende:

    Klopt, daarin heb je gelijk. Maar testen op de huidige server is gewoon niet te doen
    How about lokaal?
    Chandlerdonderdag 12 februari 2009 @ 12:56
    Ik heb werkelijk geen idee hoe ik dit zou moeten simuleren?
    Buonissimovrijdag 13 februari 2009 @ 01:16
    Hoi, ik ben een PHP noob en heb een contactformuliertje online gevonden. Het werkt perfect behalve 1 ding: Ik krijg de woonplaats van de persoon die het invult niet door, de naam, email, en bericht lukt perfect. Hoe komt dit? Hieronder vind je de broncodes van de twee relevante bestanden:

    Index.html

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">

    <head>
    <title>A Nice & Simple Contact Form</title>

    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

    <link rel="stylesheet" type="text/css" href="style.css" />
    </head>

    <body>

    <div id="page-wrap">

    <img src="images/title.gif" alt="A Nice & Simple Contact Form" /><br /><br />




    <div id="contact-area">

    <form method="post" action="contactengine.php">
    <label for="Name" id="Name">Naam:</label>
    <input type="text" name="Name" />

    <label for="City" id="City">Woonplaats:</label>
    <input type="text" name="City" />

    <label for="Email" id="Email">Email:</label>
    <input type="text" name="Email" />

    <label for="Message" id="Message">Bericht:</label><br />
    <textarea name="Message" rows="20" cols="20"></textarea>

    <input type="submit" name="submit" value="Verzend" class="submit-button" />
    </form>

    <div style="clear: both;"></div>

    </div>

    </div>

    <script src="http://www.google-analytics.com/urchin.js" type="text/javascript">
    </script>
    <script type="text/javascript">
    _uacct = "UA-68528-29";
    urchinTracker();
    </script>

    </body>

    </html>


    contactengine.php

    <?php

    $EmailFrom = "archytas@telenet.be";
    $EmailTo = "archytas@telenet.be";
    $Subject = "Contactname Buonissimo - Kok aan huis";
    $Name = Trim(stripslashes($_POST['Name']));
    $Tel = Trim(stripslashes($_POST['City']));
    $Email = Trim(stripslashes($_POST['Email']));
    $Message = Trim(stripslashes($_POST['Message']));

    // validation
    $validationOK=true;
    if (!$validationOK) {
    print "<meta http-equiv=\"refresh\" content=\"0;URL=error.htm\">";
    exit;
    }

    // prepare email body text
    $Body = "";
    $Body .= "Name: ";
    $Body .= $Name;
    $Body .= "\n";
    $Body .= "City: ";
    $Body .= $City;
    $Body .= "\n";
    $Body .= "Email: ";
    $Body .= $Email;
    $Body .= "\n";
    $Body .= "Message: ";
    $Body .= $Message;
    $Body .= "\n";


    $success = mail($EmailTo, $Subject, $Body, "From: <$EmailFrom>");


    if ($success){
    print "<meta http-equiv=\"refresh\" content=\"0;URL=contactthanks.php\">";
    }
    else{
    print "<meta http-equiv=\"refresh\" content=\"0;URL=error.htm\">";
    }
    ?>

    slacker_nlvrijdag 13 februari 2009 @ 01:32
    quote:
    Op vrijdag 13 februari 2009 01:16 schreef Buonissimo het volgende:
    Hoi, ik ben een PHP noob en heb een contactformuliertje online gevonden. Het werkt perfect behalve 1 ding: Ik krijg de woonplaats van de persoon die het invult niet door, de naam, email, en bericht lukt perfect. Hoe komt dit? Hieronder vind je de broncodes van de twee relevante bestanden:
    Zet alles eens in code blocks (of beter, gebruik een pastebin voor zulke grote lappen code).
    Xcaliburvrijdag 13 februari 2009 @ 08:26
    Zo te zien wordt city in het Tel veld gezet:
    1$Tel = Trim(stripslashes($_POST['City'])); 


    Dat moeten dus 2 regels worden:

    1
    2
    $Tel = Trim(stripslashes($_POST['Tel'])); 
    $City = Trim(stripslashes($_POST['City'])); 


    :)
    Likkende_Lassievrijdag 13 februari 2009 @ 08:30
    quote:
    Op vrijdag 13 februari 2009 01:16 schreef Buonissimo het volgende:
    Hoi, ik ben een PHP noob en heb een contactformuliertje online gevonden. Het werkt perfect behalve 1 ding: Ik krijg de woonplaats van de persoon die het invult niet door, de naam, email, en bericht lukt perfect. Hoe komt dit? Hieronder vind je de broncodes van de twee relevante bestanden:

    Index.html

    if ($success){
    print "<meta http-equiv=\"refresh\" content=\"0;URL=contactthanks.php\">";
    }
    else{
    print "<meta http-equiv=\"refresh\" content=\"0;URL=error.htm\">";
    }
    ?>


    En gebruik header("Location: /error.html"); om door te sturen!
    Roy_Tvrijdag 13 februari 2009 @ 09:07
    En gebruik aub minder hoofdletters Functies worden in PHP nooit met een hoofdletter geschreven, dus geen Trim() maar trim(). Namen van variabelen kunnen met hoodletters, maar ik heb het nog nooit ergens gezien (dus gewoon $city ipv $City).
    slacker_nlvrijdag 13 februari 2009 @ 10:15
    Dat is gewoon een coding stijl (@hoofdletters voor variablen). Er zijn zat mensen die met Hoofdletters coden. OF CamelCase...

    Als we het over coding standards gaan hebben: http://www.dagbladet.no/development/phpcodingstandard/

    Misschien een goeie link voor in de OP.
    veldmuisvrijdag 13 februari 2009 @ 10:19
    Ik ga voor camelCase. CamelCase staat slordig. Vind ik .
    slacker_nlvrijdag 13 februari 2009 @ 10:23
    quote:
    Op vrijdag 13 februari 2009 10:19 schreef veldmuis het volgende:
    Ik ga voor camelCase. CamelCase staat slordig. Vind ik .
    Vind ik ook...
    Roy_Tvrijdag 13 februari 2009 @ 10:59
    quote:
    Op vrijdag 13 februari 2009 10:15 schreef slacker_nl het volgende:
    Dat is gewoon een coding stijl (@hoofdletters voor variablen). Er zijn zat mensen die met Hoofdletters coden. OF CamelCase...
    Ik heb héél veel code van anderen gezien. Daarin inderdaad wel $camelCase (wat mij betreft prima), maar nooit $CamelCase.
    Chandlervrijdag 13 februari 2009 @ 11:28
    ik doe ook camelCase zelfs met php functies.

    vind isSet mooier dan isset

    ps. weet iemand hoe ik simpel en snel alle values uit een array in een string kan zetten? dus 0=>'a', 1=>'b' naar $str = 'ab';
    Tiemievrijdag 13 februari 2009 @ 11:30
    quote:
    Op vrijdag 13 februari 2009 11:28 schreef Chandler het volgende:
    ik doe ook camelCase zelfs met php functies.

    vind isSet mooier dan isset :P

    ps. weet iemand hoe ik simpel en snel alle values uit een array in een string kan zetten? dus 0=>'a', 1=>'b' naar $str = 'ab';
    1
    2
    3
    4
    <?php
    $a 
    = array(=> 'a'=> 'b');
    print 
    join(''$a);
    ?>
    GlowMousevrijdag 13 februari 2009 @ 11:31
    quote:
    Op vrijdag 13 februari 2009 08:30 schreef Likkende_Lassie het volgende:

    [..]

    En gebruik header("Location: /error.html"); om door te sturen!
    In een Location-header moet de volledige URL, inclusief http://

    En was PHP zelf maar eens consequent met functienamen en argumenten. Waarom heeft html_ entity_ decode wel en htmlentities geen underscore? Waarom komt bij in_array eerst de needle en dan de haystack, en is het bij strstr precies andersom?
    Roy_Tvrijdag 13 februari 2009 @ 11:39
    quote:
    Op vrijdag 13 februari 2009 11:28 schreef Chandler het volgende:
    ik doe ook camelCase zelfs met php functies.

    vind isSet mooier dan isset
    En helaas is PHP zo ranzig dat het nog werkt ook.

    En GlowMouse: rete-irritant inderdaad
    Chandlervrijdag 13 februari 2009 @ 11:40
    quote:
    Op vrijdag 13 februari 2009 11:30 schreef Tiemie het volgende:
    Ik wist dat het gemakkelijk was idd stom dat ik hier niet aan gedacht had! tnx!
    Chandlervrijdag 13 februari 2009 @ 11:41
    quote:
    Op vrijdag 13 februari 2009 11:39 schreef Roy_T het volgende:
    En helaas is PHP zo ranzig dat het nog werkt ook.

    En GlowMouse: rete-irritant inderdaad
    Ach laten we dan maar niet beginnen over zoveel andere functies van PHP

    De ene wil eerst de input weten en daarna de opties en de ander weer net andersom!? dus wat dat betreft, prettig taaltje
    Chandlervrijdag 13 februari 2009 @ 11:41
    quote:
    Op donderdag 12 februari 2009 12:56 schreef Chandler het volgende:
    Ik heb werkelijk geen idee hoe ik dit zou moeten simuleren?
    Anyone?
    Tiemievrijdag 13 februari 2009 @ 11:44
    quote:
    Op vrijdag 13 februari 2009 11:41 schreef Chandler het volgende:

    [..]

    Anyone?
    gewoon heel veel inserts doen en tegelijkertijd selects doen op die tabel lijkt me.
    GlowMousevrijdag 13 februari 2009 @ 11:47
    quote:
    Op vrijdag 13 februari 2009 11:44 schreef Tiemie het volgende:

    [..]

    gewoon heel veel inserts doen en tegelijkertijd selects doen op die tabel lijkt me.
    Ik zou naar een kant en klare app zoeken, tenzij je zelf multithreaded applicaties kunt schrijven. Anders vind je nooit de grenzen van een databaseserver.
    Chandlervrijdag 13 februari 2009 @ 13:02
    quote:
    Op vrijdag 13 februari 2009 11:47 schreef GlowMouse het volgende:
    Ik zou naar een kant en klare app zoeken, tenzij je zelf multithreaded applicaties kunt schrijven. Anders vind je nooit de grenzen van een databaseserver.
    Dat gaat mij iig niet lukken, ik ga eens zoeken!
    Tijnvrijdag 13 februari 2009 @ 13:15
    quote:
    Op vrijdag 13 februari 2009 10:59 schreef Roy_T het volgende:

    [..]

    Ik heb héél veel code van anderen gezien. Daarin inderdaad wel $camelCase (wat mij betreft prima), maar nooit $CamelCase.
    Toch apart dat PHP zo gefocused is op lowerCamelCase, want in veel programmeertalen (o.a. Pascal, Python, Java en .NET) kom je wel veel UpperCamelCase tegen.
    Tiemievrijdag 13 februari 2009 @ 13:29
    quote:
    Op vrijdag 13 februari 2009 13:15 schreef Tijn het volgende:

    [..]

    Toch apart dat PHP zo gefocused is op lowerCamelCase, want in veel programmeertalen (o.a. Pascal, Python, Java en .NET) kom je wel veel UpperCamelCase tegen.
    lowerCamelCase voor variabelen en UpperCamelCase voor classes.
    Chandlervrijdag 13 februari 2009 @ 23:22
    Ik wil graag comments op mijn kleine stukje image bouwen.

    Ik wil namelijk fonts op de juiste manier op de juiste plek laten zien.





    gemaakt door de volgende code

    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
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    <?php
    function calculateTextBox($text$fontFile$fontSize$fontAngle)
    {
        
    $rect imagettfbbox($fontSize,
                             
    $fontAngle,
                             
    $fontFile,
                             
    $text);

        
    $minX min(array($rect[0],
                          
    $rect[2],
                          
    $rect[4],
                          
    $rect[6]));
        
    $maxX max(array($rect[0],
                          
    $rect[2],
                          
    $rect[4],
                          
    $rect[6]));
        
    $minY min(array($rect[1],
                          
    $rect[3],
                          
    $rect[5],
                          
    $rect[7]));
        
    $maxY max(array($rect[1],
                          
    $rect[3],
                          
    $rect[5],
                          
    $rect[7]));

        return array(
    "left"   => abs($minX),
                     
    "top"    => abs($minY),
                     
    "width"  => $maxX $minX,
                     
    "height" => $maxY $minY,
                     
    "box"    => $rect);
    }

    putenv('GDFONTPATH=' realpath('.'));
    $im imagecreatetruecolor(721,
                               
    241);

    $color imageColorAllocate($im000);
    $back  imagecolorallocate($im255255255);

    imagefill($im00$back);

    // lines
    for ($x 0$x 4$x++)
    {
        
    imageline($im0$x 80721, ($x 80), $color);
    }

    for (
    $x 0$x 11$x++)
    {
        
    imageline($im$x 801$x 80241$color);
    }

    $fontsize 40;
    $font  'test2.ttf';
    $x 0;
    $y 0;
    foreach (
    range("a""z") AS $id => $key)
    {
        
    $bbox calculateTextBox($key$font$fontsize0);

        
    imagettftext ($im,
                      
    12,
                      
    0,
                      
    $x 3,
                      
    $y 14,
                      
    $color,
                      
    "standard.ttf",
                      
    $key);

        
    imagettftext ($im,
                      
    $fontsize,
                      
    0,
                      
    $x + (80/$bbox['width']/2),
                      
    $y + (80 - ($bbox['height']/2)),
                      
    $color,
                      
    $font,
                      
    $key);
        
    $x $x 80;
        
        if (
    $x 700)
        {
            
    $x 0;
            
    $y $y 80;
        }
        

    }

    header('Content-Type: image/png');
    imagePNG($im);
    ?>


    Alleen vind ik het op een of andere manier net zo dat de letters net niet goed staan ofzoiets... comments?
    GlowMousevrijdag 13 februari 2009 @ 23:49
    1
    2
    3
    4
    5
    6
    <?php
    $im 
    imagecreatetruecolor(721241);
    for (
    $x 0$x 11$x++) {
        
    imageline($im$x 801$x 80241$color);
    }
    ?>

    Wat gebeurt er als $x=10?

    1
    2
    3
    4
    <?php
                      $x 
    + (80/$bbox['width']/2),
                      
    $y + (80 - ($bbox['height']/2)),
    ?>

    Dat moet je niet doen. Zoals je kunt lezen: "the coordinates given by x and y will define the basepoint of the first character". Wil je ze netjes naast elkaar hebben, moet je dit dus niet van het karakter afhankelijk maken.
    Chandlerzaterdag 14 februari 2009 @ 09:55
    quote:
    Op vrijdag 13 februari 2009 23:49 schreef GlowMouse het volgende:
    Wat gebeurt er als $x=10?
    Dan valt de lijn buiten de afbeelding (was eerst op basis van 800px)
    quote:
    Dat moet je niet doen. Zoals je kunt lezen: "the coordinates given by x and y will define the basepoint of the first character". Wil je ze netjes naast elkaar hebben, moet je dit dus niet van het karakter afhankelijk maken.
    En dat snap ik niet helemaal, hoe kan ik de letters dan wel netjes naast elkaar krijgen? of is dit in jou opinie mooi genoeg?
    Tijnzaterdag 14 februari 2009 @ 11:02
    quote:
    Op zaterdag 14 februari 2009 09:55 schreef Chandler het volgende:

    [..]

    hoe kan ik de letters dan wel netjes naast elkaar krijgen?
    Door ze allemaal op dezelfde baseline te zetten. Dan staan ze netjes recht. Als je ze allemaal een ander basepoint geeft (zoals je nu doet), staan ze allemaal op een andere hoogte.
    Chandlerzaterdag 14 februari 2009 @ 11:53
    Tja, op zich ziet het er wel leuk uit (zoals ik nu heb gedaan) maar op een lijn zetten... dan moet ik eerst gaan berekenen wat de grootste letter is en daar alles op aanpassen
    GlowMousezaterdag 14 februari 2009 @ 11:55
    Je code zal wel anders in elkaar zitten dan dit, want geeft niet plotseling een veld minder weer.
    cablegunmasterzondag 15 februari 2009 @ 19:55
    hoe kan ik een insert query maken met een array ?

    ik heb namelijk 3 arrays.
    $_POST['artikel_nr']
    $_POST['prijs']
    $_POST['bestelt']

    alleen geen flauw idee hoe ik de 1e van alle 3 erin kan zetten en dan de 2e etc!
    GlowMousezondag 15 februari 2009 @ 19:59
    Als ze allemaal even groot zijn, $i van 0 t/m grootte-1 laten lopen, en dan $_POST['var'][$i] gebruiken.
    cablegunmasterzondag 15 februari 2009 @ 20:01
    quote:
    Op zondag 15 februari 2009 19:59 schreef GlowMouse het volgende:
    Als ze allemaal even groot zijn, $i van 0 t/m grootte-1 laten lopen, en dan $_POST['var'][$i] gebruiken.
    ah ja * gaat verder * ff puzzelen
    GlowMousezondag 15 februari 2009 @ 20:15
    De juiste spelling is waarschijnlijk ook 'besteld'.
    cablegunmasterzondag 15 februari 2009 @ 20:16
    edit;

    [ Bericht 57% gewijzigd door cablegunmaster op 15-02-2009 20:56:32 ]
    cablegunmasterzondag 15 februari 2009 @ 20:17
    quote:
    Op zondag 15 februari 2009 20:15 schreef GlowMouse het volgende:
    De juiste spelling is waarschijnlijk ook 'besteld'.
    heb ik op de vorige pagina ook fout gedaan
    ( das een goedwerkende fout );
    heb hem ook even ter leesbaarheid verbetert


    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    <?php
    {
                    
    //verbinden met de server
                    
    include("content/connect.php");  
                    
    // tijd nu noteren
                    
    $tijd date("Y-m-d H:i:s");
                            
    // post dumpen en sessie om te kijken of ik nog iets mis.(over het hoofd zie)
                            
    echo var_dump($_SESSION)."<br/><br/<br/>";
                            echo 
    var_dump($_POST)."<br/><br/><br/>";
                           
    //werkt <img class="rde_img_smiley" src="http://i.fok.nl/s/smile.gif" width="15" height="15" alt="" />
                
    $sql1 ="INSERT INTO verkooporder (klant_nr,besteldatum) VALUES ('".$_SESSION['klant_nr']."','".$tijd."')";
                    
    mysql_query($sql1) or( die());
                
    //laatste vo_nr ophalen werkt het ophalen maar uitlezen niet.
                
    $sql3 ="SELECT vo_nr FROM verkooporder ORDER BY vo_nr DESC limit 1";
                    
    $test mysql_query($sql3) or( die());
                echo 
    "<br/>Test:".$test['vo_nr'];
                echo 
    var_dump($test);
                
    $test2 mysql_fetch_assoc($test);
                echo 
    $test2['vo_nr'];
                
    $p count($_POST['artikel_nr']);
                for(
    $i 0$i $p$i++)
                    {
                    
    $sql2 ="INSERT INTO verkooporderregel(vo_nr,art_nr,besteld,geleverd,vraagprijs) 
                    VALUES ('"
    .$test2."','".$_POST['artikel_nr'][$i]."','".$_POST['besteld'][$i]."','0','".$_POST['prijs'][$i]."')";
                    
    mysql_query($sql2) or(die());
                    
    $sql4 "UPDATE artikel SET voorverkopen = voorverkopen + ".$_POST['besteld'][$i].", tech_voorraad = tech_voorraad - ".$_POST['besteld'][$i]." WHERE art_nr = '".$_POST['artikel_nr'][$i]."'";
                    
    mysql_query($sql4) or(die());
                    }
                }
    ?>


    dit is dus wat ik heb
    een verkooporder word aangemaakt Dit doet hij netjes.
    dan neem ik aan dat je op 1 van die manieren de verkooporder kan echo'en? alleen het veld verkoop order maar dat lukt me niet zo. ik heb geen idee hoe ik die dan in SQL2 kan krijgen

    dit is een van mijn laatste probleempjes

    [ Bericht 17% gewijzigd door cablegunmaster op 15-02-2009 21:30:44 ]
    GlowMousezondag 15 februari 2009 @ 21:33
    *wordt aangemaakt

    mysql_query geeft geen array terug, kijk eens op http://www.php.net/mysql
    cablegunmasterzondag 15 februari 2009 @ 21:41
    quote:
    Op zondag 15 februari 2009 21:33 schreef GlowMouse het volgende:
    *wordt aangemaakt

    mysql_query geeft geen array terug, kijk eens op http://www.php.net/mysql
    ik kwam eruit mysql assoc
    en dan $test['vo_nr'];

    + limit foutje 0,1


    opgelost


    Ik ben klaar met mijn project je kan nu bestellen,
    Alleen dan kan jeje bestelling nog niet zien (gebeurt wel allerlei dingen achter de schermen )
    Iemand anders hoort het te laten zien ^^. ( moet in teamverband)

    http://dgb.clanslayers.com/
    user: klant
    pass: klant

    of je maakt gewoon je eigen login aan met registreren
    het winkelmandje werkt.

    [ Bericht 12% gewijzigd door cablegunmaster op 15-02-2009 21:53:53 ]
    The_Terminatormaandag 16 februari 2009 @ 19:12
    Weet iemand toevallig of het mogelijk is een index te hergebruiken voor een tijdelijke tabel?

    De situatie:
    De DB bevat ongeveer een miljoen records, elk record bevat een veld waar het weeknummer en jaar instaat, dmv een join kan ik dan bepaalde weken in een tijdelijke tabel stoppen. Nu heb ik al indexen gecreëerd op de tabellen in de DB, echter vraag ik mij af of ik die indexen kan hergebruiken voor mijn tijdelijke tabel.

    Een index toevoegen nadat de tijdelijke tabel gevuld is, is geen optie, dat heb ik al getest en maakt de boel alleen maar trager. Als ik USE index_naam in de query gebruik die de data uit de tijdelijke tabel haalt dan krijg ik geen resultaten terug.
    GlowMousemaandag 16 februari 2009 @ 19:41
    Heb je zoveel records per week dat een index nodig is? Kun je niet gewoon de hoofdtabel gebruiken met die jaar/week in je WHERE? Zolang je index met die twee velden begint, zou dat de snelste oplossing zijn mits je queries herschreven kunnen worden zodat ze niet van de temporary table gebruik hoeven maken.
    quote:
    Als ik USE index_naam in de query gebruik die de data uit de tijdelijke tabel haalt dan krijg ik geen resultaten terug.
    syntax is FROM table USE INDEX (indexnaam) of FORCE INDEX (indexnaam), maar dan moet die index wel bestaan. Meestal heb je USE INDEX niet nodig omdat MySQLs query optimizer het al goed doet.
    The_Terminatormaandag 16 februari 2009 @ 20:19
    quote:
    Op maandag 16 februari 2009 19:41 schreef GlowMouse het volgende:
    Heb je zoveel records per week dat een index nodig is? Kun je niet gewoon de hoofdtabel gebruiken met die jaar/week in je WHERE? Zolang je index met die twee velden begint, zou dat de snelste oplossing zijn mits je queries herschreven kunnen worden zodat ze niet van de temporary table gebruik hoeven maken.
    Ik gebruik de tijdelijke tabel voor een query die later in het script uitgevoerd wordt, ik hoef dan niet de hele DB van een paar gig te doorzoeken, alleen de data in de tijdelijke tabel. Per week komen er ongeveer 100.000 records bij, en ik ben bang dat ik op lange termijn performance problemen krijg als ik geen gebruik maak van de tijdelijke tabel. Gezien de tijdelijke tabel alleen de data van 2 week bevat +/- 200.000 records zou dat imo sneller moeten zijn.
    quote:
    [..]

    syntax is FROM table USE INDEX (indexnaam) of FORCE INDEX (indexnaam), maar dan moet die index wel bestaan. Meestal heb je USE INDEX niet nodig omdat MySQLs query optimizer het al goed doet.
    Klopt, ik heb het hier niet helemaal goed vermeld, de query klopt wel. Ik heb USE INDEX toegepast om er zeker van te zijn dat de index ook gebruikt wordt, maar blijkbaar kan een tijdelijke tabel geen gebruik maken van indexen die al aangemaakt zijn, alleen indexen die aangemaakt zijn bij het vullen van de tijdelijke tabel.
    GlowMousemaandag 16 februari 2009 @ 20:33
    quote:
    Op maandag 16 februari 2009 20:19 schreef The_Terminator het volgende:

    [..]

    Ik gebruik de tijdelijke tabel voor een query die later in het script uitgevoerd wordt, ik hoef dan niet de hele DB van een paar gig te doorzoeken, alleen de data in de tijdelijke tabel. Per week komen er ongeveer 100.000 records bij, en ik ben bang dat ik op lange termijn performance problemen krijg als ik geen gebruik maak van de tijdelijke tabel. Gezien de tijdelijke tabel alleen de data van 2 week bevat +/- 200.000 records zou dat imo sneller moeten zijn.
    Voor zover queries van indices gebruik kunnen maken, hoef je je over grote tabellen geen zorgen te maken zolang de index in het geheugen past (en key_buffer_size voldoende groot is).
    Maar gaat het nu om een tijdelijke tabel (die weggaat zodra je MySQLsessie voorbij is) of een tabel met tijdelijke data?
    The_Terminatormaandag 16 februari 2009 @ 21:00
    quote:
    Op maandag 16 februari 2009 20:33 schreef GlowMouse het volgende:
    Maar gaat het nu om een tijdelijke tabel (die weggaat zodra je MySQLsessie voorbij is) of een tabel met tijdelijke data?
    'CREATE TEMPORARY TABLE' gaat het om
    Biefstukmaandag 16 februari 2009 @ 21:08
    Is dat PHP en MySQL voor dummies boek iets?
    Ben van plan om php te leren of in ieder geval weten toe te passen.
    The_Terminatormaandag 16 februari 2009 @ 22:01
    @GlowMouse: ik heb de query herschreven en maak nu geen gebruik meer van de temp table. De performance is nu stukken beter, maar ik hoop dat het ook zo blijft...
    iBoltmaandag 16 februari 2009 @ 23:34
    quote:
    Op vrijdag 13 februari 2009 23:22 schreef Chandler het volgende:
    Ik wil graag comments op mijn kleine stukje image bouwen.

    Ik wil namelijk fonts op de juiste manier op de juiste plek laten zien.

    [ link | afbeelding ]

    [ link | afbeelding ]

    gemaakt door de volgende code
    [ code verwijderd ]

    Alleen vind ik het op een of andere manier net zo dat de letters net niet goed staan ofzoiets... comments?
    Ik zou even wachten op wanneer CSS3 wordt ondersteunt door de meeste browsers dan kun je gewoon die font neurpleuren op je server en wordt die gedownload door de browser ofzo iets dergelijks... iig externe fonts worde ondersteunt in de toekomst.
    Roy_Tmaandag 16 februari 2009 @ 23:57
    quote:
    Op maandag 16 februari 2009 23:34 schreef iBolt het volgende:

    Ik zou even wachten op wanneer CSS3 wordt ondersteunt door de meeste browsers dan kun je gewoon die font neurpleuren op je server en wordt die gedownload door de browser ofzo iets dergelijks... iig externe fonts worde ondersteunt in de toekomst.
    "Even" wachten?

    Als het puur om tekst in een ander font tonen (op een HTML pagina) gaat, dan zou ik eens naar typeface.js kijken. Maar daar heeft Chandler het niet voor nodig gok ik
    cablegunmasterdinsdag 17 februari 2009 @ 00:10
    quote:
    Op maandag 16 februari 2009 21:08 schreef Biefstuk het volgende:
    Is dat PHP en MySQL voor dummies boek iets?
    Ben van plan om php te leren of in ieder geval weten toe te passen.
    ik vond het een waardeloos boek
    Snapte de opdrachten van mn leraar beter

    al heb ik het boek wel op mn pc

    [ Bericht 10% gewijzigd door cablegunmaster op 17-02-2009 12:04:36 ]
    Chandlerdinsdag 17 februari 2009 @ 12:01
    Argh, FOK doet weer stom met posten!

    Ik zit weer met een regex probleem, want ik wil namelijk gegevens uit een lap HTML filteren maar op een of andere manier werkt dat niet.

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    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
                      <h2 class="Kop2">Bedrijfstitel</h2>
                      
                      <table cellpadding="0" cellspacing="0" border="0" width="100%" style="margin-top:10px;">
                         <tr>
                            <td width="50%" align="left" valign="top">
                               <!-- -->
                      
                               <table cellpadding="0" cellspacing="0" border="0" class="addressItem">
                                  <tr>
                                     <th>Adres</th>
                                     <td>Hoofdstraat 1</td>
                                  </tr>
                                  <tr>
                                     <th>Postcode</th>
                                     <td>0000 AA</td>
                                  </tr>
                                  <tr>
                                     <th>Plaats</th>
                                     <td>Woonplaats</td>
                                  </tr>
                                  <tr>
                                     <th>Provincie</th>
                                     <td>Provincie</td>
                                  </tr>
                                  <tr>
                                     <th>Land</th>
                                     <td>Land</td>
                                  </tr>
                               </table>
                      
                               <!-- -->
                            </td>
                            <td width="50%" align="right" valign="top">
                               <!-- -->
                               
                               <table cellpadding="0" cellspacing="0" border="0" class="addressItem">
                                  <tr>
                                     <th>Contactpersoon</th>
                                     <td>Persoon</td>
                                  </tr>
                                  <tr>
                                     <th>Telefoon</th>
                                     <td>0000-000000</td>
                                  </tr>
                                  <tr>
                                     <th>Fax</th>
                                     <td></td>
                                  </tr>
                                  <tr>
                                     <th>E-mail</th>
                                     <td><a href="mailto:email@email.com">email@email.com</a> </td>
                                  </tr>
                                  <tr>
                                     <th>Website</th>
                                     <td><a href="http://www.url.com" target="_blank">www.url.com</a></td>
                                  </tr>
                               </table>
                               
                               <!-- -->
                            </td>
                         </tr>
                      </table>


    Dit wil ik uitlezen met de volgende regex

    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
    <?php
    $match 
    '!<h2 class="Kop2">([^/].*)<\/h2>

                            <table cellpadding="0" cellspacing="0" border="0" width="100%" style="margin-top:10px;">
                                <tr>
                                    <td width="50%" align="left" valign="top">
                                        <\!-- -->

                                        <table cellpadding="0" cellspacing="0" border="0" class="addressItem">
                                            <tr>
                                                <th>([^/].*)<\/th>
                                                <td>([^/].*)<\/td>
                                            <\/tr>
                                            <tr>
                                                <th>([^/].*)<\/th>
                                                <td>([^/].*)<\/td>
                                            <\/tr>
                                            <tr>
                                                <th>([^/].*)<\/th>
                                                <td>([^/].*)<\/td>
                                            <\/tr>
                                            <tr>
                                                <th>([^/].*)<\/th>
                                                <td>([^/].*)<\/td>
                                            <\/tr>
                                            <tr>
                                                <th>([^/].*)<\/th>
                                                <td>([^/].*)<\/td>
                                            <\/tr>
                                        <\/table>

                                        <\!-- -->
                                    <\/td>
                                    <td width="50%" align="right" valign="top">
                                        <\!-- -->

                                        <table cellpadding="0" cellspacing="0" border="0" class="addressItem">
                                            <tr>
                                                <th>([^/].*)<\/th>
                                                <td>([^/].*)<\/td>
                                            <\/tr>
                                            <tr>
                                                <th>([^/].*)<\/th>
                                                <td>([^/].*)<\/td>
                                            <\/tr>
                                            <tr>
                                                <th>([^/].*)<\/th>
                                                <td>([^/].*)<\/td>
                                            <\/tr>
                                            <tr>
                                                <th>([^/].*)<\/th>
                                                <td><a href="mailto:">([^/].*)<\/a>&nbsp;<\/td>
                                            <\/tr>
                                            <tr>
                                                <th>([^/].*)<\/th>
                                                <td><a href="" target="_blank">([^/].*)<\/a><\/td>
                                            <\/tr>
                                        <\/table>

                                        <\!-- -->
                                    <\/td>
                                <\/tr>
                            <\/table>!im'
    ;
    ?>


    echter krijg ik niets te zien :( een lege array maar geen fouten... wat doe ik fout? waar ga ik de fout in?
    Roy_Tdinsdag 17 februari 2009 @ 14:38
    Jezus, met een regex Zou je niet liever gewoon de DOM parsen?
    slacker_nldinsdag 17 februari 2009 @ 14:41
    Gebruik een dom-parser.
    Xcaliburdinsdag 17 februari 2009 @ 14:43
    Dit lijkt me inderdaad niet de bedoeling van een regex
    The_Terminatordinsdag 17 februari 2009 @ 14:43
    quote:
    Op dinsdag 17 februari 2009 14:38 schreef Roy_T het volgende:
    Jezus, met een regex Zou je niet liever gewoon de DOM parsen?
    Gewoon de explode functie eroverheen trekken, dat zou ik in iedergeval doen gezien er toch met vaste gegevens gewerkt wordt.
    Roy_Tdinsdag 17 februari 2009 @ 15:23
    Waar wil je op exploden dan?

    Zelfs als dat werkt is het ranzig imo. Je wilt de DOM parsen. Waarom zou je dan niet een set functies gebruiken die speciaal daarvoor gemaakt is
    The_Terminatordinsdag 17 februari 2009 @ 15:35
    quote:
    Op dinsdag 17 februari 2009 15:23 schreef Roy_T het volgende:
    Waar wil je op exploden dan?
    <th> en <td>

    Vervolgens de 2 array's combineren en voila.
    Roy_Tdinsdag 17 februari 2009 @ 15:54
    Juist. Ranzig dus
    Nashjewoensdag 18 februari 2009 @ 10:33
    Ik ben bezig met een reactiescriptje, en krijg de welbekende fout: Warning: Cannot modify header information - headers already sent by (output started at config.php:23) in includes\download.php on line 130.

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
       <?php
        if(isset($_POST['reactie'])) {
          $naam = htmlspecialchars($_POST['naam']);
          $bericht = htmlspecialchars($_POST['bericht']);
          $error = '';
          if(strlen($naam) < 2) {
            $error .= 'De naam moet minimaal 2 letters bevatten.<br>';
          }
          if(strlen($bericht) < 5) {
            $error .= 'Het bericht moet minimaal 5 tekens bevatten.<br>';
          }
          if(!empty($error)) {
            echo $error;
            echo '<br>';
          }
          else {
            $time = time();
            $iSql = "INSERT INTO downloads_reacties (downloadid,door,tijd,bericht) VALUES ('".$sGet."','".$naam."','".$time."','".nl2br($_POST['bericht'])."')";
            mysql_query($iSql) or die(mysql_error());
            header("Location: ".$_SERVER['REQUEST_URI']);
          }
        }
        ?>
    Xcaliburwoensdag 18 februari 2009 @ 10:42
    als die tab voor je <?php tag zit is dat iig output

    En kijk eens in je config.php op regel 23 zou ik zeggen...
    Lightwoensdag 18 februari 2009 @ 10:48
    quote:
    Op woensdag 18 februari 2009 10:33 schreef Nashje het volgende:
    Ik ben bezig met een reactiescriptje, en krijg de welbekende fout: Warning: Cannot modify header information - headers already sent by (output started at config.php:23) in includes\download.php on line 130.
    [ code verwijderd ]
    Kennelijk levert je config.php al output, dan gaat het is mis als je daarna iets met header() probeert. Oplossing: geen output leveren in config.php.
    Nashjewoensdag 18 februari 2009 @ 10:52
    Dit is de config.php. Op line 23 is niets fout toch?

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    <?php
    session_start();

    // Pagina voor database connectie en andere instellingen

    // Database gegevens:
    $db['host'] = "localhost";
    $db['user'] = "root";
    $db['pass'] = "password";
    $db['db']   = "database";

    // Database connectie
    mysql_connect($db['host'],$db['user'],$db['pass']);
    mysql_select_db($db['db']);

    // Admin gegevens
    $admin_username = "admin";
    $admin_password = "admin";

    // Html instellingenn
    echo '
    <title>Downloadsysteem</title>
    ';
    ?>
    The_Terminatorwoensdag 18 februari 2009 @ 11:05
    quote:
    Op woensdag 18 februari 2009 10:52 schreef Nashje het volgende:
    Dit is de config.php. Op line 23 is niets fout toch?
    [ code verwijderd ]
    Die echo veroorzaakt het.
    Nashjewoensdag 18 februari 2009 @ 11:14
    quote:
    Op woensdag 18 februari 2009 11:05 schreef The_Terminator het volgende:

    [..]

    Die echo veroorzaakt het.
    Ehh nee.
    cablegunmasterwoensdag 18 februari 2009 @ 11:16
    quote:
    Op woensdag 18 februari 2009 11:14 schreef Nashje het volgende:

    [..]

    Ehh nee.
    al geprobeerd 21 -23 eruit te halen en opnieuw te proberen ? want het blijft een output.
    Nashjewoensdag 18 februari 2009 @ 11:43
    quote:
    Op woensdag 18 februari 2009 11:16 schreef cablegunmaster het volgende:

    [..]

    al geprobeerd 21 -23 eruit te halen en opnieuw te proberen ? want het blijft een output.
    Ja, vandaar ook mijn reactie 'ehh nee' .
    Tiemiewoensdag 18 februari 2009 @ 11:57
    quote:
    Op woensdag 18 februari 2009 11:14 schreef Nashje het volgende:

    [..]

    Ehh nee.
    Ehh ja. Echo == Output .

    Waarschijnlijk staat er na de sluit-tag ook nog whitespace.
    Nashjewoensdag 18 februari 2009 @ 12:02
    quote:
    Op woensdag 18 februari 2009 11:57 schreef Tiemie het volgende:

    [..]

    Ehh ja. Echo == Output .

    Waarschijnlijk staat er na de sluit-tag ook nog whitespace.
    Nee, geen whitespace.

    Heb dit in ieder geval helemaal weggehaald:
    // Html instellingenn
    echo '
    <title>Downloadsysteem</title>
    ';

    Error die ik dan krijg:
    Warning: Cannot modify header information - headers already sent by (output started at index.php:8) in includes\download.php on line 130
    qu63woensdag 18 februari 2009 @ 12:14
    Zit er dan niet een fout in download.php op regel 130
    Roy_Twoensdag 18 februari 2009 @ 12:15
    Toch heb je écht ergens output Geen spatie voor je <?php tag, of na je ?>
    Lightwoensdag 18 februari 2009 @ 12:16
    quote:
    Op woensdag 18 februari 2009 12:02 schreef Nashje het volgende:

    [..]

    Nee, geen whitespace.

    Heb dit in ieder geval helemaal weggehaald:
    // Html instellingenn
    echo '
    <title>Downloadsysteem</title>
    ';

    Error die ik dan krijg:
    Warning: Cannot modify header information - headers already sent by (output started at index.php:8) in includes\download.php on line 130
    Dan heb je dus op meerdere plekken output zitten. Ook in index.php op (of bij) regel 8. Veel duidelijker zijn die foutmeldingen echt niet te krijgen.
    Catch22-woensdag 18 februari 2009 @ 12:18
    quote:
    Op vrijdag 13 februari 2009 10:59 schreef Roy_T het volgende:

    [..]

    Ik heb héél veel code van anderen gezien. Daarin inderdaad wel $camelCase (wat mij betreft prima), maar nooit $CamelCase.
    variabelen camelCase, methoden/attributen PascalCase
    quote:
    Op woensdag 18 februari 2009 12:02 schreef Nashje het volgende:

    [..]

    Nee, geen whitespace.

    Heb dit in ieder geval helemaal weggehaald:
    // Html instellingenn
    echo '
    <title>Downloadsysteem</title>
    ';

    Error die ik dan krijg:
    Warning: Cannot modify header information - headers already sent by (output started at index.php:8) in includes\download.php on line 130
    je moet dat commentaar weghalen. Je mag geen output e.d. voor je sessies enzo hebben (zoals de error zegt. wat staat er op line 130 ?
    Roy_Twoensdag 18 februari 2009 @ 12:23
    Sinds wanneer zorgen comments voor output
    Nashjewoensdag 18 februari 2009 @ 12:42
    Line 130:
    1header("Location: ".$_SERVER['REQUEST_URI']);


    index.php eerste regels:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <?php
    ini_set("display_errors", 1);
    error_reporting(E_ALL);
    include('config.php');
    ?>
    <b>Menu</b><br>
    <a href="index.php">Overzicht</a> - <a href="index.php?mode=toevoegen">Voeg download toe</a> - <a href="index.php?mode=admin">Admin</a>
    <?php
    if(isset($_SESSION['admin'])) { 
      echo " - <a href=\"index.php?mode=admin_overzicht&act=nieuwcat\">Voeg categorie toe</a> - <a href=\"index.php?mode=logout\">Loguit</a>";
    }
    echo "<br><br>";
    Catch22-woensdag 18 februari 2009 @ 13:02
    je kan geen output sturen voor een header. dan moet je met ob_start() gaan werken.
    Xcaliburwoensdag 18 februari 2009 @ 13:03
    die index.php staat toch helemaal vol met output
    daar zit je probleem dus!
    cablegunmasterwoensdag 18 februari 2009 @ 13:21
    http://nl.php.net/header


    oh ja zelf een vraag hoe kan ik een agenda maken en dat hij alles dan de huidige datum er niet in stopt?
    kan dat in een sql query?

    select * from kalender where datum < curdate?
    GlowMousewoensdag 18 februari 2009 @ 13:24
    quote:
    Op woensdag 18 februari 2009 13:21 schreef cablegunmaster het volgende:
    oh ja zelf een vraag hoe kan ik een agenda maken en dat hij alles dan de huidige datum er niet in stopt?
    kan dat in een sql query?

    select * from kalender where datum < curdate?
    Dan mis je dingen uit de toekomst en toon je wel dingen van een uur geleden die dus mogelijk wel op dezelfde datum zijn.
    cablegunmasterwoensdag 18 februari 2009 @ 13:25
    quote:
    Op woensdag 18 februari 2009 13:24 schreef GlowMouse het volgende:

    [..]

    Dan mis je dingen uit de toekomst en toon je wel dingen van een uur geleden die dus mogelijk wel op dezelfde datum zijn.
    hoe kan je dat doen op de datum zelf?
    ik heb geen idee hoe en wat
    GlowMousewoensdag 18 februari 2009 @ 13:26
    Met mktime en date moet het lukken.
    cablegunmasterwoensdag 18 februari 2009 @ 13:33
    quote:
    Op woensdag 18 februari 2009 13:26 schreef GlowMouse het volgende:
    Met mktime en date moet het lukken.
    Maar ik heb al een date veld in mijn sql.
    Al hoe moet ik het uit de sql halen

    dat alle velden die groter zijn dan de huidige datum?
    want ik snap niet hoe ik de datum van nu in een voorwaarde kan zetten.
    mstxwoensdag 18 februari 2009 @ 13:35
    quote:
    Op woensdag 18 februari 2009 13:33 schreef cablegunmaster het volgende:

    [..]

    Maar ik heb al een date veld in mijn sql.
    Al hoe moet ik het uit de sql halen

    dat alle velden die groter zijn dan de huidige datum?
    want ik snap niet hoe ik de datum van nu in een voorwaarde kan zetten.
    WHERE datum <> NOW()
    ?
    cablegunmasterwoensdag 18 februari 2009 @ 13:35
    quote:
    Op woensdag 18 februari 2009 13:35 schreef mstx het volgende:

    [..]

    WHERE datum <> NOW()
    ?
    ik ga het eens testen
    GlowMousewoensdag 18 februari 2009 @ 13:37
    quote:
    Op woensdag 18 februari 2009 13:35 schreef mstx het volgende:

    [..]

    WHERE datum <> NOW()
    ?
    SELECT SELECT NOW()=DATE(NOW())
    Geeft 0 terug
    Lightwoensdag 18 februari 2009 @ 13:38
    quote:
    Op woensdag 18 februari 2009 12:23 schreef Roy_T het volgende:
    Sinds wanneer zorgen comments voor output
    Niet. Waar doen ze dat dan volgens jou?
    GlowMousewoensdag 18 februari 2009 @ 13:39
    Light, dat was een reactie op
    quote:
    Op woensdag 18 februari 2009 12:18 schreef Catch22- het volgende:

    [..]

    je moet dat commentaar weghalen. Je mag geen output e.d. voor je sessies enzo hebben (zoals de error zegt. wat staat er op line 130 ?
    cablegunmasterwoensdag 18 februari 2009 @ 13:40
    quote:
    Op woensdag 18 februari 2009 13:37 schreef GlowMouse het volgende:

    [..]

    SELECT SELECT NOW()=DATE(NOW())
    Geeft 0 terug
    nee select date > now()


    en op een andere tabel < now()
    dat is wat ik zocht
    GlowMousewoensdag 18 februari 2009 @ 13:41
    quote:
    Op woensdag 18 februari 2009 13:40 schreef cablegunmaster het volgende:

    [..]

    nee select date > now()


    en op een andere tabel < now()
    dat is wat ik zocht
    Ik denk niet dat je het begrijpt.
    Roy_Twoensdag 18 februari 2009 @ 13:42
    quote:
    Op woensdag 18 februari 2009 13:38 schreef Light het volgende:

    [..]

    Niet. Waar doen ze dat dan volgens jou?
    Wat GlowMouse zei
    cablegunmasterwoensdag 18 februari 2009 @ 13:48
    quote:
    Op woensdag 18 februari 2009 13:41 schreef GlowMouse het volgende:

    [..]

    Ik denk niet dat je het begrijpt.
    hoeft ook niet maar het werkt wel
    ik denk niet dat jij begrijpt wat ik wil.

    maarja het werkt en daar gaat het om
    1e en 2e tabel.
    http://trinitati.nl/agenda.php
    GlowMousewoensdag 18 februari 2009 @ 13:50
    quote:
    Op woensdag 18 februari 2009 13:48 schreef cablegunmaster het volgende:

    [..]

    hoeft ook niet maar het werkt wel
    ik denk niet dat jij begrijpt wat ik wil.
    Jij wilde geen dingen van vandaag en die krijg je zo wel.
    Het kan trouwens prima in één query ook.
    cablegunmasterwoensdag 18 februari 2009 @ 13:51
    quote:
    Op woensdag 18 februari 2009 13:50 schreef GlowMouse het volgende:

    [..]

    Jij wilde geen dingen van vandaag en die krijg je zo wel.
    Het kan trouwens prima in één query ook.
    kan best ik wilde alles voor vandaag en alles na vandaag. alleen in 2 aparte tabellen
    miscommunicatie van beide kanten
    Chandlerwoensdag 18 februari 2009 @ 14:13
    quote:
    Op dinsdag 17 februari 2009 14:41 schreef slacker_nl het volgende:
    Gebruik een dom-parser.
    Ik heb http://simplehtmldom.sourceforge.net/ geprobeerd maar het lukt me gewoon domweg niet om alle gegevens uit te lezen, mijn IE crasht namelijk direct..

    Heeft iemand een gemakkelijk scriptje?
    Roy_Twoensdag 18 februari 2009 @ 14:18
    quote:
    Op woensdag 18 februari 2009 14:13 schreef Chandler het volgende:

    Ik heb http://simplehtmldom.sourceforge.net/ geprobeerd maar het lukt me gewoon domweg niet om alle gegevens uit te lezen, mijn IE crasht namelijk direct..

    Heeft iemand een gemakkelijk scriptje?
    Dat is een prima script, ik parse er zo'n 40 sites mee zonder problemen (ook met brakke HTML).

    Vervelend dat je IE crasht (gebruik je die vrijwillig?), maar dat komt natuurlijk niet door het script. Iets met server en client side enzo
    Chandlerwoensdag 18 februari 2009 @ 15:33
    quote:
    Op woensdag 18 februari 2009 14:18 schreef Roy_T het volgende:

    [..]

    Dat is een prima script, ik parse er zo'n 40 sites mee zonder problemen (ook met brakke HTML).

    Vervelend dat je IE crasht (gebruik je die vrijwillig?), maar dat komt natuurlijk niet door het script. Iets met server en client side enzo
    Kun je me dan eens helpen?
    Roy_Twoensdag 18 februari 2009 @ 15:37
    quote:
    Op woensdag 18 februari 2009 15:33 schreef Chandler het volgende:

    Kun je me dan eens helpen?
    Begin eens met uit te leggen wanneer je browser crasht, en waarom dat komt door een (server side) PHP-script

    Maar de docs van die library zijn toch vrij helder? Je kunt XPath/CSS-achtige selectors gebruiken, bijvoorbeeld om alle <td>'s te vinden of whatever. Of alle <tr>'s, waarbinnen je dan weer <td>'s zoekt, etc etc etc.
    schwa78donderdag 19 februari 2009 @ 09:25
    Ik ben een nieuwe site aan het maken en daarbij gaat het om profielen met een hoop instellingen en profiel informatie.

    Is het dan verstandiger om 2 tabellen te maken (members_instellingen en members_profiel) of kan ik het het beste in 1 tabel gieten (members)?

    Maakt het dus uit voor de snelheid van de database om een tabel met zeg 1000-10.000 records te hebben met elk 50 kolommen of is het sneller om 2 tabellen te hebben met evenveel records maar dan met 25 kolommen?
    Chandlerdonderdag 19 februari 2009 @ 09:46
    quote:
    Op woensdag 18 februari 2009 15:37 schreef Roy_T het volgende:

    [..]

    Begin eens met uit te leggen wanneer je browser crasht, en waarom dat komt door een (server side) PHP-script

    Maar de docs van die library zijn toch vrij helder? Je kunt XPath/CSS-achtige selectors gebruiken, bijvoorbeeld om alle <td>'s te vinden of whatever. Of alle <tr>'s, waarbinnen je dan weer <td>'s zoekt, etc etc etc.
    Goed, het volgende stukje laat mijn browser crashen.

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <?php
    include_once('simplehtmldom/simple_html_dom.php');

    // Create DOM from URL
    $html file_get_html('test.txt');

    // Find all article blocks
    foreach($html->find('div.item') as $article)
    {
        
    print_r($article)->plaintext;
        exit();
    }
    ?>


    Maar ik denk dat ik gewoon de documentatie maar eens moet doornemen, heb ik al gedaan maar doe het dan nog maar een keer!

    -edit-

    Ik heb het werkend, zo moeilijk is het idd niet

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    <?php
    include_once('simplehtmldom/simple_html_dom.php');

    // Create DOM from URL
    $html file_get_html('test.txt');

    // Find all article blocks
    foreach($html->find('#addressList') AS $article)
    {
        foreach (
    $article->find('.item') AS $item)
        {
            foreach (
    $item->find('.Kop2') AS $kop)
            {
                echo 
    "<h2>" $kop->plaintext "</h2>";
            }

            foreach (
    $item->find(".addressItem") AS $addr)
            {
                foreach (
    $addr->find('tr') AS $tr)
                {
                    foreach (
    $tr->find('th') AS $th)
                    {
                        echo 
    $th->plaintext " ";
                    }
                    foreach (
    $tr->find('td') AS $td)
                    {
                        echo 
    $td->plaintext;
                    }
                    echo 
    '<br />';
                }
                echo 
    '<hr>';
            }
        }
    }
    ?>


    [ Bericht 54% gewijzigd door Chandler op 19-02-2009 10:14:58 ]
    Roy_Tdonderdag 19 februari 2009 @ 09:50
    Die 50 kolommen in één tabel zal sneller zijn, maar of je dat met 10.000 records merkt is de vraag Als het om unieke zaken gaat ("profile_background_color", "avatar_url", etc), dan zou ik het lekker in één tabel houden.

    Wanneer het om variabele data gaat, dan is het een ander verhaal (blogposts bijv, dan wil je geen "blogpost_1" en "blogpost_2" gebruiken, maar een tabel "blogposts" hebben).
    Roy_Tdonderdag 19 februari 2009 @ 09:52
    quote:
    Op donderdag 19 februari 2009 09:46 schreef Chandler het volgende:

    [..]

    Goed, het volgende stukje laat mijn browser crashen.
    [ code verwijderd ]

    Maar ik denk dat ik gewoon de documentatie maar eens moet doornemen, heb ik al gedaan maar doe het dan nog maar een keer!
    Het zou je browser niet mogen crashen, maar je gebruikt dan ook geen browser maar IE. Ontwikkelaars op IE... jij bent de enige die ik ken

    Maar: print_r($article)->plaintext;, dat werkt natuurlijk niet (omdat dat geen PHP code is)

    Probeer eens echo($article->plaintext);

    Zojuist deze library nog gebruikt trouwens, om te kijken of een site een RSS-feed heeft: $link = $html->find('link[type="application/rss+xml"]');
    slacker_nldonderdag 19 februari 2009 @ 10:10
    Der zit wel een kleine bug in die parser, al is het een PHP bug, maar hij heeft er last van..

    Je moet voordat je een nieuw dom object aanmaakt even clear aanroepen op je oude object, ter overbodigheid:

    1
    2
    3
    4
    5
    <?php
    $this
    ->dom str_get_dom(curl_exec($curl));
    $this->dom->clear();
    $this->dom str_get_dom(curl_exec($curl));
    ?>
    Chandlerdonderdag 19 februari 2009 @ 10:15
    zie mijn edit
    Roy_Tdonderdag 19 februari 2009 @ 10:25
    quote:
    Op donderdag 19 februari 2009 10:15 schreef Chandler het volgende:
    zie mijn edit
    Zie je wel

    Één overbodige foreach: van de eerste zou je dit kunnen maken:

    foreach($html->find('#addressList .item') AS $article)

    En de tweede laten vervallen

    Als je maar één kop hebt per .item, dan heb je daarvoor ook geen foreach nodig.
    Chandlerdonderdag 19 februari 2009 @ 10:49
    Ok, wist niet dat je dat zo kon combineren maar goed, zal het aanpassen! iig TNX!
    tankertuigdonderdag 19 februari 2009 @ 11:14
    Uit een rss feed haal ik deze informatie: code (0123456789)
    Het nummer wil ik in mijn database stoppen... kan ff niet meer vinden hoe ik alleen het nummer hieruit haal om wat mee te doen :S Kan iemand me even helpen?
    Roy_Tdonderdag 19 februari 2009 @ 11:53
    Even uit mijn hoofd:

    $string = preg_replace("/[^0-9]/", '', $string);
    DeTolkdonderdag 19 februari 2009 @ 12:01
    Yes, eindelijk een dummy topic *O*

    Voor onze site willen we een contact formulier maken met daarin een dropdown box waaruit bezoekers een vestiging van ons kunnen selecteren. Aan de hand van de keuze van de vestiging kunnen de klanten dan op een knop "verstuur" drukken zodat de mail ook bij de gekozen vestiging aankomt.

    Nu vraag ik mij af hoe dit te realiseren is.

    Onze site is gemaakt met ExpressionWeb (MS) en dus in PHP.

    Nu ben ik een beginnende PHP-er....helaas..


    Hieronder de code van de contactpagina met dropdown box erin.

    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
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    <?php
    $title="Contact";
    $email = ($mailto=="pz") ? "pz@bedrijfsnaambv.nl" : "info@bedrijfsnaambv.nl";
    ?>
    <html>
    <head>
    <title>Bedrijfsnaambv.nl - <?php echo $title; ?></title>
    <?php include("inc/metadata.php"); ?>
    <link href="css/stylesheet.css" rel="stylesheet" type="text/css" />
    </head>
    <body>
    <table width="940" height="100%" border="0" align="center" cellpadding="0" cellspacing="0">
      <tr>
        <td width="20" rowspan="5" background="gfx/bgleft.gif"> </td>
        <td height="140" valign="bottom" background="gfx/header.gif" bgcolor="#E3ECFD"><table width="450" height="50" border="0" align="right" cellpadding="0" cellspacing="0">
          <tr>
            <td><?php include("inc/zoeken.php"); ?></td>
          </tr>
        </table></td>
        <td width="20" rowspan="5" background="gfx/bgright.gif"> </td>
      </tr>
      <tr>
        <td height="25" background="gfx/bg-tabs.jpg"><?php include("inc/hoofdmenu.php"); ?></td>
      </tr>
      <tr>
        <td valign="top" class="bgcontent">
          <br />
    <!-- contentblok1 -->
    <table width="844" border="0" align="center" cellpadding="0" cellspacing="0">
      <tr>
        <td width="202" valign="top"><table width="202" border="0" cellspacing="0" cellpadding="0">
          <tr>
            <td height="30" background="gfx/bg-hdr.gif" class="title"><strong>   <span class="largetitleblue"><?php echo $title; ?></span></strong></td>
          </tr>
          <tr>
            <td height="60" background="gfx/bg-content.gif"><img src="gfx/img-vestigingen.jpg" width="202" height="60" /></td>
          </tr>
          <tr>
            <td valign="top" background="gfx/bg-content.gif" class="tablespace"><table width="202" border="0" cellspacing="3" cellpadding="3">
              <tr>
                <td><?php include("inc/vestigingen.php"); ?></td>
              </tr>
            </table></td>
          </tr>
          <tr>
            <td height="7"><img src="gfx/bg-table.png" width="202" height="7" /></td>
          </tr>
        </table></td>
        <td width="12" valign="top"> </td>
        <td width="630" valign="top" class="title"><table width="630" border="0" cellspacing="0" cellpadding="0">
          <tr>
            <td height="30" background="gfx/bg-hdr-breed.gif" class="title">   <span class="largetitle">Contact formulier 
          Digitale vestiging</span></td>
          </tr>
          <tr>
            <td valign="top" background="gfx/bg-content-breed.gif"><br />
    <?  if (!$submit) { 
    ?>
    <script Language="JavaScript">
    <!--
    function Validatie(theForm)
    {

       if (theForm.naam.value == "")
      {
        alert("Uw naam invullen a.u.b.");
       theForm.naam.focus();
        return (false);
      }

       if (theForm.from.value == "")
      {
        alert("Uw email adres invullen a.u.b.");
       theForm.from.focus();
        return (false);
      }

       if (theForm.telefoon.value == "")
      {
        alert("Uw telefoon nummer invullen a.u.b.");
       theForm.telefoon.focus();
        return (false);
      }
      
       if (theForm.onderwerp.value == "")
      {
        alert("Een onderwerp invullen a.u.b.");
       theForm.onderwerp.focus();
        return (false);
      }
      
      return (true);
    }
    // -->
    </script>
    <form method="post" action="/cgi-bin/mail-a-form" onSubmit="return Validatie(this)">
    <INPUT TYPE="hidden" NAME="to" VALUE="<?php echo $email; ?>">
    <INPUT TYPE="hidden" NAME="subject" VALUE="Formulier verstuurd vanaf bedrijfsnaambv.nl">
    <INPUT TYPE="hidden" NAME="nextpage" VALUE="http://www.bedrijfsnaambv.nl/contact.php?submit=ok">
    <blockquote>Voor meer informatie of opmerkingen, vul dan hieronder de gegevens volledig in.<br /><em>Velden met een * zijn verplicht.</em></blockquote><br />
            <table width="450" border="0" align="center" cellpadding="3" cellspacing="3">
              <tr>
                <td width="200" valign="top" bgcolor="#F5F8FF"><div align="right">Bedrijfsnaam:</div></td>
                <td valign="top"><input name="bedrijfsnaam" type="text" maxlength="50"></td>
              </tr>
              <tr>
                <td width="200" valign="top" bgcolor="#F5F8FF"><div align="right">Contact persoon:</div></td>
                <td valign="top"><input name="naam" type="text" maxlength="50"> 
                *</td>
              </tr>
              <tr>
                <td width="200" valign="top" bgcolor="#F5F8FF"><div align="right">E-mailadres:</div></td>
                <td valign="top"><input name="from" type="text" maxlength="100"> 
                *</td>
              </tr>
              <tr>
                <td valign="top" bgcolor="#F5F8FF"><div align="right">Telefoon nummer:</div></td>
                <td valign="top"><input name="telefoon" type="text" maxlength="15"> 
                *</td>
              </tr>
              <tr>
                <td valign="top" bgcolor="#F5F8FF"><div align="right">Uw vestiging:</div></td>
                <td valign="top"><select name="VST" style="width: 168px">
             <option></option>
             <option value="PPS">Almere</option>
             <option value="SAT">Baarn</option>
             <option value="BSM">Bussum</option>
             <option value="DFT">Delft</option>
             <option value="KVK">Den Haag</option>
             <option value="LEI">Leiden</option>
             <option value="VOL">Purmerend</option>
             <option value="IJM">Velserbroek</option>
             <option value="WBW">Wenckebachweg, A'dam</option>
             <option value="WDZ">W.de Zwijgerlaan, A'dam</option>
             <option value="ZS">Zaandam</option>
             <option value="ZP">Zeeburgerpad, A'dam</option>
             <option value="COR">Zwaag</option>
             </select> 
                *</td>
              </tr>
              <tr>
                <td width="200" valign="top" bgcolor="#F5F8FF"><div align="right">Onderwerp:</div></td>
                <td valign="top">
             <input name="onderwerp" type="text" maxlength="50" value="Digitale Vestiging"> </td>
              </tr>
              <tr>
                <td width="200" valign="top" bgcolor="#F5F8FF"><div align="right">Reactie:</div></td>
                <td valign="top"><textarea name="reactie" cols="30" rows="5"></textarea></td>
              </tr>
              <tr>
                <td width="200"> </td>
                <td><input type="submit" name="submit" value="verstuur"></td>
              </tr>
            </table>
    </form><br />
    <? } else {
    ?>
    <blockquote>Hartelijk dank voor uw reactie.<br />Uw email zal zo spoedig mogelijk in behandeling worden genomen.</blockquote>
    <br /><br />
    <?
    }
    ?>
            </td>
          </tr>
          <tr>
            <td height="7"><img src="gfx/bg-table-breed.png" width="630" height="7" /></td>
          </tr>
        </table></td>
      </tr>
    </table>
    <!-- contentblok1 -->
          <br />
    <!-- contentblok2 -->
    <?php include("inc/content2.php"); ?>
    <!-- contentblok2 -->
          <br />
        </td>
      </tr>
      <tr>
        <td height="5" background="gfx/line.gif"><img src="gfx/transparant.gif" width="1" height="1" /></td>
      </tr>
      <tr>
        <td height="50" bgcolor="#72C2FF"><?php include("inc/footer.php"); ?></td>
      </tr>
    </table>
    </body>
    </html>
    Roy_Tdonderdag 19 februari 2009 @ 13:22
    quote:
    Op donderdag 19 februari 2009 12:01 schreef DeTolk het volgende:

    Nu vraag ik mij af hoe dit te realiseren is.
    Los van echte code, wat is volgens jou de logische flow waarop dat zou moeten werken? User verstuurt formulier, en dan?

    We kunnen hier wel meteen code neerplempen, maar je leert er denk ik meer van door eerst zelf te bedenken (desnoods in pseudo code) hoe de flow in elkaar zit.
    DeTolkdonderdag 19 februari 2009 @ 13:31
    quote:
    Op donderdag 19 februari 2009 13:22 schreef Roy_T het volgende:

    [..]

    Los van echte code, wat is volgens jou de logische flow waarop dat zou moeten werken? User verstuurt formulier, en dan?

    We kunnen hier wel meteen code neerplempen, maar je leert er denk ik meer van door eerst zelf te bedenken (desnoods in pseudo code) hoe de flow in elkaar zit.

    User vult contactformulier in
    - Hierin selecteert User de locatie
    Bij het klikken op "verstuur" wordt de locatie uitgelezen en daar wordt een mailadres aan gekoppeld.

    Verstuur (knop)

    mail(
    if locatie(value)=BSM
    mail=Bussum@xxxx.nl
    )

    zoiets?
    Roy_Tdonderdag 19 februari 2009 @ 14:35
    Klinkt goed Bij deze is je code voor 75% klaar. Nu alleen het kloppen nog

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    <?php
    $to 
    null;

    switch (
    $_POST['VST'])
    {
       case 
    'BSM':
          
    $to 'bussum@xxxx.nl';
          break;
       case 
    'DFT':
          
    $to 'delft@xxxx.nl';
          break;
    }

    if (
    $to)
    {
       
    mail($toetc etc etc);
    }
    ?>


    Kun je hier iets mee?
    slacker_nldonderdag 19 februari 2009 @ 14:52
    quote:
    Op donderdag 19 februari 2009 11:14 schreef tankertuig het volgende:
    Uit een rss feed haal ik deze informatie: code (0123456789)
    Het nummer wil ik in mijn database stoppen... kan ff niet meer vinden hoe ik alleen het nummer hieruit haal om wat mee te doen :S Kan iemand me even helpen?

    1
    2
    3
    4
    5
    <?php
    if (preg_match("/(\d+)/"$string$matches)) {
       print 
    $matches[1]; # dit is het nummer wat je wilt.. 
    }
    ?>
    slacker_nldonderdag 19 februari 2009 @ 14:58
    quote:
    Op donderdag 19 februari 2009 14:35 schreef Roy_T het volgende:
    Klinkt goed :) Bij deze is je code voor 75% klaar. Nu alleen het kloppen nog :)
    [ code verwijderd ]

    Kun je hier iets mee?
    Of je maakt een hash aan:

    1
    2
    3
    4
    5
    <?php
    $locatie2mail 
    = array("locatie1" => 'email@locatie1.domain.nl'"locatie2" => 'email@locatie2.domain.nl');

    $to_mail $locatie2mail[$_POST[vestiging]];
    ?>


    Eventueel zet je de locatie1=emailadres logica in een config file, hoef je geen php code aan te passen als je een locatie toevoegt of verwijderd.
    Roy_Tdonderdag 19 februari 2009 @ 15:12
    Dat kan ook Wel zou ik dan even met isset() checken of een key ook echt bestaat.
    slacker_nldonderdag 19 februari 2009 @ 19:04
    nee, array_key_exists oid moet je daarvoor gebruiken.

    Deze dus
    http://nl3.php.net/manual/en/function.array-key-exists.php
    Lightdonderdag 19 februari 2009 @ 19:38
    quote:
    Op donderdag 19 februari 2009 19:04 schreef slacker_nl het volgende:
    nee, array_key_exists oid moet je daarvoor gebruiken.

    Deze dus
    http://nl3.php.net/manual/en/function.array-key-exists.php
    array_key_exists() geeft ook true als de key bestaat en de bijbehorende value null is. Kan handig zijn, lijkt me hier niet het geval. null is namelijk geen geldig mailadres Overigens zou ik !empty() adviseren. Dan worden dingen als lege strings ook niet meer geaccepteerd. Of er snelheidsverschil is, weet ik niet.
    Catch22-donderdag 19 februari 2009 @ 20:24
    1
    2
    3
    4
    if(preg_match($to, '^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,6}$@')
    {
    // mail verzenden
    }

    doe het dan gelijk zo ;)
    urseldonderdag 19 februari 2009 @ 21:01
    Kan iemand mij misschien duidelijk vertellen wanneer een view query nu daadwerkelijk handiger is dan een gewone select query.
    Heb wel een en ander gezocht, maar tis me nog niet geheel duidelijk geworden wanneer ik van een view profijt kan hebben..
    HuHudonderdag 19 februari 2009 @ 21:05
    Ik gebruik een VIEW om adressen te importeren in TNT Parcelware en UPS Worldship. De view bevat een subset van de laatste x orders en ook alleen de relevante adres-informatie. Op die manier hoef ik niet vele adressen te importeren die toch te oud zijn, omdat zowel Parcelware als Worldship geen limiet op de import hebben zitten.

    Dus zoiets:

    1
    2
    3
    4
    5
    CREATE VIEW zendingen_data AS
    SELECT o.id, o.naam, o.adres, ..., o.land
    FROM orders as o
    ORDER BY o.id DESC
    LIMIT x


    Parcelware en Worldship importeren vervolgens de gehele VIEW zendingen_data en halen daarmee alleen de nieuwste orders binnen. Dat is handig omdat ze (vooral Parcelware) anders over hun nek gaan vanwege de grote hoeveelheid data.
    HuHudonderdag 19 februari 2009 @ 21:09
    Een VIEW is dus handig op momenten dat je niet alle data in een tabel aan een ander ter beschikking wilt stellen, zonder dat de ander daar moeite voor moet doen. Je kunt natuurlijk met GRANT gaan kloten en alleen rechten geven op bepaalde kolommen in een tabel, maar een VIEW is veel eenvoudiger en duidelijker. Daarnaast kun je geen LIMIT toepassing op een GRANT, wat in mijn geval wel nodig is .
    Roy_Tdonderdag 19 februari 2009 @ 21:21
    quote:
    Op donderdag 19 februari 2009 19:04 schreef slacker_nl het volgende:
    nee, array_key_exists oid moet je daarvoor gebruiken.

    Deze dus
    http://nl3.php.net/manual/en/function.array-key-exists.php
    Je moet niets

    Veel te lang om te typen, terwijl isset() ook werkt en gewoon zo gebruikt mag worden volgens de docs
    slacker_nldonderdag 19 februari 2009 @ 21:31
    quote:
    Op donderdag 19 februari 2009 19:38 schreef Light het volgende:

    [..]

    array_key_exists() geeft ook true als de key bestaat en de bijbehorende value null is. Kan handig zijn, lijkt me hier niet het geval. null is namelijk geen geldig mailadres Overigens zou ik !empty() adviseren. Dan worden dingen als lege strings ook niet meer geaccepteerd. Of er snelheidsverschil is, weet ik niet.
    Het lijkt me dat je in dit geval een hash hebt die overeenkomt met de values die je in je selectiebox hebt zitten voor de locatie. En dus, als je een locatie toevoegt dat je hash ook gevuld is met die locatie.. Maar goed, je zou array_key_exists icm met isset of isempty kunnen gebruiken als je wilt.

    Je zou zelfs die selectie via een DB kunnen doen en dan heb je die hash niet nodig.

    En overigens, als je echt een mailadres wilt valideren heb je meer nodig dan alleen een isemtpy() of isset() op een value, maar dan gaan we uit van userinput die in dit geval alleen een locatie kan opgeven en de app de logica locatie - e-mail adres implementeerd.
    slacker_nldonderdag 19 februari 2009 @ 21:40
    quote:
    Op donderdag 19 februari 2009 21:21 schreef Roy_T het volgende:

    [..]

    Je moet niets

    Veel te lang om te typen, terwijl isset() ook werkt en gewoon zo gebruikt mag worden volgens de docs
    Ik gebruik array_key_exists liever om te checken of een key bestaat , isset zegt daar vrij weinig over.
    Roy_Tdonderdag 19 februari 2009 @ 21:53
    quote:
    Op donderdag 19 februari 2009 21:40 schreef slacker_nl het volgende:

    [..]

    Ik gebruik array_key_exists liever om te checken of een key bestaat , isset zegt daar vrij weinig over.
    Hoe bedoel je? Als je een $array = array('key1' => 'value1') hebt, dan zal isset($array['key1']) true geven, en isset($array['key2']) false. Lijkt me toch een duidelijke check om te zien of een key bestaat?
    HuHudonderdag 19 februari 2009 @ 21:55
    quote:
    Op donderdag 19 februari 2009 21:53 schreef Roy_T het volgende:

    [..]

    Hoe bedoel je? Als je een $array = array('key1' => 'value1') hebt, dan zal isset($array['key1']) true geven, en isset($array['key2']) false. Lijkt me toch een duidelijke check om te zien of een key bestaat?
    Uit de documentatie:
    quote:
    isset() does not return TRUE for array keys that correspond to a NULL value, while array_key_exists() does.
    In diezelfde documentatie staat in de opmerkingen van gebruikers echter dat isset zo'n 5 keer sneller is op Windows (1,5 maal op Linux en Mac OS) in vergelijking met array_key_exists. Als NULL dus voor kan komen als value moet je array_key_exists gebruiken, anders is isset een snellere optie. Maar voor de netheid is array_key_exists de beste keuze.
    slacker_nldonderdag 19 februari 2009 @ 22:02
    quote:
    Op donderdag 19 februari 2009 21:53 schreef Roy_T het volgende:

    [..]

    Hoe bedoel je? Als je een $array = array('key1' => 'value1') hebt, dan zal isset($array['key1']) true geven, en isset($array['key2']) false. Lijkt me toch een duidelijke check om te zien of een key bestaat?
    1
    2
    3
    4
    5
    6
    7
    8
    <?php
    $array 
    = array("hello" => "world""how" => "are""you" => null);

    $k 'test';
    print 
    "value :" $array[$k] . "\n";
    print 
    "isset :" . isset($array[$k]) . "\n";
    print 
    "array_key :" array_key_exists($k$array) . "\n";
    ?>


    Speel eens met de value van $k, dan zie je waarom array_key_exists van belang is.. (of wat huhu zei).
    Roy_Tdonderdag 19 februari 2009 @ 23:20
    Ah ja, ik liet de NULL waarde idd buiten beschouwing Ging er vanuit dat in dit specifieke geval er nooit een NULL zou zijn als e-mail adres.
    Keiichivrijdag 20 februari 2009 @ 08:02
    Vol
    Jo0Lzvrijdag 20 februari 2009 @ 14:15
    [PHP/(My)SQL] voor dummies - Deel 69
    Daar verder.