FOK!forum / Digital Corner / [PHP/(My)SQL] voor dummies - deel 54 - MVC FTW!!
Farenjimaandag 14 januari 2008 @ 23:45

cd niet bijgeleverd

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

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


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
  • Farenjimaandag 14 januari 2008 @ 23:47
    Zo, party on!
    Geqxondinsdag 15 januari 2008 @ 00:56
    Ik moet trouwens wel zeggen dat ik de laatste tijd wel telkens meer richting JSP aan het gaan ben, i.p.v. PHP.
    PiRANiAdinsdag 15 januari 2008 @ 08:35
    Weet iemand hoe ik dit moet oplossen:
    1
    2
    3
    4
    5
    <?php
    if(newtopicmatches('[PHP/(My)SQL] voor dummies')){
    echo 
    "tvp geplaatst;
    }
    ?>

    :P
    Geqxondinsdag 15 januari 2008 @ 08:38
    1
    2
    3
    <?php
    $rotpost 
    = new Reply(....)
    ?>


    :Y
    Tarabassdinsdag 15 januari 2008 @ 08:49
    quote:
    Op dinsdag 15 januari 2008 08:35 schreef PiRANiA het volgende:
    Weet iemand hoe ik dit moet oplossen:
    [ code verwijderd ]

    Wat dacht je van een countertje inbouwen
    Mordrethdinsdag 15 januari 2008 @ 08:50
    quote:
    Op dinsdag 15 januari 2008 08:38 schreef Geqxon het volgende:

    [ code verwijderd ]

    1
    2
    3
    4
    5
    6
    7
    8
    9
    <?php
    class Reply {
         
    __construct (tvp) {
            if (
    tvp == 1) {
                 
    $this->makereply();
            }
        }
    }
    ?>
    Geqxondinsdag 15 januari 2008 @ 08:55
    quote:
    Op dinsdag 15 januari 2008 08:50 schreef Mordreth het volgende:

    [..]
    [ code verwijderd ]


    $this->post()
    Mordrethdinsdag 15 januari 2008 @ 08:57
    quote:
    Op dinsdag 15 januari 2008 08:55 schreef Geqxon het volgende:

    [..]



    $this->post()
    Nee joh, die wordt gebruikt om een nieuw bericht te posten, niet een reply .

    Om toch maar eens mijn eerste vraag ooit hier te stellen: Iemand enig idee hoe je een pagina kan preloaden?
    WyriHaximusdinsdag 15 januari 2008 @ 09:30
    1
    2
    3
    4
    5
    6
    7
    include_once('Snoopy.class.php');
    include_once('Human.class.php');
    include_once('Fok!Bot.class.php');
    $fokbot = new fokbot('WyriHaximus','jadachtjedatnouecht');
    $topic_ids = $fokbot->get_topic_ids('[PHP/(My)SQL] voor dummies',16);
    rsort($topic_ids,SORT_NUMERIC);
    $fokbot->reply($topic_ids[0],6,'/me is lekker aan het coden :+');
    Mordrethdinsdag 15 januari 2008 @ 09:34
    quote:
    Op dinsdag 15 januari 2008 09:30 schreef WyriHaximus het volgende:

    [ code verwijderd ]
    Nu nog ff een automatische zoeker maken die 's nachts de laatste doodsverwensingen / scheldpartijen ophaalt en dan hoef je 's ochtends niet alle topics meer langs .
    WyriHaximusdinsdag 15 januari 2008 @ 10:16
    quote:
    Op dinsdag 15 januari 2008 09:34 schreef Mordreth het volgende:

    [..]

    Nu nog ff een automatische zoeker maken die 's nachts de laatste doodsverwensingen / scheldpartijen ophaalt en dan hoef je 's ochtends niet alle topics meer langs .
    Nog niet eens zon slechtplan maar zat zelf aan TR's te denken en die dan in een crewonly plaats te gooien maar dat is nog maar een gedachte spinsel .
    Chandlerdinsdag 15 januari 2008 @ 10:58
    buikgriep tvp
    Xcaliburdinsdag 15 januari 2008 @ 11:49
    quote:
    Op maandag 14 januari 2008 23:47 schreef Farenji het volgende:
    De overhead van smarty is behoorlijk laag hoor, templates worden gecompileerd en gecached, uiteindelijk is het gewoon vrij geoptimaliseerde php wat je uitvoert en dus echt niet langzamer dan een oplossing die je zelf inelkaar sleutelt. Wel veel krachtiger.
    Inderdaad... zeker de caching doet een hoop goed
    Ik vind Smarty een erg prettige oplossing in ieder geval, zeker omdat je ook zelf redelijk eenvoudig template-functie kunt toevoegen... en dat houdt je template ook wel overzichtelijk natuurlijk
    qu63dinsdag 15 januari 2008 @ 12:06
    quote:
    Op dinsdag 15 januari 2008 10:16 schreef WyriHaximus het volgende:

    [..]

    Nog niet eens zon slechtplan maar zat zelf aan TR's te denken en die dan in een crewonly plaats te gooien maar dat is nog maar een gedachte spinsel .
    ik had een scriptje wat bij een weblog-update een post maakte in 2 topics

    Alleen ik heb er iets te veel aan geklooid, en nu issie stuk
    WyriHaximusdinsdag 15 januari 2008 @ 12:45
    quote:
    Op dinsdag 15 januari 2008 12:06 schreef qu63 het volgende:

    [..]

    ik had een scriptje wat bij een weblog-update een post maakte in 2 topics

    Alleen ik heb er iets te veel aan geklooid, en nu issie stuk
    Hmm niet handig . Misschien terug naar een oudere versie die nog wel werkte?
    qu63dinsdag 15 januari 2008 @ 12:53
    quote:
    Op dinsdag 15 januari 2008 12:45 schreef WyriHaximus het volgende:

    [..]

    Hmm niet handig . Misschien terug naar een oudere versie die nog wel werkte?
    Neuh, ik weet waar de fout zit, en ik update mn weblog toch niet meer
    WyriHaximusdinsdag 15 januari 2008 @ 13:03
    quote:
    Op dinsdag 15 januari 2008 12:53 schreef qu63 het volgende:

    [..]

    Neuh, ik weet waar de fout zit, en ik update mn weblog toch niet meer
    Ah ik weer wel, al hoewel het meeste wat ik de laatste tijd tegen lijk te komen vooral money make blogs zijn . Pings + RSS zijn een leuke manier om aandacht op je blog te krijgen .
    Flacciddinsdag 15 januari 2008 @ 13:34
    thp

    Hoe kan ik zorgen dat die wampserver van outside ook te bezoeken is? want poort 80 is toch standaard poort? ik zit op een router en heb het adres 192.168.1.119. maar als ik IP:119/www doe krijg ik page not found
    wat doe ik verkeerd?

    [ Bericht 65% gewijzigd door Flaccid op 15-01-2008 17:40:15 ]
    Flacciddinsdag 15 januari 2008 @ 17:40
    Het lukt mij niet om een .htaccess goed te configureren voor dat wamp. ik krijg een internal server error of hij wil niet inloggen (als ik goede invoer)

    [ Bericht 89% gewijzigd door Flaccid op 15-01-2008 19:24:12 ]
    Xcaliburdinsdag 15 januari 2008 @ 20:30
    quote:
    Op dinsdag 15 januari 2008 13:34 schreef Flaccid het volgende:
    thp

    Hoe kan ik zorgen dat die wampserver van outside ook te bezoeken is? want poort 80 is toch standaard poort? ik zit op een router en heb het adres 192.168.1.119. maar als ik IP:119/www doe krijg ik page not found
    wat doe ik verkeerd?
    Waarschijnlijk moet je op je router nog poort 80 forwarden naar dat IP-adres?
    Flacciddinsdag 15 januari 2008 @ 20:32
    quote:
    Op dinsdag 15 januari 2008 20:30 schreef Xcalibur het volgende:

    [..]

    Waarschijnlijk moet je op je router nog poort 80 forwarden naar dat IP-adres?
    al gedaan, het gaat nu om het htacces gebeure.
    qu63dinsdag 15 januari 2008 @ 20:35
    quote:
    Op dinsdag 15 januari 2008 17:40 schreef Flaccid het volgende:
    Het lukt mij niet om een .htaccess goed te configureren voor dat wamp. ik krijg een internal server error of hij wil niet inloggen (als ik goede invoer)
    internal server error kan ook zijn dat je pc te druk is, gebeurt mij zelf ook nog wel eens namelijk
    Flacciddinsdag 15 januari 2008 @ 20:39
    quote:
    Op dinsdag 15 januari 2008 20:35 schreef qu63 het volgende:

    [..]

    internal server error kan ook zijn dat je pc te druk is, gebeurt mij zelf ook nog wel eens namelijk
    zal wel meevallen denk ik.
    MuRKiewoensdag 16 januari 2008 @ 12:44
    Hoi iedereen,
    ik ben nieuw in deze topic reeks. Zag net pas dit topic langskomen.
    Laat ik er maar meteen gebruik van maken..

    Ik ben beetje aan het rommelen met het maken van een cms systeempje..
    Nu vroeg ik me af of je een bestand kan includen in een variabele.
    Ik had zoiets gezien op www.php.net/include maar ik krijg het niet werkend.. Ik heb het idee dat ik dat voorbeeld niet begrijp en dat het voor andere doeleinden is dan waarvoor ik het wil gebruiken.

    Hier dat voorbeeld:
    quote:
    Example#1 include() in PHP 3 en PHP 4

    Naam aan dat het volgende bestand bestaat (genoemd test.inc) en dat deze zich in dezelfde directory bevindt als het hoofdscript:

    1
    2
    3
    4
    5
    6
    7
    <?php
    echo "Voor de return <br>\n";
    if (
    1) {
        return 
    27;
    }
    echo 
    "Na de return <br>\n";
    ?>


    Naam aan dat het hoofdscript, (main.html) het volgende bevat:

    1
    2
    3
    4
    <?php
    $retval 
    = include ('test.inc');
    echo 
    "File returned: '$retval'<br>\n";
    ?>


    When main.html is called in PHP 3, it will generate a parse error on line 2; you can't take the value of an include() in PHP 3. In PHP 4, however, the result will be:

    Before the return
    File returned: '27'

    Now, assume that main.html has been altered to contain the following:

    1
    2
    3
    4
    <?php
    include ('test.inc');
    echo 
    "Back in main.html<br>\n";
    ?>


    In PHP 4, the output will be:

    Before the return
    Back in main.html
    However, PHP 3 will give the following output:
    Before the return
    27Back in main.html

    Parse error: parse error in /home/torben/public_html/phptest/main.html on line 5

    The above parse error is a result of the fact that the return statement is enclosed in a non-function block within test.inc. When the return is moved outside of the block, the output is:

    Before the return
    27Back in main.html

    The spurious '27' is due to the fact that PHP 3 does not support returning values from files like that.
    Wat ik hier eigenlijk mee wil is de code die in de te includen file staat in de variabele krijgen. Zodat ik deze later kan printen. Ik wil geen gebruik maken van ob_start..
    Maar volgens mij kan je niet includen in een variabele of wel?

    Iemand die me hiermee kan helpen?

    [ Bericht 6% gewijzigd door MuRKie op 16-01-2008 13:55:24 ]
    Geqxonwoensdag 16 januari 2008 @ 12:46
    http://nl.php.net/file_get_contents
    quote:
    file_get_contents — Reads entire file into a string
    Flaccidwoensdag 16 januari 2008 @ 12:47
    quote:
    Op woensdag 16 januari 2008 12:44 schreef MuRKie het volgende:
    Hoi iedereen,
    ik ben nieuw in deze topic reeks. Zag net pas dit topic langskomen.
    Laat ik er maar meteen gebruik van maken..

    Ik ben beetje aan het rommelen met het maken van een cms systeempje..
    Nu vroeg ik me af of je een bestand kan includen in een variabele.
    Ik had zoiets gezien op www.php.net/include maar ik krijg het niet werkend.. Ik heb het idee dat ik dat voorbeeld niet begrijp en dat het voor andere doeleinden is dan waarvoor ik het wil gebruiken.

    Hier dat voorbeeld:
    [..]

    Wat ik hier eigenlijk mee wil is de code die in de te includen file staat in de variabele krijgen. Zodat ik deze later kan printen. Ik wil geen gebruik maken van ob_start..
    Maar volgens mij kan je niet includen in een variabele of wel?

    Iemand die me hiermee kan helpen?
    Hoe wil je eigenlijk in een .html php zetten?
    unox_worstwoensdag 16 januari 2008 @ 12:48
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    <?php
        
    function get_include($file)
        {
            foreach(
    $_POST AS $key => $value) {
                ${
    $key} = $value;
            }

            foreach(
    $_GET AS $key => $value) {
                ${
    $key} = $value;
            }

            
    ob_start();

            include
    $file;
            
    $buffer = ob_get_contents();
            
            
    ob_end_clean();  
            
            return
    $buffer;        
        }
    ?>


    Werkt voor mij prima

    Oeps, je wil geen ob_start gebruiken, dan zou ik het ook niet weten.
    MuRKiewoensdag 16 januari 2008 @ 12:51
    quote:
    Op woensdag 16 januari 2008 12:47 schreef Flaccid het volgende:

    [..]

    Hoe wil je eigenlijk in een .html php zetten?
    Wie heeft het over een .html?
    Ow dat voorbeeld zie ik nu
    Ik weet niet hoe je dat wilt ik heb het ook maar van php.net gekopieerd.. Zal wel main.php moeten zijn ofzo..
    MuRKiewoensdag 16 januari 2008 @ 12:55
    quote:
    Op woensdag 16 januari 2008 12:48 schreef unox_worst het volgende:

    [ code verwijderd ]

    Werkt voor mij prima

    Oeps, je wil geen ob_start gebruiken, dan zou ik het ook niet weten.
    Ik had van een vriend van me, die meer ervaring heeft met php dan ik, vernomen dat ob_start geen nette en verouderde methode was ofzo? Vandaar dat ik dat niet wil gebruiken, maar als jij het tegendeel kan bewijzen dan hoor ik het graag. Ik sta open voor nieuwe informatie
    MuRKiewoensdag 16 januari 2008 @ 12:57
    quote:
    Is dat een nette methode? Zie mijn post hierboven over ob_start..
    Ik weet niet of dat ook een nette methode is?

    Ik zelf had het geprobeerd alsvolgt:
    1
    2
    3
    <?php
    $varComponentResult 
    = include('map/file.php');
    ?>

    maar volgens mij is dat een hele domme poging

    [ Bericht 14% gewijzigd door MuRKie op 16-01-2008 13:55:57 ]
    unox_worstwoensdag 16 januari 2008 @ 12:58
    quote:
    Op woensdag 16 januari 2008 12:55 schreef MuRKie het volgende:

    [..]

    Ik had van een vriend van me, die meer ervaring heeft met php dan ik, vernomen dat ob_start geen nette en verouderde methode was ofzo? Vandaar dat ik dat niet wil gebruiken, maar als jij het tegendeel kan bewijzen dan hoor ik het graag. Ik sta open voor nieuwe informatie
    Ik ken zo geen andere manier, maar ik ben dan ook geen echte expert
    Ik was allang blij dat ik dit voor elkaar kreeg.
    Maar wat zou er mis zijn met ob_start dan? Als er alternatieven zijn die beter werken dan zou ik dat ook wel graag willen weten.
    Je kan volgens mij geen include in een variabele stoppen, ik kreeg er foutmeldingen op volgens mij.
    Geqxonwoensdag 16 januari 2008 @ 13:16
    "ob_start" houd alle output richting de browser tegen, vangt het tijdelijk op in een buffer, en laat het daarna pas zien. Als je dat voor dit soort doeleinden gebruikt kan het ietwat vies zijn.
    MuRKiewoensdag 16 januari 2008 @ 13:19
    quote:
    Op woensdag 16 januari 2008 13:16 schreef Geqxon het volgende:
    "ob_start" houd alle output richting de browser tegen, vangt het tijdelijk op in een buffer, en laat het daarna pas zien. Als je dat voor dit soort doeleinden gebruikt kan het ietwat vies zijn.
    Dat bedoel ik.. Maar file_get_contents is wel een schone manier hiervoor?
    En wordt de inhoud van de file dan eerst geevalueerd en dan in een variabele gestopt?
    Het te includen script maakt namelijk wel gebruik van functies die in de file staan die het script gaat includen..
    Anders moet ik namelijk wel mijn huidige methode blijven gebruiken om dit werkend te houden..

    Ik laad nu het script in via require('map/script.php'); en in script.php return ik een variabele welke ik in het script waarin ik script.php include weer in een variabele plak.. om het even gemakkelijk te maken

    [ Bericht 13% gewijzigd door MuRKie op 16-01-2008 13:26:44 ]
    JortKwoensdag 16 januari 2008 @ 13:34
    Ik kijk hier ook nog ff mee
    Geqxonwoensdag 16 januari 2008 @ 13:45
    quote:
    Op woensdag 16 januari 2008 13:19 schreef MuRKie het volgende:

    [..]

    Dat bedoel ik.. Maar file_get_contents is wel een schone manier hiervoor?
    En wordt de inhoud van de file dan eerst geevalueerd en dan in een variabele gestopt?
    Het te includen script maakt namelijk wel gebruik van functies die in de file staan die het script gaat includen..
    Anders moet ik namelijk wel mijn huidige methode blijven gebruiken om dit werkend te houden..

    Ik laad nu het script in via require('map/script.php'); en in script.php return ik een variabele welke ik in het script waarin ik script.php include weer in een variabele plak.. om het even gemakkelijk te maken
    file_get_contents is niets anders dan het bestand opvragen, en de letterlijke tekst die erin staat returnen. Net zoals jij het bestand in notepad zou openen.
    Thomasswoensdag 16 januari 2008 @ 13:53
    quote:
    Op dinsdag 15 januari 2008 08:35 schreef PiRANiA het volgende:
    Weet iemand hoe ik dit moet oplossen:
    1
    2
    3
    4
    5
    <?php
    if(newtopicmatches('[PHP/(My)SQL] voor dummies')){
    echo 
    "tvp geplaatst;
    }
    ?>


    :P
    Ja, ik denk dat het probleem zit in het feit dat je de string niet afsluit met dubbele quotes, ik zou het volgende doen:
    (let op regel 3 :o )
    1
    2
    3
    4
    5
    <?php
    if(newtopicmatches('[PHP/(My)SQL] voor dummies')){
    echo 
    "tvp geplaatst";
    }
    ?>
    8-)
    MuRKiewoensdag 16 januari 2008 @ 13:57
    quote:
    Op woensdag 16 januari 2008 13:45 schreef Geqxon het volgende:

    [..]

    file_get_contents is niets anders dan het bestand opvragen, en de letterlijke tekst die erin staat returnen. Net zoals jij het bestand in notepad zou openen.
    Ja maar include zorgt ervoor dat de included file onderdeel wordt van het script waarin je het include..
    Maar als ik het in eenvariabele stop via file_get_contents dan is dat niet het geval of wel?
    Geqxonwoensdag 16 januari 2008 @ 14:05
    quote:
    Op woensdag 16 januari 2008 13:57 schreef MuRKie het volgende:

    [..]

    Ja maar include zorgt ervoor dat de included file onderdeel wordt van het script waarin je het include..
    Maar als ik het in eenvariabele stop via file_get_contents dan is dat niet het geval of wel?
    Tip:

    1
    2
    3
    4
    5
    6
    <?php
    // #to_include.php
    function getWhatINeed(){
      return 
    "Foo";
    }
    ?>


    1
    2
    3
    4
    5
    <?php
    // #main.php
    include('to_include.php');
    $bar getWhatINeed();
    ?>


    :)
    WyriHaximuswoensdag 16 januari 2008 @ 14:10
    quote:
    Op woensdag 16 januari 2008 13:57 schreef MuRKie het volgende:

    [..]

    Ja maar include zorgt ervoor dat de included file onderdeel wordt van het script waarin je het include..
    Maar als ik het in eenvariabele stop via file_get_contents dan is dat niet het geval of wel?
    Nee standaard niet, file_get_contents returned de inhoud van het bestand wat je ophaald. echter
    1
    2
    3
    <?php
    eval(file_get_contents($file));
    ?>
    is het zelfde als
    1
    2
    3
    <?php
    include($file);
    ?>
    MuRKiewoensdag 16 januari 2008 @ 14:42
    quote:
    Op woensdag 16 januari 2008 14:05 schreef Geqxon het volgende:

    [..]

    Tip:
    [ code verwijderd ]


    [ code verwijderd ]

    Ja zo doe ik het nu dus.
    Maar in de to_include.php wordt weer een bestand geinclude via dezelfde methode.
    En ik vond die constructie een beetje omslachtig dus ik hoopte dat te kunnen omzijlen via de include in een variabele..
    Maar misschien is mijn huidige constructie dan toch de beste methode..
    MuRKiewoensdag 16 januari 2008 @ 14:43
    quote:
    Op woensdag 16 januari 2008 14:10 schreef WyriHaximus het volgende:

    [..]

    Nee standaard niet, file_get_contents returned de inhoud van het bestand wat je ophaald. echter
    [ code verwijderd ]

    is het zelfde als
    [ code verwijderd ]
    Maar dan zit het dus nog niet in een variabele?
    Ik denk ook bij nader inzien niet dat dat handig is in mijn situatie, maar allicht kan ik het later nog ergens goed voor gebruiken..

    Ik moet het namelijk zo hebben dat hij eerst de to_include file afhandeld en het resultaat in de variabele zet. En dat kan niet via de methode die ik in de OP aangaf denk ik.
    Ik denk dan toch dat ik mijn huidige methode oftewel de hierboven door Geqxon genoemde methode moet blijven gebruiken

    Of kan ik de volgende methode gebruiken:
    1
    2
    3
    <?php
         $varComponentResult 
    = eval(file_get_contents($file));
    ?>
    Thomasswoensdag 16 januari 2008 @ 15:02
    Ik kan me niet voorstellen dat eval(file_get_contents()) good practice is. Ik zou nog eens goed naar je opzet kijken want op die manier dingen doen kan éécht niet goed zijn
    MuRKiewoensdag 16 januari 2008 @ 15:05
    quote:
    Op woensdag 16 januari 2008 15:02 schreef Thomass het volgende:
    Ik kan me niet voorstellen dat eval(file_get_contents()) good practice is. Ik zou nog eens goed naar je opzet kijken want op die manier dingen doen kan éécht niet goed zijn
    Ik heb het nu op de manier gedaan zoals Geqxon heeft beschreven.
    Maar ik dacht dat het makkelijker zou zijn om het rechtstreeks in een variabele te includen, maar ik begin langzaam aan te twijfelen of dat ook echt zo is..
    Geqxonwoensdag 16 januari 2008 @ 15:33
    Weet iemand trouwens hoe ik het slim aan kan pakken, dat als ik volledig met MultiView danwel Mod_Rewrite werk, hoe ik dan mijn forms met GET kan posten?

    Ik heb nu een drop-down list met diverse automerken, en daarnaast eentje met diverse kleuren. Ik wil dat hij bij een submit naar "/cars/chevrolet/red/" gaat, maar is dat zonder javascript wel mogelijk?
    PiRANiAwoensdag 16 januari 2008 @ 15:40
    quote:
    Op woensdag 16 januari 2008 15:33 schreef Geqxon het volgende:
    Weet iemand trouwens hoe ik het slim aan kan pakken, dat als ik volledig met MultiView danwel Mod_Rewrite werk, hoe ik dan mijn forms met GET kan posten?

    Ik heb nu een drop-down list met diverse automerken, en daarnaast eentje met diverse kleuren. Ik wil dat hij bij een submit naar "/cars/chevrolet/red/" gaat, maar is dat zonder javascript wel mogelijk?
    1
    2
    3
    <?php
    header
    ('location: /cars'.$_GET['merk']. '/'$_GET['merk']);
    ?>

    ?

    zonder submit is het niet mogelijk zonder javascript denk ik
    qu63woensdag 16 januari 2008 @ 15:43
    quote:
    Op woensdag 16 januari 2008 15:33 schreef Geqxon het volgende:
    Weet iemand trouwens hoe ik het slim aan kan pakken, dat als ik volledig met MultiView danwel Mod_Rewrite werk, hoe ik dan mijn forms met GET kan posten?

    Ik heb nu een drop-down list met diverse automerken, en daarnaast eentje met diverse kleuren. Ik wil dat hij bij een submit naar "/cars/chevrolet/red/" gaat, maar is dat zonder javascript wel mogelijk?
    het post-veld van je formulier laten verwijzen naar de waarden van je 2 dropdown lijsten lijkt me, geen idee of dat dan javascript is of html
    Geqxonwoensdag 16 januari 2008 @ 15:43
    quote:
    Op woensdag 16 januari 2008 15:40 schreef PiRANiA het volgende:

    [..]
    [ code verwijderd ]

    ?

    zonder submit is het niet mogelijk zonder javascript denk ik
    Echter zou ik in dat geval al mijn pagina's aan moet passen. Ik ga er nog even mee fiddlen. Ik kan JavaScript natuurlijk ook optioneel maken, en dat javascriptloze personen dan helaas wel richting "car.php?brand=chevrolet&color=red" gaan. Het is toch maar een extraatje.
    MuRKiewoensdag 16 januari 2008 @ 15:44
    quote:
    Op woensdag 16 januari 2008 15:40 schreef PiRANiA het volgende:

    [..]
    [ code verwijderd ]

    ?

    zonder submit is het niet mogelijk zonder javascript denk ik
    Volgens mij kan dat ook alleen zonder javascript als je dat met een submit button doet..
    #ANONIEMwoensdag 16 januari 2008 @ 15:44
    ff tvptje.
    WyriHaximuswoensdag 16 januari 2008 @ 15:50
    quote:
    Op woensdag 16 januari 2008 15:02 schreef Thomass het volgende:
    Ik kan me niet voorstellen dat eval(file_get_contents()) good practice is. Ik zou nog eens goed naar je opzet kijken want op die manier dingen doen kan éécht niet goed zijn
    Het is iig niet netjes .
    Geqxonwoensdag 16 januari 2008 @ 15:53
    quote:
    Op woensdag 16 januari 2008 15:43 schreef Geqxon het volgende:

    [..]

    Echter zou ik in dat geval al mijn pagina's aan moet passen. Ik ga er nog even mee fiddlen. Ik kan JavaScript natuurlijk ook optioneel maken, en dat javascriptloze personen dan helaas wel richting "car.php?brand=chevrolet&color=red" gaan. Het is toch maar een extraatje.
    Ik ga er toch wel maar voor. Simpelweg boven elke pagina kijken of de huidige filename met PHP eindigt, en zo ja, doorsturen naar de MultiView pagina.
    MuRKiewoensdag 16 januari 2008 @ 16:09
    Is het trouwens mogelijk om mod_rewrite te gebruiken als je pagina's met verschillende aantallen $_GET variabelen in je url's hebt.
    Ik heb namelijk de ene keer index.php?component=news&category=algemeen en de andere keer heb ik een url met index.php?component=content&type=view&id=5&itemid=7

    Is het voor mod_rewrite noodzakelijk dat je altijd dezelfde aantallen $_GET variabelen in de url hebt?
    Dit had ik namelijk een keer gelezen toen ik nog niet wist wat mod_rewrite inhield en ging kijken wat mod_rewrite eigenlijk inhield (rare zin eigenlijk)
    PiRANiAwoensdag 16 januari 2008 @ 16:14
    quote:
    Op woensdag 16 januari 2008 15:43 schreef Geqxon het volgende:

    [..]

    Echter zou ik in dat geval al mijn pagina's aan moet passen. Ik ga er nog even mee fiddlen. Ik kan JavaScript natuurlijk ook optioneel maken, en dat javascriptloze personen dan helaas wel richting "car.php?brand=chevrolet&color=red" gaan. Het is toch maar een extraatje.
    heb je veel javascriptloze bezoekers dan?
    check je google analytics als je dat hebt
    WyriHaximuswoensdag 16 januari 2008 @ 16:15
    quote:
    Op woensdag 16 januari 2008 16:09 schreef MuRKie het volgende:
    Is het trouwens mogelijk om mod_rewrite te gebruiken als je pagina's met verschillende aantallen $_GET variabelen in je url's hebt.
    Ik heb namelijk de ene keer index.php?component=news&category=algemeen en de andere keer heb ik een url met index.php?component=content&type=view&id=5&itemid=7

    Is het voor mod_rewrite noodzakelijk dat je altijd dezelfde aantallen $_GET variabelen in de url hebt?
    Dit had ik namelijk een keer gelezen toen ik nog niet wist wat mod_rewrite inhield en ging kijken wat mod_rewrite eigenlijk inhield (rare zin eigenlijk)
    Nee absoluut niet, dat kan je allemaal opgeven en voor iedere 'case' een apparte regel maken .
    MuRKiewoensdag 16 januari 2008 @ 16:17
    quote:
    Op woensdag 16 januari 2008 16:15 schreef WyriHaximus het volgende:

    [..]

    Nee absoluut niet, dat kan je allemaal opgeven en voor iedere 'case' een apparte regel maken .
    Dan moet ik me toch maar eens gaan verdiepen in het mod_rewrite wezen
    Wat is eigenlijk het verschil tussen mod_rewrite en multiview?
    Wat werkt beter, makkelijker enz. enz.?

    Als ik zo vrij mag zijn om dat te vragen
    MuRKiewoensdag 16 januari 2008 @ 16:27
    Ik lees net een en ander op www.mod-rewrite.nl
    Maar hoe los ik het op als ik bij een bepaalde url andere volgorde van $_GET variabelen gebruik?
    index.php?component=news&category=algemeen
    index.php?component=content&type=view&id=5&itemid=7

    Dan krijg ik toch een conflict met category en type? Hoe weet mod_rewrite dat ik de ene keer category bedoel en de andere keer type?
    WyriHaximuswoensdag 16 januari 2008 @ 16:36
    quote:
    Op woensdag 16 januari 2008 16:27 schreef MuRKie het volgende:
    Ik lees net een en ander op www.mod-rewrite.nl
    Maar hoe los ik het op als ik bij een bepaalde url andere volgorde van $_GET variabelen gebruik?
    index.php?component=news&category=algemeen
    index.php?component=content&type=view&id=5&itemid=7

    Dan krijg ik toch een conflict met category en type? Hoe weet mod_rewrite dat ik de ene keer category bedoel en de andere keer type?
    Nee hoeft niet als jij voor bijde manieren van URL indeling een regel aan maakt .
    MuRKiewoensdag 16 januari 2008 @ 16:49
    quote:
    Op woensdag 16 januari 2008 16:36 schreef WyriHaximus het volgende:

    [..]

    Nee hoeft niet als jij voor bijde manieren van URL indeling een regel aan maakt .
    Maar stel bij de volgende url's:
    1
    2
    3
    4
    5
    index.php?component=news&category=algemeen
    www.site.nl/news/algemeen/

    index.php?component=content&type=view&id=5&itemid=7
    www.site.nl/content/view/5/7/


    in je script geef je dan als link de volgende url op:
    1www.site.nl/content/view/5/7/


    Hoe weet mod_rewrite dan of hij bij view de $_GET['type'] moet gebruiken of $_GET['category']
    want dat staat niet meer in de url dan toch..

    En dan even niet op het aantal $_GET variabelen gelet want het kan maar zo zijn dat ik een keer evenveel $_GET variabelen heb maar wel verschillende.. Dan heb ik toch een probleem?

    of moet ik in mijn script gewoon de oude url's gebruiken zoals:
    index.php?component=news&category=algemeen
    index.php?component=content&type=view&id=5&itemid=7

    en dat mod_rewrite dat zelf omtovert tot een mooie url?

    [ Bericht 2% gewijzigd door MuRKie op 16-01-2008 17:17:13 ]
    Geqxonwoensdag 16 januari 2008 @ 17:43
    quote:
    Op woensdag 16 januari 2008 16:14 schreef PiRANiA het volgende:

    [..]

    heb je veel javascriptloze bezoekers dan?
    check je google analytics als je dat hebt
    Mijn website moet tot Lynx aan toe compatible zijn.
    PiRANiAwoensdag 16 januari 2008 @ 17:50
    quote:
    Op woensdag 16 januari 2008 17:43 schreef Geqxon het volgende:

    [..]

    Mijn website moet tot Lynx aan toe compatible zijn.
    kee...
    da's wel een mooie doelstelling, maar waarom?
    heb je een speciale doelgroep waar je een verhoogde kans heb op niet-javascript-gebruikers?
    Flaccidwoensdag 16 januari 2008 @ 17:51
    quote:
    Op woensdag 16 januari 2008 17:43 schreef Geqxon het volgende:

    [..]

    Mijn website moet tot Lynx aan toe compatible zijn.
    Ik heb een mysql table met een aantal dingetjes. Deze moeten er uitkomen in een tabel. Nu moet de user deze volgorde kunnen aanpassen. Hoe kan ik dat het beste doen? Auto increment werkt niet goed, want als je iets verwijderd gaat ie gewoon door met tellen!
    SuperRembowoensdag 16 januari 2008 @ 18:02
    quote:
    Op woensdag 16 januari 2008 17:51 schreef Flaccid het volgende:
    Ik heb een mysql table met een aantal dingetjes. Deze moeten er uitkomen in een tabel. Nu moet de user deze volgorde kunnen aanpassen. Hoe kan ik dat het beste doen? Auto increment werkt niet goed, want als je iets verwijderd gaat ie gewoon door met tellen!
    Als de sorteervolgorde niet gerelateerd is aan andere gegevens in de tabel, dan heb je een extra kolom nodig die de sorteervolgorde bepaald.
    HuHuwoensdag 16 januari 2008 @ 18:21
    quote:
    Op woensdag 16 januari 2008 16:49 schreef MuRKie het volgende:

    [..]

    Maar stel bij de volgende url's:
    [ code verwijderd ]

    in je script geef je dan als link de volgende url op:
    [ code verwijderd ]

    Hoe weet mod_rewrite dan of hij bij view de $_GET['type'] moet gebruiken of $_GET['category']
    want dat staat niet meer in de url dan toch..

    En dan even niet op het aantal $_GET variabelen gelet want het kan maar zo zijn dat ik een keer evenveel $_GET variabelen heb maar wel verschillende.. Dan heb ik toch een probleem?

    of moet ik in mijn script gewoon de oude url's gebruiken zoals:
    index.php?component=news&category=algemeen
    index.php?component=content&type=view&id=5&itemid=7

    en dat mod_rewrite dat zelf omtovert tot een mooie url?
    In je mod_rewrite doe je ongeveer zoiets:

    1RewriteRule   ^content/view/(.*)/(.*)/   index.php?component=content&type=view&id=$1&itemid=$2


    De matches in je rule kun je in de rewrite herbruiken middels de variabelen $1, $2, enz...
    PiRANiAwoensdag 16 januari 2008 @ 18:44
    quote:
    Op woensdag 16 januari 2008 18:21 schreef HuHu het volgende:

    [..]

    In je mod_rewrite doe je ongeveer zoiets:
    [ code verwijderd ]

    De matches in je rule kun je in de rewrite herbruiken middels de variabelen $1, $2, enz...
    $ op het eind toch?
    HuHuwoensdag 16 januari 2008 @ 18:48
    quote:
    Op woensdag 16 januari 2008 18:44 schreef PiRANiA het volgende:

    [..]

    $ op het eind toch?
    Hoeft niet persé.
    Geqxonwoensdag 16 januari 2008 @ 19:09
    1RewriteRule ^content/view/([0-9]{1,2})/([0-9]{1,2})/{0,1}$ /index.php?component=content&type=view&id=$1&itemid=$2 [L]


    Dat is de rule. Waar je op het letten zijn de rondje haakjes, die in dit geval in de reguliere expressie om de eerste en tweede plek staan. Dit vertaalt zich in $1 en $2.
    Geqxonwoensdag 16 januari 2008 @ 19:09
    En gaan eten met een browservenster open is niet al te slim. Voortaan maar even refreshen.
    MuRKiewoensdag 16 januari 2008 @ 19:50
    heeft iemand misschien een linkje voor een tutorial betreft mod_rewrite want ik snap er de ballen van..

    [edit]
    wacht (.*) betekent dat er vanalles kan staan en anders kan je het specifiek op de waarde toepassen?
    Dus kan zou ik per uitzondering zo'n regel aan moeten maken. zie ik dat zo goed?
    [/edit]

    tutorial zou overigens nog steeds welkom zijn

    [ Bericht 26% gewijzigd door MuRKie op 16-01-2008 20:01:29 ]
    mscholwoensdag 16 januari 2008 @ 20:10
    http://pro.tweakers.net/n(...)eemt-mysql-over.html

    moeten we daar nou blij mee zijn?
    MuRKiewoensdag 16 januari 2008 @ 20:27
    quote:
    Op woensdag 16 januari 2008 20:10 schreef mschol het volgende:
    http://pro.tweakers.net/n(...)eemt-mysql-over.html

    moeten we daar nou blij mee zijn?
    hopelijk veranderd er niks dankzij deze overname..
    Spike1506woensdag 16 januari 2008 @ 20:33
    quote:
    Op woensdag 16 januari 2008 19:50 schreef MuRKie het volgende:
    heeft iemand misschien een linkje voor een tutorial betreft mod_rewrite want ik snap er de ballen van..

    [edit]
    wacht (.*) betekent dat er vanalles kan staan en anders kan je het specifiek op de waarde toepassen?
    Dus kan zou ik per uitzondering zo'n regel aan moeten maken. zie ik dat zo goed?
    [/edit]

    tutorial zou overigens nog steeds welkom zijn
    Als je een beetje gezocht had op Google had je dit vast ook kunnen vinden.
    Geqxonwoensdag 16 januari 2008 @ 20:46
    quote:
    Op woensdag 16 januari 2008 19:50 schreef MuRKie het volgende:
    heeft iemand misschien een linkje voor een tutorial betreft mod_rewrite want ik snap er de ballen van..

    [edit]
    wacht (.*) betekent dat er vanalles kan staan en anders kan je het specifiek op de waarde toepassen?
    Dus kan zou ik per uitzondering zo'n regel aan moeten maken. zie ik dat zo goed?
    [/edit]

    tutorial zou overigens nog steeds welkom zijn
    Google eens op regular expression. Of dump hier wat je nodig hebt, dan kan ik wat voor je bakken, waarna jij er hopelijk wat van leert.

    In bovenstaand geval staat de punt voor "willekeurig karakter", en het sterretje voor "maakt niet uit welke lengte".
    MuRKiewoensdag 16 januari 2008 @ 21:05
    quote:
    Op woensdag 16 januari 2008 20:33 schreef Spike1506 het volgende:

    [..]

    Als je een beetje gezocht had op Google had je dit vast ook kunnen vinden.
    ik zit via mijn pda te fokken omdat ik nog geen internet heb in mijn huisie. en googlen op een pda is geen ideale situatie.. dus heb nog niet echt gegoogled
    MuRKiewoensdag 16 januari 2008 @ 21:18
    quote:
    Op woensdag 16 januari 2008 20:46 schreef Geqxon het volgende:

    [..]

    Google eens op regular expression. Of dump hier wat je nodig hebt, dan kan ik wat voor je bakken, waarna jij er hopelijk wat van leert.

    In bovenstaand geval staat de punt voor "willekeurig karakter", en het sterretje voor "maakt niet uit welke lengte".
    ik kan nog niet echt iets concreets posten omdat ik mijn cms nog aan het ontwikkelen ben maar ik krijg url's als die ik hierboven eerder heb geschreven. maar ik begrijp dat ik voor elke afwijkende url een nieuwe regel moet maken?

    [ Bericht 0% gewijzigd door MuRKie op 16-01-2008 21:36:19 ]
    Geqxonwoensdag 16 januari 2008 @ 21:24
    Jep. Zo heb ik zelf bv. een stuk of 10 regels.
    MuRKiewoensdag 16 januari 2008 @ 21:34
    quote:
    Op woensdag 16 januari 2008 21:24 schreef Geqxon het volgende:
    Jep. Zo heb ik zelf bv. een stuk of 10 regels.
    dan ga ik eerst maar eens een beetje aankloten met de info die ik nu heb, en als het dan niet wil lukken dan vraag ik dat alsnog wel
    Xcaliburwoensdag 16 januari 2008 @ 21:45
    quote:
    Op woensdag 16 januari 2008 17:51 schreef Flaccid het volgende:
    Ik heb een mysql table met een aantal dingetjes. Deze moeten er uitkomen in een tabel. Nu moet de user deze volgorde kunnen aanpassen. Hoe kan ik dat het beste doen? Auto increment werkt niet goed, want als je iets verwijderd gaat ie gewoon door met tellen!
    Gisteren heb ik in dit topic ook al antwoord gegeven op deze vraag, namelijk: extra kolom toevoegen.... misschien effe terug gaan lezen?
    sabanwoensdag 16 januari 2008 @ 22:20
    Welk editor gebruiken jullie?
    Ik gebruik zelf Crimson Editor, echter het geeft veel errors wanneer ik met remote bestanden werkt.

    Wat is een ander goed editor welke met remote bestanden overweg kan?
    mscholwoensdag 16 januari 2008 @ 23:53
    @MuRKie: kijk eens naar regular expressions m.b.v. Regexbuddy.
    helaas geen gratis software maar wel erg handig voor het bouwen van regex'en (op zo'n manier dat je het ook nog snapt )
    Mordrethdonderdag 17 januari 2008 @ 08:32
    quote:
    Op woensdag 16 januari 2008 22:20 schreef saban het volgende:
    Welk editor gebruiken jullie?
    Ik gebruik zelf Crimson Editor, echter het geeft veel errors wanneer ik met remote bestanden werkt.

    Wat is een ander goed editor welke met remote bestanden overweg kan?
    jEdit! . Heeft zowel ondersteuning voor ftp als sftp en kan je verder uitbreiden met plugins en macro's.
    Plugins die ik gebruik:
    - ftp (overduidelijk waarvoor)
    - buffertabs (tabbladen binnen het programma).
    - jDiff om bestanden met elkaar te vergelijken.

    Enige wat ik bij jEdit mis is auto-completetion.. dat is best wel jammer. Maar voor de rest retestabiel.
    mscholdonderdag 17 januari 2008 @ 09:02
    quote:
    Op woensdag 16 januari 2008 22:20 schreef saban het volgende:
    Welk editor gebruiken jullie?
    Ik gebruik zelf Crimson Editor, echter het geeft veel errors wanneer ik met remote bestanden werkt.

    Wat is een ander goed editor welke met remote bestanden overweg kan?
    ik gebruik dreamwaever maar niet voor ftp'en (server staat thuis, dus een netwerkshare
    Xcaliburdonderdag 17 januari 2008 @ 09:51
    Ik gebruik Homesite (= codeview van Dreamweaver in principe), maar ik ben op zoek naar iets anders
    WyriHaximusdonderdag 17 januari 2008 @ 10:03
    Laten we niet al te veel offtopic gaan, we hebben voor editors een mooi topic: Welke editor voor PHP?
    sabandonderdag 17 januari 2008 @ 16:48
    quote:
    Op donderdag 17 januari 2008 09:02 schreef mschol het volgende:

    [..]

    ik gebruik dreamwaever maar niet voor ftp'en (server staat thuis, dus een netwerkshare
    Stom van me! Niet eerder aan gedacht. Ik draai het ook thuis, maar maakte gebruik van FTP terwijl ik er natuurlijk ook een share van kan maken!
    Lightdonderdag 17 januari 2008 @ 19:44
    quote:
    Op woensdag 16 januari 2008 12:48 schreef unox_worst het volgende:

    [ code verwijderd ]

    Werkt voor mij prima

    Oeps, je wil geen ob_start gebruiken, dan zou ik het ook niet weten.
    Waarom simuleer je register_globals?
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <?php
            
    foreach($_POST AS $key => $value) {
                ${
    $key} = $value;
            }

            foreach(
    $_GET AS $key => $value) {
                ${
    $key} = $value;
            }
    ?>
    Om te beginnen kan ik iedere $_POST variabele zo overschrijven met een $_GET-waarde. Da's niet zo handig. Daarbij gebruik je in de functie geen enkele variabele die je op die manier hebt gemaakt.
    wobbeldonderdag 17 januari 2008 @ 22:08
    Stel ik roep de functie Dump ( ); aan, en ik geef een variable mee..dus dit:

    $data = "heel veel tekens";

    Dump ( $data );


    Is er dan een limiet aan de hoeveel tekens die $data mag bevatten? Dat PHP bijv. geen buffer overflow krijgt bij bijv. 100.000 tekens
    Thomassdonderdag 17 januari 2008 @ 22:16
    quote:
    Op donderdag 17 januari 2008 22:08 schreef wobbel het volgende:
    Stel ik roep de functie Dump ( ); aan, en ik geef een variable mee..dus dit:

    $data = "heel veel tekens";

    Dump ( $data );


    Is er dan een limiet aan de hoeveel tekens die $data mag bevatten? Dat PHP bijv. geen buffer overflow krijgt bij bijv. 100.000 tekens
    memory_limit
    wobbeldonderdag 17 januari 2008 @ 22:18
    quote:
    Op donderdag 17 januari 2008 22:16 schreef Thomass het volgende:

    [..]

    memory_limit
    ooh daar loopt het nooit tegenaan
    sabandonderdag 17 januari 2008 @ 22:44
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <?php
    $kaart    
    =    $_GET['kaart'];

    function 
    checkOption($value) {
        if (
    $value == $kaart) {
            echo 
    "Checked!";
        }
    }

    checkOption("test");
    ?>


    Dit werkt niet. Hoe is dit op te lossen zonder regel 2 in de functie te nemen?

    Ik heb namelijk een select-lijst (in HTML), maar ik wil 'm netter hebben met een functie, hoe ik het nu heb:
    1
    2
    3
    4
    5
    6
    7
    8
    <?php
    $kaart        
    =    mysql_result($sql0kaart);
    <
    option if ($kaart == "Koza Sade") { echo " selected"; } >Koza Sade</option>
    <
    option if ($kaart == "Koza Luks") { echo " selected"; } >Koza Luks</option>
    <
    option if ($kaart == "Koza Sunnet") { echo " selected"; } >Koza Sunnet</option>
    <
    option if ($kaart == "Koza Pelin") { echo " selected"; } >Koza Pelin</option>
    <
    option if ($kaart == "Koza Alara") { echo " selected"; } >Koza Alara</option>
    ?>


    Dit wil ik omtoveren naar:
    1
    2
    3
    4
    5
    6
    7
    8
    <?php
    $kaart        
    =    mysql_result($sql0kaart);
    <
    option  checkOption("Koza Sade"); >Koza Sade</option>
    <
    option  checkOption("Koza Luks"); >Koza Luks</option>
    <
    option  checkOption("Koza Sunnet"); >Koza Sunnet</option>
    <
    option  checkOption("Koza Pelin"); >Koza Pelin</option>
    <
    option  checkOption("Koza Alara"); >Koza Alara</option>
    ?>


    [ Bericht 67% gewijzigd door saban op 17-01-2008 22:50:45 ]
    Geqxondonderdag 17 januari 2008 @ 23:00
    Hoe ik het zou doen:

    1
    2
    3
    4
    5
    6
    7
    8
    <?php
    $kaart_select 
    mysql_result($sql0kaart);
    $kaarten = array("Koza Sade""Koza Luks""Koza Sunnet""Koza Pelin""Koza Alara");

    foreach(
    $kaarten as $kaart){
        
    printf("<option%s>%s</option>", ($kaart == $kaart_select) ? " selected" ""$kaart);
    }
    ?>
    Geqxondonderdag 17 januari 2008 @ 23:03
    Verder moet je een functie zien als een gesloten ruimte, en die alleen kennis heeft van variabelen die je doorgeeft, en geen flauw idee heeft wat er om hem heen gebeurd. In jouw geval kent hij $kaart niet.
    Xcaliburvrijdag 18 januari 2008 @ 09:58
    quote:
    Op donderdag 17 januari 2008 22:44 schreef saban het volgende:
    kan je niet gewoon $kaart aan de functieaanroep meegeven?
    dus: checkOption($value, $kaart) ?
    sabanvrijdag 18 januari 2008 @ 11:08
    quote:
    Op vrijdag 18 januari 2008 09:58 schreef Xcalibur het volgende:

    [..]

    kan je niet gewoon $kaart aan de functieaanroep meegeven?
    dus: checkOption($value, $kaart) ?
    Waarschijnlijk wel
    #ANONIEMvrijdag 18 januari 2008 @ 11:10
    Functions moet je dingen laten retourneren, niet laten echo-en imo.
    MuRKievrijdag 18 januari 2008 @ 23:49
    hey nog even over mod_rewrite. als ik dat wil gebruiken moet ik dan alle url's, die in mijn scripts verwerkt zitten, aanpassen of worden die on the fly aangepast door mod_rewrite?

    en kan iemand kijken wat er fout is aan de volgende query?

    1
    2
    3
    4
    5
    6
    <?php
    $varQuery  
    "UPDATE menuitem ";
    $varQuery .= "SET delete = 'yes' ";
    $varQuery .= "WHERE ID = '" fetchItemID() . "'";
    $varRun mysql_query($varQuery) or die(_DATABASE_QUERY_ERROR " " mysql_error());
    ?>


    hij geeft een error terug dat de syntax niet goed is. maar een identieke query die enkel een ander Veld update werkt wel gewoon goed..

    [ Bericht 39% gewijzigd door MuRKie op 19-01-2008 01:25:47 ]
    Farenjizaterdag 19 januari 2008 @ 11:01
    quote:
    Op vrijdag 18 januari 2008 23:49 schreef MuRKie het volgende:

    en kan iemand kijken wat er fout is aan de volgende query?
    [ code verwijderd ]

    hij geeft een error terug dat de syntax niet goed is. maar een identieke query die enkel een ander Veld update werkt wel gewoon goed..
    Tja het zou handig zijn om te weten wat er uit die functie fetchItemID() komt. Waarschijnlijk komt daar iets anders dan je verwacht. Print de resulterende query eens naar stderr zodat je ziet wat er precies gebeurt.
    Rare functie overigens, zo zonder params enzo, heb je maar 1 item tegelijk in je programma ofzo?
    #ANONIEMzaterdag 19 januari 2008 @ 11:12
    wat voor veld is delete? is dat een boolean of een varchar?
    SuperRembozaterdag 19 januari 2008 @ 11:43
    quote:
    Op vrijdag 18 januari 2008 23:49 schreef MuRKie het volgende:
    hey nog even over mod_rewrite. als ik dat wil gebruiken moet ik dan alle url's, die in mijn scripts verwerkt zitten, aanpassen of worden die on the fly aangepast door mod_rewrite?

    en kan iemand kijken wat er fout is aan de volgende query?
    [ code verwijderd ]

    hij geeft een error terug dat de syntax niet goed is. maar een identieke query die enkel een ander Veld update werkt wel gewoon goed..
    Je had ook even de query die uitgevoerd wordt aan het die() statement kunnen toevoegen, dan weet je tenminste welke query precies fout gaat.
    'delete' is een reserved word, dus als je die als kolomnaam gebruikt, dan moet je er `back ticks` omheen zetten. Ik denk dat 't ook niet echt de juiste naam voor de kolom is ('deleted' zou waarschijnlijk beter zijn). En een varchar veld gebruiken om er 'yes' of 'no' in te zetten is niet handig, daar kan je beter een tinyint voor gebruiken met 1 of 0.
    Xcaliburzaterdag 19 januari 2008 @ 12:11
    quote:
    Op zaterdag 19 januari 2008 11:43 schreef SuperRembo het volgende:
    daar kan je beter een tinyint voor gebruiken met 1 of 0.
    In dat geval kan je weer beter een ENUM(1,0) gebruiken volgens mij
    MuRKiezaterdag 19 januari 2008 @ 12:13
    quote:
    Op zaterdag 19 januari 2008 11:43 schreef SuperRembo het volgende:

    [..]

    Je had ook even de query die uitgevoerd wordt aan het die() statement kunnen toevoegen, dan weet je tenminste welke query precies fout gaat.
    'delete' is een reserved word, dus als je die als kolomnaam gebruikt, dan moet je er `back ticks` omheen zetten. Ik denk dat 't ook niet echt de juiste naam voor de kolom is ('deleted' zou waarschijnlijk beter zijn). En een varchar veld gebruiken om er 'yes' of 'no' in te zetten is niet handig, daar kan je beter een tinyint voor gebruiken met 1 of 0.
    de melding was dat ik de syntax "near SET delete = 'yes' WHERE ID = 13"

    het veld is trouwens geen VARCHAR maar ENUM
    MuRKiezaterdag 19 januari 2008 @ 12:20
    quote:
    Op zaterdag 19 januari 2008 11:01 schreef Farenji het volgende:

    [..]

    Tja het zou handig zijn om te weten wat er uit die functie fetchItemID() komt. Waarschijnlijk komt daar iets anders dan je verwacht. Print de resulterende query eens naar stderr zodat je ziet wat er precies gebeurt.
    Rare functie overigens, zo zonder params enzo, heb je maar 1 item tegelijk in je programma ofzo?
    fetchItemID() haalt het itemid op uit de url ($_GET['itemid']) en aan de url te zien klopt het itemid gewoon en aan de mysql_error te zien ook
    MuRKiezaterdag 19 januari 2008 @ 12:25
    quote:
    Op zaterdag 19 januari 2008 11:12 schreef Scorpie het volgende:
    wat voor veld is delete? is dat een boolean of een varchar?
    ENUM 'yes', 'no'
    MuRKiezaterdag 19 januari 2008 @ 12:31
    quote:
    Op zaterdag 19 januari 2008 12:11 schreef Xcalibur het volgende:

    [..]

    In dat geval kan je weer beter een ENUM(1,0) gebruiken volgens mij
    ikzelf heb dus ook ENUM gekozen maar dan met 'yes', 'no' om de opties logischer te houden..
    MuRKiezaterdag 19 januari 2008 @ 12:57
    ik heb net het veld delete hernoemt naar deleted en nu werkt hij wel. bedankt voor jullie hulp
    Arjan321zaterdag 19 januari 2008 @ 13:29
    en daarom is het good practice om in mysql altijd backticks ( ` , dat ding naast je 1 ) te gebruiken om je tabel- en kolomnamen.. zo kan je nooit onverhoopt een conflict krijgen met een reserved keyword..
    SuperRembozaterdag 19 januari 2008 @ 14:58
    quote:
    Op zaterdag 19 januari 2008 12:13 schreef MuRKie het volgende:
    [..]
    de melding was dat ik de syntax "near SET delete = 'yes' WHERE ID = 13"

    het veld is trouwens geen VARCHAR maar ENUM
    O ja, MySQL heeft enums. Daar denk ik niet zo snel aan omdat SqlServer ze niet heeft.
    Wat doet MySQL eigenlijk als je probeert een ongeldige waarde in een enum kolom te zetten?
    Xcaliburzaterdag 19 januari 2008 @ 17:24
    quote:
    Op zaterdag 19 januari 2008 12:31 schreef MuRKie het volgende:
    ikzelf heb dus ook ENUM gekozen maar dan met 'yes', 'no' om de opties logischer te houden..
    gevoelsmatig is 1 / yes / true en 0 / no / false allemaal hetzelfde voor mij
    Maar ik reageerde op de TINYINT post, vandaar dat ik met de 1 / 0 kwam...
    Farenjizaterdag 19 januari 2008 @ 18:13
    quote:
    Op zaterdag 19 januari 2008 17:24 schreef Xcalibur het volgende:

    [..]

    gevoelsmatig is 1 / yes / true en 0 / no / false allemaal hetzelfde voor mij
    Maar ik reageerde op de TINYINT post, vandaar dat ik met de 1 / 0 kwam...
    Het is veel beter om consequent 1 voor true te gebruiken, en 0 voor false. Dat maakt het veel logischer omdat PHP 0 ook als false ziet en 1 als true. "yes" en "no" worden door PHP allebei als true gezien.
    mvczaterdag 19 januari 2008 @ 18:26
    Hey mijn nickname staat in de tt
    Flaccidzaterdag 19 januari 2008 @ 19:39
    quote:
    Op zaterdag 19 januari 2008 18:26 schreef mvc het volgende:
    Hey mijn nickname staat in de tt
    wrom?

    [ Bericht 6% gewijzigd door Flaccid op 19-01-2008 20:10:19 ]
    wobbelzaterdag 19 januari 2008 @ 20:05
    Ik zit met iets heel vaags waar ik niet echt uit kom hoe ik het op moet lossen....

    Ik heb een tabel met wat velden: Ziet er zo uit:

    Tabel BEZOEKERS
    Wat
    Datum
    Ip

    WAT - DATUM - IP
    home - 1200769418 - 82.64.36.31
    home - 1200356372 - 213.51.210.153
    contact - 1200313598 - 199.121.10.192
    (etc etc etc)

    Nu zie je dat ik een UNIX timestamp (date ( "U" )) als datum...

    Maar hoe krijg ik nu een mooi overzichtje:

    MAAND - VIEWS
    Januari - en dan alle records die in januari valle
    Februari - en dan alle records die in februari vallen

    tot aan de huidige maand
    Flaccidzaterdag 19 januari 2008 @ 20:11
    quote:
    Op zaterdag 19 januari 2008 20:05 schreef wobbel het volgende:
    Ik zit met iets heel vaags waar ik niet echt uit kom hoe ik het op moet lossen....

    Ik heb een tabel met wat velden: Ziet er zo uit:

    Tabel BEZOEKERS
    Wat
    Datum
    Ip

    WAT - DATUM - IP
    home - 1200769418 - 82.64.36.31
    home - 1200356372 - 213.51.210.153
    contact - 1200313598 - 199.121.10.192
    (etc etc etc)


    Nu zie je dat ik een UNIX timestamp (date ( "U" )) als datum...
    kan je die datum niet met php erin stoppen? met de date() functie? Ik heb werkelijk geen flauw idee hoe ik die unix date moet uitlezen..
    Mordrethzaterdag 19 januari 2008 @ 20:17
    quote:
    Op zaterdag 19 januari 2008 20:05 schreef wobbel het volgende:
    Ik zit met iets heel vaags waar ik niet echt uit kom hoe ik het op moet lossen....

    Ik heb een tabel met wat velden: Ziet er zo uit:

    Tabel BEZOEKERS
    Wat
    Datum
    Ip

    WAT - DATUM - IP
    home - 1200769418 - 82.64.36.31
    home - 1200356372 - 213.51.210.153
    contact - 1200313598 - 199.121.10.192
    (etc etc etc)

    Nu zie je dat ik een UNIX timestamp (date ( "U" )) als datum...

    Maar hoe krijg ik nu een mooi overzichtje:

    MAAND - VIEWS
    Januari - en dan alle records die in januari valle
    Februari - en dan alle records die in februari vallen

    tot aan de huidige maand
    Je bouwt de query dan bijvoorbeeld (zijn meerdere wegen naar Rome) zo op:
    select * from bezoekers where datum > AAAAAA and datum < BBBBB
    Op de AAA plek zet je dan een unix timestamp van 1 februari neer (doormiddel van date: date(0,0,0,2,1,2008)
    en op de plek van BBB zet je dus het einde van de maand neer .

    Met order by datum kan je het dan netjes oplopend / aflopend ophalen.
    wobbelzaterdag 19 januari 2008 @ 20:31
    quote:
    Op zaterdag 19 januari 2008 20:17 schreef Mordreth het volgende:

    [..]

    Je bouwt de query dan bijvoorbeeld (zijn meerdere wegen naar Rome) zo op:
    select * from bezoekers where datum > AAAAAA and datum < BBBBB
    Op de AAA plek zet je dan een unix timestamp van 1 februari neer (doormiddel van date: date(0,0,0,2,1,2008)
    en op de plek van BBB zet je dus het einde van de maand neer .

    Met order by datum kan je het dan netjes oplopend / aflopend ophalen.
    aah kijk eens aan, daar heb ik wat meer aan

    en nog een vraagje...

    ik heb nog een tabel:

    Namen
    IdNaam - Naam
    1 - roy
    2 - roy
    3 - kim
    4 - ronny
    5 - ronny
    6 - kim
    7 - eric
    8 - kim

    Hoe zorg ik nu dat ie alles slechts 1 keer weergeeft? dus

    roy
    kim
    ronny
    eric

    en dus geen dubbele?
    Geqxonzaterdag 19 januari 2008 @ 20:47
    SELECT DISTINCT.
    wobbelzaterdag 19 januari 2008 @ 20:59
    quote:
    Op zaterdag 19 januari 2008 20:47 schreef Geqxon het volgende:
    SELECT DISTINCT.
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <?php
    $SQL_Name_Select        
    "SELECT DISTINCT Naam
                                    FROM Namen"
    $SQL_Name_Query            mysql_query $SQL_Name_Select 
                                    or die ( 
    $error->MySQL __FILE__$SQL_Name_Insert__LINE__ ) );
                                    
    while ( 
    $SQLData mysql_fetch_array $SQL_Name_Query ) )
    {

        echo 
    $SQLData['Naam'] . "<br />";

    }
    ?>


    poept niks uit
    zal wel iets heel stoms zijn, maar ben gigantisch moe en het PHPen gaat nietecht lekker meer
    HuHuzaterdag 19 januari 2008 @ 23:01
    DISTINCT is een functie en daar moeten volgens mij verplicht haakjes omheen, dus zo:

    1SELECT DISTINCT(Naam) FROM Namen
    Geqxonzaterdag 19 januari 2008 @ 23:16
    Het is geen functie, maar een optie die bij SELECT hoort.
    quote:
    The ALL, DISTINCT, and DISTINCTROW options specify whether duplicate rows should be returned. If none of these options are given, the default is ALL (all matching rows are returned). DISTINCT and DISTINCTROW are synonyms and specify removal of duplicate rows from the result set.
    Flaccidzondag 20 januari 2008 @ 02:04
    quote:
    Op zaterdag 19 januari 2008 23:16 schreef Geqxon het volgende:
    Het is geen functie, maar een optie die bij SELECT hoort.
    [..]

    Dus hij maakt er een array van? Maar dat was het al? Wat doet dit precies meer? Select WHERE id > 0 kan toch ook?
    Geqxonzondag 20 januari 2008 @ 02:08
    quote:
    Op zondag 20 januari 2008 02:04 schreef Flaccid het volgende:

    [..]

    Dus hij maakt er een array van? Maar dat was het al? Wat doet dit precies meer? Select WHERE id > 0 kan toch ook?
    Het is een optie van SELECT, waarbij je tegen SELECT zegt dat je enkel rijen met unieke waarden wilt.

    Lees meer op: http://www.w3schools.com/sql/sql_select.asp > "The SELECT DISTINCT Statement"
    Farenjizondag 20 januari 2008 @ 11:58
    quote:
    Op zaterdag 19 januari 2008 19:39 schreef Flaccid het volgende:

    [..]

    wrom?
    Model View Controller
    sabanzondag 20 januari 2008 @ 14:50
    Ik wil kunnen zien hoeveel actieve/online gebruikers er op een website zijn, hiervoor wil ik een script schrijven, is dit een goede 'constructie' of kan het simpeler;

    Iedere keer als de pagina bezocht wordt doe ik een INSERT hoelaat het op dat moment was met zijn IP. Indien zijn IP al voorkomt doe ik geen INSERT maar een UPDATE met een nieuwe tijd.

    Op de achtergrond draait er een script die sorteert op tijd, alles wat ouder dan 10 minuten is wordt verwijderd. Wat dan overblijft zijn de mensen die actief/online zijn.

    Klopt dit ongeveer? Of kan het simpeler?
    Geqxonzondag 20 januari 2008 @ 15:21
    Ik zou zelf een "LastOnline" veld aan je user-table toevoegen, en die updaten met de laatste keer dat hij een pagina op heeft gevraagd. Vervolgens een "SELECT COUNT(ID) FROM UserTable WHERE LastOnline > ...... GROUP BY ID".
    LeeHarveyOswaldzondag 20 januari 2008 @ 20:57
    Erg raar dilemma!

    op www.boeroendoek.nl heb ik mooie uitlijning gemaakt voor afbeeldingen/tekst.

    Dit werkte, tot vanmiddag netjes. Toen dacht ik, sommige pagina's wil ik de afbeelding rechts hebben. Ik dat er bij geknutseld, maar toen deed mn "rand" raar (zie link voor wat ik bedoel). Ik css en index.php hersteld... en het probleem blijft :{

    Het lijkt te liggen aan
    1<div class='text'>
    . Als ik die verder naar onder plaats, dan gaat mn border ook verder omlaag (of: Border stopt waar <div class='text'> begint). Terwijl dit vanmiddag, én nu nog in IE, niet zo was.

    Pagina's zonder uitgelijnde foto's gaan wel goed. Help :'(
    Geqxonzondag 20 januari 2008 @ 21:02
    Je bedoeld dat de tekst buiten het vlak valt? Compleet onderop de tekst even een "<br style='clear: both' />" neerzetten. Dan is het voor nu opgelost.

    Maar om het structurele probleem op te lossen > geqxon op hotmail.com voor Live Messenger. Ik help een streekgenoot maar wat graag

    [ Bericht 32% gewijzigd door Geqxon op 20-01-2008 21:07:31 ( ) ]
    wobbelmaandag 21 januari 2008 @ 10:42
    Ik heb nu dit:

    SELECT DISTINCT Year FROM CMS_PageStatistics...

    Ik krijg nu netjes dit:

    2006
    2007
    2008

    Maar hoe kan ik zien hoeveel records er van elke zijn? dus:

    2006 - 305
    2007 - 1403
    2008 - 2930
    Geqxonmaandag 21 januari 2008 @ 10:45
    Puur een gokje, aangezien het voor mij een tijd geleden is.

    "SELECT COUNT(Year) FROM CMS_PageStatistics GROUP BY Year".

    Al heb ik het denk ik helemaal fout.
    Chandlermaandag 21 januari 2008 @ 10:48
    Volgens mij zit je goed Geqxon, echter is het toch handig om het zo te doen.

    SELECT Year, COUNT(Year) FROM CMS_PageStatistics GROUP BY Year ORDER BY Year ASC

    Anders weet je niet welke count bij welke value hoort.,
    Geqxonmaandag 21 januari 2008 @ 10:50
    Doh.

    "SELECT Year, COUNT(Year) FROM `years` GROUP BY Year"

    [ Bericht 5% gewijzigd door Geqxon op 21-01-2008 11:12:41 ]
    JortKmaandag 21 januari 2008 @ 10:50
    quote:
    Op maandag 21 januari 2008 10:42 schreef wobbel het volgende:
    Ik heb nu dit:

    SELECT DISTINCT Year FROM CMS_PageStatistics...

    Ik krijg nu netjes dit:

    2006
    2007
    2008

    Maar hoe kan ik zien hoeveel records er van elke zijn? dus:

    2006 - 305
    2007 - 1403
    2008 - 2930
    Je zou het zo eens kunnen proberen:

    1
    2
    SELECT year, count(year) FROM CMS_Pagestatistics
    GROUP BY year
    Geqxonmaandag 21 januari 2008 @ 10:51
    Dus ik maak helemaal een nieuwe tabel aan om het te testen.... verbeterd Chandler mij.
    wobbelmaandag 21 januari 2008 @ 11:05
    Haha oke dat met die records werkt al, maar hoe doe ik nu een SUM?

    Mijn huidige code die het prima oplost (maar heel slordig is omdat je een query in een loop hebt :P )

    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
    /* Load main library Files */
    require_once                            ( "lib/htconfig.php" );
    require_once                            (
    LIB_PATH . "/f_core.php" );

        
    $MySQL_Statistics_Select        = "SELECT DISTINCT(`Year`)
                                        FROM CMS_PageStatistics
                                        ORDER BY Year DESC"
    ;
        
    $MySQL_Statistics_Query            = mysql_query ( $MySQL_Statistics_Select )
                                        or die (
    mysql_error ( ) );
                                        
        while (
    $SQLData = mysql_fetch_array ( $MySQL_Statistics_Query ) )
        {
        
            
    $MySQL_StatSum_Select        = "SELECT Sum(`Views`)
                                        FROM CMS_PageStatistics
                                        WHERE Year = '"
    . addslashes ( $SQLData['Year'] ) . "'";
            
    $MySQL_StatSum_Query        = mysql_query ( $MySQL_StatSum_Select )
                                        or die (
    mysql_error ( ) );
            
    $MySQL_StatSum_Result        = mysql_result ( $MySQL_StatSum_Query, 0 );
            
            echo
    $SQLData['Year'] . " - " . $MySQL_StatSum_Result . "<br />";
        
        }


    ?>


    Mijn tabel:



    En dit is het resultaat wat die van mij uitpoept:

    2008 - 11
    2007 - 26
    2006 - 6


    Maar hoe krijg ik het in 1 query? :P
    Geqxonmaandag 21 januari 2008 @ 11:08
    SELECT Year, SUM(Views) FROM `years` GROUP BY Year

    ?
    wobbelmaandag 21 januari 2008 @ 11:11
    quote:
    Op maandag 21 januari 2008 11:08 schreef Geqxon het volgende:
    SELECT Year, COUNT(Year), SUM(Views) FROM `years` WHERE 1 GROUP BY Year

    ?
    Maar hoe zorg ik ervoor dat ie de views ook uitpoept? Krijg nu NIKS uitgepoept

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    <?php
    /* Load main library Files */
    require_once                            ( "lib/htconfig.php" );
    require_once                            ( 
    LIB_PATH "/f_core.php" );

        
    $MySQL_Statistics_Select        "SELECT Year, COUNT(Year), SUM(Views) FROM CMS_PageStatistics WHERE 1 GROUP BY Year";
        
    $MySQL_Statistics_Query            mysql_query $MySQL_Statistics_Select 
                                        or die ( 
    mysql_error ( ) );
                                        
        while ( 
    $SQLData mysql_fetch_array $MySQL_Statistics_Query ) )
        {
                
            echo 
    $SQLData['Year'] . " - " $SQLData['Views']  . "<br />";
        
        }
    ?>


    poept dit uit:

    2006 -
    2007 -
    2008 -
    Geqxonmaandag 21 januari 2008 @ 11:13
    " ... , SUM(Views) AS Views FROM .... "

    wobbelmaandag 21 januari 2008 @ 11:14
    quote:
    Op maandag 21 januari 2008 11:13 schreef Geqxon het volgende:
    " ... , SUM(Views) AS Views FROM .... "

    Ik ben U eeuwig dankbaar Bobbieeeej
    MuRKiemaandag 21 januari 2008 @ 14:38
    ligt www.apache.org er bij jullie ook uit?
    CraZaaymaandag 21 januari 2008 @ 14:51
    quote:
    Op maandag 21 januari 2008 14:38 schreef MuRKie het volgende:
    ligt www.apache.org er bij jullie ook uit?
    Hij is wel te pingen, dus de webserver (Apache? ) staat uit lijkt me
    MuRKiemaandag 21 januari 2008 @ 16:21
    quote:
    Op maandag 21 januari 2008 14:51 schreef CraZaay het volgende:

    [..]

    Hij is wel te pingen, dus de webserver (Apache? ) staat uit lijkt me
    Rescomaandag 21 januari 2008 @ 17:22
    Werkt hier wel weer inmiddels.
    DutchBloodmaandag 21 januari 2008 @ 17:46
    Ik loop tegen het volgende MySQL gerelateerde probleem aan. Ik heb een tabel met registraties voor een sport-event. Mensen kunnen zelf hun racenummer kiezen. Nu wil het echter zo maken dat op het moment dat iemand geen nummer kiest ze een vrij nummer zo dicht mogelijk bij 1 krijgen.
    Dus stel dat de tabel er zo uit ziet:
    1
    2
    3
    Pietje 2
    Jantje 5
    Henkie 1

    Op het moment dat iemand geen nummer kiest, moet ie dus nummer 3 krijgen. Vraag is, hoe kom ik achter dit getal?

    Als ik nummer auto_increment meegeef hoogt ie namelijk het hoogste getal, 5 dus, met 1 op =>6, en dat wil ik niet.
    mscholmaandag 21 januari 2008 @ 18:53
    quote:
    Op maandag 21 januari 2008 17:46 schreef DutchBlood het volgende:
    Ik loop tegen het volgende MySQL gerelateerde probleem aan. Ik heb een tabel met registraties voor een sport-event. Mensen kunnen zelf hun racenummer kiezen. Nu wil het echter zo maken dat op het moment dat iemand geen nummer kiest ze een vrij nummer zo dicht mogelijk bij 1 krijgen.
    Dus stel dat de tabel er zo uit ziet:
    [ code verwijderd ]

    Op het moment dat iemand geen nummer kiest, moet ie dus nummer 3 krijgen. Vraag is, hoe kom ik achter dit getal?

    Als ik nummer auto_increment meegeef hoogt ie namelijk het hoogste getal, 5 dus, met 1 op =>6, en dat wil ik niet.
    een dirty oplossing:
    een loopje maken dat vanaf 1 gaat tellen naar de eerste beste lege plek.. (en telkens checkt met een select of het nummer al bestaat)
    geen idee hoe je het anders zou moeten doen...
    wobbelmaandag 21 januari 2008 @ 19:43
    Ik hoop dat jullie een beetje JS kunnen

    Ik heb deze pagina:

    http://www.senscomputers.nl/v2/TEST.php

    als je vervolgens de popup opent, en je klikt op het nummer...dan moet ie dat invullen in het inputvenster van het vorige venster

    Het KAN wel maar hoe?

    [edit]

    mm, er is een JS voor dummies topic

    [ Bericht 9% gewijzigd door wobbel op 21-01-2008 19:49:43 ]
    Lightmaandag 21 januari 2008 @ 19:49
    quote:
    Op maandag 21 januari 2008 18:53 schreef mschol het volgende:

    [..]

    een dirty oplossing:
    een loopje maken dat vanaf 1 gaat tellen naar de eerste beste lege plek.. (en telkens checkt met een select of het nummer al bestaat)
    geen idee hoe je het anders zou moeten doen...
    Doe dan gewoon 1 select query om alle id's op te vragen. Dan kun je in php wel uitzoeken wat het laagste vrije id is.
    DutchBloodmaandag 21 januari 2008 @ 20:00
    quote:
    Op maandag 21 januari 2008 18:53 schreef mschol het volgende:

    [..]

    een dirty oplossing:
    een loopje maken dat vanaf 1 gaat tellen naar de eerste beste lege plek.. (en telkens checkt met een select of het nummer al bestaat)
    geen idee hoe je het anders zou moeten doen...
    Had ik al overwegen, maar zoals je vermeld nogal dirty.
    quote:
    Op maandag 21 januari 2008 19:49 schreef Light het volgende:

    [..]

    Doe dan gewoon 1 select query om alle id's op te vragen. Dan kun je in php wel uitzoeken wat het laagste vrije id is.
    Dat lijkt me een goed idee ja. Bedankt.
    Farenjimaandag 21 januari 2008 @ 20:37
    quote:
    Op maandag 21 januari 2008 17:46 schreef DutchBlood het volgende:
    Ik loop tegen het volgende MySQL gerelateerde probleem aan. Ik heb een tabel met registraties voor een sport-event. Mensen kunnen zelf hun racenummer kiezen. Nu wil het echter zo maken dat op het moment dat iemand geen nummer kiest ze een vrij nummer zo dicht mogelijk bij 1 krijgen.
    Dus stel dat de tabel er zo uit ziet:
    [ code verwijderd ]

    Op het moment dat iemand geen nummer kiest, moet ie dus nummer 3 krijgen. Vraag is, hoe kom ik achter dit getal?

    Als ik nummer auto_increment meegeef hoogt ie namelijk het hoogste getal, 5 dus, met 1 op =>6, en dat wil ik niet.
    Hm dat was lastiger dan ik dacht maar is toch gelukt, in 2 queries of zelfs 1, als je aanneemt dat ID=1 al bezet is (daar kun je evt op query'en) dan doet de volgende query de truuk:

    1
    2
    3
    4
    5
    select n1.ID + 1 as lowestFreeID 
    from nodes n1 
    left join nodes n2 on n2.ID = n1.ID + 1 
    where n2.ID is null
    order by n1.ID limit 1;
    poepeneesjemaandag 21 januari 2008 @ 20:57
    Hallo,

    Ik ben bezig met een website inclusief database. Ik heb bij PCextreme een database opgebouwd nu wil ik via de website (deze staat bij een ander bedrijf gehost) de informatie uit de database halen, maar ik krijg de volgende foutmelding:

    1Unknown MySQL server host 'sql2.pcextreme.nl' (1)


    Iemand die hier een oplossing voor weet/heeft?

    -xxx-
    wobbelmaandag 21 januari 2008 @ 20:59
    quote:
    Op maandag 21 januari 2008 20:57 schreef poepeneesje het volgende:
    Hallo,

    Ik ben bezig met een website inclusief database. Ik heb bij PCextreme een database opgebouwd nu wil ik via de website (deze staat bij een ander bedrijf gehost) de informatie uit de database halen, maar ik krijg de volgende foutmelding:
    [ code verwijderd ]

    Iemand die hier een oplossing voor weet/heeft?

    -xxx-
    kan je wel vanaf buitenaf connecten? en heb je de poort 3306 ingesteld?

    Bij heel veel MySQL servers kan je niet van buitenaf connecten naar het IP, of alleen vanaf bepaalde ip adressen (of ranges)
    Lightmaandag 21 januari 2008 @ 21:09
    Ik heb een probleem bij het versturen van html mails. In Thunderbird en in Mail (op Mac) werkt het zoals ik zou verwachten, ook met de linkjes in de mail zelf (<a href=#id>text</a> dingen). Maar die linkjes werken (uiteraard, zou ik bijna zeggen) niet in Outlook. Ook in webmail (gmail) gaan de linkjes niet goed, en daar is de hele css opmaak ook nog zoek.

    De mail is xhtml 1.0 transitional (op een paar kleine foutjes na) en met alle css info in <style> tags. Die code werkt goed in IE, FF en Safari.

    Heeft iemand nog tips hoe ik die linkjes in Outlook kan laten werken? Ook tips over webmail clients als gmail zijn welkom.
    poepeneesjemaandag 21 januari 2008 @ 21:10
    quote:
    Op maandag 21 januari 2008 20:59 schreef wobbel het volgende:

    [..]

    kan je wel vanaf buitenaf connecten? en heb je de poort 3306 ingesteld?

    Bij heel veel MySQL servers kan je niet van buitenaf connecten naar het IP, of alleen vanaf bepaalde ip adressen (of ranges)
    Ik heb een copy van de site op de servers PCextreme geüpload en dan wordt de data wel uitgelezen. Dus ik denk dat ik te maken heb met de tweede situatie die jij beschrijft.

    Hoe kan ik alsnog een connectie maken met deze server, hoe stel ik poort 3306 in en hoe kan ik zien of ik een connectie kan opzetten vanaf buitenaf?

    -xxx-
    CraZaaymaandag 21 januari 2008 @ 21:55
    quote:
    Op maandag 21 januari 2008 21:10 schreef poepeneesje het volgende:

    [..]

    1. Hoe kan ik alsnog een connectie maken met deze server, 2. hoe stel ik poort 3306 in en 3. hoe kan ik zien of ik een connectie kan opzetten vanaf buitenaf?
    1. Niet van buitenaf, tenzij je je host vraagt om toegang van andere hosts dan localhost toe te staan.
    2. Tenzij je expliciet een andere poort hebt opgegeven, is het standaard 3306.
    3. Als mysql_connect() van buitenaf false geeft en op de server zelf true, dan lijkt het me duidelijk
    sabanmaandag 21 januari 2008 @ 22:23
    Buitenaf verbinding naar PCX is niet mogelijk.
    Mordrethmaandag 21 januari 2008 @ 22:26
    quote:
    Op maandag 21 januari 2008 22:23 schreef saban het volgende:
    Buitenaf verbinding naar PCX is niet mogelijk.
    Idd, wat vrij irritant is. Ben je gelijk ook aangewezen op phpmyadmin.. wat enorm ruk is.
    CraZaaymaandag 21 januari 2008 @ 23:07
    Vrij gangbare security measure toch?
    GVRuudmaandag 21 januari 2008 @ 23:15
    quote:
    Op maandag 21 januari 2008 21:09 schreef Light het volgende:
    Ik heb een probleem bij het versturen van html mails. In Thunderbird en in Mail (op Mac) werkt het zoals ik zou verwachten, ook met de linkjes in de mail zelf (<a href=#id>text</a> dingen). Maar die linkjes werken (uiteraard, zou ik bijna zeggen) niet in Outlook. Ook in webmail (gmail) gaan de linkjes niet goed, en daar is de hele css opmaak ook nog zoek.

    De mail is xhtml 1.0 transitional (op een paar kleine foutjes na) en met alle css info in <style> tags. Die code werkt goed in IE, FF en Safari.

    Heeft iemand nog tips hoe ik die linkjes in Outlook kan laten werken? Ook tips over webmail clients als gmail zijn welkom.
    Mijn ervaring is dat styles in <style> soms genegeerd worden. Wanneer je die inline toevoegd aan elementen werkt het (naar mijn ervaring) wel overal.

    Met anchors in html-mail heb ik helaasch geen ervaring...
    Mordrethmaandag 21 januari 2008 @ 23:20
    quote:
    Op maandag 21 januari 2008 23:07 schreef CraZaay het volgende:
    Vrij gangbare security measure toch?
    Idd, maar maakt het niet minder irritant .

    [ Bericht 0% gewijzigd door Mordreth op 21-01-2008 23:27:33 ]
    CraZaaymaandag 21 januari 2008 @ 23:36
    quote:
    Op maandag 21 januari 2008 21:09 schreef Light het volgende:

    Heeft iemand nog tips hoe ik die linkjes in Outlook kan laten werken? Ook tips over webmail clients als gmail zijn welkom.
    http://www.email-standards.org/
    super-muffinmaandag 21 januari 2008 @ 23:55
    Leuk topic.
    Farenjidinsdag 22 januari 2008 @ 09:02
    quote:
    Op maandag 21 januari 2008 23:20 schreef Mordreth het volgende:

    [..]

    Idd, maar maakt het niet minder irritant .
    Als die host ssh toegang heeft kun je mysql gewoon tunnelen over ssh en kun je alles wel gewoon vanaf je eigen pc bereiken.
    SHERMANdinsdag 22 januari 2008 @ 11:36
    Situatie, ik heb een database met een berg tabellen.

    In 1 van die tabellen heb ik een kolom waar in een aantal waarden in terug kunnen komen, nu staat daar bij een aantal, dus niet allemaal een 6, hier wil ik een 1 van maken.

    Ik Googlelen, ik vind het volgende:


    1update [TABEL] set [KOLOMNAAM] = replace([KOLOMNAAM],'[6]','[1]');


    Als ik deze echter uitvoer via phpMyAdmin krijg ik een syntax error..?
    Farenjidinsdag 22 januari 2008 @ 11:41
    1update [TABEL] set [KOLOMNAAM] = 1 where [KOLOMNAAM] = 6;
    SHERMANdinsdag 22 januari 2008 @ 11:48
    Thx, maar krijg nog steeds een 1046 error, MySQL zou dit toch gewoon moeten kunnen lijkt me?
    SHERMANdinsdag 22 januari 2008 @ 11:59
    quote:
    Op dinsdag 22 januari 2008 11:48 schreef SHERMAN het volgende:
    Thx, maar krijg nog steeds een 1046 error, MySQL zou dit toch gewoon moeten kunnen lijkt me?

    Heb hem al.. ;)

    1UPDATE `TABEL` SET KOLOM = replace(KOLOM,"6","1")
    CraZaaydinsdag 22 januari 2008 @ 12:58
    quote:
    Op dinsdag 22 januari 2008 11:59 schreef SHERMAN het volgende:

    Heb hem al..
    Fwrenji's methode werkt ook gewoon hoor
    SHERMANdinsdag 22 januari 2008 @ 13:00
    Ongetwijfeld, maar hier lukte het niet..
    poepeneesjedinsdag 22 januari 2008 @ 14:16
    Het is "gelukt" met de database, ik heb de database opnieuw moeten opbouwen op een andere server.

    Maar nu heb ik een probleem als ik de volgende PHP regel invoer:

    1
    2
    3
    <?php
     header
    ("content-type: application/xhtml+xml; charset=utf-8")  
    ?>


    Firefox geeft dan mijn achtergrond afbeelding maar gedeeltelijk weer (Opera en Internet Explorer doen het wel goed), iemand die weet wat het probleem is?

    De reden dat ik deze regel nodig heb, is omdat de goede MIME type wordt niet meegestuurd door de server. Bij de config files van Apache kan ik niet komen om daar het .htaccess aan te passen en de meta-tag wordt niet herkend.

    Oja een linkje naar de site zodat jullie kunnen zien wat ik bedoel .

    -xxx-
    PiRANiAdinsdag 22 januari 2008 @ 14:20
    kan je btw meerdere updates doen in 1 query? bij mij lukte het niet...
    CraZaaydinsdag 22 januari 2008 @ 14:37
    quote:
    Op dinsdag 22 januari 2008 14:20 schreef PiRANiA het volgende:
    kan je btw meerdere updates doen in 1 query? bij mij lukte het niet...
    Wat wil je precies doen? Dezelfde data updaten voor meerdere records, of verschillende data?
    MuRKiedinsdag 22 januari 2008 @ 18:48
    Ik krijg mod_rewrite niet goed werkend..
    Als ik de eerste keer een link aanklik (menuitem/list.html) dan werkt het goed, maar vervolgens veranderd deze hyperlink dan in menuitem/menuitem/list.html

    De html code voor de links is:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    <?php
    function displayMenu()
    {
        
    $html  "<div id=\"navcontainer\">\n";
        
    $html .= "\t\t\t\t<div id=\"title\">" _MENU_TITLE "</div>\n";
        
    $html .= "\t\t\t\t<ul id=\"list\">\n";
            
    $html .= "\t\t\t\t\t<li class=\"item\"><a href=\"menuitem/list.html\">Menu items</a></li>\n";
            
    $html .= "\t\t\t\t\t<li class=\"item\"><a href=\"content/list.html\">Pagina's</a></li>\n";
            
    $html .= "\t\t\t\t\t<li class=\"item\"><a href=\"gebruiker/list.html\">Gebruikers</a></li>\n";
            
    $html .= "\t\t\t\t\t<li class=\"item\"><a href=\"mail/edit.html\">Mail</a></li>\n";
            
    $html .= "\t\t\t\t\t<li class=\"item\"><a href=\"login/logout.html\">Uitloggen</a></li>\n";
        
    $html .= "\t\t\t\t</ul>\n";
        
    $html .= "\t\t\t</div>\n";
        return 
    $html;
    }
    ?>


    en mijn htaccess ziet er zo uit:
    1
    2
    3
    RewriteEngine On
    RewriteRule ^(.*)/(.*)/(.*)\.html$ index.php?component=$1&type=$2&itemid=$3 [L]
    RewriteRule ^(.*)/(.*)\.html$ index.php?component=$1&type=$2 [L]


    iemand enig idee hoe dit komt?
    Tuvai.netdinsdag 22 januari 2008 @ 18:56
    TeeVeePee. Alhoewel ik steeds minder met PHP aan het werken ben gezien ik op m'n werk zoveel met .NET bezig ben. >_>
    Xcaliburdinsdag 22 januari 2008 @ 19:03
    quote:
    Op dinsdag 22 januari 2008 18:48 schreef MuRKie het volgende:
    Ik krijg mod_rewrite niet goed werkend..
    Voeg eens een base href aan je HTML toe, waarin de root van je site staat
    MuRKiedinsdag 22 januari 2008 @ 19:04
    quote:
    Op dinsdag 22 januari 2008 19:03 schreef Xcalibur het volgende:

    [..]

    Voeg eens een base href aan je HTML toe, waarin de root van je site staat
    http://localhost/menuitem/list bedoel je dan? Moet dat standaard bij mod_rewrite?
    Alle links in mijn website de hele url gebruiken?

    mijn menu ziet er nu zo uit:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    <?php
    function displayMenu()
    {
        
    $html  "<div id=\"navcontainer\">\n";
        
    $html .= "\t\t\t\t<div id=\"title\">" _MENU_TITLE "</div>\n";
        
    $html .= "\t\t\t\t<ul id=\"list\">\n";
            
    $html .= "\t\t\t\t\t<li class=\"item\"><a href=\"" cmsConfig_siteRoot "cbs/menuitem/list/\">Menu items</a></li>\n";
            
    $html .= "\t\t\t\t\t<li class=\"item\"><a href=\"" cmsConfig_siteRoot "cbs/content/list/\">Pagina's</a></li>\n";
            
    $html .= "\t\t\t\t\t<li class=\"item\"><a href=\"" cmsConfig_siteRoot "cbs/gebruiker/list/\">Gebruikers</a></li>\n";
            
    $html .= "\t\t\t\t\t<li class=\"item\"><a href=\"" cmsConfig_siteRoot "cbs/mail/edit/\">Mail</a></li>\n";
            
    $html .= "\t\t\t\t\t<li class=\"item\"><a href=\"" cmsConfig_siteRoot "cbs/login/logout/\">Uitloggen</a></li>\n";
        
    $html .= "\t\t\t\t</ul>\n";
        
    $html .= "\t\t\t</div>\n";
        return 
    $html;
    }
    ?>


    en mijn htaccess is:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    RewriteEngine On

    #RewriteRule ^(.*)/(.*)/(.*)/ index.php?component=$1&category=$2&type=$3 [L]
    #RewriteRule ^(.*)/(.*)/(.*) index.php?component=$1&category=$2&type=$3 [L]

    #RewriteRule ^(.*)/(.*)/(.*)/ index.php?component=$1&type=$2&itemid=$3 [L]
    #RewriteRule ^(.*)/(.*)/(.*) index.php?component=$1&type=$2&itemid=$3 [L]

    RewriteRule ^(.*)/(.*)/ index.php?component=$1&type=$2 [L]
    RewriteRule ^(.*)/(.*) index.php?component=$1&type=$2 [L]

    En het lijkt te werken..

    Maar dan heb ik nog een vraag. Ik heb 2 verschillende url's met evenveel get variabelen erin.. Hoe weet mod_rewrite welke hij moet kiezen dan?

    [edit]Siteroot kijkt vanuit htdocs en niet vanaf de domeinnaam, zit daar verschil tussen?[/edit]

    [ Bericht 43% gewijzigd door MuRKie op 22-01-2008 19:14:46 ]
    CraZaaydinsdag 22 januari 2008 @ 19:07
    quote:
    Op dinsdag 22 januari 2008 19:04 schreef MuRKie het volgende:

    [..]

    http://localhost/menuitem/list bedoel je dan? Moet dat standaard bij mod_rewrite?
    Alle links in mijn website de hele url gebruiken?
    Of alles relatief vanaf de root gebruiken, zoals "/images/bla,gif", of de base-tag gebruiken: http://www.w3schools.com/tags/tag_base.asp
    Xcaliburdinsdag 22 januari 2008 @ 21:09
    quote:
    Op dinsdag 22 januari 2008 19:04 schreef MuRKie het volgende:
    http://localhost/menuitem/list bedoel je dan? Moet dat standaard bij mod_rewrite?
    Alle links in mijn website de hele url gebruiken?
    <base href=> is een aparte tag, die moet je in je <HEAD> van je document zetten
    Dan worden alle links relatief aan dit pad bepaald, maar de volledige URL in je link zetten kan ook. Vind ik zelf alleen niet zo mooi
    MuRKiedinsdag 22 januari 2008 @ 21:50
    quote:
    Op dinsdag 22 januari 2008 21:09 schreef Xcalibur het volgende:

    [..]

    <base href=> is een aparte tag, die moet je in je <HEAD> van je document zetten
    Dan worden alle links relatief aan dit pad bepaald, maar de volledige URL in je link zetten kan ook. Vind ik zelf alleen niet zo mooi
    <base> tag gaat niet werken in mijn cms omdat alles al utigevoerd wordt voor het in de html template wordt geprint..
    Geqxondinsdag 22 januari 2008 @ 21:51
    Ik werk hoe dan ook niet met relatieve URLs. Ook met header-informatie is dat not-done.
    CraZaaydinsdag 22 januari 2008 @ 21:52
    quote:
    Op dinsdag 22 januari 2008 21:50 schreef MuRKie het volgende:

    [..]

    <base> tag gaat niet werken in mijn cms omdat alles al utigevoerd wordt voor het in de html template wordt geprint..
    Wat wordt uitgevoerd? Uiteindelijk wordt de HTML toch door de browser geïnterpreteerd. Wees eens duidelijk
    Lightdinsdag 22 januari 2008 @ 22:15
    quote:
    Op maandag 21 januari 2008 23:15 schreef GVRuud het volgende:

    [..]

    Mijn ervaring is dat styles in <style> soms genegeerd worden. Wanneer je die inline toevoegd aan elementen werkt het (naar mijn ervaring) wel overal.
    Daar kan ik vast verder mee. Of iig het onthouden voor als het een keer wel nodig is, de eisen blijken aangepast deze keer. Scheelt mij weer
    quote:
    Met anchors in html-mail heb ik helaasch geen ervaring...
    Google hielp ook al weinig Maar Outlook is gewoon een ramp, da's wel duidelijk.
    Lightdinsdag 22 januari 2008 @ 22:16
    quote:
    Thanks, die kende ik nog niet
    Allleen jammer dat ze Outlook 2003 niet kennen
    Xcaliburwoensdag 23 januari 2008 @ 10:49
    quote:
    Op dinsdag 22 januari 2008 21:50 schreef MuRKie het volgende:
    <base> tag gaat niet werken in mijn cms omdat alles al utigevoerd wordt voor het in de html template wordt geprint..
    Je kan toch gewoon je adres in die tag zetten?
    Dat heeft toch niks met je CMS te maken?
    Chandlerwoensdag 23 januari 2008 @ 11:35
    Ik heb een leuke vraag ;)

    Ik heb een define waarbij ik de volgende gegevens heb

    define("FILE_TYPES", "1,2,3");

    deze informatie wil ik gebruiken bij uploads. Ik wil de file type controlleren met deze define die ik om zet naar een array dmv explode, maar het werkt niet :{

    1
    2
    3
    4
    5
    <?php
    if (in_array(explode(","FILE_TYPES), $image_type))
    {
    }
    ?>


    wat doe ik fout?
    Tuvai.netwoensdag 23 januari 2008 @ 11:42
    quote:
    Op woensdag 23 januari 2008 11:35 schreef Chandler het volgende:
    Ik heb een leuke vraag

    Ik heb een define waarbij ik de volgende gegevens heb

    define("FILE_TYPES", "1,2,3");

    deze informatie wil ik gebruiken bij uploads. Ik wil de file type controlleren met deze define die ik om zet naar een array dmv explode, maar het werkt niet
    [ code verwijderd ]

    wat doe ik fout?
    Horen die twee argumenten niet andersom te staan?
    Chandlerwoensdag 23 januari 2008 @ 11:47
    quote:
    Op woensdag 23 januari 2008 11:42 schreef Tuvai.net het volgende:

    [..]

    Horen die twee argumenten niet andersom te staan?
    Nee, zie code

    1
    2
    3
    <?php
    define
    ("FILE_TYPES",    "1,2,3");
    ?>


    [ Bericht 44% gewijzigd door Chandler op 23-01-2008 11:54:28 ]
    Xcaliburwoensdag 23 januari 2008 @ 11:57
    Ik denk dat hij de argumenten van de explode() bedoelt....
    #ANONIEMwoensdag 23 januari 2008 @ 12:05
    quote:
    Op woensdag 23 januari 2008 11:57 schreef Xcalibur het volgende:
    Ik denk dat hij de argumenten van de explode() bedoelt....
    Dat dus
    Daarnaast zou ik geen arrays in defines doen, ik zou (zeker als je niet zoveel opties hebt) deze apart definieren. Werkt mijns inzien beter en overzichtelijker.

    [ Bericht 15% gewijzigd door #ANONIEM op 23-01-2008 12:06:04 ]
    Xcaliburwoensdag 23 januari 2008 @ 12:16
    quote:
    Op woensdag 23 januari 2008 12:05 schreef Scorpie het volgende:
    Dat dus
    Daarnaast zou ik geen arrays in defines doen, ik zou (zeker als je niet zoveel opties hebt) deze apart definieren. Werkt mijns inzien beter en overzichtelijker.
    Dat is natuurlijk wel lastiger uit te breiden....
    Maar ik zou in zo'n geval ook geen define gebruiken, maar een gewone array denk ik
    MuRKiewoensdag 23 januari 2008 @ 12:38
    quote:
    Op woensdag 23 januari 2008 10:49 schreef Xcalibur het volgende:

    [..]

    Je kan toch gewoon je adres in die tag zetten?
    Dat heeft toch niks met je CMS te maken?
    Dat moet ik dan in mijn html template zetten..
    en alle inhoud qua content en menu's wordt al opgebouwd voor ik het in de html weergeef..
    Werkt het dan ook nog gewoon? Plakt die <base> voor elke url (of het nou een <a> of een <img> is de baseurl?
    MuRKiewoensdag 23 januari 2008 @ 12:40
    quote:
    Op dinsdag 22 januari 2008 21:52 schreef CraZaay het volgende:

    [..]

    Wat wordt uitgevoerd? Uiteindelijk wordt de HTML toch door de browser geïnterpreteerd. Wees eens duidelijk
    Alles wordt uitgevoerd.. Menu's opbouwen en in variabele stoppen. En zo ook content en andere inhoud die uit de database komt..
    Weet niet of dat voor die basetag wat uitmaakt.. weet niet of hij voor alle url's de basetag plakt..
    Tuvai.netwoensdag 23 januari 2008 @ 12:46
    quote:
    Op woensdag 23 januari 2008 11:47 schreef Chandler het volgende:

    [..]

    Nee, zie code
    [ code verwijderd ]
    Ik bedoel de argumenten van in_array()
    CraZaaywoensdag 23 januari 2008 @ 13:00
    quote:
    Op woensdag 23 januari 2008 12:40 schreef MuRKie het volgende:

    [..]

    Alles wordt uitgevoerd.. Menu's opbouwen en in variabele stoppen. En zo ook content en andere inhoud die uit de database komt..
    Weet niet of dat voor die basetag wat uitmaakt.. weet niet of hij voor alle url's de basetag plakt..
    De browser doet iets met de base-tag, heeft niets met server side zaken te maken
    Chandlerwoensdag 23 januari 2008 @ 13:00
    correct, fout gezien vervelende van PHP is dat deze argumenten af en toe gewoon andersom staan
    Tuvai.netwoensdag 23 januari 2008 @ 13:09
    quote:
    Op woensdag 23 januari 2008 13:00 schreef Chandler het volgende:
    correct, fout gezien vervelende van PHP is dat deze argumenten af en toe gewoon andersom staan


    Is inderdaad een groot nadeel van PHP, en tevens de reden dat veel mensen op PHP afgeven. Je hebt meerdere functies waar '$naald' en '$hooiberg' (zoals in_array() ) omgedraaid worden; en dat kan wel eens narigheid opleveren als je net een flinke lap code neergepleurd hebt. Tip: de PHP cheat sheet: http://www.ilovejackdaniels.com/cheat-sheets/php-cheat-sheet/
    MuRKiewoensdag 23 januari 2008 @ 14:22
    quote:
    Op woensdag 23 januari 2008 13:00 schreef CraZaay het volgende:

    [..]

    De browser doet iets met de base-tag, heeft niets met server side zaken te maken
    Dus dan kan ik baseteg niet gebruiken aangezien php al mijn url's genereerd? Of juist wel?
    WyriHaximuswoensdag 23 januari 2008 @ 14:53
    quote:
    Op woensdag 23 januari 2008 13:00 schreef CraZaay het volgende:

    [..]

    De browser doet iets met de base-tag, heeft niets met server side zaken te maken
    Indirect wel aangezien je systeem er rekening mee moet houden in het genereren van je URL's .
    MuRKiewoensdag 23 januari 2008 @ 15:11
    Hey ik vraag me iets af hè, puur uit nieuwsgierigheid.
    Ikzelf maak altijd mijn websites in een index.php en include alle content daarin en de lay-out ook.
    Maar ik zie ook vaak websites die meerdere losse pagina's hebben (index.php, content.php, catalogus.php, enz.) Maar hoe zit dat dan met je lay-out? Heb je dan niet hetzelfde euvel als met platte html dat je op elke pagina je lay-out moet bakken? Of include je dan gewoon op elke php pagina de lay-out template ipv alleen een keer in de index? Of zit daar een ander foefje achter?

    En wat is dan het grootste verschil tussen beide methodes, en/of de voor- en nadelen van beide methodes. En zijn er verder nog andere handige methodes om je website op te bouwen?

    Veel vragen, maar ik ben hier gewoon heel nieuwsgierig na en altijd opzoek naar betere, praktischere mogelijkheden.


    Iemand die mij hier zijn mening over kan/wil geven?
    Xcaliburwoensdag 23 januari 2008 @ 15:22
    quote:
    Op woensdag 23 januari 2008 14:22 schreef MuRKie het volgende:
    Dus dan kan ik baseteg niet gebruiken aangezien php al mijn url's genereerd? Of juist wel?
    Juist wel
    De url's worden berekend vanaf de base href. Als je zorgt dat al je url's relatief zijn (en dat zijn ze waarschijnlijk vanwege je mod_rewrite) dan zorgt de base href ervoor dat ze allemaal vanaf de root van je site worden berekend. En dan ben je dus van het sub/sub/sub/sub/sub mapjes probleem af
    Xcaliburwoensdag 23 januari 2008 @ 15:25
    quote:
    Op woensdag 23 januari 2008 15:11 schreef MuRKie het volgende:
    Ikzelf maak altijd mijn websites in een index.php en include alle content daarin en de lay-out ook.
    Ik ook. Zeker in combinatie met mod_rewrite is dit (naar mijn mening) de beste oplossing, omdat je zo de bestandstructuur kunt simuleren die je anders met losse bestanden kunt maken.

    Bovendien kan je alle generieke dingen zoals database openen, input validatie, error handling, etc. fijn in de index.php doen, is dat lekker centraal.
    MuRKiewoensdag 23 januari 2008 @ 15:27
    quote:
    Op woensdag 23 januari 2008 15:22 schreef Xcalibur het volgende:

    [..]

    Juist wel
    De url's worden berekend vanaf de base href. Als je zorgt dat al je url's relatief zijn (en dat zijn ze waarschijnlijk vanwege je mod_rewrite) dan zorgt de base href ervoor dat ze allemaal vanaf de root van je site worden berekend. En dan ben je dus van het sub/sub/sub/sub/sub mapjes probleem af
    Hmm dat zou inderdaad handig zijn!
    Ben inmiddels wel van het sub/sub/sub/sub probleem af..
    Ik heb mijn url's namelijk niet meer relatief gemaakt
    Door van
    1
    2
    3
    <?php
    "content/view/7/";
    ?>

    1
    2
    3
    <?php
    cmsConfig_siteRoot 
    "content/view/7/";
    ?>

    te maken

    maar met de basetag had dat dus werk gescheeld. Wat wel het voordeel is van mijn oplossing is dat ik nog steeds alle instellingen (in dit geval de siteroot) in de config.php kan instellen ipv in dit geval in de template..
    MuRKiewoensdag 23 januari 2008 @ 15:31
    quote:
    Op woensdag 23 januari 2008 15:25 schreef Xcalibur het volgende:

    [..]

    Ik ook. Zeker in combinatie met mod_rewrite is dit (naar mijn mening) de beste oplossing, omdat je zo de bestandstructuur kunt simuleren die je anders met losse bestanden kunt maken.

    Bovendien kan je alle generieke dingen zoals database openen, input validatie, error handling, etc. fijn in de index.php doen, is dat lekker centraal.
    Ok..
    Ikzelf doe input validatie in het bestand zelf dat ik include (dus waar ook het inputveld staat)
    Ik gebruik een soort van losse componenten die opzich "zelfstandig" zijn en los staan van de index.php
    maar wel daarin geinclude worden..
    CraZaaywoensdag 23 januari 2008 @ 15:33
    quote:
    Op woensdag 23 januari 2008 15:11 schreef MuRKie het volgende:

    En zijn er verder nog andere handige methodes om je website op te bouwen?
    Zie de topic titel... MVC.

    Voor PHP bijvoorbeeld Code Igniter of Cake. Je zou niet alleen je lay-out moeten scheiden, maar ook je application behaviour (controller) en business/data logic (model).

    Leer er eens het een en ander over zou ik zeggen
    MuRKiewoensdag 23 januari 2008 @ 15:36
    quote:
    Op woensdag 23 januari 2008 15:33 schreef CraZaay het volgende:

    [..]

    Zie de topic titel... MVC.

    Voor PHP bijvoorbeeld Code Igniter of Cake. Je zou niet alleen je lay-out moeten scheiden, maar ook je application behaviour (controller) en business/data logic (model).

    Leer er eens het een en ander over zou ik zeggen
    ik wist niet dat dat MVC daar voor stond
    Xcaliburwoensdag 23 januari 2008 @ 15:37
    quote:
    Op woensdag 23 januari 2008 15:27 schreef MuRKie het volgende:
    maar met de basetag had dat dus werk gescheeld. Wat wel het voordeel is van mijn oplossing is dat ik nog steeds alle instellingen (in dit geval de siteroot) in de config.php kan instellen ipv in dit geval in de template..
    De siteroot kan je ook gewoon in je template printen ipv in je links natuurlijk
    MuRKiewoensdag 23 januari 2008 @ 15:41
    quote:
    Op woensdag 23 januari 2008 15:37 schreef Xcalibur het volgende:

    [..]

    De siteroot kan je ook gewoon in je template printen ipv in je links natuurlijk
    Daar zit wat in
    Farenjiwoensdag 23 januari 2008 @ 15:53
    quote:
    Op woensdag 23 januari 2008 15:36 schreef MuRKie het volgende:

    [..]

    ik wist niet dat dat MVC daar voor stond
    In de OOP tutorial die ik gisteren ben begonnen doe ik ook alles volgens het MVC model: [Perl] OOP tutorial / case study: DataRow.pm
    Is wel in perl maar MVC is taalonafhankelijk. Misschien leuk om te volgen. Vanavond de volgende aflevering.
    MuRKiewoensdag 23 januari 2008 @ 16:18
    quote:
    Op woensdag 23 januari 2008 15:53 schreef Farenji het volgende:

    [..]

    In de OOP tutorial die ik gisteren ben begonnen doe ik ook alles volgens het MVC model: [Perl] OOP tutorial / case study: DataRow.pm
    Is wel in perl maar MVC is taalonafhankelijk. Misschien leuk om te volgen. Vanavond de volgende aflevering.
    OOP is voor mij nog een stapje te ver ben ik bang..
    Ik heb wel al een boek voor OOP aangeschafd maar dat was helemaal op Java toegespitst. Er werd wel vermeld dat OOP taalonafhankelijk is, maar ik vind het toch prettiger als ik meteen uitleg krijg vanuit php en ook oefeningen kan doen in php.. Heb alleen geen boek kunnen vinden die OOP behandeld voor php

    Ik had wel een tijdje lopen rommelen met OOP,
    kon ook wel wat losse klassen schrijven enzo, ik kreeg het alleen niet voor elkaar om het ook daadwerkelijk tot een geheel te koppelen.. Ik kon nog niet OOP denken en dat schoot dus nog niet op.. Ik was dan ook nog superleek met php, ik begin net een beetje meer te leren en heb besloten eerst gewoon goed te kunnen php-en en daarna naar OOP te gaan kijken.. Leek mij het meest verstandig..

    Heb wel het complete handboek php5 / MySQL waar ook een stuk OOP wordt behandeld, hier heb ik nog niet uitgebreid naar gekeken bedenk ik mij net.. Misschien dat ik daar tezijnertijd nog wat aan kan hebben..

    [ Bericht 12% gewijzigd door MuRKie op 23-01-2008 16:23:41 ]
    Geqxonwoensdag 23 januari 2008 @ 16:26
    -Verkeerd topic-
    MuRKiewoensdag 23 januari 2008 @ 16:28
    quote:
    Op woensdag 23 januari 2008 16:26 schreef Geqxon het volgende:
    -Verkeerd topic-
    ?
    Geqxonwoensdag 23 januari 2008 @ 16:29
    Ik heb mijn post weg-ge-edit. Want hij stond verkeerd.
    MuRKiewoensdag 23 januari 2008 @ 16:30
    quote:
    Op woensdag 23 januari 2008 16:29 schreef Geqxon het volgende:
    Ik heb mijn post weg-ge-edit. Want hij stond verkeerd.
    Ow op die manier
    Farenjiwoensdag 23 januari 2008 @ 17:10
    quote:
    Op woensdag 23 januari 2008 16:18 schreef MuRKie het volgende:

    [..]

    OOP is voor mij nog een stapje te ver ben ik bang..
    Juist omdat er altijd gedacht wordt dat OOP moeilijk of complex is, heb ik die tutorial gemaakt. Dit is een misvatting, in wezen is het heel simpel en (zeker het eindproduct) is vaak veel intuitiever dan puur imperatief programmeren. Ik ga ook behandelen hoe overerving werkt, hoe je classes met elkaar combineert en er 1 geheel van smeedt. Dus doe een poging het te volgen zou ik zeggen.
    MuRKiewoensdag 23 januari 2008 @ 18:49
    quote:
    Op woensdag 23 januari 2008 17:10 schreef Farenji het volgende:

    [..]

    Juist omdat er altijd gedacht wordt dat OOP moeilijk of complex is, heb ik die tutorial gemaakt. Dit is een misvatting, in wezen is het heel simpel en (zeker het eindproduct) is vaak veel intuitiever dan puur imperatief programmeren. Ik ga ook behandelen hoe overerving werkt, hoe je classes met elkaar combineert en er 1 geheel van smeedt. Dus doe een poging het te volgen zou ik zeggen.
    Maar wat ik zag bij jouw les 1 was dat er wel redelijk verschil zit in OOP met Perl vergeleken met PHP, dus is het voor mij dan wel nuttig om OOP met Perl te gaan leren?
    Geqxonwoensdag 23 januari 2008 @ 19:11
    Kan het kloppen dat deze combi niet gaat lukken?

    1
    2
    3
    <?php
    $output 
    array_merge($outputa_function_that_returns_an_array($input));
    ?>


    Misschien omdat $output zowel de returnwaarde gaat bevatten maar ook een inputwaarde van de array_merge functie is?
    ralfiewoensdag 23 januari 2008 @ 21:38
    quote:
    Op woensdag 23 januari 2008 19:11 schreef Geqxon het volgende:
    Kan het kloppen dat deze combi niet gaat lukken?
    [ code verwijderd ]

    Misschien omdat $output zowel de returnwaarde gaat bevatten maar ook een inputwaarde van de array_merge functie is?
    zou wel moeten werken...
    Flaccidwoensdag 23 januari 2008 @ 22:27
    Ik heb een tabel, met daarin 3 rijen. In een van die rijen staat een text met een link. Hoe kan ik eenvoudig die hele tabel uitlezen naar een list/menu item voor een form?
    tabel met 50 entries, omdit handmatig te doen is irritant.
    super-muffinwoensdag 23 januari 2008 @ 22:34
    quote:
    Op woensdag 23 januari 2008 19:11 schreef Geqxon het volgende:
    Kan het kloppen dat deze combi niet gaat lukken?
    [ code verwijderd ]

    Misschien omdat $output zowel de returnwaarde gaat bevatten maar ook een inputwaarde van de array_merge functie is?
    Dat zou niet moeten uitmaken, check je functie nog maar eens na.
    CraZaaywoensdag 23 januari 2008 @ 22:42
    quote:
    Op woensdag 23 januari 2008 19:11 schreef Geqxon het volgende:

    Misschien omdat $output zowel de returnwaarde gaat bevatten maar ook een inputwaarde van de array_merge functie is?
    Dat moet niet uitmaken (spuit 11, ik weet het). Even debuggen dus om te checken of $output en het resultaat van je functie beide een array bevatten zou ik zeggen De PHP error message wil ook wel helpen denk ik
    poepeneesjewoensdag 23 januari 2008 @ 23:38
    Ik haal een datum op uit mijn database:

    1DATE_FORMAT(startdate, '%e/%m/%Y') AS startdate


    Deze wil ik printen daarom request ik hem:

    1$startdate = $request["startdate"];


    Maar nu wil ik niet de gehele datum printen, maar alleen de dag. Natuurlijk had ik dan dat kunnen aangeven in het eerste stukje code, dat ik alleen de dag binnen krijg. Maar dan komt dit stukje code om de hoek kijken:

    1ORDER BY startdate ASC, enddate ASC, subscribedate ASC


    Hoe los ik dit netjes op?
    Farenjiwoensdag 23 januari 2008 @ 23:50
    Als je wil sorteren op datuim dan is het natuurlijk niet slim om hem te formatteren als dd/mm/yyyy. Je maakt er door je "AS startdate" een stringvergelijking van. Besef je je dan wel dat "10/12/2008" minder, dus *eerder* is dan "31/01/1978" ? YYYY-MM-DD is een betere volgorde, dat is ook de standaard DATE volgorde in mysql.

    Hoe je het op kan lossen: in de sql gewoon als een mysql date of timestamp opvragen, dit in je code omzetten in een datumobject, of zelf de string opsplitsen op dag/maand/datum, en dan kun je het daarna formatteren zoals je wil.
    CraZaaywoensdag 23 januari 2008 @ 23:56
    1DATE_FORMAT(startdate, '%e') AS startday ORDER BY startdate ASC, enddate ASC, subscribedate ASC


    En dan $request['startday']
    poepeneesjedonderdag 24 januari 2008 @ 12:45
    Voortborduren op mijn vorige post, wil ik nu graag de opgevraagde data tonen; groeperend op jaar en daarin per maand. Ik heb al een aantal dingen geprobeerd. Zo lukt het me wel om op maand te groeperen op de volgende manier tot en met de 12de maand:

    1
    2
    if(startmonth == 01){...}
    elseif(startmonth == 02){...}


    Dit zijn er "maar" twaalf, dus zou het wel eventueel zo kunnen. Maar met het jaar lukt het me niet, in de zin dat ik wil dat de code zodanig wordt, dat elk jaar "zelf" wordt gegenereerd:

    1
    2
    3
    4
    $start_jaar = 2008;
    $volgend_jaar = ???;
    if($opgehaalde_startjaar == $start_jaar){..}
    elseif($opgehaalde_startjaar == $volgend_jaar){...}


    Hebben jullie misschien een slimme en logische oplossing? Het volgende moet eigenlijk gebeuren:

    Datums -> Automatisch gesorteerd, gegroepeerd en getoond op jaar -> Automatisch gesorteerd, gegroepeerd en getoond op maand.

    @ Farenji & CraZaay: Bedankt, ik heb het opgelost zoals Farenji aangaf en de benodigde delen eruit gehaald met:

    1$startday = date("d", strtotime($startdate));


    -xxx-
    CraZaaydonderdag 24 januari 2008 @ 12:58
    quote:
    Op donderdag 24 januari 2008 12:45 schreef poepeneesje het volgende:

    Hebben jullie misschien een slimme en logische oplossing? Het volgende moet eigenlijk gebeuren:

    Datums -> Automatisch gesorteerd, gegroepeerd en getoond op jaar -> Automatisch gesorteerd, gegroepeerd en getoond op maand.
    Sorteren in de query op datum en vervolgens in het loopje kijken wanneer een nieuw jaar begint?

    1
    2
    3
    4
    5
    if ($year != $current_year)
    {
        echo('nieuw jaar');
        $current_year = $year;
    }


    Dan heb je geen tig if's nodig iig.
    quote:
    @ Farenji & CraZaay: Bedankt, ik heb het opgelost zoals Farenji aangaf en de benodigde delen eruit gehaald met:
    Waarom nou de PHP date functions aanroepen om van de datum een timestamp te maken, en daar weer een dag van te maken? Waarom niet meteen in de query
    poepeneesjedonderdag 24 januari 2008 @ 13:22
    quote:
    Op donderdag 24 januari 2008 12:58 schreef CraZaay het volgende:

    [..]

    Sorteren in de query op datum en vervolgens in het loopje kijken wanneer een nieuw jaar begint?
    [ code verwijderd ]

    Dan heb je geen tig if's nodig iig.
    Bedankt, deze had ik ook al bedacht .
    quote:
    [..]

    Waarom nou de PHP date functions aanroepen om van de datum een timestamp te maken, en daar weer een dag van te maken? Waarom niet meteen in de query
    Omdat ik geen andere manier wist waarmee ik de juiste gegevens kon verkrijgen...

    Dit is mijn code, klik. Het volgende wil ik eigelijk bereiken, volgens mij is het hier voor een beetje omslachtig omschreven :

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    2007
    - januari
    - februari
    - ...

    2008
    - januari
    - februari
    - ...

    2009
    - januari
    - februari
    - ...


    Op bovenstaande manier zou ik graag mijn agenda willen tonen, de moeilijkheid zit hem -bij mij dan- in het feit dat ze op de goede volgorde gegroepeerd (op jaar en maand) en apart van elkaar worden getoond .
    CraZaaydonderdag 24 januari 2008 @ 13:31
    Ik zou persoonlijk al die strtotime() de deur uit doen en dit in de query oplossen (zie mijn eerdere post hierover). Zo niet, gebruik dan iig niet 3 keer dezelfde "strtotime($startdate)"

    Ik snap niet zo goed waarom je "$id = $request["id"];" etc etc doet. Waarom gebruik je niet gewoon die $request['id'] direct als je er verder niets mee doet?
    MuRKiedonderdag 24 januari 2008 @ 15:40
    kan iemand mij helpen met de volgende mod_rewrite regels?
    De regels zijn voor de frontend van mijn cms, maar deze moeten niet werken wanneer in in de map cbs wil voor de backend..
    Nu ziet hij cbs als de eerste get variabele ipv een echte map..

    1
    2
    3
    4
    5
    6
    RewriteEngine On

    RewriteRule ^!(.*)/(.*)/(.*)/$ index.php?component=$1&type=$2&id=$3 [L]
    RewriteRule ^!(.*)/(.*)/(.*)$ index.php?component=$1&type=$2&id=$3 [L]
    RewriteRule ^!(.*)/(.*)/$ index.php?component=$1&type=$2 [L]
    RewriteRule ^!(.*)/(.*)$ index.php?component=$1&type=$2 [L]


    ik had het zelf al geprobeerd op deze manier:
    1
    2
    3
    4
    5
    6
    RewriteEngine On

    RewriteRule ^!(cbs)/(.*)/(.*)/$ index.php?component=$1&type=$2&id=$3 [L]
    RewriteRule ^!(cbs)/(.*)/(.*)$ index.php?component=$1&type=$2&id=$3 [L]
    RewriteRule ^!(cbs)/(.*)/$ index.php?component=$1&type=$2 [L]
    RewriteRule ^!(cbs)/(.*)$ index.php?component=$1&type=$2 [L]
    CraZaaydonderdag 24 januari 2008 @ 16:36
    Geen idee, maar die eerste 4 regels kunnen prima op 1 regel, moet je alleen even in PHP checken of sommige variabelen leeg zijn
    MuRKiedonderdag 24 januari 2008 @ 17:15
    quote:
    Op donderdag 24 januari 2008 16:36 schreef CraZaay het volgende:
    Geen idee, maar die eerste 4 regels kunnen prima op 1 regel, moet je alleen even in PHP checken of sommige variabelen leeg zijn
    Hoe bedoel je dat?
    CraZaaydonderdag 24 januari 2008 @ 17:19
    RewriteRule ^!(.*)?/?(.*)?/?(.*)?/?$ index.php?component=$1&type=$2&id=$3 [L]

    Misschien niet helemaal correcte syntax, maar zo kan het op 1 regel. Afhankelijk van het aantal componenten zijn 1 of meer variabelen (component, type en/of id) dan leeg.
    MuRKiedonderdag 24 januari 2008 @ 17:31
    Ik ben nog al vers met PHP hoor maar ik zit met een probleem waar ik niet uitkom..
    Ik ben bezig met een formulier waarin ik ook foutmeldingen wil verwerken als er iets niet goed gaat.
    Ik wil dat die foutmelding in het formulier zelf wordt weergegeven met de data die de gebruiker voor het versturen had ingevuld. Ik krijg dit niet mooi voor elkaar.. Ik heb het formulier in zijn geheel in functies geschreven.

    Ik heb er nu een beetje een zooi van gemaakt om tot een oplossing te komen wat dus nog steeds niet gelukt is.


    Heeft iemand een voorbeeld script voor me hoe ik mooi een formulier kan opbouwen met een invoer validatie en foutafhandeling?
    Ik kom er echt niet meer uit vandaag...
    no1uknowdonderdag 24 januari 2008 @ 18:12
    Voor school (PHP vak) moet ik een webapplicatie maken waar mensen zich op kunnen registreren, vervolgens een adresboek moeten kunnen maken en bijhouden/wijzigen, en in de applicatie zelf een nieuwsbrief moeten kunnen opstellen die verzonden kan worden naar iedereen uit het adresboek.

    Nu heb ik het registratiegedeelte bijna af, het adresboek zo goed als af, maar nu nog het nieuwsbrief gedeelte. (Vanavond moeten het adresboek+nieuwsbrief gedeelte worden ingeleverd!)

    Ik heb het volgende script meegekregen van m'n leraar, die ik (denk ik..) moet gebruiken:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    <?php
        
        $IsPostback   = false;
        $onderwerp    = "";
        $bericht      = "";
        $success      = false;
        
        if(isset($_POST['Submit']))
        {
            $IsPostback     = true;
            $adressenlijst     = "persoon1@adres1.nl, persoon2@adres2.nl"; // vul deze met adressen uit de database!

            $onderwerp         = $_POST['onderwerp'];
            $bericht           = $_POST['bericht'];
            
            // werkt alleen met anonymous smtp, HRO: alleen als je op school netwerk zit!, zie anders evt PEAR::Mail
                $success = @mail($adressenlijst, $onderwerp, $bericht, "From: mailinglist@adres.nl");        
            // let op dat sommige SMTP servers geen niet bestaande adressen toestaan als afzender
        }
        
    ?>

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <title>mail versturen</title>
    </head>

    <body>

     <?php if($IsPostback)
     {
        if ($success) echo '<p class="success">mail succesvol verstuurd. </p>';
        else echo '<p class="error">Er is een fout opgetreden bij het versturen van de mail</p>';
     }
     else 
     {
     ?>
    <h2>Mail:</h2>
        <form action="simple_mail.php" Method="Post">
            <label>Onderwerp:</label><input type="text" name="onderwerp"  /> <br />
            <label>Bericht:</label><textarea name="bericht" > </textarea> <br />
            <input type="Submit" name="Submit" value="Versturen" />
        </form>

     <?php 
     }
     ?>
    </body>
    </html>



    Kan iemand mij dit scriptje uitleggen, en vooral de volgende dingen:

    Dit stukje commentaar:
    1// werkt alleen met anonymous smtp, HRO: alleen als je op school netwerk zit!, zie anders evt PEAR::Mail

    Wat bedoelt de desbetreffende leraar hiermee? Ik heb een beetje lopen zoeken naar anonymous smtp maar ik kan niks interessants of bruikbaars vinden. (Zit op de Hogeschool Rotterdam, maar daar heb ik niks aan als ik thuis zit)

    1$adressenlijst     = "persoon1@adres1.nl, persoon2@adres2.nl"; // vul deze met adressen uit de database!


    Ik heb een database van het adresboek (voor elke geregistreerde gebruiker een eigen tabel met daarin de fields Naam en Email)
    Hoe roep ik die correct op zodat ze daar naar verzonden worden?
    Een vriend van mij typte het volgende:
    1
    2
    3
    4
    5
    6
       mysql_connect("localhost","root","speelgoed");
    $resultaat = mysql_query("SELECT email FROM gebruikers002");
    while($rij = mysql_fetch_array($resultaat)){
    $array[] = $rij['email'].',';
    }
    $adressenlijst = implode(",",$array);

    Klopt dat?

    Wat ik tot nu toe heb begrepen is dat ik smtp erbij nodig heb. Hoe ga ik dat doen? Waar haal ik zo'n server vandaan (dus niet die schoolserver) en is dit te testen op localhost?
    MuRKiedonderdag 24 januari 2008 @ 18:36
    quote:
    Op donderdag 24 januari 2008 17:19 schreef CraZaay het volgende:
    RewriteRule ^!(.*)?/?(.*)?/?(.*)?/?$ index.php?component=$1&type=$2&id=$3 [L]

    Misschien niet helemaal correcte syntax, maar zo kan het op 1 regel. Afhankelijk van het aantal componenten zijn 1 of meer variabelen (component, type en/of id) dan leeg.
    Moet die uitroepteken dan na de ^ daar staan? Want dat is toch NOT?
    CraZaaydonderdag 24 januari 2008 @ 18:48
    quote:
    Op donderdag 24 januari 2008 18:36 schreef MuRKie het volgende:

    [..]

    Moet die uitroepteken dan na de ^ daar staan? Want dat is toch NOT?
    Die hoort er niet nee. Ik heb gewoon jouw code gecopy-paste
    MuRKiedonderdag 24 januari 2008 @ 18:50
    quote:
    Op donderdag 24 januari 2008 18:48 schreef CraZaay het volgende:

    [..]

    Die hoort er niet nee. Ik heb gewoon jouw code gecopy-paste
    OK

    [edit]Die regel werkt niet. Hij returned dan de bestandsnaam. In dit geval index.php[/edit]

    [ Bericht 9% gewijzigd door MuRKie op 24-01-2008 19:06:43 ]
    MuRKiedonderdag 24 januari 2008 @ 18:52
    ik heb mijn formulier nu alsvolgt gemaakt maar ik heb het idee dat ik dit niet echt efficient doe zo..
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    <?php
    // no direct access
    defined('_ALLOW_ACCESS')
        or die(
    'Restricted access');


    // --- formulier verwerken --- \\
    function processForm()
    {
        if(
    $_POST['title'] != "" && $_POST['itemID'] != "")
        {
            if(
    $_POST['ID'] != "" && fetchType() == "edit")
            {
                
    $varQuery    "UPDATE menuitem ";
                
    $varSubQuery "WHERE ID = '" mysql_real_escape_string(htmlentities($_POST['ID'])) . "'";
            }
            else if(
    $_POST['ID'] == "" && fetchType() == "new")
            {
                
    $varQuery    "INSERT INTO menuitem";
                
    $varSubQuery "";
            }
            else
            {
                
    $varComponentResult .= displayComponentResult(retryForm());
                exit;
            }
            
    $varQuery .= " SET title = '" mysql_real_escape_string(htmlentities($_POST['title'])) . "'";
            
    $varQuery .= ", component = '" mysql_real_escape_string(htmlentities("content")) . "'"//frontend components moeten nog in de database verwerkt worden. Daarna zal deze functie gemaakt kunnen worden!
            
    $varQuery .= ", itemID = '" mysql_real_escape_string(htmlentities($_POST['itemID'])) . "'";
            
    $varQuery .= ", publish = '" mysql_real_escape_string(htmlentities($_POST['publish'])) . "'";
            
    $varQuery .= $varSubQuery;
            
    $varRun mysql_query($varQuery)
                or die(
    _DATABASE_QUERY_ERROR " " mysql_error());
        
            
    redirect(cmsConfig_siteRoot 'cbs/?component=menuitem&type=list');
        }
        else
        {
            
    $varComponentResult .= displayComponentResult(retryForm());
            
            return 
    $varComponentResult;
        }
    }


    // --- lijst maken van beschikbare paginas --- \\
    function listPages($pageID)
    {
        
    $varQuery  "SELECT ID, title";
        
    $varQuery .= " FROM content";
        
    $varRun    mysql_query($varQuery)
                or die(
    _DATABASE_QUERY_ERROR " " mysql_error());
        
    $intRecords   mysql_affected_rows();
        
    $varHtml   "\t\t\t\t" _CMN_PAGES ":<br />\n";
        
    $varHtml  .= "\t\t\t\t<select name=\"itemID\" size= \"" $intRecords "\">\n";
        
        while(
    $arrResult mysql_fetch_assoc($varRun))
        {
            
    $varHtml .= "\t\t\t\t\t<option value=\"" $arrResult['ID'] . "\"";
            if(
    $arrResult['ID'] == $pageID)
            {
                
    $varHtml .= " selected";
            }
            
    $varHtml .= ">";
            
    $varHtml .= $arrResult['title'];
            
    $varHtml .= "</option>\n";
        }
        
        
    $varHtml .= "\t\t\t\t</select><br />\n";
        
        return 
    $varHtml;
    }


    // --- velden voor nieuw formulier aanmaken --- \\
    function newForm()
    {
        
    $arrForm['type']    = "new";
        
    $arrForm['ID']      = "";
        
    $arrForm['title']   = "";
        
    $arrForm['itemID']  = "";
        
    $arrForm['page']    = listPages($arrForm['itemID']);
        
    $arrForm['publish'] = "";
        
    $arrForm['submit']  = _CMN_CREATE;
        
        return 
    $arrForm;
    }


    // --- velden aanmaken voor onvolledig ingevuld formulier --- \\
    function retryForm()
    {
        
    $arrForm['type']    = mysql_real_escape_string(htmlentities($_GET['type']));
        
    $arrForm['ID']      = mysql_real_escape_string(htmlentities($_POST['ID']));
        
    $arrForm['title']   = mysql_real_escape_string(htmlentities($_POST['title']));
        
    $arrForm['itemID']  = mysql_real_escape_string(htmlentities($_POST['itemID']));
        
    $arrForm['page']    = listPages($_POST['itemID']);
        
    $arrForm['publish'] = mysql_real_escape_string(htmlentities($_POST['publish']));
        
    $arrForm['submit']  = mysql_real_escape_string(htmlentities($_POST['submit']));
        
        return 
    $arrForm;
    }


    // --- velden voor wijzigings formulier aanmaken --- \\
    function editForm()
    {
        
    $intID fetchID();
        
    $varQuery  "SELECT ID, 
                      title, 
                      itemID, 
                      publish"
    ;
        
    $varQuery .= " FROM menuitem";
        
    $varQuery .= " WHERE ID = '" $intID "'";
        
    $varRun    mysql_query($varQuery)
            or die(
    _DATABASE_QUERY_ERROR " " mysql_error());
        
    $arrResult mysql_fetch_assoc($varRun);
        
        
    $arrForm['type']    = "edit";
        
    $arrForm['ID']      = $arrResult['ID'];
        
    $arrForm['title']   = $arrResult['title'];
        
    $arrForm['itemID']  = $arrResult['itemID'];
        
    $arrForm['page']    = listPages($arrForm['itemID']);
        
    $arrForm['publish'] = $arrResult['publish'];
        
    $arrForm['submit']  = _CMN_EDIT;
        
        return 
    $arrForm;
    }


    // --- formulier opbouwen --- \\
    function displayComponentResult($arrForm)
    {
        
    $varHtml  "<form action=\"" cmsConfig_siteRoot "cbs/?component=menuitem&type=" $arrForm['type'];
        if(
    $arrForm['ID'] != "")
        {
            
    $varHtml .= "&id=" $arrForm['ID'];
        }
        
    $varHtml .= "\" method=\"post\" name=\"menuitem\">\n";
        
    $varHtml .= "\t\t\t\t<input name=\"ID\" type=\"hidden\" value=\"" $arrForm['ID'] . "\" />\n";
        
    $varHtml .= "\t\t\t\t" _CMN_TITLE ":<br />\n";
        
    $varHtml .= "\t\t\t\t<input name=\"title\" type=\"text\" size=\"25\" maxlength=\"50\" value=\""
        
    $varHtml .= $arrForm['title'];
        
    $varHtml .= "\" /><br />\n";
        
    $varHtml .= $arrForm['page'];
        
    $varHtml .= "\t\t\t\t" _CMN_PUBLISH ":<br />\n";
        
    $varHtml .= "\t\t\t\t<select name=\"publish\">\n";
        
    $varHtml .= "\t\t\t\t\t<option value=\"yes\"";
        if(
    $arrForm['publish'] == "yes")
        { 
            
    $varHtml .= " selected";
        }
        
    $varHtml .= ">" _CMN_YES "</option>\n";
        
    $varHtml .= "\t\t\t\t\t<option value=\"no\"";
        if(
    $arrForm['publish'] == "no")
        { 
            
    $varHtml .= " selected";
        }
        
    $varHtml .= ">" _CMN_NO "</option>\n";
        
    $varHtml .= "\t\t\t\t</select><br />\n";
        
    $varHtml .= "\t\t\t\t<input name=\"submit\" type=\"submit\" value=\"" $arrForm['submit'] . "\" />\n";
        
    $varHtml .= "\t\t\t</form>\n";
        
        return 
    $varHtml;
    }


    // --- functie bepalen --- \\
    if(isset($_POST['submit']) && $_POST['submit'] == _CMN_CREATE || $_POST['submit'] == _CMN_EDIT)
    {
        
    $varComponentResult processForm();
    }
    else if(
    fetchType() == "edit" && !fetchID())
    {
        
    redirect(cmsConfig_siteRoot 'cbs/?component=menuitem&type=list&msg=' _MSG_NO_ID);
    }
    else if(
    fetchType() == "new")
    {
        
    $varComponentResult displayComponentResult(newForm());    
    }
    else if(
    fetchType() == "edit")
    {
        
    $varComponentResult displayComponentResult(editForm());
    }
    ?>


    kan iemand mij wegwijs maken in een betere methode?

    [ Bericht 16% gewijzigd door MuRKie op 24-01-2008 19:52:44 ]
    MuRKiedonderdag 24 januari 2008 @ 23:46
    Misbruik ik met de volgende toepassing van OOP het OOP principe of "mag" deze methode gewoon?

    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
    <?php
    class MenuItem
    {
        
    protected $ID;
        
    protected $title;
        
        function
    __construct()
        {
            
        }
        
        function
    setID($ID)
        {
            
    $this->ID = $ID;
        }
        
        function
    getID()
        {
            return
    $this->ID;
        }
        
        function
    setTitle($title)
        {
            
    $this->title = $title;
        }
        
        function
    getTitle()
        {
            return
    $this->title;
        }
        
        
        
        function
    Display()
        {
            
    $this->setID('7');
            
    $this->setTitle('Test met OOP?');
            
    $html  = "ID    = " . $this->getID() . "\n";
            
    $html .= "Title = " . $this->getTitle() . "\n";
            
            return
    $html;
        }

    }

    $test = new MenuItem;
    $varComponentResult = $test->Display();
    ?>
    Dit dient puur als voorbeeld..

    Maar is OOP zo ook goed te gebruiken? Dus 1 functie (Display()) die al het nodige binnen een class uitvoerd en het eind resultaat terug geeft? Dus dat je niet van buiten de class variabelen invoert en/of wijzigt? In mijn situatie haalt hij namelijk alle waarden uit een database en komt daar geen handeling van de gebruiker aan te pas..
    Dat is namelijk de reden waardoor ik twijfel of ik OOP wel gebruik zoals het hoort..
    Geqxonvrijdag 25 januari 2008 @ 00:27
    Ziet er keurig uit! Wat ik alleen persoonlijk als constructor zou doen:

    1
    2
    3
    4
    5
    6
    7
    8
    <?php
        
    function MenuItem($ID$title)
        {
            
    $this->setID($ID);
            
    $this->setTitle($title);
        }
      
    ?>


    Zodat je bij het aanmaken van het object direct het ID en de Title meegeeft.
    super-muffinvrijdag 25 januari 2008 @ 00:39
    ik zou alleen de constructor schrijven als __constructor in plaats van de naam van de class, dat kan alleen nog maar ivm backwardcompability met PHP4.
    Geqxonvrijdag 25 januari 2008 @ 00:40
    Oeps! Dat is geen PHP4 backwardscompatibility (Scrabble?), maar een Java trekje.
    #ANONIEMvrijdag 25 januari 2008 @ 08:15
    quote:
    Op vrijdag 25 januari 2008 00:40 schreef Geqxon het volgende:
    Oeps! Dat is geen PHP4 backwardscompatibility (Scrabble?), maar een Java trekje.
    Hehe, ik haal die 2 ook wel eens door elkaar ja

    Java
    super-muffinvrijdag 25 januari 2008 @ 08:31
    En overigens, het is __construct. (zonder de 'or') op het einde.

    In Java moet ik me nog een keer echt gaan verdiepen. Heb hier wel een boek liggen, maar daar staat weinig nuttigs in.
    Xcaliburvrijdag 25 januari 2008 @ 08:59
    quote:
    Op vrijdag 25 januari 2008 00:27 schreef Geqxon het volgende:
    Ziet er keurig uit! Wat ik alleen persoonlijk als constructor zou doen:
    Zodat je bij het aanmaken van het object direct het ID en de Title meegeeft.
    Dat dus.
    Het nut van (de mogelijkheid tot) het zetten van een ID ontgaat me ook een beetje, aangezien je deze nu op een vaste waarde zet ín je class. Het is natuurlijk juist de bedoeling dat je dat vanuit je script doet lijkt me?
    super-muffinvrijdag 25 januari 2008 @ 09:15
    Ik zie trouwens niet in waarom je $Id en $Title niet public maakt. Die Get en Set methods zijn overbodig omdat je toch geen controle of iets uitvoert.
    Geqxonvrijdag 25 januari 2008 @ 09:26
    quote:
    Op vrijdag 25 januari 2008 09:15 schreef super-muffin het volgende:
    Ik zie trouwens niet in waarom je $Id en $Title niet public maakt. Die Get en Set methods zijn overbodig omdat je toch geen controle of iets uitvoert.
    Wat nou als de interne werking van het instellen van de titel opeens anders wordt? Stel je voor dat het instellen van de titel naar een database weggeschreven moet worden. Dan mag je dus overal je source-code aan gaan zitten te passen, in plaats van dat je enkel de setTitle method aan hoeft te passen.
    MuRKievrijdag 25 januari 2008 @ 10:22
    quote:
    Op vrijdag 25 januari 2008 08:59 schreef Xcalibur het volgende:

    [..]

    Dat dus.
    Het nut van (de mogelijkheid tot) het zetten van een ID ontgaat me ook een beetje, aangezien je deze nu op een vaste waarde zet ín je class. Het is natuurlijk juist de bedoeling dat je dat vanuit je script doet lijkt me?
    Ja klopt, maar was ook puur ter illustratie van wat ik bedoelde..
    MuRKievrijdag 25 januari 2008 @ 10:23
    quote:
    Op vrijdag 25 januari 2008 09:15 schreef super-muffin het volgende:
    Ik zie trouwens niet in waarom je $Id en $Title niet public maakt. Die Get en Set methods zijn overbodig omdat je toch geen controle of iets uitvoert.
    Controle komt er nog (als je bedoelt qua gebruikers invoer) en die set en get functies daarover had ik ooit gelezen dat het beter was om de variabelen te setten via een functie en niet direct?

    [ Bericht 5% gewijzigd door MuRKie op 25-01-2008 11:06:00 ]
    MuRKievrijdag 25 januari 2008 @ 11:58
    quote:
    Op vrijdag 25 januari 2008 00:27 schreef Geqxon het volgende:
    Ziet er keurig uit! Wat ik alleen persoonlijk als constructor zou doen:
    [ code verwijderd ]

    Zodat je bij het aanmaken van het object direct het ID en de Title meegeeft.
    In de uiteindelijke situatie worden de ID en title uit een database gehaald.. Dit wilde ik dan binnen de class regelen. Of is dat raar? En wanneer de gegevens niet uit een database worden gehaald, dan worden ze ingevoerd via een formulier, welke ik ook in de class wilde verwerken.. vandaar dat ik de constructor leeg had gelaten..
    Farenjivrijdag 25 januari 2008 @ 12:59
    quote:
    Op vrijdag 25 januari 2008 10:23 schreef MuRKie het volgende:

    [..]

    Controle komt er nog (als je bedoelt qua gebruikers invoer) en die set en get functies daarover had ik ooit gelezen dat het beter was om de variabelen te setten via een functie en niet direct?
    Je hebt gelijk, je kan ze best direct getten/setten zonder aparte functies, maar een voordeel van getters en setters gebruiken is dat je dan ook nog andere dingen kan doen - zoals bijv een property "isModified" oid op true zetten als je een veld aanpast. Dat kun je dan weer op andere plekken gebruiken, zoals in een save functie: als er niks gewijzigd is hoef je ook niet op te slaan. Verder is het ook makkeliijk mocht je ooit nog besluiten om de structuur van je object (ingrijpend) aan te passen; met getters en setters hoef je dan alleen die functies aan te passen; als je overal objectvariabelen direct benadert moet je het overal in je code gaan aanpassen.
    Farenjivrijdag 25 januari 2008 @ 13:03
    quote:
    Op vrijdag 25 januari 2008 11:58 schreef MuRKie het volgende:

    [..]

    In de uiteindelijke situatie worden de ID en title uit een database gehaald.. Dit wilde ik dan binnen de class regelen. Of is dat raar?
    Ja, eigenlijk wel. Lijkt me dat je op basis van het ID het record in de database opzoekt. Dus die kan beter wel gezet worden in de constructor.
    MuRKievrijdag 25 januari 2008 @ 13:38
    quote:
    Op vrijdag 25 januari 2008 13:03 schreef Farenji het volgende:

    [..]

    Ja, eigenlijk wel. Lijkt me dat je op basis van het ID het record in de database opzoekt. Dus die kan beter wel gezet worden in de constructor.
    Ja dat is waar, dom van me..
    De ID wordt natuurlijk niet uit de DB gehaald want aan de hand van de ID haal je het record juist op..
    ID kan dus wel in de __construct want die wordt via de $_GET variabele bepaald..
    kamustrazaterdag 26 januari 2008 @ 21:38
    Is het mogelijk om bij het includen van bestand (include_once etc..) een $_GET parameter mee te geven?
    Edit: laat maar, nee dus

    [ Bericht 18% gewijzigd door kamustra op 26-01-2008 21:51:28 ]
    SuperRembozaterdag 26 januari 2008 @ 23:55
    quote:
    Op zaterdag 26 januari 2008 21:38 schreef kamustra het volgende:
    Is het mogelijk om bij het includen van bestand (include_once etc..) een $_GET parameter mee te geven?
    Edit: laat maar, nee dus
    Afhankelijk van je php instellingen mag je ook een url gebruiken als include. Daar zou je denk ik wel een get parameter aan mee kunnen geven. Maar las het kan dan is het zeker geen manier die ik zou aanraden.
    ralfiezondag 27 januari 2008 @ 00:31
    include het bestand in een functie waarin je de get variabele set:

    1
    2
    3
    4
    5
    6
    7
    <?php
    function includeX($file$_GET) {
          include(
    $file);
    }

    includeX("test/somescript.php", array('id'=> 2'page' => 'test' )) ;
    ?>
    oid

    edit: moet je die supervariabelen natuurlijk wel eerst unsetten, anders heeft dit nog geen nut.

    [ Bericht 7% gewijzigd door ralfie op 27-01-2008 00:36:16 ]
    Farenjizondag 27 januari 2008 @ 04:37
    quote:
    Op zaterdag 26 januari 2008 21:38 schreef kamustra het volgende:
    Is het mogelijk om bij het includen van bestand (include_once etc..) een $_GET parameter mee te geven?
    Edit: laat maar, nee dus
    Leg eens uit waarom je dat zou willen?
    Flaccidzondag 27 januari 2008 @ 10:32
    quote:
    Op zondag 27 januari 2008 04:37 schreef Farenji het volgende:

    [..]

    Leg eens uit waarom je dat zou willen?
    Om pagina's te includen? index.php?page=bestel&product=stoel ?
    ralfiezondag 27 januari 2008 @ 10:37
    quote:
    Op zondag 27 januari 2008 10:32 schreef Flaccid het volgende:

    [..]

    Om pagina's te includen? index.php?page=bestel&product=stoel ?
    get en post etc variabelen worden toch al doorgegeven aan de geincludeerde scripts?
    Farenjizondag 27 januari 2008 @ 13:58
    quote:
    Op zondag 27 januari 2008 10:32 schreef Flaccid het volgende:

    [..]

    Om pagina's te includen? index.php?page=bestel&product=stoel ?
    De scope van variabelen loopt gewoon door, ook in geinclude bestanden. Bijv:

    foo.php:
    1
    2
    3
    4
    5
    <?php
    var $poep "vies";

    include(
    "bar.php");
    ?>


    bar.php:
    1
    2
    3
    <?php
    print $poep;
    ?>


    Dit geeft als output gewoon "vies".
    Zelfde werkt het voor $_GET en $_POST variabelen.
    SuperRembozondag 27 januari 2008 @ 15:30
    quote:
    Op zondag 27 januari 2008 13:58 schreef Farenji het volgende:
    De scope van variabelen loopt gewoon door, ook in geinclude bestanden. Bijv:
    Behalve als je een bestand include via een url (Wat af te raden is)
    MuRKiezondag 27 januari 2008 @ 16:39
    ik ben bezig met een website voor de 50ste verjaardag van mijn schoonmoeder. Ik include daarin een pagina waarin ik een class declareer maar ik krijg de melding
    1Fatal error: Cannot redeclare class GuestBook in C:\xampp\htdocs\maria\includes\guestbook.php on line 10
    (hieronder dan regel 7 maar in Dreamweaver staat hij gewoon op 10)
    Dat houdt toch in dat hij al eerder gedeclareerd zou moeten zijn want dat is namelijk niet het geval..

    Hier de code hoe ik het bestand include:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    <?php
    // --- Pagina retourneren --- \\
    function displayPage()
    {
        switch (
    fetchPage())
        {
            case 
    fetchPage():
                require(
    'includes/' fetchPage() . '.php');
                break;
            default:
                require(
    'includes/content.php');
        }
        
        return 
    $result;        
    }
    ?>


    en hier de code met de class:
    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
    // no direct access
    defined('_ALLOW_ACCESS')
        or die(
    'Restricted access');


    class 
    GuestBook
    {
        
    protected $ID;
        
    protected $message;
        
    protected $name;
        
        
    protected $fullItem = array();
        
        function 
    __construct()
        {
            
        }
        
        function 
    fetchMessages()
        {
            
    $query  "SELECT ID, message, name ";
            
    $query .= "FROM guestbook";
            
    $run    mysql_query($query)
                or die(
    'Bericht is niet opgehaald');
            while(
    $result mysql_fetch_assoc($run))
            {
                
    $this->storeMessage($result['ID'], $result['message'], $result['name']);
            }
        }
        
        function 
    storeMessage($ID$message$name)
        {
            
    $html "<div>#" $ID " - geschreven door: " $name;
            
    $html .= "<br />";
            
    $html .= $message;
            
    $html .= "<br />";
            
    $html .= "<br />";
            
            
    $this->fullItem[] = $html;
        }
        
        function 
    displayGuestBook()
        {
            
    $html "";
            foreach(
    $this->fullItem as $item)
            {
                
    $html .= $item;
            }
            return 
    $html;
        }
    }

    $guestBook = new GuestBook;
    $guestBook->fetchMessages();
    $result $guestBook->displayGuestBook();
    ?>


    Iemand enig idee hoe dit komen kan?
    Geqxonzondag 27 januari 2008 @ 17:12
    Door mijn HTML-output van tabs en newlines te strippen kan ik mijn sourcode van 9,69 naar 8,21 kilobyte verkleinen. Maar hoe zwaar is het voor mijn server als ik via str_replace alle tabs en newlines strip? Ik neem aan dat hij in een for-lus alle chars af gaat, op zoek naar een \t, en deze vervangt voor een blanke char?
    Dreammasterzondag 27 januari 2008 @ 17:15
    de class wordt waarschijnlijk in de functie fetchPage() gedeclareerd. deze functie roep je al aan bij de switch en dan bij case weer... ik snap trouwens ook niet waarom je een switch statement gebruikt is de onderstaande code niet veel simpeler? Je switch statement zal trouwens ook nooit de content.php requiren.

    1
    2
    3
    4
    5
    6
    7
    8
    <?php
    $page 
    fetchPage():
    if (!empty(
    $page)) {
        require(
    'includes/' $page '.php');
    } else {
        require(
    'includes/content.php');
    }
    ?>
    MuRKiezondag 27 januari 2008 @ 17:19
    quote:
    Op zondag 27 januari 2008 17:15 schreef Dreammaster het volgende:
    de class wordt waarschijnlijk in de functie fetchPage() gedeclareerd. deze functie roep je al aan bij de switch en dan bij case weer... ik snap trouwens ook niet waarom je een switch statement gebruikt is de onderstaande code niet veel simpeler? Je switch statement zal trouwens ook nooit de content.php requiren.
    [ code verwijderd ]
    Ja had ik net ook naar gekeken maar dat haalt opzich niet veel uit.. FetchPage() geeft altijd wat terug.. als $_GET['page'] niet gedeclareerd is geeft hij "content" terug als page..
    Dus het resultaat blijft hetzelfde.. Maar scheelt idd wel paar regels.. Dan kan ik het ook nog alsvolgt doen:
    1
    2
    3
    <?php
    require('includes/' fetchPage() . '.php';
    ?>

    volgens mij das nog veel korter ook

    Enne zelfde methode gebruik ik ook in een CMS waar ik mee bezig ben en daar werkt het wel gewoon prima..
    Dreammasterzondag 27 januari 2008 @ 17:22
    als de functie altijd iets returned dan kan dat inderdaad... maar is je fatal-error hiermee opgelost?
    MuRKiezondag 27 januari 2008 @ 17:31
    quote:
    Op zondag 27 januari 2008 17:22 schreef Dreammaster het volgende:
    als de functie altijd iets returned dan kan dat inderdaad... maar is je fatal-error hiermee opgelost?
    Nee maar heb inmiddels al wel gevonden wat dat was..
    Er stond in de index.php nog het volgende:
    1
    2
    3
    <?php
    $page
    = displayPage();
    ?>

    terwijl ik die al niet meer gebruikte.. Dus daar werd hij al eerder aangeroepen dan dat eigenlijk moest..
    Heb dus beide nu aangepast..

    Ik ben nu alsvolgt bezig met het gastenboek. Ik wilde alleen van jullie weten of dit correct OOP gebruik is, aangezien ik nog 0 ervaring met OOP heb.
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    <?php
    // no direct access
    defined('_ALLOW_ACCESS')
        or die(
    'Restricted access');


    class
    GuestBook
    {
        
    protected $ID;
        
    protected $name;
        
    protected $message;
        
    protected $theDate;
        
    protected $error;
        
        
    protected $fullItem = array();
        
        
        
        function
    __construct()
        {
            
    $this->setError(false);
        }
        
        function
    setID($ID)
        {
            
    $this->ID = mysql_real_escape_string(htmlentities($ID));
        }
        
        function
    fetchID()
        {
            return
    $this->ID;
        }
        
        function
    setName($name, $error)
        {
            
    $this->name['value'] = mysql_real_escape_string(htmlentities($name));
            
    $this->name['error'] = $error;
        }
        
        function
    fetchName()
        {
            return
    $this->name['value'];
        }
        
        function
    fetchNameError()
        {
            return
    $this->name['error'];
        }
        
        function
    setMessage($message, $error)
        {
            
    $this->message['value'] = mysql_real_escape_string(htmlentities($message));
            
    $this->message['error'] = $error;
        }
        
        function
    fetchMessage()
        {
            return
    $this->message['value'];
        }
        
        function
    fetchMessageError()
        {
            return
    $this->message['error'];
        }
        
        function
    setDate($theDate)
        {
            
    $this->theDate = $theDate;
        }
        
        function
    fetchDate()
        {
            return
    $this->theDate;
        }
        
        function
    setError($error)
        {
            
    $this->error = $error;
        }
        
        function
    fetchError()
        {
            return
    $this->error;
        }
        
        function
    listMessages()
        {
            
    $query  = "SELECT ID, message, name, date ";
            
    $query .= "FROM guestbook ";
            
    $query .= "ORDER BY `ID` ASC ";
            
    //$query .= "LIMIT 0 , 30";
            
    $run    = mysql_query($query)
                or die(
    'Berichten zijn niet opgehaald!<br /><i>' . mysql_error() . '</i>');
            
    $numb = 1;
            while(
    $result = mysql_fetch_assoc($run))
            {
                
    $this->storeMessage($numb, $result['message'], $result['name'], $result['date']);
                
    $numb++;
            }
        }
        
        function
    storeMessage($ID, $message, $name, $date)
        {
            
    $html = "<div>#" . $ID . " - geschreven door: " . $name . " op " . $date;
            
    $html .= "<br />";
            
    $html .= $message;
            
    $html .= "<br />";
            
    $html .= "<br />";
            
            
    $this->fullItem[] = $html;
        }
        
        function
    processForm()
        {
            
    $this->setDate(date('l, d F Y - H:i:s'));
            
            if(
    $_POST['name'] != "")
            {
                
    $this->setName($_POST['name'], '');
            }
            else
            {
                
    $this->setName($_POST['name'], 'Vergeten je naam in te vullen!');
                
    $this->setError(true);
            }
            
            if(
    $_POST['message'] != "")
            {
                
    $this->setMessage($_POST['message'], '');
            }
            else
            {
                
    $this->setMessage($_POST['message'], 'Vergeten een berichtje in te vullen!');
                
    $this->setError(true);
            }
            
            if(
    $this->fetchError() == false)
            {
                
    $query  = "INSERT INTO guestbook ";
                
    $query .= "SET message = '" . $this->fetchMessage() . "', name = '" . $this->fetchName() . "', date = '" . $this->fetchDate() . "'";
                
    $run    = mysql_query($query)
                    or die(
    'Invoeren niet gelukt!<br /><i>' . mysql_error() . '</i>');
                
    header('Location: ' . cmsConfig_siteRoot . 'page/guestbook/view');
            }
        }
        
        function
    displayWrite()
        {
            
    $html .= "<form action=\"" . cmsConfig_siteRoot . "page/guestbook/add\" method=\"post\" name=\"sendMessage\">";
            
    $html .= "<table>\n";
            
    $html .= "<tr>\n";
            
    $html .= "<td>Naam: <input name=\"name\" type=\"text\" size=\"10\" value=\"" . $this->fetchName() . "\" maxlength=\"50\" />" . $this->fetchNameError() . "</td>\n";
            
    $html .= "</tr>";
            
    $html .= "<tr>";
            
    $html .= "<td>Bericht: <textarea name=\"message\" cols=\"20\" rows=\"5\">" . $this->fetchMessage() . "</textarea>" . $this->fetchMessageError() . "</td>";
            
    $html .= "</tr>";
            
    $html .= "<tr>";
            
    $html .= "<td><input name=\"submit\" type=\"submit\" value=\"Versturen!\"></td>";
            
    $html .= "</tr>";
            
    $html .= "</table>";
            
    $html .= "</form>";
            
            return
    $html;
        }
        
        function
    displayGuestBook()
        {
            
    $this->listMessages();
            
    $html = "";
            foreach(
    $this->fullItem as $item)
            {
                
    $html .= $item;
            }
            
    $html .= $this->displayWrite();
            return
    $html;
        }
    }

    $guestBook = new GuestBook();

    if(
    fetchType() == "add")
    {
        if(isset(
    $_POST['submit']))
        {
            
    $guestBook->processForm();
        }
    }

    $result = $guestBook->displayGuestBook();
    ?>


    [ Bericht 92% gewijzigd door MuRKie op 27-01-2008 18:27:50 ]
    Flaccidzondag 27 januari 2008 @ 19:36
    ik code vaag

    [ Bericht 90% gewijzigd door Flaccid op 27-01-2008 20:26:33 ]
    MuRKiezondag 27 januari 2008 @ 21:20
    quote:
    Op zondag 27 januari 2008 19:36 schreef Flaccid het volgende:
    ik code vaag
    ?
    Thomasszondag 27 januari 2008 @ 21:49
    quote:
    Op zondag 27 januari 2008 17:31 schreef MuRKie het volgende:

    [..]

    Nee maar heb inmiddels al wel gevonden wat dat was..
    Er stond in de index.php nog het volgende:
    [ code verwijderd ]

    terwijl ik die al niet meer gebruikte.. Dus daar werd hij al eerder aangeroepen dan dat eigenlijk moest..
    Heb dus beide nu aangepast..

    Ik ben nu alsvolgt bezig met het gastenboek. Ik wilde alleen van jullie weten of dit correct OOP gebruik is, aangezien ik nog 0 ervaring met OOP heb.
    [ code verwijderd ]
    Persoonlijk vind ik dingen als dit
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <?php
        
    function setDate($theDate)
        {
            
    $this->theDate $theDate;
        }
        
        function 
    fetchDate()
        {
            return 
    $this->theDate;
        }
    ?>

    vrij nutteloos, als je de variabelenaam gewoon een heldere naam geeft dan zijn die get/set methoden echt niet nodig
    MuRKiezondag 27 januari 2008 @ 22:58
    quote:
    Op zondag 27 januari 2008 21:49 schreef Thomass het volgende:

    [..]

    Persoonlijk vind ik dingen als dit
    [ code verwijderd ]

    vrij nutteloos, als je de variabelenaam gewoon een heldere naam geeft dan zijn die get/set methoden echt niet nodig
    alleen nutteloze extra regels code..? dat vond ik ook steeds meer.. ik had dit ooit ergens gezien en las dat het zo het beste was. ikzelf ben steeds meer gaan vinden dat het overbodige code is..

    maarja ik had gelezen dat het goed zou zijn op deze manier ofzo
    Xcaliburzondag 27 januari 2008 @ 23:02
    ik vind getters en setters op zich wel netter, maar vooral in de code waarin je ze gebruikt

    Het gebruik van HTML in je PHP (en dan nog in een class ook) vind ik ranzig trouwens!
    MuRKiezondag 27 januari 2008 @ 23:10
    quote:
    Op zondag 27 januari 2008 23:02 schreef Xcalibur het volgende:
    ik vind getters en setters op zich wel netter, maar vooral in de code waarin je ze gebruikt

    Het gebruik van HTML in je PHP (en dan nog in een class ook) vind ik ranzig trouwens!
    hoe bedoel je dat? zoals ik dat heb gedaan, in strings?

    hoe doe jij dat normaal dan? ik leer graag nieuwe dingen..
    Xcaliburzondag 27 januari 2008 @ 23:15
    de PHP in de phpbestanden, de HTML in de template bestanden, strict gescheiden dus
    En alle opmaak in CSS bestanden natuurlijk.

    Ik gebruik zelf Smarty als template engine, werkt erg prettig vind ik. Er zijn een heleboel alternatieven in omloop, inclusief het nodige zelfbouw wat ik hier voorbij zie komen ...

    Het punt van html in je PHP is dat je al je code na kan gaan lopen als je je lay-out wilt veranderen. En eigenlijk wil je dan alleen je CSS aanpassen, want daar is het voor
    Xcaliburzondag 27 januari 2008 @ 23:18
    trouwens, het gebruik van de strings zoals jij doet is wat mij betreft niks mis mee, hoewel het wel wat efficienter kan:

    1
    2
    3
    $html  = "hier de tekst "
          .= "hier de rest " 
          .= "hier nog meer ";


    Dan hoef je niet steeds de variabele-naam te herhalen, vind ik wel zo overzichtelijk
    Let op de puntkomma die alleen aan het einde staat!
    CraZaayzondag 27 januari 2008 @ 23:18
    quote:
    Op zondag 27 januari 2008 23:15 schreef Xcalibur het volgende:

    Het punt van html in je PHP is dat je al je code na kan gaan lopen als je je lay-out wilt veranderen. En eigenlijk wil je dan alleen je CSS aanpassen, want daar is het voor
    Daarmee veeg je je argument om geen HTML in je PHP te stoppen aardig van tefel Als je je lay-out aan wilt passen doe je dat door de CSS aan te passen, en maakt het dus niet uit of je HTML in een template staat of tussen de PHP

    Ik ben het overigens met je eens dat je het wél gescheiden zou moeten houden (ik roep maar weer eens "MVC" ).
    CraZaayzondag 27 januari 2008 @ 23:19
    quote:
    Op zondag 27 januari 2008 23:18 schreef Xcalibur het volgende:
    trouwens, het gebruik van de strings zoals jij doet is wat mij betreft niks mis mee, hoewel het wel wat efficienter kan:
    [ code verwijderd ]

    Dan hoef je niet steeds de variabele-naam te herhalen, vind ik wel zo overzichtelijk
    Let op de puntkomma die alleen aan het einde staat!
    Werkt dat? De punt (dus niet ".=") is immers genoeg?
    Xcaliburzondag 27 januari 2008 @ 23:20
    Daar heb je wel een punt

    Maar als er HTML in de PHP staat, staat er vaak ook inline CSS in de HTML, en dan wordt het echt een bende....
    MuRKiezondag 27 januari 2008 @ 23:21
    quote:
    Op zondag 27 januari 2008 23:15 schreef Xcalibur het volgende:
    de PHP in de phpbestanden, de HTML in de template bestanden, strict gescheiden dus
    En alle opmaak in CSS bestanden natuurlijk.

    Ik gebruik zelf Smarty als template engine, werkt erg prettig vind ik. Er zijn een heleboel alternatieven in omloop, inclusief het nodige zelfbouw wat ik hier voorbij zie komen ...

    Het punt van html in je PHP is dat je al je code na kan gaan lopen als je je lay-out wilt veranderen. En eigenlijk wil je dan alleen je CSS aanpassen, want daar is het voor
    maar je zal toch altijd wat html in je php houden? ik heb nu meer html gebruikt dan ik uiteindelijk nodig heb maar das puur voor tijdens het ontwikkelen.. uiteindelijk bepaal i alle opmaak in een template en een css. maar in de php zal je dan toch altijd nog je menu in een ul moeten stoppen of je tekst in een div? of zie ik dat nu verkeerd?

    [edit]
    ik kan trouwens niet zien hoeveel posts er geplaatst zijn, ik zit namelijk op mijn pda.. dus kan dan ook geen nieuw vervolg topic openen..
    [/edit]
    Xcaliburzondag 27 januari 2008 @ 23:21
    quote:
    Op zondag 27 januari 2008 23:19 schreef CraZaay het volgende:
    Werkt dat? De punt (dus niet ".=") is immers genoeg?
    oh, ik doe het altijd zo
    alleen een punt zou ook wel moeten werken inderdaad, ik vind zelf de = erbij wel prettig, gewoon visueel
    Xcaliburzondag 27 januari 2008 @ 23:23
    quote:
    Op zondag 27 januari 2008 23:21 schreef MuRKie het volgende:
    maar in de php zal je dan toch altijd nog je menu in een ul moeten stoppen of je tekst in een div? of zie ik dat nu verkeerd?
    Neehoor, dat hoeft niet. Je kunt al je informatie in variabelen / arrays stoppen, en die in de template weer uitlezen. In de template ontkom je natuurlijk niet aan wat if's en loopjes, maar veel spannenders is daar verder niet nodig
    Xcaliburzondag 27 januari 2008 @ 23:24
    Ik ga naar bed trouwens, morgen weer verder
    MuRKiezondag 27 januari 2008 @ 23:30
    ik gebruik geen inline css in de html die ik in de php stop.. alle opmaak regel ik uiteindelijk vanuit de css. misschien ligt het aan de mate van ervaring dat ik html enp hp nog niet 100% gescheiden hou. die tip over die strings is trouwens handig, thx!
    CraZaayzondag 27 januari 2008 @ 23:31
    quote:
    Op zondag 27 januari 2008 23:21 schreef Xcalibur het volgende:

    [..]

    oh, ik doe het altijd zo
    alleen een punt zou ook wel moeten werken inderdaad, ik vind zelf de = erbij wel prettig, gewoon visueel
    Ik wist niet eens dat het valide syntax was op deze manier Dacht altijd dat je ".=" alleen mocht gebruiken met een variabele ervoor.
    MuRKiezondag 27 januari 2008 @ 23:40
    quote:
    Op zondag 27 januari 2008 23:31 schreef CraZaay het volgende:

    [..]

    Ik wist niet eens dat het valide syntax was op deze manier Dacht altijd dat je ".=" alleen mocht gebruiken met een variabele ervoor.
    ik wist dat inderdaad ook niet, variabelen plak ik normaal ook aan elkaar met . en niet met .= wanneer ik ze op 1 regel plaats, maar wanneer ik het op meerdere regels schrijf dan doe ik het weer met .= en de variabelenaam ervoor.. maar dit gaat weer code schelen
    MuRKiemaandag 28 januari 2008 @ 11:50
    Ik heb er nu echt een zooitje van gemaakt, maar het werkt iig..
    Nu maar op gaan schonen enzo :)
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    216
    217
    218
    219
    220
    221
    222
    223
    224
    225
    226
    <?php
    // no direct access
    defined('_ALLOW_ACCESS')
        or die(
    'Restricted access');


    class 
    GuestBook
    {
        var 
    $ID;
        var 
    $name;
        var 
    $message;
        var 
    $theDate;
        var 
    $error;
        
        var 
    $fullItem = array();
        
        var 
    $currentPage;
        var 
    $limit;
        var 
    $totalRows;
        var 
    $totalPages;
        var 
    $number;
        var 
    $first;
        var 
    $last;
        
        
        
        function 
    __construct()
        {
            
    $this->error false;
            
    $this->limit 5;
        }
        
        
        
        function 
    listMessages()
        {
            if(isset(
    $_GET['itemID']))
            {
                
    $this->currentPage $_GET['itemID'];
            }
            else
            {
                
    $this->currentPage 1;
            }
            
            
    $query        "SELECT ID, message, name, date "
                        
    "FROM guestbook "
                        
    "ORDER BY `ID` DESC";
            
    $subQuery    " LIMIT " . (($this->currentPage 1) * $this->limit) . " , " $this->limit "";
            
    $fullQuery    $query $subQuery;
            
    $run        mysql_query($fullQuery)
                or die(
    'Berichten zijn niet opgehaald!<br /><i>' mysql_error() . '</i>');
            
    $this->totalRows    mysql_num_rows(mysql_query($query));
            
    $this->totalPages    ceil($this->totalRows $this->limit);
            if(
    $this->currentPage != 1)
            {
                
    $this->number    = (($this->currentPage 1) * $this->limit);
                
    $this->number    $this->number+1;
            }
            else
            {
                
    $this->number    1;
            }
            
    //$this->number = $this->number+1;
            
    while($result mysql_fetch_assoc($run))
            {
                
    $this->storeMessage($this->number$result['message'], $result['name'], $result['date']);
                
    $this->number++;
            }
        }


        
    // the actual function 
        
    function pageNav($cpage,$totalrows,$totalpages) { 
            
    // configuration 
            
    $split_begin    "[ ";     $split " ] [ ";     $split_end " ]"// begin-, split- , end-signs
            
    $url            cmsConfig_siteRoot "page/guestbook/view"// change, always end $url with a '?' or '&', url will be followed by cpage=<pagenumber> 
        
            // DON'T CHANGE ANYTHING ELSE BELOW THIS LINE!!! 
        
            // previous generator 
            
    if($totalpages != 1) { 
                
    $prevPage    $cpage 1
                if(
    $prevPage 1) { 
                    
    $prev    "<span ".$n_a.">&laquo;&laquo;</span>".$split."<span ".$n_a.">&laquo; previous</span>".$split
                } else { 
                    
    $prev    "<a href='".$url."/1' title='begin'>&laquo;&laquo;</a>".$split."<a href='".$url."/".$prevPage."' title='previous page'>&laquo; previous</a>".$split
                } 
            }
            
            
    $start    1
        
            
    // page numbers generator 
            
    $pages    ""// preventing an error notice! 
            
    for($i 0$i $totalpages$i++) { 
                if(
    $start != $cpage) { 
                    
    $pages    .= "<a href='".$url."/".$start."'>".$start."</a>"
                } else { 
                    
    $pages    .= "<b>".$start."</b>"
                } 
                if(
    $i < ($totalpages 1)) { 
                    
    $pages    .= $split
                } else { 
                    break; 
                } 
                
    $start++; 
            } 
        
            
    // next generator 
            
    if($totalpages != 1) { 
                
    $nextPage    $cpage 1
                if(
    $nextPage $totalpages)
                {
                    
    $next    $split "<span>next &raquo;</span>".$split."<span>&raquo;&raquo;</span>"
                }
                else
                {
                    
    $next    $split "<a href='" $url "/" $nextPage "' title='next page'>next &raquo;</a>" $split "<a href='" $url "/" $totalpages "' title='end'>&raquo;&raquo;</a>"
                } 
            } 
            
            return 
    $split_begin $prev $pages $next $split_end
        }


        
        function 
    storeMessage($ID$message$name$date)
        {
            
    $html     "<div>#" $ID " - geschreven door: " $name " op " $date
                    
    "<br />"
                    
    $message
                    
    "<br />"
                    
    "<br />";
            
            
    $this->fullItem[] = $html;
        }
        
        function 
    processForm()
        {
            
    $this->theDate    date('l, d F Y - H:i:s');
            
            if(
    $_POST['name'] != "")
            {
                
    $this->name['value']    = mysql_real_escape_string(htmlentities($_POST['name']));
                
    $this->name['error']    = '';
            }
            else
            {
                
    $this->name['value']    = mysql_real_escape_string(htmlentities($_POST['name']));
                
    $this->name['error']    = 'Vergeten je naam in te vullen!';
                
    $this->error true;
            }
            
            if(
    $_POST['message'] != "")
            {
                
    $this->message['value']    = mysql_real_escape_string(htmlentities($_POST['message']));
                
    $this->message['error']    = '';
            }
            else
            {
                
    $this->message['value']    = mysql_real_escape_string(htmlentities($_POST['message']));
                
    $this->message['error']    = 'Vergeten een berichtje in te vullen!';
                
    $this->error            true;
            }
            
            if(
    $this->error == false)
            {
                
    $query     "INSERT INTO guestbook "
                        
    "SET message = '" $this->message['value'] . "', name = '" $this->name['value'] . "', date = '" $this->theDate "'";
                
    $run    mysql_query($query)
                    or die(
    'Invoeren niet gelukt!<br /><i>' mysql_error() . '</i>');
                
    header('Location: ' cmsConfig_siteRoot 'page/guestbook/view/');
            }
        }
        
        function 
    displayWrite()
        {
            
    $html    "<form action=\"" cmsConfig_siteRoot "page/guestbook/add\" method=\"post\" name=\"sendMessage\">"
                    
    "<table>\n"
                    
    "<tr>\n"
                    
    "<td>Naam: <input name=\"name\" type=\"text\" size=\"10\" value=\""
                    
    $this->name['value']
                    . 
    "\" maxlength=\"50\" />"
                    
    $this->name['error']
                    . 
    "</td>\n"
                    
    "</tr>"
                    
    "<tr>"
                    
    "<td>Bericht: <textarea name=\"message\" cols=\"20\" rows=\"5\">" $this->message['value'] . "</textarea>" $this->message['error'] . "</td>"
                    
    "</tr>"
                    
    "<tr>"
                    
    "<td><input name=\"submit\" type=\"submit\" value=\"Versturen!\"></td>"
                    
    "</tr>"
                    
    "</table>"
                    
    "</form>";
            
            return 
    $html;
        }
        
        function 
    displayGuestBook()
        {
            
    $this->listMessages();
            
    $html "";
            foreach(
    $this->fullItem as $item)
            {
                
    $html .= $item;
            }
            
    $html .= $this->pageNav($this->currentPage$this->totalRows$this->totalPages);
            
    $html .= $this->displayWrite();
            return 
    $html;
        }
    }

    $guestBook = new GuestBook();

    if(
    fetchType() == "add")
    {
        if(isset(
    $_POST['submit']))
        {
            
    $guestBook->processForm();
        }
    }

    $result $guestBook->displayGuestBook();
    ?>
    super-muffinmaandag 28 januari 2008 @ 19:47
    Dit is niet heel erg OOP. Meer losse functies verzamelen in een klasse. Je hebt nu de verwerking en presentatie in de zelfde klasse zitten wat niet hoort imho.
    Chandlermaandag 28 januari 2008 @ 19:52
    Ik heb een vraag over mijn database structuur van mijn statistieken script

    de database
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    -- phpMyAdmin SQL Dump
    -- version 2.6.4-pl1
    -- http://www.phpmyadmin.net
    -- 
    -- Host: localhost
    -- Generatie Tijd: 28 Jan 2008 om 19:51
    -- Server versie: 5.0.45
    -- PHP Versie: 4.2.3
    -- 
    -- Database: `stat`
    -- 

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

    -- 
    -- Tabel structuur voor tabel `stat`
    -- 

    CREATE TABLE `stat` (
      `id` int(4) NOT NULL auto_increment,
      `name` varchar(32) NOT NULL default '',
      `user_id` int(11) NOT NULL default '0',
      `title` varchar(75) NOT NULL default '',
      `referer` varchar(75) NOT NULL default '',
      `active` tinyint(1) NOT NULL default '0',
      PRIMARY KEY  (`id`)
    ) ENGINE=MyISAM AUTO_INCREMENT=30 DEFAULT CHARSET=latin1;

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

    -- 
    -- Tabel structuur voor tabel `stat_user`
    -- 

    CREATE TABLE `stat_user` (
      `id` int(11) NOT NULL auto_increment,
      `username` varchar(32) NOT NULL default '',
      `password` varchar(64) NOT NULL default '',
      `user_level` tinyint(1) NOT NULL default '0',
      `last_login` datetime NOT NULL default '0000-00-00 00:00:00',
      KEY `id` (`id`)
    ) ENGINE=MyISAM AUTO_INCREMENT=2 DEFAULT CHARSET=latin1;

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

    -- 
    -- Tabel structuur voor tabel `statcounts`
    -- 

    CREATE TABLE `statcounts` (
      `id` int(4) NOT NULL auto_increment,
      `sid` int(4) NOT NULL default '0',
      `pid` int(4) NOT NULL default '0',
      `year` varchar(4) NOT NULL default '',
      `value` varchar(75) NOT NULL default '',
      `count` bigint(20) NOT NULL default '0',
      PRIMARY KEY  (`id`),
      KEY `sid` (`sid`,`pid`,`year`)
    ) ENGINE=MyISAM AUTO_INCREMENT=28648 DEFAULT CHARSET=latin1;

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

    -- 
    -- Tabel structuur voor tabel `statdate`
    -- 

    CREATE TABLE `statdate` (
      `id` int(4) NOT NULL auto_increment,
      `sid` int(4) NOT NULL default '0',
      `day` char(2) NOT NULL default '',
      `weekday` char(2) NOT NULL default '',
      `week` char(2) NOT NULL default '',
      `month` char(2) NOT NULL default '',
      `year` varchar(4) NOT NULL default '',
      `count` bigint(20) NOT NULL default '0',
      PRIMARY KEY  (`id`),
      KEY `sid` (`sid`,`month`,`year`)
    ) ENGINE=MyISAM AUTO_INCREMENT=634 DEFAULT CHARSET=latin1;

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

    -- 
    -- Tabel structuur voor tabel `statip`
    -- 

    CREATE TABLE `statip` (
      `id` int(4) NOT NULL auto_increment,
      `sid` int(4) NOT NULL default '0',
      `value` varchar(75) NOT NULL default '',
      `lastdate` varchar(10) default NULL,
      `count` bigint(20) NOT NULL default '0',
      PRIMARY KEY  (`id`),
      KEY `value` (`value`)
    ) ENGINE=MyISAM AUTO_INCREMENT=27411 DEFAULT CHARSET=latin1;

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

    -- 
    -- Tabel structuur voor tabel `statkeywords`
    -- 

    CREATE TABLE `statkeywords` (
      `sid` tinyint(4) NOT NULL default '0',
      `search_id` int(11) NOT NULL default '0',
      `year` varchar(4) NOT NULL default '',
      `lastupdate` datetime NOT NULL default '0000-00-00 00:00:00',
      `keyword` varchar(25) NOT NULL default '',
      `count` bigint(20) NOT NULL default '0',
      KEY `sid` (`sid`,`search_id`,`year`,`keyword`)
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1;

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

    -- 
    -- Tabel structuur voor tabel `statlast`
    -- 

    CREATE TABLE `statlast` (
      `id` bigint(20) NOT NULL auto_increment,
      `sid` tinyint(4) NOT NULL default '0',
      `lasttime` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
      `date` datetime NOT NULL default '0000-00-00 00:00:00',
      `ip` varchar(15) NOT NULL default '',
      `host` varchar(255) NOT NULL default '',
      `referer` varchar(255) NOT NULL default '',
      `os` varchar(75) NOT NULL default '',
      `browser` varchar(75) NOT NULL default '',
      `country` varchar(75) NOT NULL default '',
      `color` varchar(75) NOT NULL default '',
      `resolution` varchar(75) NOT NULL default '',
      KEY `id` (`id`,`sid`)
    ) ENGINE=MyISAM AUTO_INCREMENT=21 DEFAULT CHARSET=latin1;

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

    -- 
    -- Tabel structuur voor tabel `statreferer`
    -- 

    CREATE TABLE `statreferer` (
      `sid` int(4) NOT NULL default '0',
      `lastvisit` datetime NOT NULL default '0000-00-00 00:00:00',
      `value` varchar(255) NOT NULL default '',
      `count` bigint(20) NOT NULL default '0',
      `type` enum('I','E') NOT NULL default 'I',
      KEY `sid` (`sid`,`value`,`type`)
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1;

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

    -- 
    -- Tabel structuur voor tabel `statsearchengine`
    -- 

    CREATE TABLE `statsearchengine` (
      `id` int(11) NOT NULL auto_increment,
      `year` varchar(4) NOT NULL default '',
      `title` varchar(64) NOT NULL default '',
      KEY `id` (`id`),
      KEY `year` (`year`,`title`)
    ) ENGINE=MyISAM AUTO_INCREMENT=9 DEFAULT CHARSET=latin1;


    Nu gebruik ik het tabel statcounts voor algemene gegevens zoals dag, maand, jaar, IP, hostname, kleuren, brouwser, javascript, plugins, etc etc etc maar is dit wel een juiste manier? en verder zou ik graag willen weten of de indexes etc goed zijn :) iemand die mij hier info over kan geven? :D
    MuRKiemaandag 28 januari 2008 @ 19:56
    quote:
    Op maandag 28 januari 2008 19:47 schreef super-muffin het volgende:
    Dit is niet heel erg OOP. Meer losse functies verzamelen in een klasse. Je hebt nu de verwerking en presentatie in de zelfde klasse zitten wat niet hoort imho.
    Dat gevoel had ik al.. Ik was in ieder geval blij dat het werkte
    Heb inmiddels de pagina navigatie in een aparte class gestopt nu en mijn code wat opgeschoont enzo..
    Ben al blij dat ik zover ben gekomen, heb al redelijk wat dingen bijgeleerd..
    Nu kijken of ik het nog een stap verder kan doen..
    Is in dit geval niet heel erg noodzakelijk aangezien het een website wordt voor voor, tijdens en na de 50ste verjaardag van mijn schoonmoeder.. daarna heb ik de site niet meer nodig.. zolang hij het die tijd maar ff uithoudt..

    Maar hoe dan ook kan ik met het maken van deze site mooi oefenen..

    [ Bericht 0% gewijzigd door MuRKie op 28-01-2008 20:06:05 ]
    schwa78maandag 28 januari 2008 @ 20:23
    Ik zou graag willen leren hoe je flash widgets kunt maken die gebruik maken van informatie die in een MySQL database opgeslagen zijn en waarvan de invoer dmv PHP verwerkt wordt.

    Kan iemand mij een goed flash-boek aanbevelen dat zich vooral hierop richt?

    [ Bericht 0% gewijzigd door schwa78 op 28-01-2008 20:29:31 ]
    Lightmaandag 28 januari 2008 @ 20:29
    quote:
    Op maandag 28 januari 2008 19:52 schreef Chandler het volgende:
    Ik heb een vraag over mijn database structuur van mijn statistieken script

    -- PHP Versie: 4.2.3
    Da's wel een beetje een achterhaalde versie...
    Likkende_Lassiemaandag 28 januari 2008 @ 20:30
    Ik heb een tabel met favorieten van gebruikers
    Een favoriet product wordt herkend door middel van de productID.
    De query ziet er dus als volgt uit :

    1 "SELECT productID AS id FROM shop_favorites WHERE UID = '".$_SESSION['UID']."'";  


    in de producten tabel staan dus ook de namen van de producten, maar deze wil ik ASCsorteren.
    De tabelnaam is shop_products ...

    Hoe doe ik dat met een JOIN ?
    Arjan321maandag 28 januari 2008 @ 20:52
    1
    2
    3
    4
    5
    SELECT shop_favorites.productID as `id`, shop_products.name
    FROM `shop_favorites`
    INNER JOIN `shop_products` ON `id` = shop_products.productID
    WHERE shop_favorites.UID = '.$_SESSION['uid'].'
    ORDER BY shop_products.name


    aangenomen dat je naam kolom `name` heet en productID in beide tabellen het zelfde heten..

    [ Bericht 1% gewijzigd door Arjan321 op 28-01-2008 21:02:17 ]
    Chandlermaandag 28 januari 2008 @ 20:57
    1 tip voordat je gaat werken met meerdere tabellen!

    - Geef alle namen in een Select indien je met meerdere tabellen gaat werken ook de naam van de tabel (over noemer daar van) mee oftewel shop_favorites.productID

    een voorbeeld

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    SELECT shop_favorites.productID,
     shop_products.id,
     shop_products.name,
     shop_products.group,
     shop_products.title,
     shop_products.short_desc,
     shop_products.etcetcetc,
    FROM shop_favorites
    LEFT JOIN shop_products ON shop_products.id = shop_favorites.productID
    WHERE shop_favorites.userID = '" . $_SESSION['UID'] . "
    GROUP BY shop_favorites.userID
    ORDER BY shop_favorites.date_created ASC


    Het is een voorbeeld waarin ik een tabel JOIN naarna groepeer je bij een ID veld in een van de 2 tabellen en sorteer je de uitkomst middels ook een van de 2 tabellen en daar een veld van

    naja ik hoop dat je het snapt ik iig wel maar goed...

    succes!.

    [ Bericht 14% gewijzigd door Chandler op 28-01-2008 20:58:45 (-edit- extra ASC en slimies aanzetten! =P-) ]
    JortKmaandag 28 januari 2008 @ 22:03
    quote:
    Op maandag 28 januari 2008 20:57 schreef Chandler het volgende:
    1 tip voordat je gaat werken met meerdere tabellen!

    - Geef alle namen in een Select indien je met meerdere tabellen gaat werken ook de naam van de tabel (over noemer daar van) mee oftewel shop_favorites.productID ;)

    een voorbeeld
    [ code verwijderd ]

    Het is een voorbeeld waarin ik een tabel JOIN naarna groepeer je bij een ID veld in een van de 2 tabellen en sorteer je de uitkomst middels ook een van de 2 tabellen en daar een veld van :)

    naja ik hoop dat je het snapt ;) ik iig wel :P maar goed...

    succes!.
    Waarom de complete tabel naam?

    Aliassen is toch een veel beter idee?

    Like:

    1
    2
    3
    <?php
    SELECT a
    .org, b.contact FROM org a, contact b
    ?>


    ?
    Likkende_Lassiemaandag 28 januari 2008 @ 22:27
    quote:
    Op maandag 28 januari 2008 20:57 schreef Chandler het volgende:
    1 tip voordat je gaat werken met meerdere tabellen!

    - Geef alle namen in een Select indien je met meerdere tabellen gaat werken ook de naam van de tabel (over noemer daar van) mee oftewel shop_favorites.productID ;)

    een voorbeeld
    [ code verwijderd ]

    Het is een voorbeeld waarin ik een tabel JOIN naarna groepeer je bij een ID veld in een van de 2 tabellen en sorteer je de uitkomst middels ook een van de 2 tabellen en daar een veld van :)

    naja ik hoop dat je het snapt ;) ik iig wel :P maar goed...

    succes!.
    Bedankt! Het is gelukt, het is geworden:

    1
    2
    3
    SELECT shop_items.id FROM shop_favorites 
    LEFT JOIN shop_items ON shop_items.id = shop_favorites.productID 
    WHERE shop_favorites.UID = '" . $_SESSION['UID'] . "' ORDER BY shop_items.name ASC
    JaapjeKmaandag 28 januari 2008 @ 22:57
    tvp
    Chandlerdinsdag 29 januari 2008 @ 09:36
    quote:
    Op maandag 28 januari 2008 22:03 schreef JortK het volgende:

    [..]

    Waarom de complete tabel naam?

    Aliassen is toch een veel beter idee?

    Like:
    [ code verwijderd ]

    ?
    Beter of handiger of duidelijer? tis maar net wat je zelf het makkelijkste vind
    Xcaliburdinsdag 29 januari 2008 @ 10:40
    quote:
    Op maandag 28 januari 2008 22:03 schreef JortK het volgende:
    Waarom de complete tabel naam?
    Aliassen is toch een veel beter idee?
    Dit vind ik altijd hoogst onduidelijk....
    Dreammasterdinsdag 29 januari 2008 @ 11:21
    quote:
    Op maandag 28 januari 2008 22:03 schreef JortK het volgende:

    [..]

    Waarom de complete tabel naam?

    Aliassen is toch een veel beter idee?

    Like:
    [ code verwijderd ]

    ?
    Door aliassen te maken worden er temporary tables aangemaakt, en wordt het een stuk trager van.
    Chandlerdinsdag 29 januari 2008 @ 11:53
    quote:
    Op dinsdag 29 januari 2008 11:21 schreef Dreammaster het volgende:

    [..]

    Door aliassen te maken worden er temporary tables aangemaakt, en wordt het een stuk trager van.
    Dat wist ik ook niet weer wat geleerd, vind zo ie zo dat aliassen vies zijn, het is imho duidelijker om gewoon de gehele tabelnaam te gebruiken, weet je gelijk wat waar voor dient!
    Dreammasterdinsdag 29 januari 2008 @ 12:13
    quote:
    Op dinsdag 29 januari 2008 11:53 schreef Chandler het volgende:

    [..]

    Dat wist ik ook niet weer wat geleerd, vind zo ie zo dat aliassen vies zijn, het is imho duidelijker om gewoon de gehele tabelnaam te gebruiken, weet je gelijk wat waar voor dient!
    Ja aliassen zijn ook smerig. Ik gebruik het alleen als het niet anders kan.
    Geqxondinsdag 29 januari 2008 @ 12:38
    Mwa.

    "SELECT c.Name AS CompanyName, e.Name AS EmployeeName FROM company AS c LEFT JOIN employee AS e WHERE e.CompanyID = c.ID"

    Is toch wel duidelijk?
    Dreammasterdinsdag 29 januari 2008 @ 12:48
    quote:
    Op dinsdag 29 januari 2008 12:38 schreef Geqxon het volgende:
    Mwa.

    "SELECT c.Name AS CompanyName, e.Name AS EmployeeName FROM company AS c LEFT JOIN employee AS e WHERE e.CompanyID = c.ID"

    Is toch wel duidelijk?
    Voor jou misschien maar ik vind het erg onoverzichtelijk (en tevens trager)
    JortKdinsdag 29 januari 2008 @ 12:51
    Hoeveel trager dan?

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

    Wat ik wel merk in performance is of je je joins left in de WHERE of in de FROM