FOK!forum / Digital Corner / [PHP/(My)SQL] voor dummies - Deel 40
Swetseneggerzaterdag 3 maart 2007 @ 17:44

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


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
  • beertenzaterdag 3 maart 2007 @ 18:23
    Zoekmachines, o.a. google, kunnen sitemaps indexeren. http://www.sitemaps.org/

    Weet iemand een (php) tool die ik kan implementeren op mijn site om zo (semi) automatisch zo een sitemap te laten genereren?
    beertenzaterdag 3 maart 2007 @ 22:20
    Een mogelijkheid blijkt http://www.xml-sitemaps.com
    beertenzondag 4 maart 2007 @ 01:38
    Hmmm, een simpel probleem, waarvoor ik de oplossing zo niet vind.

    In een tabel in de database staat de tijd als unix timestamp (seconden sinds epoch) Hier wil ik een gewone leesbare datum van maken. Hoe?
    1
    2
    $tijd = 1144175989;
    print date("Y-m-d",$tijd); 

    Doet het dus niet. Wat is de truck???
    mscholzondag 4 maart 2007 @ 01:38
    ordinaire terug vind post
    quote:
    Op zondag 4 maart 2007 01:38 schreef beerten het volgende:
    Hmmm, een simpel probleem, waarvoor ik de oplossing zo niet vind.

    In een tabel in de database staat de tijd als unix timestamp (seconden sinds epoch) Hier wil ik een gewone leesbare datum van maken. Hoe?
    [ code verwijderd ]

    Doet het dus niet. Wat is de truck???
    $tijd moet een integer zijn, het is nu toch een string?
    Geqxonzondag 4 maart 2007 @ 02:25
    quote:
    Op zondag 4 maart 2007 01:38 schreef beerten het volgende:
    Hmmm, een simpel probleem, waarvoor ik de oplossing zo niet vind.

    In een tabel in de database staat de tijd als unix timestamp (seconden sinds epoch) Hier wil ik een gewone leesbare datum van maken. Hoe?
    [ code verwijderd ]

    Doet het dus niet. Wat is de truck???
    Dit output hier "2006-04-04", zou moeten werken?
    quote:
    Op zondag 4 maart 2007 01:38 schreef mschol het volgende:
    ordinaire terug vind post
    [..]

    $tijd moet een integer zijn, het is nu toch een string?
    Het is een integer. En zelfs als ik het quote en er een string van maak doet hij het alsnog goed. PHP is daar niet zo streng mee
    SuperRembozondag 4 maart 2007 @ 11:10
    quote:
    Op zondag 4 maart 2007 01:38 schreef beerten het volgende:
    Doet het dus niet. Wat is de truck???
    "Doet het dus niet"

    Wat doet ie niet, en wat doet ie wel? Geeft ie een fout, geeft ie niets terug, geeft ie wel een datum maar de verkeerde, geeft ie de input terug?
    beertenzondag 4 maart 2007 @ 12:40
    Hmmm, het werkt uitstekend zelfs. Het probleem was dat ik een lege integer lade.
    De waarde was er een uit een database en ik had een klein typootje gemaakt.

    How stupid. Maar gezien het tijdstip en de gemoedstoestand...

    Thanks anyway
    broodmonkehzondag 4 maart 2007 @ 18:32
    laat maar

    [ Bericht 96% gewijzigd door broodmonkeh op 04-03-2007 19:56:30 ]
    ralfiezondag 4 maart 2007 @ 19:58
    quote:
    Op zondag 4 maart 2007 18:32 schreef broodmonkeh het volgende:
    laat maar
    http://nl3.php.net/static
    broodmonkehzondag 4 maart 2007 @ 21:34
    quote:
    Op zondag 4 maart 2007 19:58 schreef ralfie het volgende:

    [..]

    http://nl3.php.net/static
    thnx zal er naar kijken , maar ik heb het opgelost door gewoon die 2 functies in 1 functie te stoppen. Niet netjes maar toch
    jstnmaandag 5 maart 2007 @ 09:11
    Hey PHP kenners

    Ik zit met een vrij groot probleem.
    Voor school sta ik in mijn eentje voor een project (eind dit jaar klaar) om een website te maken waarbij men klachten kan invoeren + uitlezen, met een login scriptje e.d.

    Nu is het probleem: PHP interesseert mij/ken ik totaal niet.
    Het ligt niet in mijn straatje, en iets leren is voor mij is heel moeilijk als iets mij niet boeit zeg maar.

    Nu is mijn vraag: Waar/hoe kan ik beginnen?
    Een layout van een site maken is geen probleem met Dreamweaver bijv, alleen die scripts maken...
    Wat zijn goude sites die mij kunnen helpen?
    Let wel, ik ben écht een PHP-leek.

    Mijn dank is groot.
    Swetseneggermaandag 5 maart 2007 @ 09:20
    Zie de OP.
    Chandlermaandag 5 maart 2007 @ 09:27
    What's wrong??

    Ik heb de volgende echo

    1echo $cnt . "-" . DATE_SEARCH_PERPAGE . "-" . ($cnt / DATE_SEARCH_PERPAGE);


    en dit geeft als resultaat op mijn lokale server (met 9 items)

    9-5-1.80

    maar op een online server krijg ik dit als output (met 10 items)

    10-5-20

    What's wrong? is iets in PHP op de server kapot??
    Geqxonmaandag 5 maart 2007 @ 09:30
    En hoe wordt $cnt dan wel niet gevuld?
    Chandlermaandag 5 maart 2007 @ 10:18
    $cnt = een mysql_result die altijd 0 of hoger is...
    CraZaaymaandag 5 maart 2007 @ 11:33
    tvphp
    Geqxonmaandag 5 maart 2007 @ 11:56
    quote:
    Op maandag 5 maart 2007 10:18 schreef Chandler het volgende:
    $cnt = een mysql_result die altijd 0 of hoger is...
    En op je server is dat altijd 1.0 hoger?
    Chandlermaandag 5 maart 2007 @ 13:03
    hoezo? Geqxon? ik snap je vraag niet!
    ralfiemaandag 5 maart 2007 @ 14:27
    quote:
    Op maandag 5 maart 2007 13:03 schreef Chandler het volgende:
    hoezo? Geqxon? ik snap je vraag niet!
    post is wat meer gegevens joh, hiermee is het alleen maar gissen...
    freissmaandag 5 maart 2007 @ 15:42
    quote:
    Op maandag 5 maart 2007 14:27 schreef ralfie het volgende:

    [..]

    post is wat meer gegevens joh, hiermee is het alleen maar gissen...
    Ik denk dat $cnt voor count staat . Het probleem is dus dat als $cnt 9 is PHP de deling wel goed uitvoert, maar dat als $cnt 10 is PHP voor 10/5 opeens 20 als waarde geeft.

    Denk ik dan.
    Chandlermaandag 5 maart 2007 @ 17:41
    $cnt = aantal items in de database
    DATE_SEARCH_PERPAGE = het aantal items per pagina

    oftwel

    10/2
    20/2
    5/2

    etc
    ralfiemaandag 5 maart 2007 @ 17:50
    Nee, dat snap ik wel, maar wat dacht je van server os, php versie?
    splendormaandag 5 maart 2007 @ 18:13
    quote:
    Op zaterdag 3 maart 2007 17:41 schreef Swetsenegger het volgende:

    [..]

    Magic quotes zal waarschijnlijk aanstaan.
    Vanavond ga ik naar een cabaret voorstellingen maar ik zal morgen ff kijken wat dat ding precies doet en of het dan beter werkt.

    Het liefste wil ik gewoon 1 malig addslashes en niet later nog eens overal stripslashes uitvoeren, tenzij het de veiligheid in de weg staat, veiligheid boven alles natuurlijk.
    SuperRembomaandag 5 maart 2007 @ 18:17
    Doe eens een var_dump() van $cnt, DATE_SEARCH_PERPAGE en $cnt/DATE_SEARCH_PERPAGE. Is DATE_SEARCH_PERPAGE soms gelijk aan .5 in plaats van 5?
    Swetseneggermaandag 5 maart 2007 @ 18:21
    quote:
    Op maandag 5 maart 2007 18:13 schreef splendor het volgende:

    [..]

    Vanavond ga ik naar een cabaret voorstellingen maar ik zal morgen ff kijken wat dat ding precies doet en of het dan beter werkt.

    Het liefste wil ik gewoon 1 malig addslashes en niet later nog eens overal stripslashes uitvoeren, tenzij het de veiligheid in de weg staat, veiligheid boven alles natuurlijk.
    *zucht*, zoals gezegd alles door strip_slashes deep trekken ALS magiq quotes aanstaan en met mysql_real_escape_string naar db schrijven. Dan kan je vervolgens zonder probleem de data UIT database presenteren zonder strip_slashes.
    splendormaandag 5 maart 2007 @ 18:28
    quote:
    Op maandag 5 maart 2007 18:21 schreef Swetsenegger het volgende:

    [..]

    *zucht*, zoals gezegd alles door strip_slashes deep trekken ALS magiq quotes aanstaan en met mysql_real_escape_string naar db schrijven. Dan kan je vervolgens zonder probleem de data UIT database presenteren zonder strip_slashes.
    Het is goed bedoeld dat weet ik wel. Maar ik doe niet zomaar iets omdat het gezegd wordt in dit topic, ik wil graag weten waarom het nodig is, en hoe het allemaal werkt.
    Dus morgen eerst even de php.net beschrijving van die functies lezen en kijken wat de voor en nadelen zijn.
    SuperRembomaandag 5 maart 2007 @ 18:33
    quote:
    Op maandag 5 maart 2007 18:13 schreef splendor het volgende:
    Het liefste wil ik gewoon 1 malig addslashes en niet later nog eens overal stripslashes uitvoeren, tenzij het de veiligheid in de weg staat, veiligheid boven alles natuurlijk. :)
    Je moet encoding alleen gebruiken waar het nodig is. Het is niet handig om standaard alle input door addslashes() heen te halen (zoals magic quotes doet) omdat het misschien wel eens in een SQL statement gebruikt gaat worden.

    String in een SQL statement? mysql_real_escpae_string() of addslashes()
    1$sql = "SELECT foo FROM bar WHERE baz = '". mysql_real_escpae_string($baz) ."'";

    String als parameter in een url? urlencode()
    1$url = 'http://foo.net/bar.php?baz='.urlencode($baz);

    String in een stuk html? htmlentities() of htmlspecialchars()
    1$link = '<a href="'.htmlentities($url.'&bazz='.urlencode($bazz)).'">Foo</a>';
    H4zemaandag 5 maart 2007 @ 20:17
    Ik heb sinds kort de kracht van object georienteerd programmeren in PHP ontdekt Ik heb al wel aardig wat ervaring met OOP in Java, maar ik dacht altijd dat 't voor PHP een beetje doelloos was. Maar zeker voor de wat grotere projecten is het zeer geschikt
    mscholmaandag 5 maart 2007 @ 21:28
    quote:
    Op maandag 5 maart 2007 20:17 schreef H4ze het volgende:
    Ik heb sinds kort de kracht van object georienteerd programmeren in PHP ontdekt Ik heb al wel aardig wat ervaring met OOP in Java, maar ik dacht altijd dat 't voor PHP een beetje doelloos was. Maar zeker voor de wat grotere projecten is het zeer geschikt
    ik heb voor school wel eens met OOP moeten werken, maar i.p.v. overzichtelijker werd het alleen maar onoverzichtelijker, je had een functie die 20x naar iets anders verwees voordat hij daadwerkelijk de functie aanriep
    H4zemaandag 5 maart 2007 @ 21:50
    quote:
    Op maandag 5 maart 2007 21:28 schreef mschol het volgende:

    [..]

    ik heb voor school wel eens met OOP moeten werken, maar i.p.v. overzichtelijker werd het alleen maar onoverzichtelijker, je had een functie die 20x naar iets anders verwees voordat hij daadwerkelijk de functie aanriep
    Dan heb je 't niet goed uitgedacht Ik ben op m'n stage op 't moment bezig met een groot PHP project. Alle modules die ik ontwikkel, werk ik eerst uit in UML. Met een goed ontwerp kun je zeer efficient OO programmeren.
    super-muffindinsdag 6 maart 2007 @ 11:47
    Gaat er nog iemand een artikel schrijven over OOP in PHP?
    Geqxondinsdag 6 maart 2007 @ 11:57
    Ik heb weer een leuke:

    Een simpele query. Tabel met vier kolommen, eerst gesorteerd op A, daarna op B en daarna op C. D is een extra kolom, met een los attribuut. Nu hoeft er niet op D gestorteerd te worden, tenzij D lager dan 16 is. Dan moet D helemaal bovenaan de searchresults komen.

    In PHP is dat op te vangen door twee query's te gebruiken, maar kan dit niet gewoon al direct in de query zelf?
    Hmaildinsdag 6 maart 2007 @ 12:00
    quote:
    Op dinsdag 6 maart 2007 11:47 schreef super-muffin het volgende:
    Gaat er nog iemand een artikel schrijven over OOP in PHP?
    Daar zijn volgens mij al genoeg artikelen over geschreven

    Maar het is echt ontzettend handig, dat OOP. Voordat ik voor FOK! dev-te maakte ik er nauwelijks gebruik van, maar zeker met een site als FOK! moet je haast wel OOP gebruiken om onderdelen soepel met elkaar te laten samenwerken. En dat maakt het programmeren heerlijk, je hoeft niet na te denken over allerlei functies die met elkaar moeten samenwerken, fantastisch.

    Misschien dat ik nog wel eens een stukje op de dev-weblog kan schrijven
    Hmaildinsdag 6 maart 2007 @ 12:09
    quote:
    Op dinsdag 6 maart 2007 11:57 schreef Geqxon het volgende:
    Ik heb weer een leuke:

    Een simpele query. Tabel met vier kolommen, eerst gesorteerd op A, daarna op B en daarna op C. D is een extra kolom, met een los attribuut. Nu hoeft er niet op D gestorteerd te worden, tenzij D lager dan 16 is. Dan moet D helemaal bovenaan de searchresults komen.

    In PHP is dat op te vangen door twee query's te gebruiken, maar kan dit niet gewoon al direct in de query zelf?
    Je zou kunnen proberen om met IF in je query te gaan werken. Dus IF d < 16 THEN ORDER BY d ELSE ORDER BY a, b, c END IF. Ik heb geen kant en klare query bij de hand, maar ik denk dat je in die richting moet zoeken
    Daarnaast weet ik eigenlijk niet precies hoeveel load dat op je mysql-server geeft, dus het zou kunnen zijn dat het sneller is om het in php te verwerken
    Roonaandinsdag 6 maart 2007 @ 12:26
    quote:
    Op maandag 5 maart 2007 21:50 schreef H4ze het volgende:

    [..]

    Dan heb je 't niet goed uitgedacht Ik ben op m'n stage op 't moment bezig met een groot PHP project. Alle modules die ik ontwikkel, werk ik eerst uit in UML. Met een goed ontwerp kun je zeer efficient OO programmeren.
    Kijk in dat kader ook even naar Zend Framework.
    Roonaandinsdag 6 maart 2007 @ 12:28
    quote:
    Op dinsdag 6 maart 2007 12:09 schreef Hmail het volgende:

    [..]

    Je zou kunnen proberen om met IF in je query te gaan werken. Dus IF d < 16 THEN ORDER BY d ELSE ORDER BY a, b, c END IF. Ik heb geen kant en klare query bij de hand, maar ik denk dat je in die richting moet zoeken
    Daarnaast weet ik eigenlijk niet precies hoeveel load dat op je mysql-server geeft, dus het zou kunnen zijn dat het sneller is om het in php te verwerken
    Idd, iets als:

    SELECT IF(d < 16, 0, 1) as d_low, a, b, c FROM TABLE ORDER BY d_low, a, b, c, d
    Hmaildinsdag 6 maart 2007 @ 12:37
    quote:
    Op dinsdag 6 maart 2007 12:28 schreef Roonaan het volgende:

    [..]

    Idd, iets als:

    SELECT IF(d < 16, 0, 1) as d_low, a, b, c FROM TABLE ORDER BY d_low, a, b, c, d
    hehe, you beat me Ik vond mijn query nog aardig gevonden
    Geqxondinsdag 6 maart 2007 @ 13:15
    Maar die (d < 16), op welke D slaat dat? Want in mijn tabel zijn er 1600 records, het is niet alsof ik maar een enkel record tevoorschijn tover
    Roonaandinsdag 6 maart 2007 @ 13:42
    quote:
    Op dinsdag 6 maart 2007 13:15 schreef Geqxon het volgende:
    Maar die (d < 16), op welke D slaat dat? Want in mijn tabel zijn er 1600 records, het is niet alsof ik maar een enkel record tevoorschijn tover
    Die d is een veld van je record.
    Geqxondinsdag 6 maart 2007 @ 14:06
    Ik krijg het gevoel dat ik het niet 100% begrijp. Zelf wil ik het in de trant van:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    +-------+-------+-------+-------+
    |   A   |   B   |   C   |   D   |
    +-------+-------+-------+-------+
    |   D**   |   I**   |   2**   |   4   |
    |   A**   |   E**   |   1**   |   120   |
    |   P**   |   Q**   |   1**   |   133   |
    |   P**   |   R**   |   2**   |   159   |
    |   Z**   |   H**   |   1**   |   141   |
    +-------+-------+-------+-------+


    Dus sorteren op A, gevolgd door B en daarna C. Niet op D sorteren, tenzij deze lager dan 16 is, dan moet deze bovenaan de resultaten. Werkt deze IF statement niet per rij, in plaats van in het geheel?
    ralfiedinsdag 6 maart 2007 @ 15:01
    1IF (d <16,0,1) AS d_low
    Dit betekent simpelweg dat als de 'd' van die rij kleiner is als 16, dat d_low dan 0 wordt, anders wordt die 1. Door nu eerst te sorteren op deze uitkomst, krijg je eerst alle rijen waar 'd' kleiner is als 16, en daarna alle rijen waar 'd' groter is als 16. En dat was dacht ik wat je wilde

    1SELECT *,IF(d<16,0,1) AS d_low FROM table ORDER BY d_low,A,B,C


    geeft dan

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    +------+------+------+------+-------+
    | A    | B    | C    | D    | d_low |
    +------+------+------+------+-------+
    | D**  | I**  | 2**  |    4 |   0   |
    | A**  | E**  | 1**  |  120 |   1   |
    | P**  | Q**  | 1**  |  133 |   1   |
    | P**  | R**  | 2**  |  159 |   1   |
    | Z**  | H**  | 1**  |  141 |   1   |
    +------+------+------+------+-------+
    5 rows in set (0.00 sec)


    [ Bericht 12% gewijzigd door ralfie op 06-03-2007 15:06:28 ]
    Geqxondinsdag 6 maart 2007 @ 15:24
    Dat is duidelijke praat, hij maakt simpelweg tijdelijk een extra kolom aan ,die 0 is if true en 1 if false, en sorteert daar op. Werkt prima, bedankt!
    mscholdinsdag 6 maart 2007 @ 15:40
    quote:
    Op maandag 5 maart 2007 21:50 schreef H4ze het volgende:

    [..]

    Dan heb je 't niet goed uitgedacht Ik ben op m'n stage op 't moment bezig met een groot PHP project. Alle modules die ik ontwikkel, werk ik eerst uit in UML. Met een goed ontwerp kun je zeer efficient OO programmeren.
    ik heb het uitgedacht zoals het moest van de docenten..
    Swetseneggerdinsdag 6 maart 2007 @ 15:59
    Query vraagje.
    Als ik nu een tabel heb met een veld initialen en een veld achternaam. En die wil ik vervolgens selecteren als naam.

    SELECT (intialen, achternaam) AS naam FROM tabel

    werkt in ieder geval niet
    Roonaandinsdag 6 maart 2007 @ 16:05
    SELECT CONCAT(initialen, " ", achternaam) AS naam FROM tabel.

    Waar laat je overigens je tussenvoegsel?

    Note: is het construeren van een naamsweergave uit onderdelen een data niveau kwestie of een template kwestie?
    Swetseneggerdinsdag 6 maart 2007 @ 16:24
    quote:
    Op dinsdag 6 maart 2007 16:05 schreef Roönaän het volgende:
    SELECT CONCAT(initialen, " ", achternaam) AS naam FROM tabel.
    Bedankt! Helaas werkt dit niet met Access, maar wel met de & operator
    quote:
    Waar laat je overigens je tussenvoegsel?
    Hoe bedoel je?
    quote:
    Note: is het construeren van een naamsweergave uit onderdelen een data niveau kwestie of een template kwestie?
    eh... beide
    ViPeRIIdinsdag 6 maart 2007 @ 16:58
    Hi,

    Heb een probleem met een functie:
    de input komt uit een textarea en is b.v.:
    Home
    *test
    +menu
    -tje
    Contact
    Extra

    Alles met enters er achter n naar ik aanneem.

    Nu heb ik hier een functie, die code moet opbouwen voor een menu:
    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
    <?php
    function make_menu_data_2($data)
    {
       $menus1 = explode("n", $data);
       $menus = str_replace("n","",$menus1);
       print_r($menus);
       $aantal = count($menus);
       $menu = "var MENU_ITEMS = [n";
       for ($i = 0; $i < $aantal; $i++) 
       {      
       $menu .= "['";

       if ($menus[$i][0] == "*")
       {
       $menu .= str_replace("*","",$menus[$i]) . "', null, null,n";
       }
       else
       {
       if ($menus[$i][0] == "+")
       {
       $menus[$i] = str_replace("+", "", $menus[$i]);
       $menu .= $menus[$i] . "','page=" . str_replace(" ","",$menus[$i]) . "'],n";
                         }
       else
       if ($menus[$i][0] == "-")
       {
       $menus[$i] = str_replace("-", "", $menus[$i]);
       $menu .= $menus[$i] . "','page=" . str_replace(" ","",$menus[$i]) . "']n],n";
                         }
       else
       {
       $menu .= $menus[$i] . "','page=" . str_replace(" ","",$menus[$i]);
       $menu .= "'],n";
       }
                }
      }
    $menu .= "n];";

    $code = $menu;
    return $code;
    }
    ?>

    Volgens mij zou de output:
    var MENU_ITEMS = [
    ['Home','page=Home'],
    ['test', null, null,
    ['menu','page=menu'],
    ['tje','page=tje']
    ],
    ['Contact','page=Contact'],
    ['Extra','page=Extra'],

    ];

    moeten zijn (zoals ik het ook hebben moet, maar hij maakt er:
    var MENU_ITEMS = [
    ['Home
    ','page=Home
    '],
    ['test
    ', null, null,
    ['menu
    ','page=menu
    '],
    ['tje
    ','page=tje
    ']
    ],
    ['Contact
    ','page=Contact
    '],
    ['Extra','page=Extra'],

    ];

    van. zie iemand de fout in mijn code?

    Als hij er uit komt als het 2e voorbeeld, doet mijn code het niet.
    Het is belangrijk dat het er uit komt als: ['Extra','page=Extra'],
    en niet als
    ['Extra',
    'page=Extra'],

    Hopelijk heeft iemand een idee
    Swetseneggerdinsdag 6 maart 2007 @ 17:12
    onder windows is \r\n
    h.henkiedinsdag 6 maart 2007 @ 17:20
    Hoi
    Ik heb het volgende. Op deze pagina heb ik een upload scriptje staan met 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
    <?php
    <form name="upload formulier" enctype="multipart/form-data" method="post" action=" echo $_SERVER['PHP_SELF']; ">
      <
    input type="file" name="source_file">
      <
    br>
      <
    input type="submit" name="submit" value="Submit">
    </
    form><br />

      

    error_reporting(E_ALL);  

    if(isset(
    $_POST['submit'])) {  
        
    $size $_FILES['source_file']['size'];// / 1024 / 1024   om naar MB te gaan. 
        
    $size round($size2);  
        echo 
    "Het volgende bestand wordt geupload:<br />"
        echo 
    "Naam: '" $_FILES['source_file']['name'] . "'<br />"
        echo 
    "Grootte: '" $size " Bytes'<br />"
        echo 
    "<b>tmp_name:</b> '" $_FILES['source_file']['tmp_name'] . "'<br />"
        echo 
    "de upload wordt verwerkt...<br />"

        
    //Variabelen definiëren
        
    $ftp_server "ftp.edek.nl";  
        
    $ftp_user_name "hromiz";  
        
    $ftp_user_pass "XXXXXX";
        
    $source_file $_FILES['source_file']['tmp_name'];  
        
    $destination_file 'rooster/bestand/'.$_FILES['source_file']['name'];  
        echo 
    $destination_file."<br>"

        
    //Maak een basis connectie aan
        
    $conn_id ftp_connect($ftp_server);  
        
    ftp_pasv($conn_id,TRUE);  

        
    //Meldt je aan met een gebruikersnaam en wachtwoord
        
    $login_result ftp_login($conn_id$ftp_user_name$ftp_user_pass);  

         
    //Controleer de verbinding
        
    if ((!$conn_id) || (!$login_result)) {  
            echo 
    "FTP connectie is mislukt!<br />";  
            echo 
    "Probeerde naar '" $ftp_server "' te verbinden met de gebruiker '" $ftp_user_name "'<br />";  
            exit;  
        } else {  
            echo 
    "Verbonden met '" $ftp_server "', als gebruiker '" $ftp_user_name "'<br />";  
        }  
       
     
    //Upload een bestand
        
    $upload ftp_put($conn_id$destination_file$source_fileFTP_BINARY);  
     
     
    //Controleer de upload status
        
    if (!$upload) {  
            echo 
    "FTP upload is mislukt!<br />";  
        } else {  
            echo 
    "<b>Geupload: '" $source_file "' naar '" $ftp_server "' als '" $destination_file "'</b><br />";  
        }  
        
    //Sluit de FTP stream
        
    ftp_close($conn_id);  
    }  
    ?>


    Ik krijg bij de link de fout melding:
    quote:
    Warning: ftp_put() [function.ftp-put]: rooster/bestand/license.txt: The system cannot find the path specified. in c:domainsedek.nlwwwrootrooster1.php on line 46

    Als ik dit script op mijn prive webserver zet werkt het wel. (ook van buitenaf)

    Wie weet waar de fout zit? Voor mijn gevoel heeft het iets met rechten oid te maken.

    gegroet
    Geqxondinsdag 6 maart 2007 @ 17:24
    quote:
    Op dinsdag 6 maart 2007 16:24 schreef Swetsenegger het volgende:


    Hoe bedoel je?
    [..]

    eh... beide
    Hans van den Berg wordt in jouw voorbeeld "H. Berg"
    Swetseneggerdinsdag 6 maart 2007 @ 17:25
    quote:
    Op dinsdag 6 maart 2007 17:24 schreef Geqxon het volgende:

    [..]

    Hans van den Berg wordt in jouw voorbeeld "H. Berg"
    Ow ja, die kan ik er eventueel nog bij pakken. Maar niet van belang voor de toepassing.
    ViPeRIIdinsdag 6 maart 2007 @ 17:32
    @swetsenecker...

    Dus ik moet filteren op rn ?
    En wat bedoel je onder windows? De post data is onder een windows client anders dan onder een linux client of bedoel je server sided?
    H4zedinsdag 6 maart 2007 @ 20:56
    quote:
    Op dinsdag 6 maart 2007 15:40 schreef mschol het volgende:

    [..]

    ik heb het uitgedacht zoals het moest van de docenten..
    En dat was gewoon gaan zitten en coden zeker? Serieus, een goed ontwerp is het halve werk.
    Fliepkewoensdag 7 maart 2007 @ 09:17
    Ik heb wat items ingevoerd in een database en er is ook allemaal een tijd aan gekoppeld (0:00), maar ze moeten allemaal een tijd krijgen van 1 minuut later (0:01). Hoe maak ik een goede update query, zodat ze allemaal 60 unixtijdjes erbij krijgen?

    effe in pseudo code
    UPDATE `items`
    SET `start_date` +60

    Zoiets, maar hoe doe ik dat in het echt?
    Hmailwoensdag 7 maart 2007 @ 09:23
    UPDATE items SET start_date = start_date + 60
    Werkt dat niet?

    [ Bericht 0% gewijzigd door Hmail op 07-03-2007 09:33:31 ]
    Geqxonwoensdag 7 maart 2007 @ 09:51
    quote:
    Op woensdag 7 maart 2007 09:23 schreef Hmail het volgende:
    UPDATE items SET start_date = start_date + 60
    Werkt dat niet?
    Zou moeten werken, heeft het hier zojuist prima gedaan
    Fliepkewoensdag 7 maart 2007 @ 10:05
    Zo simpel
    Jezus, ik durfde het al niet te proberen
    Geqxonwoensdag 7 maart 2007 @ 10:30
    Twee vraagjes:

    Ik wil net zo tof als Fok! niet meer met index.php?page=25, maar met "www.website.tld/index/25". Kan dit met enkel PHP, of heb ik daar ook een .htaccess aanpassing voor nodig?
    super-muffinwoensdag 7 maart 2007 @ 10:40
    Dat kan met htaccess:

    1
    2
    RewriteEngine On
    RewriteRule ^/index/([0-9]+)$ http://www.website.tld/index.php?page=$1.php

    Zo iets.
    super-muffinwoensdag 7 maart 2007 @ 10:49
    En nu we toch met .htaccess bezig zijn :
    Ik wil de .htaccess bewerken via een web form, dus daar schrijf ik een functie voor:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <?php
    function writeHtaccess($file, $content, $permission) {
        if(
    file_exists($file) || is_writable($file)) {
            
    $htaccess = fopen($file, $permission) or die ("kan bestand niet openen");
            
    fwrite($file, $concent);
            
    fclose($htaccess);
        } else {
            echo
    'het bestand <strong>' . $file . '</strong> kan niet gevonden of bewerkt worden!';
        }
    }

    writeHtaccess(".htaccess", "boeh", "w+");
    ?>

    Maar ik krijg een foutmelding op lijn 5, invalid argument voor frwrite. Maar volgens de specs op php.net klopt het wel. En het .htacces (of een .txt bestand) word wel geleegd, er staat na 1 keer toepassen van de functie niks meer in.
    Tiemiewoensdag 7 maart 2007 @ 10:55
    verander het eens naar fwrite($htaccess, $content);

    je write namelijk naar een string waar de bestandsnaam instaat ipv naar de resource-handle
    super-muffinwoensdag 7 maart 2007 @ 11:01

    stom van me. Ach, het is nog vroeg
    Geqxonwoensdag 7 maart 2007 @ 15:44
    quote:
    Op woensdag 7 maart 2007 10:40 schreef super-muffin het volgende:
    Dat kan met htaccess:
    [ code verwijderd ]

    Zo iets.
    Bedankt! En dan nu mijn tweede vraag:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <?php
    $expires
    = $date - time();
    if (
    $expires > 0){
        
    $exhours = str_pad(floor($expires / 3600), 2, "0", STR_PAD_LEFT);
        
    $expires = $expires % 3600;
        
    $exminutes = str_pad(floor($expires / 60), 2, "0", STR_PAD_LEFT);
        
    $expires = $expires % 60;
        
    $exseconds = str_pad($expires, 2, "0", STR_PAD_LEFT);
        
    $expires = $exhours.":".$exminutes.":".$exseconds;
    }
    else {
        
    $expires = "<b>Expired</b>";
    }
    ?>


    Goed, dit pakt het aantal seconden tot en met $date, en laat dat keurig in een 23:59:59 (uur, minuut, seconde) formaat zien. Imho omslachtig.

    Heeft PHP hier niet één of andere hippe functie voor? Een variant op date is eigenlijk wat ik zoek. Alvast bedankt
    CraZaaywoensdag 7 maart 2007 @ 16:11
    strftime() ?
    Geqxonwoensdag 7 maart 2007 @ 16:34
    Ik zoek eerder een direct manier om het aantal minuten / seconden / uren die binnen een X aantal seconden de extracten. strftime doet meer hetzelfde als date.
    CraZaaywoensdag 7 maart 2007 @ 16:55
    Ik bedoelde overigens strtotime().
    Swetseneggerwoensdag 7 maart 2007 @ 18:11
    quote:
    Op dinsdag 6 maart 2007 17:32 schreef ViPeRII het volgende:
    @swetsenecker...

    Dus ik moet filteren op rn ?
    En wat bedoel je onder windows? De post data is onder een windows client anders dan onder een linux client of bedoel je server sided?
    Newlines verschillen per OS
    Onder windows is het \r\n, onder linux n

    \r\n is het veiligst.
    ralfiewoensdag 7 maart 2007 @ 20:14
    quote:
    Op dinsdag 6 maart 2007 17:32 schreef ViPeRII het volgende:
    @swetsenecker...

    Dus ik moet filteren op rn ?
    En wat bedoel je onder windows? De post data is onder een windows client anders dan onder een linux client of bedoel je server sided?
    makkelijkste is als je explode op "\r\n", dan worden al die newlines meteen gefiltert uit je input,heb je nergens meer last van, bijv

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    <?php
    function make_menu_data_2($data)
    {
       
    $menus explode("\r\n"$data);
       
    $out="var MENU_ITEMS = [\n";

       foreach(
    $menus as $x) {
          
    $out.="['";
          
    $y=substr($x,1);
          switch(
    $x[0]) {
          case 
    '*':
            
    $out.="$y', null, null ";
            break;
          case 
    '+':
            
    $z=str_replace(' ','',$y);
            
    $out.="$y', 'page=$z' ";
            break;
          case 
    '-':
            
    $z=str_replace(' ','',$y);
            
    $out.="$y', 'page=$z' ],\n";
            break;
          default:
            
    $z=str_replace(' ','',$x);
            
    $out.="$x', 'page=$z' ";
          }
          
    $out.="],\n";
       }
       return 
    "$out\n];";
    }
    ?>
    h.henkievrijdag 9 maart 2007 @ 11:12
    quote:
    Op dinsdag 6 maart 2007 17:20 schreef h.henkie het volgende:
    Hoi
    Ik heb het volgende. Op deze pagina heb ik een upload scriptje staan met de volgende code:
    ...
    Probleem zelf opgelost. Stond een haakje verkeerd.
    splendorvrijdag 9 maart 2007 @ 16:57
    Hoe kun je met mysql in een subquery meerdere dingen selecteren?
    Bijvoorbeeld:
    SELECT *, (SELECT a,b FROM efg WHERE id =1) AS (a,b) FROM abc WHERE id = 1;
    Dit werkt niet, maar hoe moet het wel?
    smesjzvrijdag 9 maart 2007 @ 17:10
    Je kan toch een join gebruiken hiervoor?
    splendorvrijdag 9 maart 2007 @ 17:17
    Ik zal de hele query even geven.. het probleem is namelijk dat ik al een JOIN erin heb zitten mét een GROUP BY.. dus nóg een join zou dan zijn eigen GROUP BY moeten hebben

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    SELECT t . * ,
    u.name AS author,
    COUNT( p.id ) AS cntPosts, (
     SELECT lastUpdate
     FROM r2_posts
     WHERE topicID = t.id
     ORDER BY lastUpdate
     LIMIT 0 , 1
    ) AS lastUpdate
    FROM r2_topics t
    LEFT JOIN r2_posts p ON p.topicID = t.id
    LEFT JOIN si_users u ON u.id = t.userID
    WHERE t.deleted =0
    AND t.forumID =2
    GROUP BY t.id
    ORDER BY lastUpdate


    Hij moet dus behalve lastUpdate nog een koppeling maken naar tabel users aan de hand van posts.userID = users.id en daar dus de naam van de persoon die de laatste post deed ophalen.
    Stijn1983vrijdag 9 maart 2007 @ 19:32
    quote:
    Op vrijdag 9 maart 2007 17:17 schreef splendor het volgende:
    Ik zal de hele query even geven.. het probleem is namelijk dat ik al een JOIN erin heb zitten mét een GROUP BY.. dus nóg een join zou dan zijn eigen GROUP BY moeten hebben
    [ code verwijderd ]

    Hij moet dus behalve lastUpdate nog een koppeling maken naar tabel users aan de hand van posts.userID = users.id en daar dus de naam van de persoon die de laatste post deed ophalen.
    Het moet weer ingewikkeld hoor, voor onze mister Splendor. Je moet gewoon een tweede subquery maken, je kan namlijk niet meerdere resultaten in 1 subquery terug krijgen. Lees dit namelijk maar eens:
    quote:
    A scalar subquery is a simple operand, and you can use it almost anywhere a single column value or literal is legal, and you can expect it to have those characteristics that all operands have: a data type, a length, an indication whether it can be NULL, and so on.
    Bron: mysql.com (http://dev.mysql.com/doc/refman/5.0/en/scalar-subqueries.html)
    mscholzaterdag 10 maart 2007 @ 09:47
    klein vraagje:
    ik heb een kleine template parser:
    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
    <?php

    class templateParser
    {
        var
    $output;
        function
    templateParser($templateFile='default_template.htm')
        {
          (
    file_exists($templateFile))?$this->output=file_get_contents($templateFile):die('Error:Template file '.$templateFile.' not found');
        }

        function
    parseTemplate($tags=array())
        {
              if(
    count($tags)>0)
              {
                   foreach(
    $tags as $tag=>$data)
                   {
                   
    $data=(file_exists($data))?$this->parseFile($data):$data;
                   
    $this->output=str_replace('{'.$tag.'}',$data,$this->output);
                   }
              }
              else
              {
                   die(
    'Error: No tags were provided for replacement');
              }
        }
        
        function
    parseFile($file)
        {
              
    ob_start();
              include(
    $file);
              
    $content=ob_get_contents();
              
    ob_end_clean();
              return
    $content;
        }

        function
    display()
        {
              return
    $this->output;
        }
    }
    ?>


    die roep ik alsvolgt aan:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    <?php


    // include the class

    require_once('templateparser.php');
    require_once(
    '../includes/functions.inc');
    $con = mysql_connect($cfg['DB_host'],$cfg['DB_user'],$cfg['DB_pass']) or die(mysql_error());
    mysql_select_db($cfg['DB_DB'],$con) or die(mysql_error());

    // instantiate a new template Parser object
    $tp=&new templateParser('index.html');

    // define parameters for the class
    $tags=array(
    'title'=>'You are seeing the template parser class in action!',
    'sitename'=>$_SERVER['HTTP_HOST'],
    'utility'=>'utility.php',
    'maincontent'=>'content.php',
    'footer'=>'footer.php',
    'navGlobalbar'=>'navGlobalBar.php',
    'navSubBar'=>'navSubBar.php',
    'SiteInfo'=>'<a href="#">About Us</a> | <a href="#">Site Map</a> | <a href="#">Privacy Policy</a> | <a href="#">Contact Us</a> | ©2003 Company Name ');

    // parse template file

    $tp->parseTemplate($tags);

    // display generated page

    echo $tp->display();
    ?>

    nu woerdt er in navGlobalBar.php de variable $nums aangemaakt, echter heb ik die variable ook nodig in navSubBar.php
    is het mogelijk om die variable beschikbaar te maken voor dat 2de bestand?

    anders moet ik een rits querie's opnieuw uitvoeren in het 2de bestand, das performance techniesch niet echt handig
    splendorzaterdag 10 maart 2007 @ 09:50
    quote:
    Op vrijdag 9 maart 2007 19:32 schreef Stijn1983 het volgende:

    [..]

    Het moet weer ingewikkeld hoor, voor onze mister Splendor. Je moet gewoon een tweede subquery maken, je kan namlijk niet meerdere resultaten in 1 subquery terug krijgen. Lees dit namelijk maar eens:
    [..]
    Jij ook hier.
    Maar waarom kan het dan wel met een subquery in een WHERE? Of is dit gewoon iets wat in SQL eventueel wel kan maar in MySQL (nog) niet?

    Overigens is het niet zo'n ramp.. ik wilde in 1 script alle topics lezen, post optellen van dat topic, laatste post de datum weergeven en ook nog de topicstarter van de laatste post uit de user tabel lezen.
    Nu laat ik de user gewoon weg, heb alleen de datum
    SkaterSamzaterdag 10 maart 2007 @ 13:59
    Ik ben een database class aan het schrijven, om te kijken in hoeverre ik database gerelateerde code efficienter kan inzetten in mijn code. Nu heb ik daarbij de volgende vraag: hoeveel functies heb je minimaal nodig eigenlijk ? Ik heb nu de volgende:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <?php
    class DBclass {
      function 
    dbConnect($host$user$pass) {}
      function 
    dbSelect($selectedDB) {}
      function 
    checkConnection() {} // Controleer de opgezette verbinding met de DB
      
    function query($query) {}
      function 
    checkQueryResource($resource) {} // Controleer de result van de query
      
    function fetch($resource) {} // mysql_fetch_assoc()
      
    function result($this->queryResource) {} // mysql_result()
      
    function dbClose() {}
      function 
    checkError() {} // Controleer en output de gegeven errors
    }
    ?>

    Ben ik nog belangrijke functies vergeten, of ben ik juist te ver doorgeschoten ?

    edit [18.27]: Nevermind de tweede vraag...

    [ Bericht 6% gewijzigd door SkaterSam op 10-03-2007 18:27:25 ]
    SkaterSamzaterdag 10 maart 2007 @ 16:56
    edit: laat maar... ik was een beetje dom
    Tiemiezaterdag 10 maart 2007 @ 16:58
    haal je de hele query door mysql_real_escape_string?

    je kunt beter iedere variabele apart door mysql_real_escape_string halen

    dus

    1
    2
    3
    4
    5
    6
    7
    8
    $query = "
      SELECT 
        u.name, 
        u.id
      FROM user AS u
      WHERE 
        u.id = ".mysql_real_escape_string($id)."
    ";
    SkaterSamzaterdag 10 maart 2007 @ 17:00
    quote:
    Op zaterdag 10 maart 2007 16:58 schreef Tiemie het volgende:
    je kunt beter iedere variabele apart door mysql_real_escape_string halen
    Ja, ik besefte het net pas... Een beetje dom...

    Nu even kijken of ik iets kan schrijven die dat soort dingen in de query automatisch escaped...

    edit [18.29]: een beetje van mijzelf en een beetje van Maggi...

    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
      
    function escapeQuery($query) {
      
        
    // Haal de argumenten op
        
    $this->arguments = func_get_args();
        
        
    // Het eerste resultaat is de query
        
    $this->query = array_shift($this->arguments);
        
        
    // Loop door de resterende elementen en geef ze een corresponderend nummer
        
    foreach ($this->arguments as $index => $name) {
          
    $this->arguments[$index+1] = $name;
        }

        
    // Loop nogmaals door de resultaten en vervang de nummers met de escaped waarden
        
    foreach ($this->arguments as $number => $value) {
          
    $this->query = str_replace(":$number", "'" . mysql_real_escape_string($value) . "'", $this->query);
        }
        
        
    // Return de schoongemaakte query
        
    return $this->query;
        
      }
    ?>

    Die spreek je dus alsvolgt aan, je maakt een query, waarbij je alle escaped waarden in numerieke volgorde zet (:1, :2, etc...) en vervolgens doe je met $this->prepareQuery($query, $arg1, $arg2) en dan heeft die hem geescaped. Alleen jammer dat het niet werkt voor dingen als Tabel namen (als je die al buiten de query heb gedefinieerd in een variabele en deze variabele gebruikt in plaats van de naam (eg. SELECT * FROM $tabel)...

    Ik zit trouwens wel een beetje een monoloog te houden

    [ Bericht 21% gewijzigd door SkaterSam op 10-03-2007 18:29:12 ]
    ralfiezaterdag 10 maart 2007 @ 20:10
    quote:
    Op zaterdag 10 maart 2007 09:47 schreef mschol het volgende:
    klein vraagje:
    ik heb een kleine template parser:
    [ code verwijderd ]

    die roep ik alsvolgt aan:
    [ code verwijderd ]

    nu woerdt er in navGlobalBar.php de variable $nums aangemaakt, echter heb ik die variable ook nodig in navSubBar.php
    is het mogelijk om die variable beschikbaar te maken voor dat 2de bestand?

    anders moet ik een rits querie's opnieuw uitvoeren in het 2de bestand, das performance techniesch niet echt handig
    je zou in ParseFile() die variabele aan $GLOBALS toe kunnen voegen, dan in het tweede bestand eerst kijken of die bestaat, voordat die hem zelf probeert aan te maken.

    @skaterSam: Wat ik altijd handig vind in een db class is een functie die een simpele query uitvoert en alleen de eerste regel teruggeeft/danwel MYSQL_NUM_ROWS in het geval van een SELECT, of een MYSQL_AFFECTED_ROWS in het geval van een andere soort query, danwel false als de query mislukt is. Iets in de richting van
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <?php
    function simple_query$query$returnfirstrow=false) {
       if (
    strpos($query"SELECT")!==false)) $is_select=true;
       if( 
    $res=mysql_query($query) ) {
          if (
    $returnfirstrow && $is_select) return ( mysql_fetch_assoc($res) );
          else if(
    $is_select) return ( $x=mysql_num_rows($res) == false $x );
          else return  ( 
    $x=mysql_affected_rows($res) == false $x );
       }
       return 
    false;
    }
    ?>
    Niet getest overigens, maar je begrijpt de bedoeling wel denk ik. Niets is zaliger dan een DELETE query, of een SELECT query met LIMIT 1 uit te kunnen voeren door één simpele functie aan te roepen

    [ Bericht 72% gewijzigd door ralfie op 10-03-2007 20:22:44 ]
    smesjzzaterdag 10 maart 2007 @ 20:30
    quote:
    Op zaterdag 10 maart 2007 17:00 schreef SkaterSam het volgende:

    [..]

    Ja, ik besefte het net pas... Een beetje dom...

    Nu even kijken of ik iets kan schrijven die dat soort dingen in de query automatisch escaped...

    edit [18.29]: een beetje van mijzelf en een beetje van Maggi...
    [ code verwijderd ]
    Het feit dat je $this gebruikt betekent niet dat het automatisch ook OOP is en jouw code is daar weer een mooi voorbeeld van. Je gebruikt properties voor acties binnen een method die buiten de scope van de method niet meer gebruikt worden.

    Een voorbeeld daarvan is: $this->arguments = func_get_args();
    Die $arguments property heb je buiten deze method helemaal niet nodig, dus logischer was:
    $arguments = func_get_args();

    Idem met met de parameter $query, deze wordt meegegeven bij de aanroep maar verder nergens meer gebruikt.

    Handiger was denk ik dat je een $query property maakt binnen die class zodat je niet die $query hoeft over te gooien (via return bijv) binnen je class. Nu is het gewoon functioneel programmeren en is het toevallig een class omdat er class voor staat en niet omdat het iets met OO te maken heeft.
    SkaterSamzaterdag 10 maart 2007 @ 21:34
    quote:
    Op zaterdag 10 maart 2007 20:30 schreef smesjz het volgende:
    Handiger was denk ik dat je een $query property maakt binnen die class zodat je niet die $query hoeft over te gooien (via return bijv) binnen je class.
    Huh, hoe bedoel je "een query property binnen je class" ? Wat ik nu doe is het volgende, eerst escape ik die query met de functie, dan return ik hem in een variabele, die ik weer gebruik in de echte query. Maar als je het kan verhelderen, graag
    quote:
    Nu is het gewoon functioneel programmeren en is het toevallig een class omdat er class voor staat en niet omdat het iets met OO te maken heeft.
    Ja dat klopt denk ik ook wel. Ik denk dat het meeste in die class ook "gewoon" functies zijn. Ik ben er ook nog mee aan het experimenteren. Maar als je ook hier meer informatie over hebt (hoe zou dit er in OO hebben uitgezien ?) dan lees ik het graag.

    O, en ik wilde nog vragen of het nadelig was dat ik $this-> gebruikte ? Is het trouwens zo dat variabelen die je alleen binnen de scope van één functie (zoals $arguments dus) dus geen $this-> krijgen ?
    smesjzzondag 11 maart 2007 @ 10:00
    quote:
    Op zaterdag 10 maart 2007 21:34 schreef SkaterSam het volgende:

    Huh, hoe bedoel je "een query property binnen je class" ? Wat ik nu doe is het volgende, eerst escape ik die query met de functie, dan return ik hem in een variabele, die ik weer gebruik in de echte query. Maar als je het kan verhelderen, graag :)
    Ik bedoelde meer zoiets: (ff quick&dirty voor PHP5)
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    <?php
    class Database {
        
    private $query null

        
    private function prepareQuery() 
        {
           
    blabla();
           
    $query escpape_meuk_hier();
           
    $this->query $query;
        }

        
    public function execQuery($query
       {
        
    // Eerst escapen.
         
    $this->query $query;
         
    $this->prepareQuery();
         
    mysql_query($this->query);
       }


    }
    ?>


    Het kan natuurlijk ook nog op tig andere manieren, dit voorbeeldje laat alleen zien dat je door het gebruik van die query property (private $query) je niet meer 'return' hoeft te gebruiken.

    Verder is een database class al 100 keer in OO gemaakt voor PHP en met een beetje Google werk kan je daar genoeg voorbeelden van vinden.

    Als je error reporting aanze
    Ja dat klopt denk ik ook wel. Ik denk dat het meeste in die class ook "gewoon" functies zijn. Ik ben er ook nog mee aan het experimenteren. Maar als je ook hier meer informatie over hebt (hoe zou dit er in OO hebben uitgezien ?) dan lees ik het graag.

    O, en ik wilde nog vragen of het nadelig was dat ik $this-> gebruikte ? Is het trouwens zo dat variabelen die je alleen binnen de scope van één functie (zoals $arguments dus) dus geen $this-> krijgen ?
    [/quote]

    BIj het ontwikkelen van je code kan ik je aanraden om error_reporting(E_ALL); aan te zetten zodat PHP je zelf waarschuwt bij misbruik van $this .

    Je hebt zelf alle vrijheid om $this te gebruiken binnen je class, maar alles wat binnen de scope van een functie mag blijven (en dus nergens anders nodig is) hoeft geen $this er bij.

    Het beste kan je de OOP pagina's op php.net lezen, daar is het vrij goed uitgelegd: http://www.php.net/manual/en/language.oop5.php
    mscholzondag 11 maart 2007 @ 10:19
    quote:
    Op zaterdag 10 maart 2007 20:10 schreef ralfie het volgende:

    [..]

    je zou in ParseFile() die variabele aan $GLOBALS toe kunnen voegen, dan in het tweede bestand eerst kijken of die bestaat, voordat die hem zelf probeert aan te maken.
    ik heb in het eerste bestand, navGlobalBar.php, 2 globals toegewezen die ik nodig had, en die kon ik vervolgens aanroepen in het 2de bestand,
    Thnx voor het meedenk werk

    ik zelf zat eerst te klooien met global $var;
    JeRazondag 11 maart 2007 @ 11:47
    *bookmarked*
    Desdinovazondag 11 maart 2007 @ 12:06
    Ik heb een vraagje over de RewriteRules.. fok bijvoorbeeld heeft continue nieuwe topics, hoe blijven de rewrite rules up to date dan met de nieuwe topic nrs? wordt elke keer de .htaccess opnieuw geschreven of is er een trucje voor?
    super-muffinzondag 11 maart 2007 @ 12:19
    er is een truukje voor, er word een regex gebruikt :)
    1
    2
    RewriteEngine On
    RewriteRule ^/?([A-Za-z]+)$ http://www.danielpunt.nl/?p=$1.php

    Deze gebruik ik op mijn website.
    Desdinovazondag 11 maart 2007 @ 12:26
    aaah tof! merci
    SkaterSamzondag 11 maart 2007 @ 13:28
    quote:
    Op zondag 11 maart 2007 10:00 schreef smesjz het volgende:
    Ik bedoelde meer zoiets: (ff quick&dirty voor PHP5)
    [ code verwijderd ]

    Het kan natuurlijk ook nog op tig andere manieren, dit voorbeeldje laat alleen zien dat je door het gebruik van die query property (private $query) je niet meer 'return' hoeft te gebruiken.
    Ja, dat zou natuurlijk ideaal zijn! Ik had het echter op deze manier gedaan, omdat ik ook argumenten moet opgeven die vervangen moeten worden in de query (dus een :1 wordt bijvoorbeeld $obj_id), maar ik vond het handiger dat dit in twee stappen ging. Ik neem aan dat ik het bijvoorbeeld ook gewoon in de execQuery had kunnen zetten ($db->execQuery($query, $enkele_argumenten_ter_vervanging)), ik geloof dat jij iets dergelijks bedoelt. Want mijn vraag was hoe ik die vervangende argumenten in de prepareQuery function kreeg.

    edit [13.52]: Hmm, ik kan natuurlijk gewoon een statische array maken ofzo $db->replaceArguments = array($etc, $etc...) en die aanroepen...
    quote:
    Verder is een database class al 100 keer in OO gemaakt voor PHP en met een beetje Google werk kan je daar genoeg voorbeelden van vinden.
    Ja dat heb ik gezien, en hoewel ik daar ook naar kijk, probeer ik liever zelf een in elkaar te zetten natuurlijk, leerervaring enzo
    quote:
    BIj het ontwikkelen van je code kan ik je aanraden om error_reporting(E_ALL); aan te zetten zodat PHP je zelf waarschuwt bij misbruik van $this.
    Hmmm, ja dat kan, ik werk echter met een script die de Errorlog uitleest van Apache2. Dan krijg ik op mijn browserscherm altijd de laatste errors die Apache2 ontdekt. Maar ik weet niet zeker of de Errorlog alle errors die error_reporting(E_ALL) oppikt, ook pakt.

    [ Bericht 2% gewijzigd door SkaterSam op 11-03-2007 13:51:51 ]
    beertenzondag 11 maart 2007 @ 13:45
    Ik wil graag de volledige inhoud van alle bestanden op mijn webserver inlezen in een array.
    Dit wil ik gebruiken om een sitemap te maken. De pagina's/directory's worden vervolgens weergegeven op een pagina om ge(de)selecteerd te worden en wat overige opties.

    Maar hoe lees ik de volledige inhoud van de root uit en stop deze in een array?
    Ik dacht aan het volgende, maar dat werkt mooi niet! Sterker nog, als ik de functie aanroep wordt een bestand ter download aangeboden.
    Kan iemand me op weg helpen?

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    function readfilelist($dir)
     {
      if ($handle = opendir($dir)) 
       {
        // Dit is de juiste manier om door een directory te wandelen. 
        while (false !== ($file = readdir($handle))) 
         { if(is_dir($file))
          {
           readfilelist($file);
          }
          $file_arr[]= $file;
         }
        closedir($handle);
       }
      }
    smesjzzondag 11 maart 2007 @ 13:56
    quote:
    Op zondag 11 maart 2007 13:28 schreef SkaterSam het volgende:

    [..]

    Ja, dat zou natuurlijk ideaal zijn! Ik had het echter op deze manier gedaan, omdat ik ook argumenten moet opgeven die vervangen moeten worden in de query (dus een :1 wordt bijvoorbeeld $obj_id), maar ik vond het handiger dat dit in twee stappen ging. Ik neem aan dat ik het bijvoorbeeld ook gewoon in de execQuery had kunnen zetten ($db->execQuery($query, $enkele_argumenten_ter_vervanging)), ik geloof dat jij iets dergelijks bedoelt. Want mijn vraag was hoe ik die vervangende argumenten in de prepareQuery function kreeg.
    Je kan ook eens kijken naar de aanpak in PDO (>= php5.1): http://nl2.php.net/manual/en/ref.pdo.php

    Bijv:

    1
    2
    3
    4
    5
    6
    <?php
    $sth
    = $dbh->prepare('SELECT name, colour, calories
       FROM fruit
       WHERE calories < ? AND colour = ?'
    );
    $sth->execute(array(150, 'red'));
    ?>
    quote:
    Hmmm, ja dat kan, ik werk echter met een script die de Errorlog uitleest van Apache2. Dan krijg ik op mijn browserscherm altijd de laatste errors die Apache2 ontdekt. Maar ik weet niet zeker of de Errorlog alle errors die error_reporting(E_ALL) oppikt, ook pakt.
    Tijdens het ontwikkelen kan je het beste gewoon errors op je scherm weergeven ipv alleen een error log te gebruiken.
    Ik zou wel Apache errors (404s, 403s) scheiden van PHP logs. Die hebben niks met elkaar te maken.

    [ Bericht 3% gewijzigd door smesjz op 11-03-2007 13:56:53 (quote tag fix) ]
    SkaterSamzondag 11 maart 2007 @ 14:20
    Thanks smesjz! Ik ben misschien gewoon nog te veel bezig met functioneel programmeren en overgooien van waardes, terwijl dat dus ook anders kan. Het vergt even een andere manier van denken. Ik zal eens even kijken hoe ik mijn code nu kan aanpassen om het beter OO te maken, en beter te laten werken.

    edit [14.25]: Ik zie nu pas dat het volgende gebeurt: $dbh->prepare() wordt opgeslagen in $stmt en deze wordt vervolgens gebruikt voor de rest. Hoe werkt dit dan ? Neemt $stmt de class eigenschappen over ofzo ?

    [ Bericht 12% gewijzigd door SkaterSam op 11-03-2007 14:33:44 ]
    ralfiezondag 11 maart 2007 @ 14:21
    quote:
    Op zondag 11 maart 2007 13:45 schreef beerten het volgende:
    Ik wil graag de volledige inhoud van alle bestanden op mijn webserver inlezen in een array.
    Dit wil ik gebruiken om een sitemap te maken. De pagina's/directory's worden vervolgens weergegeven op een pagina om ge(de)selecteerd te worden en wat overige opties.

    Maar hoe lees ik de volledige inhoud van de root uit en stop deze in een array?
    Ik dacht aan het volgende, maar dat werkt mooi niet! Sterker nog, als ik de functie aanroep wordt een bestand ter download aangeboden.
    Kan iemand me op weg helpen?
    [ code verwijderd ]
    deze functie werkt niet omdat hij in een oneindige lus raakt. Deze manier van directories uitlezen retourneert namelijk in elke directory ook een handle naar zijn parent directory (. en ..) waardoor php van parent naar child directory en vice versa blijft gaan tot hij ergens vast loopt. Daarnaast is het voor grote directories mogelijk dat php crashed omdat hij in een te diepe recursiviteit raakt (of hoe je dat ook zegt )

    Anyway, een paar van deze threads terug heeft iemand een functie gemaakt die zonder recursiviteit werkt gepost, dit kwam neer op het volgende:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <?php
    $dirstack
    =array('C:\\program files\\Apache group\\Apache2\htdocs');
    while(
    sizeof($dirstack)!=0) {
       
    $dir=array_shift($dirstack);
       if (
    $handle=opendir($dir)) {
          while(
    false!==($file=readdir($handle))) {
            if (
    $file=='.' || $file=='..') continue;
            if (
    is_dir($dir.'\\'.$file)) $dirstack[]=$dir.'\\'.$file;
            else
    $files[]=$dir.'\\'.$file;
          }
       }
    }
    ?>
    of zoiets
    mscholzondag 11 maart 2007 @ 14:24
    bestaat er een programma dat realtime kan refreshen zodra er een melding in bijvoorbeeld je errorlog bij komt (in linux kan je dit doen) echter onder windows zou ik het ook wel handig vinden als ik bijvoorbeeld de laatste 5 meldingen kan zien (in realtime)
    SkaterSamzondag 11 maart 2007 @ 14:33
    quote:
    Op zondag 11 maart 2007 14:24 schreef mschol het volgende:
    bestaat er een programma dat realtime kan refreshen zodra er een melding in bijvoorbeeld je errorlog bij komt (in linux kan je dit doen) echter onder windows zou ik het ook wel handig vinden als ik bijvoorbeeld de laatste 5 meldingen kan zien (in realtime)
    Die errorlog zit een file, misschien zou je iets met filemtime() kunnen doen, en dan vergelijken met de huidige datum ofzo ? Ik weet niet of je het echt realtime kan maken, want dan zou je in een constante stream moeten staan toch ? Ik heb zelf een script voor de Apache Errorlog die om de 60 seconden de errorlog uitleest en vervolgens de laatste 20 rijen pakt.
    Floxxxzondag 11 maart 2007 @ 16:40
    quote:
    Op zondag 11 maart 2007 14:33 schreef SkaterSam het volgende:

    [..]

    Die errorlog zit een file, misschien zou je iets met filemtime() kunnen doen, en dan vergelijken met de huidige datum ofzo ? Ik weet niet of je het echt realtime kan maken, want dan zou je in een constante stream moeten staan toch ? Ik heb zelf een script voor de Apache Errorlog die om de 60 seconden de errorlog uitleest en vervolgens de laatste 20 rijen pakt.
    volgens mij zoekt ie gewoon een editor die de file gewoon bijwerkt als deze gewijzigd wordt. ConTEXT is een editor die dit doet onder windows (moet je wel eerst minimizen, dan restoren, en dan geeft ie een melding dat de file gewijzigd is). Het is dus niet helemaal gelijk aan tail -f onder linux, maar het werkt wel
    mscholzondag 11 maart 2007 @ 17:23
    quote:
    Op zondag 11 maart 2007 16:40 schreef Floxxx het volgende:

    [..]

    volgens mij zoekt ie gewoon een editor die de file gewoon bijwerkt als deze gewijzigd wordt. ConTEXT is een editor die dit doet onder windows (moet je wel eerst minimizen, dan restoren, en dan geeft ie een melding dat de file gewijzigd is). Het is dus niet helemaal gelijk aan tail -f onder linux, maar het werkt wel
    ik ben dus eigenlijk opzoek naar een windows equivalent van tail -f (thnx, kwam eff niet meer op de naam )

    dat minimize en restore kan ik e.v.t. met dreamweaver ook doen

    --edit--

    doordat ik nu de naam weet, kon ik googlen:

    http://sourceforge.net/projects/tailforwin32/
    eens kijken of dat iets is..
    mscholzondag 11 maart 2007 @ 21:42
    shit mijn template parser vind de punten in domein namen niet leuk:
    zie [PHP/(My)SQL] voor dummies - Deel 40 daar mijn template parser..

    zodra ik http://home.mschol.eu/pagina.php intik als een url stikt mijn template parser met de volgende melding:
    1
    2
    3
    Warning: parsefile( | About Us | Site Map | Privacy Policy | Contact Us | ©2003 Company Name): failed to open stream: No error in d:wwwanime_argewebtemplatetemplateparser.php on line 29

    Warning: parsefile(): Failed opening '<a href='http://home.mschol.eu/pagina.php' target='_blank' ><img src='../images/valid-401.gif' alt='' /></a> | <a href='#'>About Us</a> | <a href='#'>Site Map</a> | <a href='#'>Privacy Policy</a> | <a href='http://tweakers.net'>Contact Us</a> | ©2003 Company Name' for inclusion (include_path='.;c:php4pear') in d:wwwanime_argewebtemplatetemplateparser.php on line 29


    hij wil dus de opgegeven string als bestand gaan behandelen, maar waarom weet ik niet

    --edit--

    oplossing gevonden:
    http://www.devshed.com/sh(...)ass-with-PHP-Part-I/
    en dan bij topic getting info from mysql .

    [ Bericht 10% gewijzigd door mschol op 12-03-2007 09:13:10 ]
    Swetseneggermaandag 12 maart 2007 @ 07:58
    quote:
    Op zondag 11 maart 2007 12:19 schreef super-muffin het volgende:
    er is een truukje voor, er word een regex gebruikt
    [ code verwijderd ]

    Deze gebruik ik op mijn website.
    Maar vlak ook de mogelijkheid van Multiviews niet uit.
    super-muffinmaandag 12 maart 2007 @ 13:16
    Wat bedoel je precies Swets?
    Fliepkemaandag 12 maart 2007 @ 13:42
    Ik postte laatst ongeveer dit en ik wilde deze count groeperen per dag. Zodat ik per dag weet hoeveel nieuws er is gepost.

    SELECT Count(*) FROM `items` WHERE type = 'nieuws'
    AND posttime BETWEEN 1167609600
    AND 1173657600

    Deze laatste regel kreeg ik als tip in het vorige topic, maar dat werkt niet. Ik moet dus vast nog een trucje uithalen, maar ik weet niet wat:
    GROUP BY FROM_UNIXTIME(timestamp, '%Y%m%d')
    Swetseneggermaandag 12 maart 2007 @ 14:22
    quote:
    Op maandag 12 maart 2007 13:16 schreef super-muffin het volgende:
    Wat bedoel je precies Swets?
    Met multiviews kan je de extentie weglaten dus www.domein.nl/pagina/index ipv www.domein.nl/pagina/index.php

    en je kan dan ook alles wat normaal met een ? achter je pagina komt dmv een / neerzetten.

    Zie bv http://www.123swets.com/archief/1 waar dus eigenlijk http://www.123swets.com/archief.php?id=1 staat
    Fliepkemaandag 12 maart 2007 @ 14:29
    quote:
    Op maandag 12 maart 2007 13:42 schreef Fliepke het volgende:
    Ik postte laatst ongeveer dit en ik wilde deze count groeperen per dag. Zodat ik per dag weet hoeveel nieuws er is gepost.

    SELECT Count(*) FROM `items` WHERE type = 'nieuws'
    AND posttime BETWEEN 1167609600
    AND 1173657600

    Deze laatste regel kreeg ik als tip in het vorige topic, maar dat werkt niet. Ik moet dus vast nog een trucje uithalen, maar ik weet niet wat:
    GROUP BY FROM_UNIXTIME(timestamp, '%Y%m%d')
    Ik heb nu dit maar dan krijg ik eigenlijk niks
    SELECT Count( * ), day(posttime) AS blaat
    FROM `items`
    WHERE TYPE = 'nieuws'
    AND posttime
    BETWEEN 1167609600
    AND 1173657600
    GROUP BY day( posttime )

    (dit dus
    Count( * ) blaat
    874 NULL )
    Hmailmaandag 12 maart 2007 @ 14:43
    1
    2
    3
    4
    5
    6
    7
    8
    [14:34:26] <Hmail> SELECT Count( id ) , day( FROM_UNIXTIME( posttime ) ) AS blaat
    [14:34:26] <Hmail> FROM `items`
    [14:34:26] <Hmail> WHERE TYPE = 'nieuws'
    [14:34:26] <Hmail> AND posttime
    [14:34:26] <Hmail> BETWEEN 1167609600
    [14:34:26] <Hmail> AND 1173657600
    [14:34:26] <Hmail> GROUP BY blaat
    [14:34:26] <Hmail> LIMIT 0 , 30

    Dat dus
    Fliepkemaandag 12 maart 2007 @ 14:44
    hehe
    SkaterSammaandag 12 maart 2007 @ 14:48
    Even vraagje, als ik moet kiezen tussen md5() en sha1(), welke van de twee raden jullie dan aan ? Ik heb helaas geen beschikking over hash()...
    Darkomenmaandag 12 maart 2007 @ 14:56
    md5
    Hmailmaandag 12 maart 2007 @ 15:05
    Ik zou idd ook voor md5 kiezen, maar alleen omdat ik daarmee bekend ben. Geen idee hoe het zit met performance, of ingewikkeldheid van parameters bij SHA1
    SkaterSammaandag 12 maart 2007 @ 15:18
    Behehe, dit staat ook echt in het commentaar voor sha1():
    quote:
    Note that the sha1 algorithm has been compromised and is no longer being used by government agencies.
    SkaterSammaandag 12 maart 2007 @ 15:44
    Als ik bijvoorbeeld een paar sessie variabelen heb:

    1
    2
    3
    $_SESSION['admin']['validated']['user']
    $_SESSION['admin']['validated']['token']
    $_SESSION['admin']['validated']['time']

    Kan ik deze allemaal tegelijkertijd leegmaken door een hogere stap te unsetten ? Zo dus:

    1unset($_SESSION['admin']['validated']);
    TheSeeker_NLmaandag 12 maart 2007 @ 15:49
    nevermind, fixed

    [ Bericht 96% gewijzigd door TheSeeker_NL op 12-03-2007 16:08:23 ]
    smesjzmaandag 12 maart 2007 @ 16:03
    quote:
    Op maandag 12 maart 2007 15:18 schreef SkaterSam het volgende:
    Behehe, dit staat ook echt in het commentaar voor sha1():
    Desondaks is sha1 nog veiliger dan MD5. Je kan via mhash module of hash (php5) veel meer hashing algoritmes aan dan bovengenoemde.
    Let wel op dat je problemen kan krijgen met compatibiliteit (zo snapt pam_mysql geen sha256 encryptie) en hetzelfde geldt bijv. voor Dovecot IMAP
    SkaterSammaandag 12 maart 2007 @ 16:38
    quote:
    Op maandag 12 maart 2007 16:03 schreef smesjz het volgende:
    Desondaks is sha1 nog veiliger dan MD5. Je kan via mhash module of hash (php5) veel meer hashing algoritmes aan dan bovengenoemde.
    Het vervelende is alleen dat ik verder geen rechten of niks heb op de server, ik heb mij maar te houden aan de instellingen van de server, dus ik kan wel kijken of die module er al op staat, maar anders wordt het toch sha1...
    SkaterSammaandag 12 maart 2007 @ 17:25
    Ik heb mijn database class nu zo geschreven dat je zo een query uitvoert:

    1
    2
    3
    4
    5
    $db->prepareQuery($query);
    $db->execQuery($obj_id);
    while($result = $db->fetch()) { 
      // echo of weet ik veel wat
    }

    Maar nu zie ik bijvoorbeeld bij PDO en andere classes ook dat ze het liever anders doen, dus dat een nieuwe instantie van een class in een variabele wordt gedaan, zoals dit:

    1
    2
    3
    4
    5
    $stmt = $db->prepareQuery($query);
    $stmt->execQuery($obj_id);
    while($result = $stmt->fetch()) { 
      // echo of weet ik veel wat
    }

    Ik vroeg me af wat het verschil tussen deze twee manieren van code was, en of het een dus betere praktijk is dan de ander. Ik weet in ieder geval (ik probeerde het even), dat je voor de tweede methode dus een nieuwe class moet maken (je scheid verbinding maken met uitvoeren) en dat je een nieuwe class instantieert (als je dan twee queries hebt, heb je dan ook een nieuwe class instantie nodig...?). Het lijkt me logisch om de tweede code te doen vanwege de scheiding van MySQL verbinding class met MySQL query uitvoeren class, maar zoals ik al aangaf verlies ik bepaalde functies uit de ene class die ik nodig heb bij de ander, en ben ik benieuwd wat er gebeurt als je twee instanties van dezelfde class hebt (twee queries...). Iemand (smesjz? )
    wipes66maandag 12 maart 2007 @ 18:15
    weet iemand of het mogelijk is om de 'extension' php_pdo_mysql.dll te laden in php? Mijn hosting is zo slim geweest om alleen sqlite2 drivers voor pdo beschibaar te stellen
    JeRamaandag 12 maart 2007 @ 20:27
    quote:
    Op maandag 12 maart 2007 15:18 schreef SkaterSam het volgende:
    Behehe, dit staat ook echt in het commentaar voor sha1():
    [..]
    En ook in het commentaar voor MD5, en in zekere mate met hoger belang omdat MD5 reduceert naar een hash met minder bits
    CraZaaydinsdag 13 maart 2007 @ 00:46
    quote:
    Op maandag 12 maart 2007 14:56 schreef Darkomen het volgende:
    md5
    Omdat? SHA1 is nog steeds veiliger dan MD5.
    wipes66dinsdag 13 maart 2007 @ 14:22
    quote:
    Op maandag 12 maart 2007 17:25 schreef SkaterSam het volgende:
    Ik heb mijn database class nu zo geschreven dat je zo een query uitvoert:
    [ code verwijderd ]

    Maar nu zie ik bijvoorbeeld bij PDO en andere classes ook dat ze het liever anders doen, dus dat een nieuwe instantie van een class in een variabele wordt gedaan, zoals dit:
    [ code verwijderd ]

    Ik vroeg me af wat het verschil tussen deze twee manieren van code was, en of het een dus betere praktijk is dan de ander.
    Ik zou de functie query() een class laten returnen zodat je met het resultaat verschillende dingen kan doen. :)
    1
    2
    3
    4
    5
    6
    7
    <?php
    $result
    = $db->query('SELECT name FROM news WHERE id = ?', $id);
    echo
    $result->numRows();
    while(
    $news = $result->fetchRow()) {
       echo
    $news->name;
    }
    ?>
    BlueCurldinsdag 13 maart 2007 @ 15:25
    ik heb zojuist op windows vista weer apache 2.0, php 5, mysql5.0 en pma 2.9.2 geinstalleerd en geconfigureerd. enkel als ik v mysql gui tools (query browser) naar mysql gaat is het geen probleem. me pagina's maken ook gewoon connectie met mysql en dit in php.ini allemaal gewoon de mysql extensies geladen. Das alles werkt. Enkel blijft PMA zeueren dat die mysql extensie niet geladen kan worden. ik heb hier naar gezocht maar enigste wat ik kan vinden is de dll en de lib van mysql toevoegen. dat is ook gewoon gedaan. maar pma blijft enkel zeuren...
    Geqxondinsdag 13 maart 2007 @ 16:48
    Ik werk hier met het verouderde osCommerce, onder PHP5. global_vars al aangezet (testomgeving > boeiend).

    Nu moet ik dus in elk PHP bestand HTTP_GET_VARS naar _GET (& POST) veranderen.

    1
    2
    perl -pi -e 's/HTTP_POST_VARS/_POST/g' *.php
    perl -pi -e 's/HTTP_GET_VARS/_GET/g' *.php


    Dit in elke map gaat goed, maar dan moet ik dus wel elke map in duiken. En aangezien dat er toch wel erg veel zijn.... iemand tips? Ik zit onder SSH met de linuxserver, draai als OS Mac OS X met TextMate.
    smesjzdinsdag 13 maart 2007 @ 17:18
    Beetje bash/perl script moet wel kunnen of evt. iets als:

    find -name '*.php' - exec perl -pi blabla {} ?
    Swetseneggerdinsdag 13 maart 2007 @ 17:23
    quote:
    Op dinsdag 13 maart 2007 16:48 schreef Geqxon het volgende:
    iemand tips?
    osCommerce upgraden is zeker te eenvoudig voor je?
    Geqxonwoensdag 14 maart 2007 @ 10:35
    quote:
    Op dinsdag 13 maart 2007 17:23 schreef Swetsenegger het volgende:

    [..]

    osCommerce upgraden is zeker te eenvoudig voor je?
    Ik heb de laatste versie al binnengehaald.
    Geqxonwoensdag 14 maart 2007 @ 11:10
    1
    2
    3
    4
    5
    for file in `find  /var/data/html/shop/ -name *.php -print `
    do
       perl -pi -e 's/HTTP_POST_VARS/_POST/g' $file
       perl -pi -e 's/HTTP_GET_VARS/_GET/g' $file
    done


    Heersend, werkt prima.
    Qunixwoensdag 14 maart 2007 @ 12:25
    Ik heb het volgende:
    1
    2
    3
    4
    5
    <?php
    $result
    = mysql_query("INSERT INTO t_relatiegids
    (relatiegids_bedrijfsnaam, relatiegids_telefoonnummer)
    VALUES('"
    . $bedrijfsnaam . "','" . $telefoonnummer . "');");
    ?>

    En als ik die $result laat zien in een echo, staat er een "1". Ik zie dan niet de hele zin met de juiste informatie in de variabelen. Kan dit wel in php?
    In ieder geval komt er ook niets in de database, er is iets fout in de query. Kan iemand me helpen?
    Hmailwoensdag 14 maart 2007 @ 12:29
    Nee, er gaat niets mis, je krijgt gewoon een 1, oftewel TRUE terug, je query is goed verlopen. Wat je nog kunt proberen is de query eerst in een string te zetten, en die te echo-en, waarschijnlijk zie je dan al de fout. Met mysql_error() kun je zien of er errors zijn.
    JeRawoensdag 14 maart 2007 @ 12:30
    - zie boven
    SvenMwoensdag 14 maart 2007 @ 12:34
    Hoi, dit is misschien niet het juiste topic om te reageren, maar misschien kunnen jullie mijn kleine probleem oplossen.
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    <script type="text/javascript">
       var idx = 1 ;
        var e1;
        function addBox ( parName ){
          if(idx == 1){
               e1 = document.createElement ( 'input' ) ;
               e1.name = 'taak_uren' + idx++ ;
               e1.type = 'text';
             e1.value = 'Aantal uren?';
             document.getElementById ( parName ).appendChild ( e1 ) ;
            } else {
                 document.getElementById ( parName ).removeChild ( e1 ) ;
               idx -- ;
          }
        }
    </script>

    Waar ik dus mee bezig ben is een functie maken om een textbox weer te laten geven op het moment dat ik een checkbox aanvink, heel leuk en aardig allemaal, het werkt allemaal ook, maar zodra ik iets toe wil voegen gaat het mis.

    Wat is toe wil voegen is
    1 e1.class = 'textbox' 
    Wannneer ik dat doe krijg ik in IE de fout "Object wordt verwacht". Iemand die bereid is om mij te helpen. Alvast Bedankt.
    SuperRembowoensdag 14 maart 2007 @ 13:22
    [Javascript] voor dummies deel 5 is een betere plaats

    Om een css class attribuut te zetten gebruik je e1.className = 'text'.
    (Verder ziet de functie er verre van logisch uit)
    SvenMwoensdag 14 maart 2007 @ 13:34
    Ah oke dank je wel, het werkt nu
    Qunixdonderdag 15 maart 2007 @ 13:58
    1
    2
    3
    4
    <?php
    $result
    = mysql_query("INSERT INTO t_nieuws(nieuws_titel, nieuws_bericht, nieuws_auteur, nieuws_email, nieuws_datum)
    VALUES('"
    .$titel."', '".$bericht."', '".$email."', NOW());") or die(mysql_error());
    ?>

    Hij geeft een error aan: Column count doesn't match value count at row .

    Ik snap niet wat er fout is, iemand een idee?
    Swetseneggerdonderdag 15 maart 2007 @ 14:04
    quote:
    Op donderdag 15 maart 2007 13:58 schreef Qunix het volgende:

    [ code verwijderd ]

    Hij geeft een error aan: Column count doesn't match value count at row .

    Ik snap niet wat er fout is, iemand een idee?
    je specificeert 5 kolommen terwijl je maar 3 waardes INSERT
    Qunixdonderdag 15 maart 2007 @ 14:06
    quote:
    Op donderdag 15 maart 2007 14:04 schreef Swetsenegger het volgende:

    [..]

    je specificeert 5 kolommen terwijl je maar 3 waardes INSERT
    Ah.. ik zie hem.. thanks.
    BlueCurldonderdag 15 maart 2007 @ 15:38
    quote:
    Op dinsdag 13 maart 2007 15:25 schreef BlueCurl het volgende:
    ik heb zojuist op windows vista weer apache 2.0, php 5, mysql5.0 en pma 2.9.2 geinstalleerd en geconfigureerd. enkel als ik v mysql gui tools (query browser) naar mysql gaat is het geen probleem. me pagina's maken ook gewoon connectie met mysql en dit in php.ini allemaal gewoon de mysql extensies geladen. Das alles werkt. Enkel blijft PMA zeueren dat die mysql extensie niet geladen kan worden. ik heb hier naar gezocht maar enigste wat ik kan vinden is de dll en de lib van mysql toevoegen. dat is ook gewoon gedaan. maar pma blijft enkel zeuren...
    niemand?
    JeRadonderdag 15 maart 2007 @ 16:00
    quote:
    Op donderdag 15 maart 2007 15:38 schreef BlueCurl het volgende:

    [..]

    niemand?
    Doe eens een phpinfo() en kijk eens of daar de juiste MySQL extensies tussen staan?
    BlueCurlvrijdag 16 maart 2007 @ 00:38


    je bedoelt dit ? snap al 1 en ander van php config en co maar nog nooit probs gehad met mysql erbij dus weet ook niet zo 1 2 3 precies waar dit aan kan liggen dus ik hoor het wel als me screenshot nutteloos is

    edit: linkje
    JeRavrijdag 16 maart 2007 @ 01:00
    quote:
    Op vrijdag 16 maart 2007 00:38 schreef BlueCurl het volgende:
    [afbeelding]

    je bedoelt dit ? snap al 1 en ander van php config en co maar nog nooit probs gehad met mysql erbij dus weet ook niet zo 1 2 3 precies waar dit aan kan liggen dus ik hoor het wel als me screenshot nutteloos is

    edit: linkje
    Heb je phpMyAdmin toevallig zo ingesteld dat hij gebruik wil maken van de MySQLi-extensie? (let op de 'i' )
    BlueCurlvrijdag 16 maart 2007 @ 07:32
    quote:
    Op vrijdag 16 maart 2007 01:00 schreef JeRa het volgende:

    [..]

    Heb je phpMyAdmin toevallig zo ingesteld dat hij gebruik wil maken van de MySQLi-extensie? (let op de 'i' )
    neen, heb ff php.ini opnieuw gedaan en alles werkt nu. Ik zal wel ergens wat verkeerds hebben gedaan, weet wel zeker! Later eens kijken wat want heb dat php.ini bestandje ff ergens anders gezet!

    maar iig bedankt voor de hulp
    splendorvrijdag 16 maart 2007 @ 13:56
    Ik heb een klein forum gemaakt en mensen de mogelijkheid gegeven om met [ B ] tekst bold te maken.. werkt allemaal best aardig maar wanneer iemand een aantal keren iets bold maakt en vervolgens de tag nooit sluit, zullen de volgende posts ook bold worden, dat moet natuurlijk niet.
    Wat is een goede manier om dit te doen?

    Ik zou natuurlijk het aantal [ B ] kunnen tellen en daarna evenveel < / strong > aan het einde van de post zetten maar dat is zo omslachtig.

    De functie ziet er zo uit trouwens:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    function makeTitlesInFieldBold($field) {
       $original = array(
                      "[B]",
                      "[b]",
                      "[/B]",
                      "[/b]",
                      "[I]",
                      "[i]",
                      "[/I]",
                      "[/i]"
                   );
       $replace = array(
                      "<strong>",
                      "<strong>",
                      "</strong>",
                      "</strong>",
                      "<em>",
                      "<em>",
                      "</em>",
                      "</em>"
                   );

       return str_replace($original, $replace, $field);
    }
    JeRavrijdag 16 maart 2007 @ 14:00
    @splendor

    De meest gebruikte manier om dit te doen (en zo wordt het hier ook in Replique gedaan) is door regular expressions te gebruiken. Je kunt dan ongeveer zo tags verwerken:

    1
    2
    3
    4
    <?php
    $tekst 
    preg_replace('#[b](.*)[/b]#Uis''<b>$1</b>'$tekst);
    // Let op: bug in Replique, er staan backslashes in bovenstaande regel
    ?>


    Dit zorgt ervoor dat tags áltijd in tweetallen moeten voorkomen, maar je krijgt er weer wel andere bugs door. Bijvoorbeeld door de tags [b]door elkaar[/b] te gebruiken (quote me om het te zien).

    Een andere methode is een stackbased UBB-parser, dit vereist echter wel wat meer code maar is uiteindelijk robuuster. Hier kun je denk ik genoeg over vinden met google
    splendorvrijdag 16 maart 2007 @ 14:01
    Dankje, zoiets zocht ik inderdaad.
    En nu zou het ook mogelijk moeten zijn om urls erin te verwerken, dan wat was met mijn functie ook niet echt te doen.

    Die bug vind ik overigens geen echte bug.. iemand die tags zo gebruikt die verdient het om een foute layout te krijgen.
    Als de user's eigen post er slecht uitziet door foute tags dan is dat zijn eigen probleem, zolang andere posts die later komen er maar geen last van hebben.
    super-muffinvrijdag 16 maart 2007 @ 14:09
    Het is mij ook nog niet gelukt om 'www.fok.nl' om te zetten naar => ' <a href="http://www.fok.nl">www.fok.nl</a>'
    JeRavrijdag 16 maart 2007 @ 14:12
    quote:
    Op vrijdag 16 maart 2007 14:01 schreef splendor het volgende:
    Die bug vind ik overigens geen echte bug.. iemand die tags zo gebruikt die verdient het om een foute layout te krijgen.
    Dat klopt, maar het is niet altijd fout. Denk aan quotes in quotes, dus [q..] blaat blaat [q...] ... [/q...] blaat blaat [/q...]
    Geqxonvrijdag 16 maart 2007 @ 14:13
    quote:
    Op vrijdag 16 maart 2007 14:01 schreef splendor het volgende:
    Dankje, zoiets zocht ik inderdaad.
    En nu zou het ook mogelijk moeten zijn om urls erin te verwerken, dan wat was met mijn functie ook niet echt te doen.

    Die bug vind ik overigens geen echte bug.. iemand die tags zo gebruikt die verdient het om een foute layout te krijgen.
    Als de user's eigen post er slecht uitziet door foute tags dan is dat zijn eigen probleem, zolang andere posts die later komen er maar geen last van hebben.
    Je kunt heel ranzig achter elke post standaard een </b> </u> </i> zetten
    quote:
    Op vrijdag 16 maart 2007 14:09 schreef super-muffin het volgende:
    Het is mij ook nog niet gelukt om 'www.fok.nl' om te zetten naar => ' <a href="http://www.fok.nl">www.fok.nl</a>'
    http://nl2.php.net/function.parse-url

    Heb je hier wat aan?
    super-muffinvrijdag 16 maart 2007 @ 14:29
    Nee dat is niet wat ik bedoel Geqxon.

    Ik heb ook een soort parser, maar ik wil nog dat als iemand gewoon een link www.fok.nl invoerd, dat dat het dan geparsed word naar <a href="http://www.fok.nl">www.fok.nl</a>
    splendorvrijdag 16 maart 2007 @ 14:32
    1
    2
    3
       $field = preg_replace("#\[B\](.*?)\[/B\]#si","<strong>\\1</strong>", $field);
       $field = preg_replace("#\[I\](.*?)\[/I\]#si","<em>\\1</em>", $field);
       $field = preg_replace("#\[URL\](.*?)\[/URL\]#si","<a href=\"\\1\" target=\"_blank\" rel=\"nofollow\">\\1</a>", $field); 


    Dit is hem uiteindelijk geworden.

    Worden smileys op dezelfde manier gedaan? Dat : P vervangen wordt door het plaatje? Of kan ik dat beter anders doen?
    Geqxonvrijdag 16 maart 2007 @ 14:35
    quote:
    Op vrijdag 16 maart 2007 14:29 schreef super-muffin het volgende:
    Nee dat is niet wat ik bedoel Geqxon.

    Ik heb ook een soort parser, maar ik wil nog dat als iemand gewoon een link www.fok.nl invoerd, dat dat het dan geparsed word naar <a href="http://www.fok.nl">www.fok.nl</a>
    En met bovenstaande parser kun je an sich kijken of iets een geldige URL. En omdat ik nu toch weinig tot niets te doen heb ga ik er even aan zitten
    SuperRembovrijdag 16 maart 2007 @ 19:31
    quote:
    Op vrijdag 16 maart 2007 14:32 schreef splendor het volgende:
    Worden smileys op dezelfde manier gedaan? Dat : P vervangen wordt door het plaatje? Of kan ik dat beter anders doen?
    Smilies kan je op dezelfde manier doen. Alleen kan je daar in plaats van preg_replace een gewone str_replace voor gebruiken, die is (waarschijnlijk) sneller.

    Zie trouwens ook mijn 2 jaar oude post in deeltje 5.
    splendorvrijdag 16 maart 2007 @ 19:55
    quote:
    Op vrijdag 16 maart 2007 19:31 schreef SuperRembo het volgende:

    [..]

    Smilies kan je op dezelfde manier doen. Alleen kan je daar in plaats van preg_replace een gewone str_replace voor gebruiken, die is (waarschijnlijk) sneller.

    Zie trouwens ook mijn 2 jaar oude post in deeltje 5.
    Dankje
    Zoiets wilde ik zelf gaan maken, scheelt veel werk.

    Ik ben overigens bezig met een Remember me checkbox aan mijn login te hangen, in combinatie met cookies. Hoe kan ik dit veilig maken?
    Wat ik al heb:
    $_COOKIE wordt gefilterd, net als POST eigenlijk.
    Hij saved je login + md5 van password + unique key
    unique key staat ook in de database

    Als je op de site komt kijkt ie of er een cookie bestaat, zo ja, bestaat de combinatie login+pass+unique key --> dan ben je ingelogged.
    Zo nee? heb je wel gewoon een session loggedIn=true ? Dan ben je ook ingelogged.

    Hoewel ik misshcien in de sessie beter ook je login + pass kan opslaan, anders als je iemands session ID hebt terwijl die persoon is ingelogged dan ben jij ook ingelogged. Kleine kans maar vooruit.

    Maar het gaat vooral om de cookies, moet ik nog meer aan security doen of is dit voldoende?
    Geqxonvrijdag 16 maart 2007 @ 20:36
    Op welke schaal wil je dit gaan gebruiken??
    splendorvrijdag 16 maart 2007 @ 20:48
    Op dit moment voor een forum van een heel oud spel wat amper iemand meer kent en waar misschien 2-3mensen per dag van gebruik van maken.. hooguit.
    Maar het is wel onderdeel van mijn eigen CMS dus het gaat straks ook gebruikt worden voor andere sites.

    Heeft dat er mee te maken dan?
    JeRazaterdag 17 maart 2007 @ 00:51
    quote:
    Op vrijdag 16 maart 2007 20:36 schreef Geqxon het volgende:
    Op welke schaal wil je dit gaan gebruiken??
    Hoezo, gaat je bouwwerk voor URL-detectie traag zijn?
    Geqxonzaterdag 17 maart 2007 @ 00:55
    quote:
    Op zaterdag 17 maart 2007 00:51 schreef JeRa het volgende:

    [..]

    Hoezo, gaat je bouwwerk voor URL-detectie traag zijn?


    Ik duidde natuurlijk op slendor
    JeRazaterdag 17 maart 2007 @ 01:09
    quote:
    Op zaterdag 17 maart 2007 00:55 schreef Geqxon het volgende:

    [..]



    Ik duidde natuurlijk op slendor
    Ik zie niets wat met schaalbaarheid te maken hoeft te hebben, en beveiliging is onafhankelijk van de schaal liever meer dan minder aanwezig natuurlijk. En aangezien je dit zei
    quote:
    Op vrijdag 16 maart 2007 14:35 schreef Geqxon het volgende:

    [..]

    En met bovenstaande parser kun je an sich kijken of iets een geldige URL. En omdat ik nu toch weinig tot niets te doen heb ga ik er even aan zitten
    Chandlerzondag 18 maart 2007 @ 11:39
    Ik heb een vraagje aan de experts.

    Omdat ik me weer eens verveelde wilde ik een andere versie schrijven van Linkbase ( http://linkbase.bruggema.nl ) en tot nu toe heb ik dit gerealiseerd! http://startpagina.bruggema.nl/ maar nu wil ik graag weten of de HTML technische opbouw (let niet op de headers, etc, deze zitten er namelijk nog niet in) juist is? ofdat jullie zeggen dat het op een andere manier beter is.

    De 'startpagina' script die ik aan het schrijven ben gaat veel mogelijkheden ondersteunen, een paar zal ik opnoemen.

    1 In categorieen kun je html, afbeeldingen, rss feeds en php code gebruiken!
    2. links kun je stuk voor stuk verplaatsen (sorteren) maar ook verplaatsen naar andere categorieen!
    3. categorieen kun je verplaatsen, sorteren

    Nu wil ik zelf het liefst werken met templates, maar de huidige code is zonder templates en zie ook niet snel of dit echt makkelijk mogelijk is om dit in templates te verwerken

    Voorbeeld van hoe het nu werkt!

    1
    2
    3
    4
    5
    6
    7
    8
        <div style='border:1px solid black; margin-bottom: 15px;'>
        <h2>A1-1 test</h2>
        <ul>
            <li><a href="out.php?link=http://www.titel.nl" title="Titel" target="1">Titel</a></li>

            <li><span class='tip'>TIP</span> <a href="out.php?link=http://www.titel2.nl" title="Titel II" target="2">Titel II</a></li>
        </ul>
        </div>


    Nu een voorbeeld waarbij er ook HTML (andere data dan items worden gebruikt)

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
        <div style='border:1px solid black; margin-bottom: 15px;'>
        <h2>A1-1 test</h2>
        <ul>
            <li><a href="out.php?link=http://www.titel.nl" title="Titel" target="1">Titel</a></li>
        </ul>
        <p>HTML Code</p>
        <ul>

            <li><span class='tip'>TIP</span> <a href="out.php?link=http://www.titel2.nl" title="Titel II" target="2">Titel II</a></li>
        </ul>
        </div>


    en dan nu een voorbeeld met geen links maar wel html code

    1
    2
    3
    4
        <div style='border:1px solid black; margin-bottom: 15px;'>
        <h2>A1-1 test</h2>
        <p>HTML Code</p>
        </div>


    Wat is jullie mening? en is de laadtijd lang/kort voor een startpagina concept?

    [ Bericht 19% gewijzigd door Chandler op 18-03-2007 12:43:05 ]
    wipes66maandag 19 maart 2007 @ 00:22
    Heeft iemand toevallig een class in de aanbieding die html kan opschonen? en ook html op de juiste manier laat inspringen.
    JeRamaandag 19 maart 2007 @ 00:36
    quote:
    Op maandag 19 maart 2007 00:22 schreef wipes66 het volgende:
    Heeft iemand toevallig een class in de aanbieding die html kan opschonen? en ook html op de juiste manier laat inspringen.
    Het eerste waar ik aan denk is Tidy maar of die extension ook automagisch kan inspringen, geen idee.
    wipes66maandag 19 maart 2007 @ 03:11
    quote:
    Op maandag 19 maart 2007 00:36 schreef JeRa het volgende:

    [..]

    Het eerste waar ik aan denk is Tidy maar of die extension ook automagisch kan inspringen, geen idee.
    Tidy kan dat denk wel, maar zoals gewoonlijk ondersteunt mijn webhost het niet.
    splendormaandag 19 maart 2007 @ 07:42
    quote:
    Op zondag 18 maart 2007 11:39 schreef Chandler het volgende:
    Ik heb een vraagje aan de experts.

    Omdat ik me weer eens verveelde wilde ik een andere versie schrijven van Linkbase ( http://linkbase.bruggema.nl ) en tot nu toe heb ik dit gerealiseerd! http://startpagina.bruggema.nl/ maar nu wil ik graag weten of de HTML technische opbouw (let niet op de headers, etc, deze zitten er namelijk nog niet in) juist is? ofdat jullie zeggen dat het op een andere manier beter is.

    De 'startpagina' script die ik aan het schrijven ben gaat veel mogelijkheden ondersteunen, een paar zal ik opnoemen.

    1 In categorieen kun je html, afbeeldingen, rss feeds en php code gebruiken!
    2. links kun je stuk voor stuk verplaatsen (sorteren) maar ook verplaatsen naar andere categorieen!
    3. categorieen kun je verplaatsen, sorteren

    Nu wil ik zelf het liefst werken met templates, maar de huidige code is zonder templates en zie ook niet snel of dit echt makkelijk mogelijk is om dit in templates te verwerken

    Voorbeeld van hoe het nu werkt!
    [ code verwijderd ]

    Nu een voorbeeld waarbij er ook HTML (andere data dan items worden gebruikt)
    [ code verwijderd ]

    en dan nu een voorbeeld met geen links maar wel html code
    [ code verwijderd ]

    Wat is jullie mening? en is de laadtijd lang/kort voor een startpagina concept?
    Zodra ik het vakje Bruggema.nl sluit, open en dan weer sluit blijft er een wit ruimte over ipv dat de andere categoriën zoals Direct Connect naar boven schieten. Open en sluit ik ze weer dan schiet alles weer de hoogte van 1 categorie naar beneden, steeds dieper.. dus de witruimte wordt steeds groter. Javascript bugje denk ik.
    getest op FF 1.5.

    Verder zou ik niet voor LI en P gaan maar dat is denk ik meer persoonlijk, ik zou in ieder geval weinig argumenten kunnen aanleveren waarom div of span fijner werkt, ik ben het gewend denk ik.
    Chandlermaandag 19 maart 2007 @ 08:20
    @splendor; klopt, waar die fout in zit weet ik nog steeds niet (linkbase) maar het is inderdaad zeer vervelend..

    maar waarom niet voor ul/li en p? dan gebruik je bestaande html elementen ipv het zelf defenieren van divs...
    JeRamaandag 19 maart 2007 @ 08:53
    quote:
    Op maandag 19 maart 2007 08:20 schreef Chandler het volgende:
    maar waarom niet voor ul/li en p? dan gebruik je bestaande html elementen ipv het zelf defenieren van divs...
    Psst, vertel dan dat je die gebruikt om semantisch correcte HTML te schrijven, en dus bijvoorbeeld listitems voor lijsten van gegevens gebruikt.
    CraZaaymaandag 19 maart 2007 @ 09:15
    quote:
    Op maandag 19 maart 2007 07:42 schreef splendor het volgende:

    Verder zou ik niet voor LI en P gaan maar dat is denk ik meer persoonlijk, ik zou in ieder geval weinig argumenten kunnen aanleveren waarom div of span fijner werkt, ik ben het gewend denk ik.
    Off topic in een PHP topic, maar wat mij betreft is dat geen kwestie van voorkeur. P en LI hebben meer/andere semantische waarde dan DIV's: P bevat een paragraaf, LI een list item. Dat veel mensen te pas en te onpas DIV's gebruiken is simpelweg omdat ze nog in tabellen denken. Dan krijg je combinaties als <div class="header"><h1>Title</h1></div> met tig overbodige DIV's. Ik zou zeggen: gebruik de elemten waar ze voor bedoeld zijn, en gebruik DIV's om te groeperen per functiegroep (bijvoorbeeld "footer met copyright notice en selectbox").

    Het gebruikte list element vind ik daarom uitermate geschikt, je kunt een lijst van links niet anders zien dan een lijst/opsomming.

    Het gekozen paragraaf element gaat problemen opleveren waarschijnlijk, omdat je daar niet zomaar alle HTML in kan stoppen (op w3.org staat prima beschreven welke elementen er wel en niet in een P mogen/kunnen).

    Chandler, maak in ieder geval je pagina compleet met de juiste tags (<html>, etc) en voeg een doctype toe. Op deze manier kun je namelijk onmogelijk testen en valideren. De tabellen gebruik je zoals je ongetwijfeld weet totaal verkeerd, aangezien je ze simpelweg gebruik om drie kolommen te maken. Dat is iets waar DIV's weer prima geschikt voor zijn. En voor de tabel met je login form kun je prima uit de voeten met labels om zo de boel te stylen
    Chandlermaandag 19 maart 2007 @ 10:38
    @Jera; je hebt gelijk, het is inderdaad om lijsten te gereneren!

    @CraZaay; absoluut gelijk heb je m.b.t. het kleine TABEL die ik in deze voorbeeld heb verwerkt, wil alleen kijken of dit een goede manier is om een startpagina concept gemakkelijk aanpasbaar te maken. Zal in de volgende versie de juiste doctype en dergeljike gegevens toevoegen.

    PS. dit login form is ff snel getyped omdat deze weer in de database vermeld staat als stuk html code ;P
    Chandlermaandag 19 maart 2007 @ 14:06
    klein MySQL vraagje

    Ik wil aan een query 2 statements toevoegen, waar ik al veel AND vragen heb staan. Nu heb ik geprobeerd om er een AND en OR vraag aan toe te voegen maar nu gaat het fout.

    Nu wil ik aan deze query toevoegen of iets uit 'land' of uit 'land' (voorbeeld) komt.

    SELECT * FROM tabel
    WHERE grootte >= 20
    AND jaar = 2006
    AND status =1
    AND land = 'nl'
    OR land = 'be'

    maar hier gaat iets fout, want als het land be is dan krijg ik ook items die geen status 1 hebben etc... what am i doing wrong?
    smesjzmaandag 19 maart 2007 @ 14:09
    AND land IN ('nl','be')

    OF

    ... AND (land = 'nl' OR land='be')
    freissmaandag 19 maart 2007 @ 14:10
    quote:
    Op maandag 19 maart 2007 14:06 schreef Chandler het volgende:
    klein MySQL vraagje

    Ik wil aan een query 2 statements toevoegen, waar ik al veel AND vragen heb staan. Nu heb ik geprobeerd om er een AND en OR vraag aan toe te voegen maar nu gaat het fout.

    Nu wil ik aan deze query toevoegen of iets uit 'land' of uit 'land' (voorbeeld) komt.

    SELECT * FROM tabel
    WHERE grootte >= 20
    AND jaar = 2006
    AND status =1
    AND land = 'nl'
    OR land = 'be'

    maar hier gaat iets fout, want als het land be is dan krijg ik ook items die geen status 1 hebben etc... what am i doing wrong?
    Haakjes plaatsen.
    Chandlermaandag 19 maart 2007 @ 14:22
    had ik eerst ook gedaan maar lan dIN is idd beter

    en als ik nu wil dat alles toegelaten mag worden behalve de land IN?
    smesjzmaandag 19 maart 2007 @ 14:29
    quote:
    Op maandag 19 maart 2007 14:22 schreef Chandler het volgende:
    had ik eerst ook gedaan maar lan dIN is idd beter

    en als ik nu wil dat alles toegelaten mag worden behalve de land IN?
    Je zou eens kunnen beginnen met een SQL boekje open slaan ipv alles laten voorkauwen?

    AND land NOT IN (a,b,c)
    Chandlermaandag 19 maart 2007 @ 14:56
    haha je hebt gelijk, maar had het antwoord zelf al gevonden... ben slecht in multitasken heb ik door
    Qunixmaandag 19 maart 2007 @ 15:15
    Ik heb een tabel genaamd nieuws. Ik heb een pagina waar ik nieuws toon. Ik wil een aparte pagina waar ik alleen nieuws toon over Notulen. In de titel komt het woord Notulen in voor. Ik heb dit opgelost met WHERE LIKE functie van SQL. Nu wil ik de berichten op de pagina die alle berichten toont, met in de titel Notulen weg hebben. Hoe doe ik dit?
    smesjzmaandag 19 maart 2007 @ 15:44
    WHERE titel NOT LIKE '%notulen%'

    Het kostte je meer tijd om deze post te maken dan zelf ff een SQL boek open te slaan
    Qunixmaandag 19 maart 2007 @ 16:03
    quote:
    Op maandag 19 maart 2007 15:44 schreef smesjz het volgende:
    WHERE titel NOT LIKE '%notulen%'

    Het kostte je meer tijd om deze post te maken dan zelf ff een SQL boek open te slaan
    Momenteel heb ik dat niet. Ik haal mijn informatie uit wikipedia en kon ik het niet vinden.
    Bedankt.
    mscholmaandag 19 maart 2007 @ 16:05
    quote:
    Op maandag 19 maart 2007 16:03 schreef Qunix het volgende:

    [..]

    Momenteel heb ik dat niet. Ik haal mijn informatie uit wikipedia en kon ik het niet vinden.
    Bedankt.
    w3schools is dan wel handig

    maar ja boeit het wat? het is niet voor niks een voor dummies topic
    Chandlermaandag 19 maart 2007 @ 16:38
    @mschol; eingelijk zou het handig zijn als er een vragen database van gemaakt zou kunnen worden, zodat je in een opslag handige antwoorden kan vinden
    smesjzmaandag 19 maart 2007 @ 16:47
    quote:
    Op maandag 19 maart 2007 16:38 schreef Chandler het volgende:
    @mschol; eingelijk zou het handig zijn als er een vragen database van gemaakt zou kunnen worden, zodat je in een opslag handige antwoorden kan vinden
    Ja, daar zit de wereld echt op de wachten. Ik vind die W3schools site er goed omdat bij die code voorbeelden ook het result staat.
    http://www.w3schools.com/sql/default.asp

    Het lijkt me een goed alternatief voor wikipedia om SQL te leren.
    dnzlmaandag 19 maart 2007 @ 17:05
    Ik wil door middel van checkboxes meerdere waardes in een MySQL cel voegen.
    Hoe doe ik dit? Hoe voeg ik een bijvoorbeeld een komma of streepje toe?
    Chandlermaandag 19 maart 2007 @ 17:43
    quote:
    Op maandag 19 maart 2007 16:47 schreef smesjz het volgende:

    [..]

    Ja, daar zit de wereld echt op de wachten. Ik vind die W3schools site er goed omdat bij die code voorbeelden ook het result staat.
    http://www.w3schools.com/sql/default.asp

    Het lijkt me een goed alternatief voor wikipedia om SQL te leren.
    Tja w3schools is idd erg goed, juist omdat ze zich richten op mensen die minder goed met textuele zaken om kunnen gaan en beter kunnen werken met code voorbeelden (zoals ik! )

    zoals irt.org, deze website vind ik echt verdomde handig, jammer alleen dat deze amper meer geupdated wordt
    Chandlermaandag 19 maart 2007 @ 17:44
    quote:
    Op maandag 19 maart 2007 17:05 schreef dnzl het volgende:
    Ik wil door middel van checkboxes meerdere waardes in een MySQL cel voegen.
    Hoe doe ik dit? Hoe voeg ik een bijvoorbeeld een komma of streepje toe?
    Wat voor informatie? en eventueel zou je alles (van bv een array) om kunnen zetten naar een comma seperated string oid...
    __Saviour__maandag 19 maart 2007 @ 17:52
    hoe krijg ik een getal tussen 1 en een bepaald getal dat écht random is. Nouja, semirandom he voor zover een computer dat kan.
    ik gebruik nu
    srand((double)microtime()*1000000); // Set a random seed up
    en
    $n = rand(0,(count($image)-1)); // Create a random number from 0 to the size of the array

    maar daar lijkt nogal veel herhaling in te zitten, alsof het niet echt random is.
    Chandlermaandag 19 maart 2007 @ 18:02
    llijkt? heb je een voorbeeld welke random uitkomsten je hebt?
    __Saviour__maandag 19 maart 2007 @ 18:08
    nou ja, het is geen lijst ofzo.
    maar het gaat om het script van mijn avatar. die trekt een willekeurig getal. maar hij lijkt nogal te vaak dezelfde te pakken.
    HuHumaandag 19 maart 2007 @ 19:00
    Je kan proberen de rand niet meer de seeden. Vanaf PHP 4.2.0 is de seed niet meer nodig. Wellicht zorgt de standaard seed in PHP voor betere resultaten?
    HuHumaandag 19 maart 2007 @ 19:03
    En volgens een comment die bij de rand() staat kun je beter mt_rand() gebruiken, die schijnt betere resultaten in 'randomness' te geven.
    quote:
    Here's an interesting note about the inferiority of the rand() function. Try, for example, the following code...

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <?php
    $r
    = array(0,0,0,0,0,0,0,0,0,0,0);
    for (
    $i=0;$i<1000000;$i++) {
      
    $n = rand(0,100000);
      if (
    $n<=10) {
       
    $r[$n]++;
      }
    }
    print_r($r);
    ?>


    which produces something similar to the following output (on my windows box, where RAND_MAX is 32768):

    Array
    (
    [0] => 31
    [1] => 0
    [2] => 0
    [3] => 31
    [4] => 0
    [5] => 0
    [6] => 30
    [7] => 0
    [8] => 0
    [9] => 31
    [10] => 0
    )

    Within this range only multiples of 3 are being selected. Also note that values that are filled are always 30 or 31 (no other values! really!)

    Now replace rand() with mt_rand() and see the difference...

    Array
    (
    [0] => 8
    [1] => 8
    [2] => 14
    [3] => 16
    [4] => 9
    [5] => 11
    [6] => 8
    [7] => 9
    [8] => 7
    [9] => 7
    [10] => 9
    )

    Much more randomly distributed!

    Conclusion: mt_rand() is not just faster, it is a far superior algorithm.
    dnzlmaandag 19 maart 2007 @ 19:08
    quote:
    Op maandag 19 maart 2007 17:44 schreef Chandler het volgende:

    [..]

    Wat voor informatie? en eventueel zou je alles (van bv een array) om kunnen zetten naar een comma seperated string oid...
    Gewoon text
    Kun je een voorbeeldje geven hoe ik dit doe?
    __Saviour__maandag 19 maart 2007 @ 19:11
    ok bedankt HuHu.
    Dat mt_rand ziet er wel beter uit, want in dat gegeven voorbeeld blijkt rand dus niet zo heel netjes willekeurig te zijn dus zoals ik dacht.
    Stijn1983maandag 19 maart 2007 @ 19:47
    quote:
    Op maandag 19 maart 2007 19:03 schreef HuHu het volgende:
    En volgens een comment die bij de rand() staat kun je beter mt_rand() gebruiken, die schijnt betere resultaten in 'randomness' te geven.
    [..]
    In een andere range doet ie het wel beter, zet maar eens rand(0,10.000) ipv rand(0,100.000)
    Dit geeft een al veel betere waarde. (uiteraard moeten de punten in de functie weg, maar dit was voor de duidelijkheid. Heeft dit misschien te maken met het feit dat die random maximaal ~30.000 aan kan?

    Het is inderdaad wel bekend dat de standaard random van PHP niet echt optimaal werkt
    Toch een interessant voorbeeld, geeft wel aan dat er iets niet helemaal goed is.
    splendormaandag 19 maart 2007 @ 21:08
    Is het mogelijk om in php aan te geven op welke pagina (en eventueel zelfs welke regel) een stuk code zich bevindt?
    Ik heb een aantal classes en functies die elkaar aanroepen en als ik een foutmelding in een query krijg staat er vaak At line 1 (functie mysql_error()) en dan is het toch ff zoeken waar de query zelf nou eigenlijk staat. Vandaar dus.
    Geqxonmaandag 19 maart 2007 @ 21:12
    quote:
    Op maandag 19 maart 2007 21:08 schreef splendor het volgende:
    Is het mogelijk om in php aan te geven op welke pagina (en eventueel zelfs welke regel) een stuk code zich bevindt?
    Ik heb een aantal classes en functies die elkaar aanroepen en als ik een foutmelding in een query krijg staat er vaak At line 1 (functie mysql_error()) en dan is het toch ff zoeken waar de query zelf nou eigenlijk staat. Vandaar dus.
    Ik maak altijd mijn eigen errors

    1
    2
    3
    4
    5
    6
    7
    <?php
    $connection
    = mysql_connect(.....


    if (!
    $connection)
    $errorlog .= "Could not connect to database in " . $_SERVER['PHP_SELF'];
    ?>
    JeRamaandag 19 maart 2007 @ 21:20
    quote:
    Op maandag 19 maart 2007 21:08 schreef splendor het volgende:
    Is het mogelijk om in php aan te geven op welke pagina (en eventueel zelfs welke regel) een stuk code zich bevindt?
    Ik heb een aantal classes en functies die elkaar aanroepen en als ik een foutmelding in een query krijg staat er vaak At line 1 (functie mysql_error()) en dan is het toch ff zoeken waar de query zelf nou eigenlijk staat. Vandaar dus.
    http://nl2.php.net/manual/en/language.constants.predefined.php
    splendormaandag 19 maart 2007 @ 21:28
    Dankje dat zocht ik inderdaad.
    Ik had al een site gevonden waar het stond maar ik had $__LINE__
    stom!

    Dit ga ik inderdaad gebruiken voor eigen error parsing.
    Voorbeeld van wat ik nu heb:

    mysql_error() geeft:
    You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'ORDAER BY name' at line 1

    Mijn error daaronder:
    Query: on line 21
    SELECT u.*, g.name as groupName FROM si_users u LEFT JOIN si_groups g ON u.groupID = g.id ORDAER BY name

    En dat netjes in een divje met rood lijntje.
    RayManiadinsdag 20 maart 2007 @ 19:45
    Ik ben een echte n00b qua PHP, maar eigenlijk wil ik wel iets maken. In dit topic staan allemaal topics, en ik wil graag snel kunnen zien wanneer zo'n topic vol is, zodat ik de nieuwe link kan plaatsen. Het aantal posts van een topic moet dus geteld worden, zodat ik bij 300 de link kan verversen. Hoe kan ik dat het beste doen ?
    ralfiedinsdag 20 maart 2007 @ 20:22
    quote:
    Op dinsdag 20 maart 2007 19:45 schreef RayMania het volgende:
    Ik ben een echte n00b qua PHP, maar eigenlijk wil ik wel iets maken. In dit topic staan allemaal topics, en ik wil graag snel kunnen zien wanneer zo'n topic vol is, zodat ik de nieuwe link kan plaatsen. Het aantal posts van een topic moet dus geteld worden, zodat ik bij 300 de link kan verversen. Hoe kan ik dat het beste doen ?
    het beste kun je dat niet doen. De enige manier (zonder direct database toegang te hebben) is om elk topic met php te openen en dan te bepalen of er wel of geen 300 posts zijn. Dat slibt elke willekeurige server dicht Naja, snel is anders in ieder geval.
    Geqxondinsdag 20 maart 2007 @ 20:31
    Een wilde theorie: Elk topic met "/1/330" erachter f-openen (alle posts laten zijn), en dan preg_matchen op "msg(*,*,*,".

    Of het topic met "/300/1" erachter f-openen en dan kijken of "<span class="ap">" bestaat
    Geqxondinsdag 20 maart 2007 @ 21:23
    -weggeedit-

    [ Bericht 44% gewijzigd door Geqxon op 20-03-2007 23:39:41 ]
    Geqxondinsdag 20 maart 2007 @ 23:39
    Dat ging fout. Dan nogmaals:

    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
    if (isset($_POST['topics'])){
        
    $topics = explode("n",$_POST['topics']);

        foreach (
    $topics as $topicURL){
            if (
    preg_match("/http:/i", $topicURL)){
                
    $found = false;
                
    $lines = @file($topicURL . "/300/1");                                
                
    $regex = "/class="ap"/i";

                if (
    $lines)
                    foreach (
    $lines as $line){
                        if (
    preg_match ($regex, $line))
                            
    $found = true;
            
                        
    eregi("<title>(.*)</title>", $line, $title);
                    }
        
                if (
    $found == true)
                    echo
    "<a href="".$topicURL."">".$title[1]."</a> heeft een 300ste post <br />";
            }
        }
    }
    ?>

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    <br />
    <form method="POST" action="p300.php">
       <textarea cols="30" rows="20" name="topics">
          http://forum.fok.nl/topic/926270
          http://forum.fok.nl/topic/614138
          http://forum.fok.nl/topic/845403
          http://forum.fok.nl/topic/710464
          http://forum.fok.nl/topic/686411
          http://forum.fok.nl/topic/946336
          http://forum.fok.nl/topic/792154
          http://forum.fok.nl/topic/629891
       </textarea>
       <br />
       <input type="submit">
    </form>


    Edit: Gadver, wat heeft fok een shitload bugs. Er moet een backslash voor de "n" bij de explode functie, twee backslashes bij de quotes rond "ap" en nog twee backslashes rond HREF van <a ... >.
    Darkomenwoensdag 21 maart 2007 @ 10:55
    die bug in kan je voorkomen door de slash te escapen in de code tag, php tag werkt het volgens mij niet bij

    1 \ <--hier staan 2 slashes
    Geqxonwoensdag 21 maart 2007 @ 11:46
    En als ik een textarea afsluit-tag plaats denkt Fok dat het preview veld van mijn reply daar ophoudt, en gaat de rest van mijn post verder in de layout van fok. Editen van de post gaat dus wat lastig. Heerlijk
    roelofjandonderdag 22 maart 2007 @ 01:02
    Ik ben wat met youtube flimpjes aan het klooien. Die wil ik niet op de site van youtube bekijken, die wil ik in een klein handig pop-up venster zien, op een pagina met alleen de video.

    pagina.php
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <?php

    $vid = $_GET["vid"]; 
    ?>

    <div align="center">
    <object width="320" height="258">
    <param name="movie" value="http://www.youtube.com/v/<?php echo "$vid" ?>">
    </param>
    <embed src="http://www.youtube.com/v/<?php echo "$vid" ?>" type="application/x-shockwave-flash" width="320" height="258">
    </embed>
    </object>


    Da's vrij simpel.

    Maar ik wil gebruik maken van de Quick Search Functie van Firefox, zodat ik alleen maar

    1v http://www.youtube.com/watch?v=AS8nQD85jTk


    In hoef te typen zodat ik naar pagina.php?vid=AS8nQD85jTk gestuurd word.

    Maar dan moet dat http://www.youtube.com/watch?v= gedeelte er dus automatisch uitgesloopt worden..

    Kan dat met PHP?
    Chandlerdonderdag 22 maart 2007 @ 11:21
    str_replace("watch?v=", "v/", $text)

    Chandlerdonderdag 22 maart 2007 @ 11:25
    Ik zit met een vraag en dit is eingelijk geen PHP maar doe het toch maar hier

    Nu heb ik reeds het ontwerp gemaakt voor mijn eigen persoonlijke startpage (concurrentje van mijn linkbase ) en nu moet ik bezig gaan met het administratie gedeelte van de startpagina (categorieen, links, html gedeeltes aanmaken, verwijderen, veranderen, verplaatsen etc)

    Nu dacht ik in de 1e instantie dat dit een goed idee was (zie pic)


    maar nu lijkt het mij toch niet echt een heel goed idee... hoe zouden jullie de beheerders gedeelte van een startpagina achtig concept aanpakken?
    GIdonderdag 22 maart 2007 @ 11:28
    HTML ALLEEN VREDE ZONDER titel


    Maar op je vraag: Op die manier. Ik zou alleen de knippen rechts alignen.
    Tiemiedonderdag 22 maart 2007 @ 11:30
    .
    Geqxondonderdag 22 maart 2007 @ 11:31
    quote:
    Op donderdag 22 maart 2007 11:28 schreef GI het volgende:
    HTML ALLEEN VREDE ZONDER titel


    Maar op je vraag: Op die manier. Ik zou alleen de knippen rechts alignen.
    Ik wou exact hetzelfde typen
    GIdonderdag 22 maart 2007 @ 11:31
    quote:
    Op donderdag 22 maart 2007 11:31 schreef Geqxon het volgende:

    [..]

    Ik wou exact hetzelfde typen
    *shoots himself in the face*
    Chandlerdonderdag 22 maart 2007 @ 11:39
    Ach wat maken de teksten nou uit in een test omgeving? en ja ook mijn engels is ongv net zo slekt als mijn NL

    Dus knoppen rechts zetten ipv links..

    Maar jullie vinden de opzet van het beheren van links en categorieen zelf in een zelfde soort layout een juiste optie?
    CraZaaydonderdag 22 maart 2007 @ 13:20
    Volgorde veranderen met drag & drop? Kan eenvoudig met Scriptaculous bijvoorbeeld (Sortables).
    Geqxondonderdag 22 maart 2007 @ 13:24
    quote:
    Op donderdag 22 maart 2007 11:31 schreef GI het volgende:

    [..]

    *shoots himself in the face*
    Ik hou ook van jou

    PS: Je webicon is te groot.
    GIdonderdag 22 maart 2007 @ 13:24
    PS, hij is ook klikbaar.
    Geqxondonderdag 22 maart 2007 @ 13:29
    quote:
    Op donderdag 22 maart 2007 13:24 schreef GI het volgende:
    PS, hij is ook klikbaar.
    En helaas 4 kilobyte te groot.
    Chandlerdonderdag 22 maart 2007 @ 14:01
    quote:
    Op donderdag 22 maart 2007 13:20 schreef CraZaay het volgende:
    Volgorde veranderen met drag & drop? Kan eenvoudig met Scriptaculous bijvoorbeeld (Sortables).
    Weer een onderdeel van Ruby on Rails

    maar drag en drop zou idd een leuke toevoeging zijn...
    quote:
    Op donderdag 22 maart 2007 13:24 schreef GI het volgende:
    PS, hij is ook klikbaar.
    Hoe krijg je dat voor elkaar??
    CraZaaydonderdag 22 maart 2007 @ 14:46
    quote:
    Op donderdag 22 maart 2007 14:01 schreef Chandler het volgende:

    [..]

    Weer een onderdeel van Ruby on Rails
    Niet echt

    De Prototype en Scriptaculous libraries zitten standaard bij RoR, maar je kan ze ook prima los downloaden en draaien i.c.m. PHP. Ze worden niet gemaakt/onderhouden door de makers van RoR ofzo.

    Wel heeft Rails handige helpers om i.c.m. die libraries unobtrusive Ajax te bouwen enzo.
    SkaterSamdonderdag 22 maart 2007 @ 15:17
    Vraagje, ik kan met een functie makkelijk een array returnen naar een sessie. Maar nou wil ik diezelfde sessie array controleren op het bestaan van bepaalde keys (en of ze gevuld zijn). Ik heb dus het volgende:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <?php
    function createSession() {
      return array(
    "user" => "jan""time" => 1234"token" => "abcdefg");  
    }

    // Zo vraag je hem op
    $_SESSION['controleren'] = createSession();

    // Sessie weer controleren op USER, TIME en TOKEN als key
    checkSession($_SESSION['controleren']);
    ?>

    Maar nu is mijn vraag, hoe controleer ik iedere key apart (USER, TIME en TOKEN dus...) maar creeer ik één output (dus als er één key niet goed is, dan geeft die FALSE). Ik probeerde het in een foreach loop, maar ik kan niet bedenken hoe je ieder individueel controleert met één output. Of pak ik het verkeerd aan...?
    CraZaaydonderdag 22 maart 2007 @ 15:24
    quote:
    Op donderdag 22 maart 2007 15:17 schreef SkaterSam het volgende:
    Maar nu is mijn vraag, hoe controleer ik iedere key apart (USER, TIME en TOKEN dus...) maar creeer ik één output (dus als er één key niet goed is, dan geeft die FALSE). Ik probeerde het in een foreach loop, maar ik kan niet bedenken hoe je ieder individueel controleert met één output. Of pak ik het verkeerd aan...?
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <?php
    function checkSession($ses) {
      if ($ses['user'] && $ses['time'] && $ses['token']) {
        return true;
      } else {
        return false;
      }
    }
    ?>

    Doet vast niet wat je wilt, maar heb je iets aan het idee an sich?
    SkaterSamdonderdag 22 maart 2007 @ 15:31
    quote:
    Op donderdag 22 maart 2007 15:24 schreef CraZaay het volgende:
    Doet vast niet wat je wilt, maar heb je iets aan het idee an sich?
    Nee, ik wil de namen van de keys die ingegeven worden, controleren op juistheid. Dus dat er ten eerste 3 keys op zijn gegeven. En dan controleren of de namen van die 3 keys USER, TIME en TOKEN zijn. En daarna controleren of ze niet leeg, of foutief zijn. Maar het gaat mij om het controleren van de namen van de keys.
    CraZaaydonderdag 22 maart 2007 @ 16:31
    quote:
    Op donderdag 22 maart 2007 15:31 schreef SkaterSam het volgende:

    [..]

    Nee, ik wil de namen van de keys die ingegeven worden, controleren op juistheid. Dus dat er ten eerste 3 keys op zijn gegeven. En dan controleren of de namen van die 3 keys USER, TIME en TOKEN zijn. En daarna controleren of ze niet leeg, of foutief zijn. Maar het gaat mij om het controleren van de namen van de keys.
    1
    2
    3
    if (array_key_exists('user', $ses) && array_key_exists('time', $ses) && array_key_exists('token', $ses)) {
       ...
    }

    Nog meer opties op http://nl2.php.net/manual/en/ref.array.php ;)
    SkaterSamdonderdag 22 maart 2007 @ 16:43
    quote:
    Op donderdag 22 maart 2007 16:31 schreef CraZaay het volgende:

    [..]
    [ code verwijderd ]

    Nog meer opties op http://nl2.php.net/manual/en/ref.array.php


    OMG, zo makkelijk he, ik had die functie nog in een aantal testjes...
    roelofjandonderdag 22 maart 2007 @ 22:32
    quote:
    Op donderdag 22 maart 2007 11:21 schreef Chandler het volgende:
    str_replace("watch?v=", "v/", $text)

    Iets uitgebreider?

    Ik kom er niet uit.
    SkaterSamdonderdag 22 maart 2007 @ 23:56
    quote:
    Op donderdag 22 maart 2007 22:32 schreef roelofjan het volgende:
    Iets uitgebreider?

    Ik kom er niet uit. ;(
    Ik geloof dat hij bedoelt dat als je dan een link van youtube hebt, dus: http://www.youtube.com/watch?v=AS8nQD85jTk, dat in php het volgende gebeurt:

    1
    2
    3
    4
    5
    6
    7
    <?php
    $link 
    "http://www.youtube.com/watch?v=AS8nQD85jTk"

    $newlink str_replace("watch?v=""v/"$link);

    // Nieuwe link: http://www.youtube.com/v/AS8nQD85jTk
    ?>

    Dit is wat er gebeurt, of wilde je dat niet hebben...? Kijk ook even bij str_replace() anders.

    Ik snapte verder niet wat je nou precies wilde... Maar in ieder geval, als je dan je quick search aanroept, krijg je de gehele link bij pagina.php?vid=http://www.youtube.com/watch?v=AS8nQD85jTk en die kan je dan met str_replace al gelijk in die snelle code omtoveren. Dan hoeft dat ook niet meer in de harde code te staan. Dan krijg je in je HTML de waarde <param value="<?php echo $newlink ?>"> of iets dergelijks. Ik geloof dat Chandler het zo bedoelde...
    roelofjanvrijdag 23 maart 2007 @ 00:08
    Ik wil

    http://www.youtube.com/watch?v=AS8nQD85jTk

    Omtoveren in

    AS8nQD85jTk

    Dat ik dus van

    $link = "http://www.youtube.com/watch?v=AS8nQD85jTk";

    naar

    $videoid = "AS8nQD85jTk";

    ga..
    CraZaayvrijdag 23 maart 2007 @ 00:10
    $videoid = str_replace('http://www.youtube.com/watch?v=', '', $link)

    Geqxonvrijdag 23 maart 2007 @ 00:11
    Om Sams voorbeeld maar te rippen:

    1
    2
    3
    4
    5
    6
    7
    <?php
    $link 
    "http://www.youtube.com/watch?v=AS8nQD85jTk"

    $newlink str_replace("http://www.youtube.com/watch?v="""$link);

    // Nieuwe link: AS8nQD85jTk
    ?>
    SkaterSamvrijdag 23 maart 2007 @ 00:14
    quote:
    Op vrijdag 23 maart 2007 00:11 schreef Geqxon het volgende:
    Om Sam's voorbeeld maar te rippen:
    [ code verwijderd ]
    Wat hij zegt dus...
    roelofjanvrijdag 23 maart 2007 @ 00:18
    Hehe, ik snap het eindelijk. :')

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

    $url = $_GET["url"]; 

    $videoid = str_replace("http://www.youtube.com/watch?v=", "", $url);

    ?>

    <div align="center">
    <object width="320" height="258">
    <param name="movie" value="http://www.youtube.com/v/<?php echo "$videoid" ?>">
    </param>
    <embed src="http://www.youtube.com/v/<?php echo "$videoid" ?>" 

    type="application/x-shockwave-flash" width="320" height="258">
    </embed>
    </object>


    Thanks!
    Chandlervrijdag 23 maart 2007 @ 10:38
    Vraagje aan de experts!

    Ik heb een scriptje geschreven waarbij een gebruiker wat informatie kan versturen incl een plaatje. Na het verwerken van de data gebruik ik een header("Location: om naar een andere pagina te gaan) Dit gaat goed.

    Nu moest ik echter een resize routine inbouwen voor het verkleinen van het plaatje. Dit alles gaat goed, totdat ik aan de header ("Location: kom en deze werkt opeens niet meer.

    Is dit een bug in PHP? en hoe kun je zien of er al headers zijn verstuurd?
    Geqxonvrijdag 23 maart 2007 @ 10:42
    Heb je al iets naar de browser gestuurd? Let op: Een simpele spatie voor je <? kan alles al bepaald hebben
    Chandlervrijdag 23 maart 2007 @ 10:55
    Als ik een echo voor de header zet krijg ik gewoon de melding dat de headers niet verstuurd kunnen worden en zonder het resize gedeelte gaat het gewoon helemaal goed
    Geqxonvrijdag 23 maart 2007 @ 10:57
    quote:
    Op vrijdag 23 maart 2007 10:55 schreef Chandler het volgende:
    Als ik een echo voor de header zet krijg ik gewoon de melding dat de headers niet verstuurd kunnen worden en zonder het resize gedeelte gaat het gewoon helemaal goed
    Klopt. De header is het eerste dat verstuurd moet worden, daar mag niks tussen zitten
    Chandlervrijdag 23 maart 2007 @ 11:09
    Klopt, maar nu vraag ik me af of de volgende functies een header uitspugen!

    imagecreatefromjpeg
    ImageCreateTrueColor
    ImageCopyResized
    ImageJpeg
    ImageDestroy

    Want kan daar helaas niets over vinden op php.net...
    HuHuvrijdag 23 maart 2007 @ 11:18
    Verschijnt er wat in je browser nadat je die functie(s) hebt uitgevoerd?
    JeRavrijdag 23 maart 2007 @ 11:23
    quote:
    Op vrijdag 23 maart 2007 11:09 schreef Chandler het volgende:
    Klopt, maar nu vraag ik me af of de volgende functies een header uitspugen!

    imagecreatefromjpeg
    ImageCreateTrueColor
    ImageCopyResized
    ImageJpeg
    ImageDestroy

    Want kan daar helaas niets over vinden op php.net...
    ImageJpeg spuugt geen header uit maar wel contents als je geen filename hebt opgegeven. Verder kunnen we bar weinig zo, zonder code
    Chandlervrijdag 23 maart 2007 @ 11:25
    Niets, helemaal niets...

    zal even een stukje code plaatsen
    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
    if (isSet($_FILES['foto1']) && $_FILES['foto1']['error'] == "0" && $_FILES['foto1']['size'] > 0)
                    {
                        $new  = "./gallery/org-" . $id . "-" . $_FILES['foto1']['name'];
                        $new1 = "./gallery/" . $id . "-" . $_FILES['foto1']['name'];

                        if (move_uploaded_file($_FILES['foto1']['tmp_name'], $new))
                        {

                            function cSize($im_width, $im_height, $size)
                            {
                                if ($im_width >= $im_height)
                                {
                                    $factor     = $size / $im_width;
                                    $new_width  = $size;
                                    $new_height = $im_height * $factor;
                                }
                                else
                                {
                                    $factor     = $size / $im_height;
                                    $new_height = $size;
                                    $new_width  = $im_width * $factor;
                                }

                                return array("width" => round($new_width, 0), "height" => round($new_height, 0));
                            }


                            // insert into db
                            mysql_query("INSERT INTO `fotos` (`vis_id`, `foto`)
                                         VALUES ('" . $id . "',
                                                 '" . $_FILES['foto1']['name'] . "');");
                                                 
                            // kijken of we het plaatje moeten verkleinen
                            
                            // alle teksten vasthouden.
                            ob_start("ob_end");
                            // is the orginal file still existing.
                            $im = @imagecreatefromjpeg($new);

                            // file is opend for editing
                            if ($im)
                            {
                                // set up thumbnail sizes
                                $im_width  = imageSX($im);
                                $im_height = imageSY($im);

                                if (500 >= $im_width && 500 >= $im_height)
                                {
                                    // doe niets
                                    ImageJpeg($im,
                                              $new1,
                                              75);
                                }
                                else
                                {
                                    $new_size = cSize($im_width, $im_height, 500);

                                    // create new image.
                                    $new_im = ImageCreateTrueColor($new_size['width'],
                                                                   $new_size['height']);

                                    // thumbnail the image.
                                    ImageCopyResized($new_im,
                                                     $im,
                                                     0,
                                                     0,
                                                     0,
                                                     0,
                                                     $new_size['width'],
                                                     $new_size['height'],
                                                     $im_width,
                                                     $im_height);


                                    // make image as jpeg.
                                    ImageJpeg($new_im,
                                              $new1,
                                              75);

                                    // remove build settings. (cache)
                                    ImageDestroy($im);
                                    ImageDestroy($new_im);

                                }
                            }
                            ob_end_clean();
                        }
                    }


    daarna volgt een email actie en

    1
    2
                    header("Location: voegtoe.php?actie=klaar");
                    exit();


    dit alles werkt goed zonder de 'THUMBNAIL' functie maar met krijg ik dus een lege pagina
    quote:
    Op vrijdag 23 maart 2007 11:23 schreef JeRa het volgende:
    ImageJpeg spuugt geen header uit maar wel contents als je geen filename hebt opgegeven. Verder kunnen we bar weinig zo, zonder code
    gedaan voordat ik je post zag

    -edit-

    ob_etc er in gezet om eventueel buffers op te vangen... maar geeft 0.0 resultaat
    JeRavrijdag 23 maart 2007 @ 11:30
    Die ob_start('ob_end') is een beetje vreemd. Die functie ob_end() bestaat naar mijn weten niet. Maar of dat het probleem oplost is een tweede
    Chandlervrijdag 23 maart 2007 @ 11:31
    Volgens mij hoeft dat er niet eens in te staan
    JeRavrijdag 23 maart 2007 @ 11:33
    quote:
    Op vrijdag 23 maart 2007 11:31 schreef Chandler het volgende:
    Volgens mij hoeft dat er niet eens in te staan
    Ik zou zeggen, comment de hele body van die functie eens uit en schakel weer regels in totdat het niet meer werkt

    En als een sidenote, een Location-header moet normaal gesproken een complete URI bevatten, en geen relatieve paden.
    Chandlervrijdag 23 maart 2007 @ 11:36
    dat is simpel, dat is de header.. als ik het gedeelte van resizen tussen /* en */ zet dan werkt het wel!

    Tevens heb je gelijk met het complete pad, maar ook relatief moet werken!

    maar ik zal het even testen!
    Geqxonvrijdag 23 maart 2007 @ 11:36
    quote:
    Op vrijdag 23 maart 2007 11:33 schreef JeRa het volgende:

    [..]


    En als een sidenote, een Location-header moet normaal gesproken een complete URI bevatten, en geen relatieve paden.
    Uit nieuwsgierigheid: Is dit vanwege de netheid, strictheid of omdat de kans groot is dat het dan totaal niet werkt?
    JeRavrijdag 23 maart 2007 @ 11:40
    quote:
    Op vrijdag 23 maart 2007 11:36 schreef Geqxon het volgende:

    [..]

    Uit nieuwsgierigheid: Is dit vanwege de netheid, strictheid of omdat de kans groot is dat het dan totaal niet werkt?
    Uit de RFC:
    quote:
    14.30 Location

    The Location response-header field is used to redirect the recipient to a location other than the Request-URI for completion of the request or identification of a new resource. For 201 (Created) responses, the Location is that of the new resource which was created by the request. For 3xx responses, the location SHOULD indicate the server's preferred URI for automatic redirection to the resource. The field value consists of a single absolute URI.

    Location = "Location" ":" absoluteURI
    Dus vanwege netheid, strictheid én omdat er een kans is dat sommige systemen er anders op vastlopen dat de meeste browsers het pikken betekent nog niet dat het een vrijbrief is om te doen. Dat is net zoiets als <center> en <font> mixen met CSS-styles, of de DOCTYPE weglaten.
    Geqxonvrijdag 23 maart 2007 @ 11:42
    Al lijkt mij dat niet handig voor standaardscript dat op veel server gedeployed moet worden. Al kun je dan wel weer met $_SERVER spelen
    JeRavrijdag 23 maart 2007 @ 11:43
    quote:
    Op vrijdag 23 maart 2007 11:42 schreef Geqxon het volgende:
    Al lijkt mij dat niet handig voor standaardscript dat op veel server gedeployed moet worden. Al kun je dan wel weer met $_SERVER spelen
    Dát, en een additionele mogelijkheid is natuurlijk het hanteren van configfiles ontzettend veel applicaties en websystemen (voor zover ze de informatie niet uit $_SERVER kunnen halen) vereisen dat je de FQDN (Fully Qualified Domain Name) opgeeft.
    Chandlervrijdag 23 maart 2007 @ 12:24
    Ps. Is het logisch als je een bestand van 2MB hebt deze 20MB aan geheugen in beslag neemt met imageCreateFromJpeg?
    splendorvrijdag 23 maart 2007 @ 12:34
    quote:
    Op vrijdag 23 maart 2007 12:24 schreef Chandler het volgende:
    Ps. Is het logisch als je een bestand van 2MB hebt deze 20MB aan geheugen in beslag neemt met imageCreateFromJpeg?
    Ja, ik geloof dat je het als een bmp moet voorstellen, echt elke pixel stelt een byte voor. Tenminste dat las ik ergens toen ik er mee aan de slag ging.
    Geqxonvrijdag 23 maart 2007 @ 12:34
    quote:
    Op vrijdag 23 maart 2007 12:24 schreef Chandler het volgende:
    Ps. Is het logisch als je een bestand van 2MB hebt deze 20MB aan geheugen in beslag neemt met imageCreateFromJpeg?
    Als hij het naar een rauw formaat omzet, kan dat best logisch zijn. Ik heb geen flauw idee dus
    Chandlervrijdag 23 maart 2007 @ 12:44
    Dus dan zou het handiger zijn dat wanneer je met images gaat werken je altijd het geheugen / 10 = max upload MB oid
    HuHuvrijdag 23 maart 2007 @ 12:59
    Het kan dan dus soms ook handig zijn om bijvoorbeeld ImageMagick te installeren op je server.
    Chandlervrijdag 23 maart 2007 @ 13:20
    Klopt maar in dit geval niet echt handig

    Tevens kom ik nog iets raars tegen

    Als ik een bestand van 2MB upload krijg ik netjes in $_FILES alle gegevens terug behalve de grootte van het bestand, deze staat namelijk dan op 0???

    Hoe is dat mogelijk?

    -edit-
    kan dit komen door de limiet die is opgesteld in PHP?
    HuHuvrijdag 23 maart 2007 @ 13:28
    Het bestand is inderdaad volledig geüpload?
    Chandlervrijdag 23 maart 2007 @ 13:28
    Hoe kan ik zien of deze volledig is geuploaded? want afgekapte bestanden zie je toch niet terug in $_FILES?
    Geqxonvrijdag 23 maart 2007 @ 13:29
    Post eens een print_r($_FILES)
    Chandlervrijdag 23 maart 2007 @ 13:30
    Waar doel je op Geqxon?
    Geqxonvrijdag 23 maart 2007 @ 13:32
    quote:
    Op vrijdag 23 maart 2007 13:30 schreef Chandler het volgende:
    Waar doel je op Geqxon? :D
    In je sourcecode even

    1
    2
    3
    <?php
    print_r
    ($_FILES);
    ?>


    neerzetten, en wat hij uitpoept hier neerzetten :)
    Darkomenvrijdag 23 maart 2007 @ 13:32
    quote:
    Op vrijdag 23 maart 2007 12:59 schreef HuHu het volgende:
    Het kan dan dus soms ook handig zijn om bijvoorbeeld ImageMagick te installeren op je server.
    das waar die moet ik ook nog installeren op mn server!
    Chandlervrijdag 23 maart 2007 @ 14:57
    quote:
    Op vrijdag 23 maart 2007 13:32 schreef Geqxon het volgende:

    [..]

    In je sourcecode even
    [ code verwijderd ]

    neerzetten, en wat hij uitpoept hier neerzetten
    Ik heb de error reeds gevonden, ik moet toch echt wat meer letten op errors van php zelf
    Geqxonvrijdag 23 maart 2007 @ 14:58
    quote:
    Op vrijdag 23 maart 2007 14:57 schreef Chandler het volgende:

    [..]

    Ik heb de error reeds gevonden, ik moet toch echt wat meer letten op errors van php zelf
    Gewoon lekker ruig "E_ALL" in je php.ini zetten
    cw2cuvrijdag 23 maart 2007 @ 15:25
    ik ben ook even bezig met een scriptje..
    maar ik krijg deze melding:

    Warning: imagecreatefrompng() [function.imagecreatefrompng]: 'icon.png' is not a valid PNG file

    Hoe kan ik dat png bestandje wel valid maken?
    HuHuvrijdag 23 maart 2007 @ 15:31
    Is het wel een PNG bestand dat? Of is het een JPG/GIF/BMP die je naar *.png hebt gerenamed?

    En werkt je script wel met andere PNG bestanden?
    cw2cuvrijdag 23 maart 2007 @ 15:39
    quote:
    Op vrijdag 23 maart 2007 15:31 schreef HuHu het volgende:
    Is het wel een PNG bestand dat? Of is het een JPG/GIF/BMP die je naar *.png hebt gerenamed?

    En werkt je script wel met andere PNG bestanden?
    Het is een origineel png bestand

    en andere png afbeeldingen worden gewoon weergegeven.
    HuHuvrijdag 23 maart 2007 @ 15:44
    quote:
    Op vrijdag 23 maart 2007 15:39 schreef cw2cu het volgende:

    [..]

    Het is een origineel png bestand

    en andere png afbeeldingen worden gewoon weergegeven.
    Ik las nog ergens op php.net dat er een probleem was met PNG bestanden die meer dan 256 kleuren bevatten... misschien ligt het daar aan?
    splendorvrijdag 23 maart 2007 @ 15:48
    Ik had wel problemen met GIF maar dat kwam omdat ivm die patenten ruzies een tijd terug bepaalde versies van GDlibrary geen gif ondersteuning meer hadden, en die versie stond toevallig op mijn server. Maar PNG is geloof ik patentvrij.
    Misschien heeft het met de transperatie te maken? Daar wil ie soms ook wel eens over vallen.
    cw2cuvrijdag 23 maart 2007 @ 16:08
    quote:
    Op vrijdag 23 maart 2007 15:44 schreef HuHu het volgende:

    [..]

    Ik las nog ergens op php.net dat er een probleem was met PNG bestanden die meer dan 256 kleuren bevatten... misschien ligt het daar aan?
    dankje, ik weet niet waarom maar het is idd opgelost
    SkaterSamvrijdag 23 maart 2007 @ 19:14
    edit: zie onder

    [ Bericht 34% gewijzigd door SkaterSam op 24-03-2007 17:17:33 ]
    SuperRembovrijdag 23 maart 2007 @ 22:17
    Je zal moeten controleren of er een geldige waarde in staat, niet alleen of er iets in staat wat niet false is.
    SkaterSamzaterdag 24 maart 2007 @ 13:52
    edit: lekker, de errors werden niet als een array naar de sessie gestuurd, dus bleven ze elkaar overschrijven...

    [ Bericht 96% gewijzigd door SkaterSam op 24-03-2007 17:17:11 ]
    Smokedzaterdag 24 maart 2007 @ 17:44
    Wat is er fout aan deze notatie?

    1$query = "DELETE FROM tbl_persoon WHERE persoonID=" .$_POST["persoonID"];
    Geqxonzaterdag 24 maart 2007 @ 17:57
    quote:
    Op zaterdag 24 maart 2007 17:44 schreef Smoked het volgende:
    Wat is er fout aan deze notatie?
    [ code verwijderd ]
    1$query = "DELETE FROM tbl_persoon WHERE persoonID="  . $_POST['persoonID'];


    Beter. Het lag aan de quotes. Verder is dit levensgevaarlijk, en raad ik je aan eerst te kijken of er geen rotzooi in de $_POST staat, maar daar laat ik het even bij.
    H4zezaterdag 24 maart 2007 @ 18:36
    quote:
    Op zaterdag 24 maart 2007 17:44 schreef Smoked het volgende:
    Wat is er fout aan deze notatie?
    [ code verwijderd ]
    Geef de URL van de site waarop je deze query gebruikt is?
    HuHuzaterdag 24 maart 2007 @ 18:48
    Inderdaad, ga eens na wat er gebeurd bij het volgende:

    $_POST['persoonID'] = "1 OR 1=1";

    Lightzaterdag 24 maart 2007 @ 19:08
    quote:
    Op zaterdag 24 maart 2007 17:57 schreef Geqxon het volgende:

    [..]
    [ code verwijderd ]

    Beter. Het lag aan de quotes. Verder is dit levensgevaarlijk, en raad ik je aan eerst te kijken of er geen rotzooi in de $_POST staat, maar daar laat ik het even bij.
    Als je toch over quotes valt, waarom maak je er dan niet gelijk
    1$query = 'DELETE FROM tbl_persoon WHERE persoonID='  . $_POST['persoonID'];
    van?
    splendorzaterdag 24 maart 2007 @ 19:34
    quote:
    Op zaterdag 24 maart 2007 19:08 schreef Light het volgende:

    [..]

    Als je toch over quotes valt, waarom maak je er dan niet gelijk
    [ code verwijderd ]

    van?
    Waarom is ' beter dan "?
    HuHuzaterdag 24 maart 2007 @ 19:58
    Omdat bij " PHP nog gaat kijken of er iets te parsen valt binnen de string en bij ' niet. Dus ' is sneller dan ".
    Geqxonzaterdag 24 maart 2007 @ 20:00
    quote:
    Op zaterdag 24 maart 2007 19:08 schreef Light het volgende:

    [..]

    Als je toch over quotes valt, waarom maak je er dan niet gelijk
    [ code verwijderd ]

    van?
    Dat is persoonlijk. De inhoud van een variabele zet ik altijd in double-quotes, de key van een array in single-quotes.
    CraZaayzaterdag 24 maart 2007 @ 22:59
    quote:
    Op zaterdag 24 maart 2007 19:58 schreef HuHu het volgende:
    Omdat bij " PHP nog gaat kijken of er iets te parsen valt binnen de string en bij ' niet. Dus ' is sneller dan ".
    Je hebt het dan wel over een verwaarloosbare snelheidswinst:
    quote:
    I put together a different benchmark that does measure parsing time. It consists of two files

    < ?php echo 'very long string'; ?>

    and

    < ?php echo "very long string"; ?>

    The very long string I used was the text of the US constitution: 27,787 bytes. I measured using ab, which includes parsing time. My results:

    single quotes: 27.59 ms
    double quotes: 27.74 ms

    Hardly earth-shattering. Single quotes was consistently faster, but by the same minor margin. This is with a 27k literal string. My guess is that you will never have enough literals in a typical PHP program for any parsing performance differential to matter.
    Lightzaterdag 24 maart 2007 @ 23:08
    Het is niet echt wat je noemt een groot verschil nee
    SkaterSamzondag 25 maart 2007 @ 00:49
    Wederom, zie onder

    [ Bericht 97% gewijzigd door SkaterSam op 25-03-2007 13:54:51 ]
    JeRazondag 25 maart 2007 @ 00:52
    @SkaterSam

    Je zult toch wat voorbeelden moeten geven, want PHP4 kan prima var $session in classes aan.
    SkaterSamzondag 25 maart 2007 @ 01:08
    GRMMMBLLL.... Ik dus de alle functies escapen, na een uurtje kwam ik er achter dat ctype_digit() de boosdoener was...

    [ Bericht 20% gewijzigd door SkaterSam op 25-03-2007 13:54:27 ]
    Smokedzondag 25 maart 2007 @ 12:42
    Ik wil met behulp van $_POST een uit een vorige pagina geselecteerd e-mail adres in een mailform knallen en dat doe ik zo.

    1$recipientemail = $_POST["emailadres"];


    recipientemail ziet er zo uit
    1mail($recipientemail,"$subject","$message","From: $Name <$Email>");


    Het probleem is nu alleen dat als ik de form wil versturen, ik deze melding krijg:

    Warning: mail() [function.mail]: SMTP server response: 503 RCPT first (#5.5.1) in C:wampwwwmeelvorm.php on line 116

    (waar line 116 de recipient code is)
    SuperRembozondag 25 maart 2007 @ 14:09
    Heb je wel een SMTP server ingesteld in php.ini?
    Chandlerzondag 25 maart 2007 @ 18:18
    Ik zit met een vaag iets... Eingelijk zou het volgende moeten werken maar goed.

    het volgende stukje code gebruik ik om HTML en een timestamp te serializen en weg te schrijven. Daarna wil ik het weer uitlezen maar krijg ik een error

    schrijf functie
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    if (PAGE_CACHE == true)
    {
        $file = PAGE_CACHE_PATH . "page_" . $startPage->id . ".tpl";
                    
        $fd  = fopen($file, "w+");
                    
        fputs($fd, serialize(array("update" => $pageArr['update'],
                                   "html"   => parseTemplate($tplContainer))));
                    
        fclose($fd);
    }


    lees functie
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    if (PAGE_CACHE == true && file_exists($file))
    {
        $fd = fopen($file, "r");

        $buf = fgets($fd, filesize($file));

        fclose($fd);

        $uns = unserialize($buf); // regel 47!

        if ($uns['update'] == $lastupdate)
        {
            return $uns;
        }
    }


    error
    quote:
    Notice: unserialize() failed at offset 38440 of 84 bytes op regel 47
    wat doe ik nu fout? niets toch? of zitten er bepaalde limieten aan serialize?
    ralfiezondag 25 maart 2007 @ 18:49
    Ik denk (zonder te testen) dat je fout zit in fgets(), die stopt bij newlines
    quote:
    Returns a string of up to length - 1 bytes read from the file pointed to by handle. Reading ends when length - 1 bytes have been read, on a newline (which is included in the return value), or on EOF (whichever comes first). If no length is specified, it will keep reading from the stream until it reaches the end of the line.
    Waarom gebruik je niet gewoon file_get_contents(), of fread()
    Chandlerzondag 25 maart 2007 @ 20:16
    omg je hebt helemaal gelijk wat een simpele fout eingelijk
    Qunixmaandag 26 maart 2007 @ 10:12
    Ik heb een pagina systeem:

    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
    <?php
    $nieuwsid 
    mysql_query("SELECT nieuws_id,nieuws_titel FROM t_nieuws WHERE nieuws_titel NOT LIKE "%notulen%"");
    $aantalberichten mysql_num_rows($nieuwsid);
    $aantpages $aantalberichten/5;
    $page $_GET['bladzijde'];
    $begin $page 5;
    $eind 5;

    //wat code

        
    if (!$page==0) {
            echo 
    "<a href="?pagina=".$_GET['pagina']."&bladzijde=".$vorige."&aantber=".$aantalberichten."" title="Vorige pagina">&laquo;</a>n";
        }
        
        for (
    $i 0$i $aantpages$i++) {
            
    $i2 $i 1;
            if (
    $page==$i && $aantalberichten 5) {
                echo 
    $i2;
            } elseif (
    $aantalberichten 6) {
                echo 
    "&nbsp;&nbsp;<a href="?pagina=".$_GET['pagina']."&bladzijde=".$i."&aantber=".$aantalberichten."" title="Ga naar pagina ".$i2."">".$i2."</a>&nbsp;&nbsp;";
            }
        }
        
        if (
    $aantpages && $volgende $aantpages) {
            echo 
    "<a href="?pagina=".$_GET['pagina']."&bladzijde=".$volgende."&aantber=".$aantalberichten."" title="Volgende pagina">&raquo;</a>";
        }
    ?>


    Alleen bij veel pagina's krijg ik een lange rits met getallen te zien. Ik wil dit verkorten naar een paar maar.

    « 11 12 13 14 15 »
    En dan dat men op pagina 13 is. Pijlen buiten is een link naar eerste of laatste pagina.

    Hoe moet ik mijn code uitbreiden?
    SuperRembomaandag 26 maart 2007 @ 13:26
    quote:
    Op maandag 26 maart 2007 10:12 schreef Qunix het volgende:
    Hoe moet ik mijn code uitbreiden?
    Gewoon logisch nadenken. Je gaat van de huidige pagina 2 terug en 2 verder, alleen moet je even controleren of je niet voorbij het begin of eind komt.
    Het helpt wel om logische namen voor variabelen te kiezen. Als je $page, $pagina en $bladzijde gebruikt dan raak je denk ik snel de weg kwijt.
    veldmuismaandag 26 maart 2007 @ 17:51
    Ik haal uit een DB gegevens over foto's op, en daar wil ik oa linkjes van maken.
    Ik doe dat met een mysql_fetch_array, en dan een while dingetje die de linkjes echoot.
    Hoe kan ik nou eerst nog iets loslaten op die mysql_fetch_array, zodat ik het linkje dat actief is een kleurtje kan geven?

    Ik ben een kei-n00b, trouwens!
    CraZaaymaandag 26 maart 2007 @ 17:58
    quote:
    Op maandag 26 maart 2007 17:51 schreef veldmuis het volgende:
    Ik haal uit een DB gegevens over foto's op, en daar wil ik oa linkjes van maken.
    Ik doe dat met een mysql_fetch_array, en dan een while dingetje die de linkjes echoot.
    Hoe kan ik nou eerst nog iets loslaten op die mysql_fetch_array, zodat ik het linkje dat actief is een kleurtje kan geven? :)

    Ik ben een kei-n00b, trouwens!
    Waarom doe je dat niet gewoon in de loop?

    1
    2
    3
    4
    5
    6
    while ($array = mysql_fetch_array($sql)) {
       if (...) {
          echo('deze is active: ');
       }
       echo($array['link']);
    }
    JortKmaandag 26 maart 2007 @ 21:45
    Waar ik benieuwd naar ben, is hoe bijvoorbeeld blog software als Wordpress die URL's goed voor elkaar krijgt.

    Wanneer ik bijvoorbeeld www.domein.nl/dit-is-mijn-pagina/ intik, dat hij ook op de pagina komt die ik hier onder hebt geblogd.

    Hoe wordt dit door Wordpress gedaan bijvoorbeeld, kan iemand dit uitleggen?
    CraZaaymaandag 26 maart 2007 @ 22:43
    Google eens op "url rewriting"
    JortKmaandag 26 maart 2007 @ 22:47
    quote:
    Op maandag 26 maart 2007 22:43 schreef CraZaay het volgende:
    Google eens op "url rewriting"
    * JortK gaat aan de gang

    Thanks
    veldmuismaandag 26 maart 2007 @ 22:48
    quote:
    Op maandag 26 maart 2007 17:58 schreef CraZaay het volgende:

    [..]

    Waarom doe je dat niet gewoon in de loop?


    [ code verwijderd ]
    Kan ik daar dan ook gewoon een span class bijzetten?
    H4zemaandag 26 maart 2007 @ 23:07
    Heeft er hier iemand ervaring met www.rentacoder.com? En als coder zijnde bedoel ik dan. Het lijkt me namelijk wel wat
    CraZaaymaandag 26 maart 2007 @ 23:52
    quote:
    Op maandag 26 maart 2007 22:48 schreef veldmuis het volgende:

    [..]

    Kan ik daar dan ook gewoon een span class bijzetten?
    Je kan erin zetten wat je wilt, tot een uittreksel van de universele verklaring voor de rechten van de mens aan toe
    veldmuisdinsdag 27 maart 2007 @ 08:37
    quote:
    Op maandag 26 maart 2007 23:52 schreef CraZaay het volgende:

    [..]

    Je kan erin zetten wat je wilt, tot een uittreksel van de universele verklaring voor de rechten van de mens aan toe
    Ow, dat lijkt me wel wat!
    Swetseneggerdinsdag 27 maart 2007 @ 08:46
    quote:
    Op dinsdag 27 maart 2007 08:37 schreef veldmuis het volgende:

    [..]

    Ow, dat lijkt me wel wat!
    Wel klikbaar maken he!
    veldmuisdinsdag 27 maart 2007 @ 08:48
    quote:
    Op dinsdag 27 maart 2007 08:46 schreef Swetsenegger het volgende:

    [..]

    Wel klikbaar maken he!
    Wat denk jij dan?!
    Geqxondinsdag 27 maart 2007 @ 13:46
    Ik zou iets als dit wel werkend willen krijgen:

    1
    2
    3
    <?php
    $array
    [$number][] = $value => $key;
    ?>


    Iemand mogelijk tips?
    Geqxondinsdag 27 maart 2007 @ 13:51
    quote:
    Op dinsdag 27 maart 2007 13:46 schreef Geqxon het volgende:
    Ik zou iets als dit wel werkend willen krijgen:
    [ code verwijderd ]

    Iemand mogelijk tips?
    Dat kan het beste zo:

    1
    2
    3
    <?php
    $array
    [$number][$value] = $key;
    ?>


    :)
    super-muffindinsdag 27 maart 2007 @ 13:55
    quote:
    Op dinsdag 27 maart 2007 08:48 schreef veldmuis het volgende:

    [..]

    Wat denk jij dan?!
    is toch helemaal niet logisch, een actief item (dus ze zijn al op de pagina), klikbaar maken.

    Waarom werkt dit niet bij mij?
    SELECT LAST_INSERT_ID()

    Ik zou dan mijn laatste ingevoegde ID (smallint veld, key en autoincrement) maar ik krijg telkens 0 terug.
    splendordinsdag 27 maart 2007 @ 14:18
    quote:
    Op dinsdag 27 maart 2007 13:55 schreef super-muffin het volgende:

    [..]

    is toch helemaal niet logisch, een actief item (dus ze zijn al op de pagina), klikbaar maken.

    Waarom werkt dit niet bij mij?
    SELECT LAST_INSERT_ID()

    Ik zou dan mijn laatste ingevoegde ID (smallint veld, key en autoincrement) maar ik krijg telkens 0 terug.
    SELECT LAST_INSERT_ID() AS blabla ?
    Wat eventueel ook mogelijk is, een unieke code tijdelijk opslaan (in php maken dus) en aan de hand van die code weer de select uitvoeren. Ik weet niet hoe veilig die Last insert id is namelijk, wat als er 2 entries door elkaar lopen van 2 users die zich registeren?
    Het hangt natuurlijk wel af waar je het voor gaat gebruiken.
    smesjzdinsdag 27 maart 2007 @ 14:24
    Als workaround:

    select max(keynaam) as lastid from blabla;
    Hmaildinsdag 27 maart 2007 @ 14:28
    mysql_insert_id()
    Geqxondinsdag 27 maart 2007 @ 15:04
    Ik heb mij helemaal rot gegoogled, maar: Hoe hang ik een doodsimpele foreing key tussen twee fields in een InnoDB MySQL database?