FOK!forum / Digital Corner / [PHP/(My)SQL] voor dummies - Deel 37
slakkiezaterdag 20 januari 2007 @ 20:59

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

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
  • JeRazaterdag 20 januari 2007 @ 21:05
    Tijd Voor PHP!
    qu63zaterdag 20 januari 2007 @ 21:12
    quote:
    Op zaterdag 20 januari 2007 21:05 schreef JeRa het volgende:
    Tijd Voor PHP!
    ja!
    Lightzaterdag 20 januari 2007 @ 21:17
    quote:
    Op zaterdag 20 januari 2007 20:49 schreef ChOas het volgende:

    [..]

    En eenvoudiger om een SQL-injection uit te voeren.
    Niet meer of minder eenvoudig dan bij een update.
    fatezaterdag 20 januari 2007 @ 21:22
    quote:
    Op zaterdag 20 januari 2007 20:46 schreef JeRa het volgende:

    [..]

    Wat is er precies makkelijker aan en over welke overeenkomstige waarden heb je het?
    Als je bv. kolom1 = 'abc', kolom2 = 'xyz' hebt, zie je in één oogopslag in welke kolom abc opgeslaan wordt .
    super-muffinzaterdag 20 januari 2007 @ 21:28
    Is een password encrypten met md5 en dan opslaan in een sessie veilig genoeg of niet?

    ongeveer op deze manier?
    1
    2
    3
    <?php
    $session
    ['pw'] = md5($pass);
    ?>
    Swetseneggerzaterdag 20 januari 2007 @ 21:31
    deel 37 alweer.
    JeRazaterdag 20 januari 2007 @ 21:35
    quote:
    Op zaterdag 20 januari 2007 21:28 schreef super-muffin het volgende:
    Is een password encrypten met md5 en dan opslaan in een sessie veilig genoeg of niet?

    ongeveer op deze manier?
    [ code verwijderd ]
    Waarom zou je een wachtwoord in een serverside sessie opslaan?
    Lightzaterdag 20 januari 2007 @ 21:37
    quote:
    Op zaterdag 20 januari 2007 21:28 schreef super-muffin het volgende:
    Is een password encrypten met md5 en dan opslaan in een sessie veilig genoeg of niet?

    ongeveer op deze manier?
    [ code verwijderd ]
    Waarom zou je een password in een sessie willen opslaan? (En waarom gebruik je dan niet $_SESSION ?)

    Password controle doe je bij het inloggen, en daarna kun je in de sessie aangeven of iemand al dan niet is ingelogd.
    JeRazaterdag 20 januari 2007 @ 21:43
    quote:
    Op zaterdag 20 januari 2007 21:22 schreef fate het volgende:

    [..]

    Als je bv. kolom1 = 'abc', kolom2 = 'xyz' hebt, zie je in één oogopslag in welke kolom abc opgeslaan wordt :).
    Tja, dat is een keuze. Aangezien jouw methode niet in een SQL standaard voorkomt pak ik het liever zo aan:
    1
    2
    3
    INSERT INTO tabel (kolom1, kolom2, kolom3)
                VALUES (1, 'henk', TRUE),
                VALUES (2, 'piet', FALSE);


    En dan zie ik ook in één oogopslag bij welke kolommen de waardes horen ;)
    Nevermindzaterdag 20 januari 2007 @ 21:48
    quote:
    Op zaterdag 20 januari 2007 21:31 schreef Swetsenegger het volgende:
    deel 37 alweer.
    Gaat rap
    super-muffinzaterdag 20 januari 2007 @ 21:51
    quote:
    Op zaterdag 20 januari 2007 21:37 schreef Light het volgende:

    [..]

    Waarom zou je een password in een sessie willen opslaan? (En waarom gebruik je dan niet $_SESSION ?)

    Password controle doe je bij het inloggen, en daarna kun je in de sessie aangeven of iemand al dan niet is ingelogd.
    (ik deed geen $_SESSION omdat ik het ff snel typte, in mijn script staat het wel goed )

    Dus met het succesvol inloggen maak ik een sessie ($_SESSION[loggedin] = '1') en controleer op elke pagina of de sessie loggedin de waarde 1 heeft?
    super-muffinzaterdag 20 januari 2007 @ 21:52
    quote:
    Op zaterdag 20 januari 2007 21:35 schreef JeRa het volgende:

    [..]

    Waarom zou je een wachtwoord in een serverside sessie opslaan?
    Omdat ik een beginner ben
    JeRazaterdag 20 januari 2007 @ 21:58
    quote:
    Op zaterdag 20 januari 2007 21:51 schreef super-muffin het volgende:

    [..]

    Dus met het succesvol inloggen maak ik een sessie ($_SESSION[loggedin] = '1') en controleer op elke pagina of de sessie loggedin de waarde 1 heeft?
    Dat klopt. Bij de serverside sessions kunnen je bezoekers niet komen, bij bv. hun eigen cookies wel.
    quote:
    Op zaterdag 20 januari 2007 21:52 schreef super-muffin het volgende:
    Omdat ik een beginner ben
    Geen excuus!
    CraZaayzaterdag 20 januari 2007 @ 22:48
    quote:
    Op zaterdag 20 januari 2007 20:49 schreef ChOas het volgende:

    [..]

    En eenvoudiger om een SQL-injection uit te voeren.
    Hoezo dat dan?
    fatezondag 21 januari 2007 @ 13:02
    quote:
    Op zaterdag 20 januari 2007 21:43 schreef JeRa het volgende:

    [..]

    Tja, dat is een keuze. Aangezien jouw methode niet in een SQL standaard voorkomt pak ik het liever zo aan:
    [ code verwijderd ]

    En dan zie ik ook in één oogopslag bij welke kolommen de waardes horen
    Misschien is dat ook wel overzichtelijk maar toen ik eens voor een loginsysteem zo'n 35 kolommen had, was het toch gemakkelijker op mijn manier . Maar ieder zijn mening natuurlijk .
    Pelgrimzondag 21 januari 2007 @ 14:37
    quote:
    Op zaterdag 20 januari 2007 14:58 schreef JeRa het volgende:
    @Pelgrim

    Waarom escape je de forwardslash? Als je de U-modifier toevoegt hoef je niet overal de greediness te negaten (dan kun je dus .*? schrijven als .*). Verder is het wel handig om te weten waar je op matcht en wat er zou moeten gebeuren, en wat er eventueel al gebeurt.
    Die U-modifier werkt, dank je wel. Ik was er niet opgekomen, daar mijn kennis over regular expressions ook niet ver reikt.
    JeRazondag 21 januari 2007 @ 16:17
    quote:
    Op zondag 21 januari 2007 13:02 schreef fate het volgende:

    [..]

    Misschien is dat ook wel overzichtelijk maar toen ik eens voor een loginsysteem zo'n 35 kolommen had, was het toch gemakkelijker op mijn manier . Maar ieder zijn mening natuurlijk .
    Ik zou meteen al aan m'n hoofd krabben als ik een query gebruikte waar 35 kolommen uit kwamen rollen
    Swetseneggerzondag 21 januari 2007 @ 17:37
    quote:
    Op zondag 21 januari 2007 16:17 schreef JeRa het volgende:

    [..]

    Ik zou meteen al aan m'n hoofd krabben als ik een query gebruikte waar 35 kolommen uit kwamen rollen
    Ja das wel een boel veel

    Nog mensen opzoek naar een laptop trouwens?
    Lightzondag 21 januari 2007 @ 17:57
    quote:
    Op zondag 21 januari 2007 17:37 schreef Swetsenegger het volgende:

    [..]

    Ja das wel een boel veel
    Het is een manier voor een rechtensysteem
    qu63zondag 21 januari 2007 @ 18:01
    quote:
    Op zondag 21 januari 2007 17:37 schreef Swetsenegger het volgende:
    Nog mensen opzoek naar een laptop trouwens?
    ligt er aan wat voor een
    JeRazondag 21 januari 2007 @ 18:07
    quote:
    Op zondag 21 januari 2007 17:57 schreef Light het volgende:

    [..]

    Het is een manier voor een rechtensysteem
    Dan zit je dus vast aan het aantal verschillende typen rechten dat je in je rechtensysteem hebt, dat lijkt me net zo onoverzichtelijk als een INSERT-query schrijven met 35 kolommen die je apart moet gaan benoemen

    En waarom ik nou sinds een tijdje zo van PostgreSQL hou: ik zou voor het bovenstaande eerst een CREATE AGGREGATE doen om een aggregaat functie te schrijven waarmee ik de namen van de beschikbare rechten voor een account (in een genormaliseerde database natuurlijk) samen zou voegen in een comma-seperated string, en die in één kolom binnenhalen na een GROUP BY. In PHP vervolgens een explode() et voila, netjes alle beschikbare rechten zonder elke keer na een rechtenaanpassing je queries en je datamodel aan te passen.
    profielnaammaandag 22 januari 2007 @ 08:56
    Hallo ik ben op zoek naar een parser welke rss naar html (inline) omzet, ik heb genoeg parsers gevonden waarmee je mbv " script.php?url=http://www.feed.com/rss.xml " de parsing doet, maar het nadeel is dat die niet inline zijn en je dus zit met een lange url.. en niet op je echte pagina staan.

    Ik heb nog geen echte oplossing hiervoor kunnen vinden.
    Swetseneggermaandag 22 januari 2007 @ 08:59
    Offtopic, maar hier zitten de web experts. ASP.NET met VB.NET of C#.NET? Welke kan ik het beste leren?
    profielnaammaandag 22 januari 2007 @ 09:07
    quote:
    Op maandag 22 januari 2007 08:59 schreef Swetsenegger het volgende:
    Offtopic, maar hier zitten de web experts. ASP.NET met VB.NET of C#.NET? Welke kan ik het beste leren?
    ik heb C# geleerd maar geen VB.
    Swetseneggermaandag 22 januari 2007 @ 09:10
    quote:
    Op maandag 22 januari 2007 09:07 schreef profielnaam het volgende:

    [..]

    ik heb C# geleerd maar geen VB.
    Kan je met C# meer dan met VB? Welke wordt het meest gevraagd of maakt dat niet uit?
    Darkomenmaandag 22 januari 2007 @ 09:16
    quote:
    Op zaterdag 20 januari 2007 21:05 schreef JeRa het volgende:
    Tijd Voor PHP!
    profielnaammaandag 22 januari 2007 @ 10:19
    quote:
    Op maandag 22 januari 2007 09:10 schreef Swetsenegger het volgende:

    [..]

    Kan je met C# meer dan met VB? Welke wordt het meest gevraagd of maakt dat niet uit?
    maakt volgens mij niet heel veel uit, maar C# lijkt toch wel de standaard voor .NET development.
    GVRuudmaandag 22 januari 2007 @ 10:41
    Vroegah kon je met C(destijds nog gewoon ++) veel meer dan met visual basic. Sinds de komst van het .NET platform zijn de functionaliteiten voor iedere taal hetzelfde, en liggen de mogelijkheden qua programmeertaal IMO ook gelijk.
    Swetseneggermaandag 22 januari 2007 @ 10:46
    quote:
    Op maandag 22 januari 2007 10:41 schreef GVRuud het volgende:
    Vroegah kon je met C(destijds nog gewoon ++) veel meer dan met visual basic. Sinds de komst van het .NET platform zijn de functionaliteiten voor iedere taal hetzelfde, en liggen de mogelijkheden qua programmeertaal IMO ook gelijk.
    Ik open er even een apart topic over
    hornagemaandag 22 januari 2007 @ 11:32
    jah, iemand nog dringende, moeilijke, hersenbrekende vragen/problemen met php?
    Ik sta op scherp, kom maar op!
    profielnaammaandag 22 januari 2007 @ 14:18
    quote:
    Op maandag 22 januari 2007 11:32 schreef hornage het volgende:
    jah, iemand nog dringende, moeilijke, hersenbrekende vragen/problemen met php?
    Ik sta op scherp, kom maar op!
    ..

    Hallo ik ben op zoek naar een parser welke rss naar html (inline) omzet, ik heb genoeg parsers gevonden waarmee je mbv " script.php?url=http://www.feed.com/rss.xml " de parsing doet, maar het nadeel is dat die niet inline zijn en je dus zit met een lange url.. en niet op je echte pagina staan.

    Ik heb nog geen echte oplossing hiervoor kunnen vinden.
    CraZaaymaandag 22 januari 2007 @ 14:20
    echo( file_get_contents('http://www.example.com/script.php?url=http://www.feed.com/rss.xml') ); ?
    Chandlermaandag 22 januari 2007 @ 16:17
    tvp en tevens een kleine vraag.

    Ik wil strings uit een tabel/veld lezen maar wil eerst de langste strings er uit halen? hoe doe ik dat? sorteren op lengte van de varchar?
    Xevormaandag 22 januari 2007 @ 17:08
    Ik heb een pagina met een dropdown box, waarin informatie zit (voor het gemaakt info-a en info-b).

    Bij het selecteren van info-a blijf je in dezelfde pagina maar komt er achter de pagina ?informatie te staan.

    Met behulp van deze code:
    1
    2
    3
    4
    5
    <?php
    if(isset($_GET['informatie'])){
    $informatienaam = $_POST['selectinfo']; //selectinfo is de naam van de dropdown box
    }
    ?>


    Maar het probleem komt nu. Ik wil verder gaan met de url in een volgende isset. Wanneer de pagina pagina.php?informatie geopend wordt komen er namelijk nog meer keuzes, voor het gemak keuze 1 en keuze 2.

    Keuze 1 leidt naar pagina.php?informatie&k1
    Keuze 2 leidt naar pagina.php?informatie&k2

    Het probleem komt nu:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <?php
    if(isset($_GET['informatie'])){
    $informatienaam = $_POST['selectinfo']; //selectinfo is de naam van de dropdown box

    if ((isset ($_GET['informatie'])) and (isset ($_GET['k1']))){
    echo
    "$informatienaam";
    echo
    "keuze 1 gekozen"; }

    if ((isset (
    $_GET['informatie'])) and (isset ($_GET['k2']))){
    echo
    "$informatienaam";
    echo
    "keuze 2 gekozen"; }

    }
    //sluiting if(isset($_GET['informatie']))
    ?>


    Het probleem is dat $informatienaam 'vergeten' is bij keuze 1 en keuze 2 en er niks komt bij echo "$informatienaam"; Dus ik vroeg mij af waarom dit zo is en hoe het op te lossen is?
    hornagemaandag 22 januari 2007 @ 17:13
    quote:
    Op maandag 22 januari 2007 16:17 schreef Chandler het volgende:
    tvp en tevens een kleine vraag.

    Ik wil strings uit een tabel/veld lezen maar wil eerst de langste strings er uit halen? hoe doe ik dat? sorteren op lengte van de varchar?
    dat klinkt als een hele slimme methode, probeer het eens
    hornagemaandag 22 januari 2007 @ 17:16
    quote:
    Op maandag 22 januari 2007 17:08 schreef Xevor het volgende:

    Ik heb een pagina met een dropdown box, waarin informatie zit (voor het gemaakt info-a en info-b).

    Bij het selecteren van info-a blijf je in dezelfde pagina maar komt er achter de pagina ?informatie te staan.

    Met behulp van deze code:
    [ code verwijderd ]

    Maar het probleem komt nu. Ik wil verder gaan met de url in een volgende isset. Wanneer de pagina pagina.php?informatie geopend wordt komen er namelijk nog meer keuzes, voor het gemak keuze 1 en keuze 2.

    Keuze 1 leidt naar pagina.php?informatie&k1
    Keuze 2 leidt naar pagina.php?informatie&k2

    Het probleem komt nu:
    [ code verwijderd ]

    Het probleem is dat $informatienaam 'vergeten' is bij keuze 1 en keuze 2 en er niks komt bij echo "$informatienaam"; Dus ik vroeg mij af waarom dit zo is en hoe het op te lossen is?
    Dit kan je oplossen door deze waardes in je form te zetten als een input type=hidden. Dan wordt het gewoon doorgestuurd
    Xevormaandag 22 januari 2007 @ 17:31
    Dat helpt dus ook niet Overigens wel handig dat input type=hidden want dan gaan de submit knop weg nadat er al op geklikt is Helaas is mijn probleem nog niet verholpen
    Swetseneggermaandag 22 januari 2007 @ 19:50
    quote:
    Op maandag 22 januari 2007 17:31 schreef Xevor het volgende:
    Dat helpt dus ook niet Overigens wel handig dat input type=hidden want dan gaan de submit knop weg nadat er al op geklikt is Helaas is mijn probleem nog niet verholpen
    submit knop weg?
    post je volledige code eens.
    Chandlermaandag 22 januari 2007 @ 22:32
    quote:
    Op maandag 22 januari 2007 17:13 schreef hornage het volgende:

    [..]

    dat klinkt als een hele slimme methode, probeer het eens
    Correct, maar hoe sorteer ik op de lengte?? dat is dus de vraag
    boeda-76dinsdag 23 januari 2007 @ 07:16
    Hallo allemaal. Ik heb zins kort een Macbook. Draaide daar eerst Opera op, werkte helemaal ok. Heb sinds kort ook Firefox geinstalleerd, en nu kan ik bepaalde bestanden, eindigend op .php, niet meer met voorvertoning openen. Hij opent deze nu automatisch met het ColorSync-hulpprogramma, wat hier helemaal niet ideaal voor is. Heb natuurlijk al geprobeerd mbv toon info het programma te veranderen waar hij mee opent, maar elke keer komt hij toch weer met Colorsync. Iemand ideeen? Heb nu geen idee meer hoe dit op te lossen.
    Mac OX 10.4, en Firefox 2.0

    Bedankt
    Swetseneggerdinsdag 23 januari 2007 @ 07:56
    quote:
    Op dinsdag 23 januari 2007 07:16 schreef boeda-76 het volgende:
    Hallo allemaal. Ik heb zins kort een Macbook. Draaide daar eerst Opera op, werkte helemaal ok. Heb sinds kort ook Firefox geinstalleerd, en nu kan ik bepaalde bestanden, eindigend op .php, niet meer met voorvertoning openen. Hij opent deze nu automatisch met het ColorSync-hulpprogramma, wat hier helemaal niet ideaal voor is. Heb natuurlijk al geprobeerd mbv toon info het programma te veranderen waar hij mee opent, maar elke keer komt hij toch weer met Colorsync. Iemand ideeen? Heb nu geen idee meer hoe dit op te lossen.
    Mac OX 10.4, en Firefox 2.0

    Bedankt
    heb je wel php draaien op je laptop?
    Swetseneggerdinsdag 23 januari 2007 @ 08:04
    test
    CraZaaydinsdag 23 januari 2007 @ 08:58
    quote:
    Op dinsdag 23 januari 2007 07:56 schreef Swetsenegger het volgende:

    [..]

    heb je wel php draaien op je laptop?
    Volgens mij wil 'ie ze niet draaien, maar alleen openen met een ander programma (om te editen).
    Lightdinsdag 23 januari 2007 @ 09:00
    quote:
    Op dinsdag 23 januari 2007 08:58 schreef CraZaay het volgende:

    [..]

    Volgens mij wil 'ie ze niet draaien, maar alleen openen met een ander programma (om te editen).
    Nou ken ik Opera niet echt als een PHP editor maar meer als een browser. Er zal vast nog een programma zijn met de naam Opera, maar dan 1 die ik niet ken.
    CraZaaydinsdag 23 januari 2007 @ 09:12
    quote:
    Op dinsdag 23 januari 2007 09:00 schreef Light het volgende:

    [..]

    Nou ken ik Opera niet echt als een PHP editor maar meer als een browser. Er zal vast nog een programma zijn met de naam Opera, maar dan 1 die ik niet ken.
    Goed punt
    Swetseneggerdinsdag 23 januari 2007 @ 09:17
    quote:
    Op dinsdag 23 januari 2007 09:00 schreef Light het volgende:

    [..]

    Nou ken ik Opera niet echt als een PHP editor maar meer als een browser. Er zal vast nog een programma zijn met de naam Opera, maar dan 1 die ik niet ken.
    Dat dus
    boeda-76dinsdag 23 januari 2007 @ 11:23
    Hoi,

    wil inderdaad alleen maar bestanden die eindigen op .php kunnen openen en opslaan op mijn laptop. Ik heb nu Opera (webbrowser) er weer op gezet, en kan de bestanden wel openen, maar niet opslaan?
    hornagedinsdag 23 januari 2007 @ 11:24
    quote:
    Op maandag 22 januari 2007 22:32 schreef Chandler het volgende:

    [..]

    Correct, maar hoe sorteer ik op de lengte?? :D dat is dus de vraag :@
    bij deze een mooie functie die dat voor je regelt:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    <?php
    function sortByLength($array) {
      
    $sortedarray = array();
      
    $index = 0;
      while (
    $array != array()) {
        
    $max = "";
        
    $maxkey = 0;
        foreach (
    $array as $key => $value) {
          if (
    strlen($value) > strlen($max)) {
            
    $max = $value;
            
    $maxkey = $key;
          }
        }
        
    $sortedarray[$index] = $max;
        
    $index++;
        unset(
    $array[$maxkey]);
      }
      return
    $sortedarray;
    }
    ?>
    Swetseneggerdinsdag 23 januari 2007 @ 11:40
    quote:
    Op dinsdag 23 januari 2007 11:23 schreef boeda-76 het volgende:
    Hoi,

    wil inderdaad alleen maar bestanden die eindigen op .php kunnen openen en opslaan op mijn laptop. Ik heb nu Opera (webbrowser) er weer op gezet, en kan de bestanden wel openen, maar niet opslaan?

    Wat wil je nu? php besatnden openen en zien zoals je ze ook ziet als ze online staan? Of wil je php bestanden openen en bewerken?
    boeda-76dinsdag 23 januari 2007 @ 12:35
    Hoi,

    wil inderdaad niets programeren ofzo, maar op een site van mijn werk staan bestanden die vroeger gewoon .pdf waren. Nooit problemen mee. Maar nu zijn diezelfde bestanden verandert in .php bestanden. En die kan ik niet openen met firefox. Wel met opera (de webbrowser), maar dan kan ik ze weer niet opslaan. Het enige wat ik wil is deze bestanden openen en opslaan. Verder niets. Iemand?
    hornagedinsdag 23 januari 2007 @ 13:01
    als het pdf bestanden waren maar nu php bestanden heten lijkt het me dat je ff de extensie kan veranderen in .pdf en dan doen ze het weer toch
    Swetseneggerdinsdag 23 januari 2007 @ 13:05
    Die php zal wel een een pdf van het filesysteem of als BLOB uit de database trekt en vervolgens presenteren. Lijkt me eerder dat de site van je werkgever een beetje stuk is. Misschien van php 4 naar 5 gemigreerd ofzo.
    fokME2woensdag 24 januari 2007 @ 00:56
    Jullie gaan wel hard zeg

    Tijd voor PHP
    schwa78woensdag 24 januari 2007 @ 10:29
    Ik heb een probleempje met een formulier op mijn site.

    Na verzenden worden er een aantal standaard validaties gedaan (server-side). Wanneer er een fout gemaakt is wordt de bezoeker terug gestuurt naar het formulier. Daarbij worden ook de waarden van zijn input meegestuurd zodat hij niet alles opnieuw hoeft in te vullen.

    Bij een textarea gaat het dan helaas mis. Alle linebreaks worden omgezet in in nr codes. Hoe zorg ik ervoor dat de invoer na het verzenden via een url weer hetzelfde wordt als voor het verzenden?
    CraZaaywoensdag 24 januari 2007 @ 11:26
    "nr codes" ?
    schwa78woensdag 24 januari 2007 @ 12:04
    quote:
    Op woensdag 24 januari 2007 11:26 schreef CraZaay het volgende:
    "nr codes" ?
    de slashes zijn verwijderd er komt dus slash-n en slash-r voor in de plaats...
    THeeFwoensdag 24 januari 2007 @ 12:19
    quote:
    Op woensdag 24 januari 2007 12:04 schreef schwa78 het volgende:

    [..]

    de slashes zijn verwijderd er komt dus slash-n en slash-r voor in de plaats...
    strip_tags() voor weergeven en daarna nl2br() bij posten
    CraZaaywoensdag 24 januari 2007 @ 14:28
    quote:
    Op woensdag 24 januari 2007 12:19 schreef THeeF het volgende:

    [..]

    strip_tags() voor weergeven en daarna nl2br() bij posten
    Dat gaat dus niet werken. De newlines zijn er al uit (vervangen door de string 'nr'), waardoor nl2br() niets meer doet. Daarnaast stript strip_tags() de html, en dus niet de string 'nr' afaik

    Ik vraag me af waarom die newlines uberhaupt worden omgezet in de string 'nr'. De inhoud van de form input wordt helemaal niet geparsed?

    edit: Waarom slikt Fok! geen backslashes Waar 'nr' staat bedoelde ik dus 'backslash n backslash r'.
    fatewoensdag 24 januari 2007 @ 15:50
    quote:
    Op woensdag 24 januari 2007 14:28 schreef CraZaay het volgende:

    edit: Waarom slikt Fok! geen backslashes Waar 'nr' staat bedoelde ik dus 'backslash n backslash r'.
    Dat is één of andere stomme bug in Replique, ik heb me er ook al meermaals aan geërgerd en zeker als je een script post en al je backslashes worden zomaar verwijderd .
    ralfiewoensdag 24 januari 2007 @ 16:43
    quote:
    Op dinsdag 23 januari 2007 11:24 schreef hornage het volgende:

    [..]

    bij deze een mooie functie die dat voor je regelt:
    [ code verwijderd ]
    dat kan veel simpeler. Je weet dat php een aantal mooie array sorteer functies heeft met callback optie?

    1
    2
    3
    4
    5
    6
    7
    <?php
    uasort
    ($arr,"comp");

    function
    comp($a,$b) {
            return
    strlen($a)>strlen($b)?-1:1;
    }
    ?>
    JeRawoensdag 24 januari 2007 @ 17:06
    Ik weet even niet hoe ik een query moet schrijven voor het volgende

    Ik heb een tabel X die een 1:n relatie heeft met tabel Y en een 1:n relatie met tabel Z. Dus één rij in tabel X kan 0...n rijen in tabel Y en Z hebben, onafhankelijk van elkaar. Nu wil ik in één query de waarden van tabel X, Y en Z ophalen, aan elkaar gejoined. Normaal gesproken zou je zoiets doen:

    1
    2
    3
    4
    SELECT ...
    FROM tabelX
    JOIN tabelY ON join_voorwaarde_y
    JOIN tabelZ ON join_voorwaarde_z


    Nadeel hiervan is dat als er twee rijen voor een rij in tabel X in tabel Y staan, en drie rijen voor een rij in tabel X in tabel Z, ik 2x3 = 6 rijen terugkrijg (met dubbele waardes). Nu is een GROUP BY wel mogelijk, maar dit wordt lastiger als het strings betreft.

    Alternatieve oplossing is het in meerdere queries doen, dus per rij in tabel X een aparte query voor tabel Y en Z, maar dat vind ik absoluut geen mooie oplossing. Hoe zouden jullie dit doen?
    Chandlerwoensdag 24 januari 2007 @ 17:09
    quote:
    Op dinsdag 23 januari 2007 11:24 schreef hornage het volgende:

    bij deze een mooie functie die dat voor je regelt:
    Tnx, maar is er in MySQL geen functie die dat automatisch kan doen?
    JeRawoensdag 24 januari 2007 @ 17:11
    quote:
    Op woensdag 24 januari 2007 17:09 schreef Chandler het volgende:

    [..]

    Tnx, maar is er in MySQL geen functie die dat automatisch kan doen?
    In de documentatie van MySQL staan een hoop stringfuncties waar je met gemak op kunt sorteren. Jij zoekt waarschijnlijk LENGTH(kolom) let wel op dat dit soort sorteringen niet al te snel zijn omdat ze niet te indexeren zijn. Eventueel moet je dan de lengte van de string opslaan in een apart veld en daar een index op leggen. (UPDATE tabel SET lengte = LENGTH(stringkolom))
    ralfiewoensdag 24 januari 2007 @ 17:29
    quote:
    Op woensdag 24 januari 2007 17:11 schreef JeRa het volgende:

    [..]

    In de documentatie van MySQL staan een hoop stringfuncties waar je met gemak op kunt sorteren. Jij zoekt waarschijnlijk LENGTH(kolom) let wel op dat dit soort sorteringen niet al te snel zijn omdat ze niet te indexeren zijn.
    Kun je daar een voorbeeld van geven? Heb zelf wat geexperimenteerd, maar schijnbaar wil mysql niet direct sorteren op length(kolom). Ik zou niet weten hoe deze query moet zonder een extra kolom...
    wobbelwoensdag 24 januari 2007 @ 18:17
    Wat is de beste manier om achter de bestandstype te komen van een geupload bestand? $_FILES['bestand']['type'] is niet veilig genoeg lees ik op php.net, maar wat is dan de beste manier?

    Op extensie controleren én op mime-type? Ik ga er vanuit dat zoiets de veiligste manier is.

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <?php
    if ( $mimetype bij $extensie hoort )
    {

        
    grant_access ( );

    }
    else
    {

        
    sterf( );

    }
    ?>
    JeRawoensdag 24 januari 2007 @ 18:50
    quote:
    Op woensdag 24 januari 2007 17:29 schreef ralfie het volgende:

    [..]

    Kun je daar een voorbeeld van geven? Heb zelf wat geexperimenteerd, maar schijnbaar wil mysql niet direct sorteren op length(kolom). Ik zou niet weten hoe deze query moet zonder een extra kolom...
    Nou, je gebruikt gewoon die functie in combinatie met een VARCHAR of TEXT kolom eventueel via een apart veld:

    1SELECT LENGTH(tekst) AS lengte, tekst FROM tabel ORDER BY lengte DESC LIMIT 10;
    JeRawoensdag 24 januari 2007 @ 18:51
    quote:
    Op woensdag 24 januari 2007 18:17 schreef wobbel het volgende:
    Wat is de beste manier om achter de bestandstype te komen van een geupload bestand? $_FILES['bestand']['type'] is niet veilig genoeg lees ik op php.net, maar wat is dan de beste manier?

    Op extensie controleren én op mime-type? Ik ga er vanuit dat zoiets de veiligste manier is.
    [ code verwijderd ]
    Ik zou idd op mimetype, bestandsextensie en eventueel bestandsgrootte filtreren. Daar heb je ook handige functies voor
    Chandlerwoensdag 24 januari 2007 @ 18:52
    Vraag m.b.t. het locken van tabellen? hoe kan een tabel gelocked worden zonder dat je daarvoor speciale queries draait?

    vandaag is een website van een opdrachtgever offline gezet op zijn nieuwe hosting omdat de queries (ja het zijn er heel wat per pagina, maar goed en niet door mij gescript ) de tabellen zouden locken en problemen zou veroorzaken m.b.t. de preformance van MySQL.

    Heeft iemand hier een mooie uitleg voor?
    Chandlerwoensdag 24 januari 2007 @ 18:53
    @Jera, nog bedankt voor de tip van LENGTH! ga gelijk even de documentatie doorlezen m.b.t. andere mysql tekst functies... en snelheid doet in deze niet zoveel terzake, echter pas als een document geconverteerd dient te worden.
    JeRawoensdag 24 januari 2007 @ 19:02
    quote:
    Op woensdag 24 januari 2007 18:52 schreef Chandler het volgende:
    Vraag m.b.t. het locken van tabellen? hoe kan een tabel gelocked worden zonder dat je daarvoor speciale queries draait?

    vandaag is een website van een opdrachtgever offline gezet op zijn nieuwe hosting omdat de queries (ja het zijn er heel wat per pagina, maar goed en niet door mij gescript ) de tabellen zouden locken en problemen zou veroorzaken m.b.t. de preformance van MySQL.

    Heeft iemand hier een mooie uitleg voor?
    Queries in MySQL zijn atomic, dat wil zeggen dat tijdens het uitvoeren van een SELECT, INSERT, UPDATE of DELETE MySQL garandeert dat de inhoud van de tabellen die je aanspreekt niet wijzigt. Daarvoor moet MySQL de tabellen locken, zodat wanneer jij een SELECT uitvoert die lang duurt er geen andere query tussen kan komen die de tabellen wijzigt. Echter kunnen queries die de tabellen niet wijzigen (andere SELECTs) wél gewoon worden uitgevoerd tijdens een langdurige SELECT.

    Je kunt dus last krijgen van verminderde performance bij locking als:
    1) Je een SELECT hebt draaien die lang duurt
    2) Je gelijktijdig iets in de tabellen die worden aangesproken door de SELECT wilt wijzigen

    Kwestie van uitzoeken welke queries er lastig doen, dus hint: SHOW FULL PROCESSLIST
    ralfiewoensdag 24 januari 2007 @ 19:28
    quote:
    Op woensdag 24 januari 2007 18:50 schreef JeRa het volgende:

    [..]

    Nou, je gebruikt gewoon die functie in combinatie met een VARCHAR of TEXT kolom eventueel via een apart veld:
    [ code verwijderd ]
    hoe simpel

    half uur zitten klooien met ORDER BY length(text) en veel, VEEL varianten daarop...maar er nooit aan gedacht om de LENGTH() in het SELECT deel te zetten
    Chandlerwoensdag 24 januari 2007 @ 19:45
    quote:
    Op woensdag 24 januari 2007 19:02 schreef JeRa het volgende:

    [..]

    Queries in MySQL zijn atomic, dat wil zeggen dat tijdens het uitvoeren van een SELECT, INSERT, UPDATE of DELETE MySQL garandeert dat de inhoud van de tabellen die je aanspreekt niet wijzigt. Daarvoor moet MySQL de tabellen locken, zodat wanneer jij een SELECT uitvoert die lang duurt er geen andere query tussen kan komen die de tabellen wijzigt. Echter kunnen queries die de tabellen niet wijzigen (andere SELECTs) wél gewoon worden uitgevoerd tijdens een langdurige SELECT.

    Je kunt dus last krijgen van verminderde performance bij locking als:
    1) Je een SELECT hebt draaien die lang duurt
    2) Je gelijktijdig iets in de tabellen die worden aangesproken door de SELECT wilt wijzigen

    Kwestie van uitzoeken welke queries er lastig doen, dus hint: SHOW FULL PROCESSLIST
    Tnx, helaas voor mij is de technicus van deze webhosting niet meer aanwezig en moet ik dus wachten tot morgen ochtend om voor deze klant de problemen op te lossen... gelukkig ben ik al weer heel wat kennis rijker (door jou )

    Morgen nieuwe dag!
    Chandlerwoensdag 24 januari 2007 @ 19:45
    quote:
    Op woensdag 24 januari 2007 19:28 schreef ralfie het volgende:

    [..]

    hoe simpel

    half uur zitten klooien met ORDER BY length(text) en veel, VEEL varianten daarop...maar er nooit aan gedacht om de LENGTH() in het SELECT deel te zetten
    Ik ook niet
    SuperRembowoensdag 24 januari 2007 @ 21:41
    quote:
    Op woensdag 24 januari 2007 17:06 schreef JeRa het volgende:
    Ik heb een tabel X [...]
    Leuk probleem. Alleen zie ik zo gauw geen oplossing, ook niet met een group by trouwens.
    JeRawoensdag 24 januari 2007 @ 21:55
    quote:
    Op woensdag 24 januari 2007 21:41 schreef SuperRembo het volgende:

    [..]

    Leuk probleem. Alleen zie ik zo gauw geen oplossing, ook niet met een group by trouwens.
    Het rare is dus dat ik helemaal geen vreemd datamodel heb, het is sterk genormaliseerd zelfs. Je zou zeggen dat er meer mensen tegen een dergelijk probleem oplopen als ze twee of meer typen attributen aan één item willen toekennen in een database.

    Het stomme is trouwens dat ik al wel een oplossing heb. Dit speelt zich af in PostgreSQL waar het mogelijk is om zelf aggregaat functies te definiëren (CREATE AGGREGATE). Ik zou dus een aggregaat functie kunnen schrijven die meerdere TEXT velden kan combineren tot één comma separated veld met al die waarden, die toegepast wordt na een GROUP BY. Maar dat leek me zo omslachtig dat ik me niet kon voorstellen dat het niet anders kon.
    SuperRembowoensdag 24 januari 2007 @ 22:05
    Ik denk niet dat je hoeft te groupen op de tekstvelden zelf. Als het je lukt om (met een eigen aggregate) de juiste id's van tabel X, Y en Z bij elkaar hebt, dan kan je daar wel weer tegenaan joinen om de teksten op te halen.
    JeRawoensdag 24 januari 2007 @ 22:14
    quote:
    Op woensdag 24 januari 2007 22:05 schreef SuperRembo het volgende:
    Ik denk niet dat je hoeft te groupen op de tekstvelden zelf. Als het je lukt om (met een eigen aggregate) de juiste id's van tabel X, Y en Z bij elkaar hebt, dan kan je daar wel weer tegenaan joinen om de teksten op te halen.
    Dat is wel te doen, maar dan nog vind ik het niet bij het hiërarchische model horen dat ik in m'n database heb vastgelegd eigenlijk is het maar raar dat je met queries altijd een 2-dimensionaal resultaat krijgt (records versus kolommen) terwijl als je veel tabellen aan elkaar gekoppeld hebt je een 3- of meer-dimensionaal resultaat hebt.
    Chandlerwoensdag 24 januari 2007 @ 22:23
    http://en.wikipedia.org/wiki/Dimensional_database zou dit eventueel nog kunnen helpen?
    JeRawoensdag 24 januari 2007 @ 22:25
    quote:
    Op woensdag 24 januari 2007 22:23 schreef Chandler het volgende:
    http://en.wikipedia.org/wiki/Dimensional_database zou dit eventueel nog kunnen helpen?
    Ja dat idee dus, maar dan voor DBMS'en als MySQL of PgSQL
    Chandlerwoensdag 24 januari 2007 @ 22:26
    niet voor mij weg gelegd!?t?, laat staan nederlands
    profielnaamdonderdag 25 januari 2007 @ 23:52
    ik wil een RSS waarin de verkeerde spelling staat van een bepaald woord alsnog omzetten naar html maar dan met de mogelijkheid een woord bijvoorbeeld: "acces" te renamen naar het juiste woord "access" is dit mogelijk bijv met een if of foreach statement, hoe zou dit in zn werk gaan ?
    super-muffinvrijdag 26 januari 2007 @ 00:05
    Misschien zo iet's?
    Schiet mij niet af als het erg fout is aub

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <?php
    function check($invoer) {
        
    $woorden = array('acces' => 'access');
        
        foreach(
    $woorden as $fout => $goed) {
            
    $invoer = preg_replace("#".preg_quote($fout,'#')."#i","$goed",$invoer);
        }
        return
    $invoer;
    }

    $tekst = 'acces';
    echo
    check($tekst)
    ?>

    Misschien kun je ook die array $woorden laten opvullen uit een database, iets flexibeler met toevoegen/verwijderen/aanpassen van de woorden.

    edit-
    huh mijn smileys doen het niet.
    En de naam van de functie is ook niet goed, zou misschien een iets duidelijkere naam moeten hebben.
    Tiemievrijdag 26 januari 2007 @ 00:26
    1
    2
    3
    4
    5
    6
    7
    <?php
    $tekst 
    'acces ies vout';
    $foute_woorden = array('acces''vout''ies');
    $goede_woorden = array('access''goed''is');
    $tekst str_replace($foute_woorden$goede_woorden$tekst);
    print 
    $tekst;
    ?>


    zo kan 't ook.
    profielnaamvrijdag 26 januari 2007 @ 00:43
    kheb t even geprobeerd en het werkt wel, maar ik krijg het niet werkend voor de hele body. hoe kan ik dit toepassen op de volledige body van de page.
    wobbelvrijdag 26 januari 2007 @ 16:43
    Wat is de beste manier om met de hand de volgorde te bepalen van rijen in de database?

    Ik heb nu de volgende rijen:
    - Waarde 1
    - Waarde 2
    - Waarde 3
    - Waarde 4

    Maar ik wil met de hand bepalen dat het zo wordt weergegeven vanuit de database:

    - Waarde 3
    - Waarde 2
    - Waarde 1
    - Waarde 4
    ralfievrijdag 26 januari 2007 @ 17:06
    quote:
    Op vrijdag 26 januari 2007 16:43 schreef wobbel het volgende:
    Wat is de beste manier om met de hand de volgorde te bepalen van rijen in de database?

    Ik heb nu de volgende rijen:
    - Waarde 1
    - Waarde 2
    - Waarde 3
    - Waarde 4

    Maar ik wil met de hand bepalen dat het zo wordt weergegeven vanuit de database:

    - Waarde 3
    - Waarde 2
    - Waarde 1
    - Waarde 4
    Wil je de rijen random uit de database trekken, of wat?
    hornagevrijdag 26 januari 2007 @ 17:07
    de volgorde wordt bepaald door de index. Standaard zit er eentje op je primary key. Als die niet de volgorde geeft die je wilt hebben lijkt mij dat je een extra field aanmaakt en daar een index op maakt. In die tweede geef je dan dmv integers de volgorde die volgens jou juist is
    wobbelvrijdag 26 januari 2007 @ 17:16
    quote:
    Op vrijdag 26 januari 2007 17:07 schreef hornage het volgende:
    de volgorde wordt bepaald door de index. Standaard zit er eentje op je primary key. Als die niet de volgorde geeft die je wilt hebben lijkt mij dat je een extra field aanmaakt en daar een index op maakt.
    Tot hier snapte ik het nog
    DoDievrijdag 26 januari 2007 @ 17:29
    Je hebt een ID dus bijv Record 1 heeft ID 1. Dan pak je de ID van Waarde 1, ID + 3 is dus waarde 4 ed
    Swetseneggervrijdag 26 januari 2007 @ 18:02
    Ik heb weer een mail() probleempje.

    Tiscali weigert stelselmatig mails die ik verstuur. Om de volgende reden: (SMTP error from remote mail server after MAIL FROM:<www-data@s03.topxs.nl> SIZE=2350: host mail-mx-00.tiscali.nl [195.241.79.130]: 451 Could not complete sender verify callout)

    hierbij is topxs mijn hoster en die hanteert een fake mail adres als envelop, zoals zovele. Tiscali echter controleert bij elke binnenkomende mail de envelop sender, en als dat een niet bestaand mail adres is bounced de mail.

    Ik heb ALLEEN met tiscali een probleem.

    Ik heb in mail() ondertussen de optionele 5e parameter meegegeven (-fmail@domein.nl) met een geldig mail adres, maar de envelop blijft op bovenstaande fake adres staan. De hoster gebruikt exim 4 MTA en ze zijn in de veronderstelling dat de -f parameter moet werken, eventueel met een spatie tussen parameter en (geldig) mail adres, maar ik krijg het niet voor elkaar.

    Zie ik wat over het hoofd of moet ik nu toch echt mijn script gaan verbouwen om met een smtp script te kunnen gaan werken...
    wobbelvrijdag 26 januari 2007 @ 18:06
    werkt mail ( "blub", "blub", "blub", "From lala<lala@lala.lal>" niet gewoon?
    Darkomenvrijdag 26 januari 2007 @ 18:06
    "451 Could not complete sender verify callout"
    Tiscali houdt zich aan de internationale richtlijnen voor het verzenden van email.
    Het email adres waarvan word verzonden MOET dus een echt email adres zijn, is dit niet zo dan weigerd de server dit.
    Dit verkomt veel spam, dit doen wel meer providers, maar niet in nederland.
    Zouden ze wel allemaal moeten doen.

    Ik zal ff kijken naar mijn script, momentje

    Edit: kan wel zeggen, kijk mijn script, maar dat maakt niet uit, ligt aan de afzender.
    dit werkt dus, maar ja ik mail dus vanaf een bestaand email adres.
    Hoe zien jou headers eruit?
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
          $tijdstip = date("d-m-Y H:i:s");
          $subject =   'Je bent ge-emaild vanaf mijndomein.nl'; 
          $headers .= "From: test <webmaster@mijndomein.nl>n";         
          $headers .= "Reply-To:webmaster@mijndomein.nln";   
          $headers .= "Return-Path: <webmaster@mijndomein.nl>n"; 
          $headers .= "MIME-Version: 1.0 n";
          $headers .= "Content-Type: text/html; charset=iso-8859-1n"; 
          $message = 'Hallo <b>dit is een testje</b> ';
       
       if(!mail('emailadres@tiscali.nl', $subject, $message,$headers))   {
          echo '<br/><b>De email kon niet worden verzonden.</b><br />';
          }
       else {
             echo 'Je email is verzonden.';
          }


    [ Bericht 37% gewijzigd door Darkomen op 26-01-2007 18:24:56 ]
    Swetseneggervrijdag 26 januari 2007 @ 18:36
    Nee dat werkt dus niet. wat ik ook in de headers zet, mijn hosters instellingen overrullen die blijkbaar

    1
    2
    3
    4
    5
    6
    7
    <?php
    $headers  
    = "MIME-Version: 1.0\r\n";
    $headers .= "Content-Type: text/html; charset=\"iso-8859-1\"\r\n";
    $headers .= "From: info@domein.nl\r\n";
    $headers .= "Return-Path: info@domein.nl\r\n";
    $headers .= "Bcc: iemand@anderdomein.nl";
    ?>


    Ik zou de reply-to nog kunnen gebruiken, maar heb er weinig hoop op.
    CraZaayvrijdag 26 januari 2007 @ 18:55
    quote:
    Op vrijdag 26 januari 2007 17:16 schreef wobbel het volgende:

    [..]

    Tot hier snapte ik het nog
    Kortom: extra kolom toevoegen aan je tabel, hier cijfers in zetten en op deze kolom sorteren. Tip: gebruik geen kolomnaam als "order" bijvoorbeeld
    splendorzaterdag 27 januari 2007 @ 09:42
    Een vriend van mij heeft een verse windows instalatie en daar Appserv (apache+mysql+php) op geinstaleerd en alles werkt verder goed maar zijn sessies krijgt ie niet aan de gang.
    $_HTTP_SESSION_VARS werkt wel maar zodra hij $_SESSION gebruikt wordt het sessie bestandje wel aangemaakt maar niet gevuld met waardes.

    Iemand een idee hoe dit kan?

    Alle sessie instellingen in php staan waarschijnlijk wel goed want die hebben we vergeleken met die van mij. En de map heeft gewoon schrijfrechten dus dat is het probleem ook niet.

    JeRazaterdag 27 januari 2007 @ 09:46
    quote:
    Op zaterdag 27 januari 2007 09:42 schreef splendor het volgende:
    Een vriend van mij heeft een verse windows instalatie en daar Appserv (apache+mysql+php) op geinstaleerd en alles werkt verder goed maar zijn sessies krijgt ie niet aan de gang.
    $_HTTP_SESSION_VARS werkt wel maar zodra hij $_SESSION gebruikt wordt het sessie bestandje wel aangemaakt maar niet gevuld met waardes.

    Iemand een idee hoe dit kan?

    Alle sessie instellingen in php staan waarschijnlijk wel goed want die hebben we vergeleken met die van mij. En de map heeft gewoon schrijfrechten dus dat is het probleem ook niet.

    Ik vermoed dat er niet consequent wordt omgegaan met $_HTTP_SESSION_VARS en $_SESSION; even de overduidelijke valkuil uit de weg halen: op het begin van het script staat wel session_start()?

    Verder is het sowieso beter om $_SESSION te gebruiken ipv de $_HTTP_* alternatieven, die zijn deprecated wat zoveel betekent dat de feature niet meer wordt of niet meer zal worden ondersteund.

    En als laatste wil ik je vragen om wat code te laten zien, want anders is het maar gissen naar de oorzaak
    Chandlerzaterdag 27 januari 2007 @ 09:55
    $_SESSION['blaat'] = true; // variabel zetten
    unSet($_SESSION['blaat']); // variabel unsetten (legen/verwijderen)

    splendorzaterdag 27 januari 2007 @ 10:12
    pagina 1:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <?php
    session_start();

    $_SESSION['test'] = "a";
    $HTTP_SESSION_VARS['test2'] = "b";

    echo $_SESSION['test']; //werkt wel
    echo $HTTP_SESSION_VARS['test2']; //werkt wel
    ?>


    pagina 2:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <?php
    session_start();

    //$_SESSION['test'] = "a";
    //$HTTP_SESSION_VARS['test2'] = "b";

    echo $_SESSION['test']; //werkt niet
    echo $HTTP_SESSION_VARS['test2']; //werkt wel
    ?>


    Dit is de code, bij mij werkt gewoon alles maar bij die vriend van mij (zit hier langs me trouwens ) werkt $_SESSION op pagina 2 niet.

    Als je ook in het sessie bestand gaat kijken dan is er wel een bestand maar die is alleen gevuld met de $HTTP_SESSION_VARS waarden.

    Hopelijk is dit iets duidelijker.
    JeRazaterdag 27 januari 2007 @ 10:16
    @splendor

    Volgens mij gaat het niet goed als je $_SESSION en $HTTP_SESSION_VARS door elkaar gaat gebruiken. Werkt het wel als je alléén $_SESSION gebruikt? Zie ook mijn opmerking in m'n vorige post over de deprecated $HTTP_* variabelen
    splendorzaterdag 27 januari 2007 @ 10:20
    In eerste instantie werkte hij alleen met $_SESSION en omdat dat niet werkte kwamen we $_HTTP_enz.. tegen en hebben we die geprobeerd.
    Het is wel zo dat er eerst een versie van php (4.1.2) opstond die een bug had die geen sessie variablen instelde ( http://bugs.php.net/bug.php?id=16102 ) maar hij heeft die versie van php eraf gegooit en de laatste versie van appserv met php5 geinstalleerd maar het probleem bleef bestaan. Zou het kunnen dat er toch nog ergens php bestanden zijn achtergebleven?
    JeRazaterdag 27 januari 2007 @ 10:25
    quote:
    Op zaterdag 27 januari 2007 10:20 schreef splendor het volgende:
    Zou het kunnen dat er toch nog ergens php bestanden zijn achtergebleven?
    Door phpinfo() of phpversion() te gebruiken kom je erachter of PHP5 daadwerkelijk werkt.
    splendorzaterdag 27 januari 2007 @ 10:31
    quote:
    Op zaterdag 27 januari 2007 10:25 schreef JeRa het volgende:

    [..]

    Door phpinfo() of phpversion() te gebruiken kom je erachter of PHP5 daadwerkelijk werkt.
    Die werkte wel gewoon, daarmee hebben we zijn sessie instelling vergeleken met die van mij. Of is het zo dat je echt heel gericht op zoek moet gaan om te kijken of er ergens stukjes php4 zijn achtergebleven?
    JeRazaterdag 27 januari 2007 @ 10:36
    quote:
    Op zaterdag 27 januari 2007 10:31 schreef splendor het volgende:

    [..]

    Die werkte wel gewoon, daarmee hebben we zijn sessie instelling vergeleken met die van mij. Of is het zo dat je echt heel gericht op zoek moet gaan om te kijken of er ergens stukjes php4 zijn achtergebleven?
    Als PHP zegt dat ie op versie 5 draait, dan is de kans klein dat er ergens stukjes PHP4 achter zijn gebleven

    Verder is het een goed idee om de configuratie met elkaar te vergelijken. Zolang die code die je net liet zien de enige relevante code is en je in eerste instantie alleen $_SESSION hebt gebruikt zonder dat dat werkte, is er iets vreemds aan de hand en is het slim om zo even het één en het ander te vergelijken ja.
    Chandlerzaterdag 27 januari 2007 @ 12:29
    Vraagje!

    Stel je hebt een tabel met heel veel velden en records... echter mis je de record ID. En je wilt iets verwijderen... maar data in dit tabel kan voor meerdere gebruikers gelijk zijn aan elkaar (op username na dan) dan zijn er 2 opties.

    1. Delete alles met de zelfde teksten die jij wilt laten verwijderen
    2. Delete het record met LIMIT

    Welke gebruiken jullie? en waarom?
    SuperRembozaterdag 27 januari 2007 @ 12:37
    Ik gebruik geen van beide omdat ik er altijd voor zorg dat mijn tabellen een unieke index hebben.
    Chandlerzaterdag 27 januari 2007 @ 13:28
    Ik normaal ook, maar ik heb nu met een nieuw tiepe database te maken

    die niet van mezelf is
    HuHuzaterdag 27 januari 2007 @ 16:16
    Is de username ook niet uniek dan, zodat je die als ID kan gebruiken?
    profielnaamzaterdag 27 januari 2007 @ 16:19
    quote:
    Op donderdag 25 januari 2007 23:52 schreef profielnaam het volgende:
    ik wil een RSS waarin de verkeerde spelling staat van een bepaald woord alsnog omzetten naar html maar dan met de mogelijkheid een woord bijvoorbeeld: "acces" te renamen naar het juiste woord "access" is dit mogelijk bijv met een if of foreach statement, hoe zou dit in zn werk gaan ?
    Iemand hier nog een brauwseltje voor ? punt waar ik tegenaanloop is dat je een string moet opgeven welke de bron is.

    Terwijl het in mijn geval om de hele body van een page gaat (eerst moet de rss ingelezen worden) en dan pas kan ie in de de body dingen uit deze rss replacen.
    Tiemiezondag 28 januari 2007 @ 04:04
    quote:
    Op zaterdag 27 januari 2007 12:29 schreef Chandler het volgende:
    Vraagje!

    Stel je hebt een tabel met heel veel velden en records... echter mis je de record ID. En je wilt iets verwijderen... maar data in dit tabel kan voor meerdere gebruikers gelijk zijn aan elkaar (op username na dan) dan zijn er 2 opties.

    1. Delete alles met de zelfde teksten die jij wilt laten verwijderen
    2. Delete het record met LIMIT

    Welke gebruiken jullie? en waarom?
    Je kan natuurlijk ook gewoon een auto incrediment veld toevoegen.
    CraZaayzondag 28 januari 2007 @ 11:43
    quote:
    Op zaterdag 27 januari 2007 12:29 schreef Chandler het volgende:
    Vraagje!

    Stel je hebt een tabel met heel veel velden en records... echter mis je de record ID. En je wilt iets verwijderen... maar data in dit tabel kan voor meerdere gebruikers gelijk zijn aan elkaar (op username na dan) dan zijn er 2 opties.

    1. Delete alles met de zelfde teksten die jij wilt laten verwijderen
    2. Delete het record met LIMIT

    Welke gebruiken jullie? en waarom?
    Je zegt toch dat de username uniek is? Dan kun je dat toch als unieke factor gebruiken?

    LIMIT heb je weinig aan, je verwijdert dan de eerste n matches, zonder controle te hebben welke dat dan precies zijn
    Chandlerzondag 28 januari 2007 @ 17:10
    quote:
    Op zondag 28 januari 2007 04:04 schreef Tiemie het volgende:

    [..]

    Je kan natuurlijk ook gewoon een auto incrediment veld toevoegen.
    Nee want een dubbele versie van auto_incre werkt niet. ivm sub_id's die in het tabel zelf verwerkt zitten, maar ik verwijder nu gewoon op datum en tekst...
    quote:
    Op zondag 28 januari 2007 11:43 schreef CraZaay het volgende:
    Je zegt toch dat de username uniek is? Dan kun je dat toch als unieke factor gebruiken?

    LIMIT heb je weinig aan, je verwijdert dan de eerste n matches, zonder controle te hebben welke dat dan precies zijn
    Correct, en ik heb het fout gezegd in sommige tabellen is de username uniek, maar in vele niet... daar zit weer een auto_incre... op 2 velden (combi dus) bv user & linkid

    maar goed zoals ik hier boven al zei; ik delete nu op meerdere gegevens...
    JeRazondag 28 januari 2007 @ 17:15
    @Chandler

    Hoezo een 'dubbele versie' van een AUTO_INCREMENT? Zit er al eentje op dan? Want dat zou betekenen dat je al een unieke key hebt.
    HuHuzondag 28 januari 2007 @ 17:17
    Zo te lezen kan je dus een Primary Key maken, bestaande uit Username & LinkID?

    Dan kan je die combinatie toch als uniek gebruiken en opnemen in je WHERE?
    HuHuzondag 28 januari 2007 @ 17:18
    @ JeRa: volgens mij bedoeld hij dit:

    1
    2
    3
    4
    5
    6
    7
    User    Nummer
    HuHu    0
    JeRa    0
    Piet    0
    Piet    1
    Piet    2
    Kees    0


    Als er dus dubbele namen zijn, dan wordt het Nummer veld opgehoogt, zodat de rij uniek blijft. Maar dan kan je gewoon de combinatie van naam & nummer gebruiken als uniek ID.
    Chandlerzondag 28 januari 2007 @ 20:24
    quote:
    Op zondag 28 januari 2007 17:15 schreef JeRa het volgende:
    @Chandler

    Hoezo een 'dubbele versie' van een AUTO_INCREMENT? Zit er al eentje op dan? Want dat zou betekenen dat je al een unieke key hebt.
    Correct uniek op 2 velden...
    quote:
    Op zondag 28 januari 2007 17:18 schreef HuHu het volgende:
    @ JeRa: volgens mij bedoeld hij dit:
    [ code verwijderd ]

    Als er dus dubbele namen zijn, dan wordt het Nummer veld opgehoogt, zodat de rij uniek blijft. Maar dan kan je gewoon de combinatie van naam & nummer gebruiken als uniek ID.
    JeRazondag 28 januari 2007 @ 20:30
    @HuHu

    Op die manier werkt een AUTO_INCREMENT niet, die hoogt bij elke rij de waarde op. Daarom snap ik ook niet waarom een tweede AUTO_INCREMENT 'niet werkt'.

    Maar goed, je kunt gewoon een PK op die twee velden aanmaken idd.
    HuHuzondag 28 januari 2007 @ 20:36
    quote:
    Op zondag 28 januari 2007 20:30 schreef JeRa het volgende:
    @HuHu

    Op die manier werkt een AUTO_INCREMENT niet, die hoogt bij elke rij de waarde op. Daarom snap ik ook niet waarom een tweede AUTO_INCREMENT 'niet werkt'.

    Maar goed, je kunt gewoon een PK op die twee velden aanmaken idd.
    Jah klopt... een AUTO-INCREMENT werkt inderdaad niet zo, maar ik vermoedde dat hij het dus verkeerd verwoordde.
    profielnaamzondag 28 januari 2007 @ 20:46
    Hee ik probeer php code binnen een javascript uit te voeren, de php moet zich includen in dit javascriptje. Ik weet dat php server side is en javascript client side en dat het daarom niet zou moeten werken.
    Maar het resultaat wat ik verlang.. moet toch wel mogelijk zijn ? dus eigenlijk de code die hier beneden staat.

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
     <DIV align=center>
            <p><a href="javascript:InsertContent('spoiler')" class="link">Find out the spoiler !</a></p>
          <div id="spoiler" style="font-size: 24px; display: none;">
            <TABLE cellSpacing=0 cellPadding=0 width="100%" border=0>
      <TBODY>
        <TR>
          <TD>
           <?php include ('include.php');


    ?>

            </TD>
        </TR>
      </TBODY>
    </TABLE>

    <script type="text/javascript" language="JavaScript"><!--
    function InsertContent(d) {
    document.getElementById(d).style.display = "";
    }
    //--></script>
      </div>
    qu63zondag 28 januari 2007 @ 20:53
    quote:
    Op zondag 28 januari 2007 20:46 schreef profielnaam het volgende:
    Hee ik probeer php code binnen een javascript uit te voeren, de php moet zich includen in dit javascriptje. Ik weet dat php server side is en javascript client side en dat het daarom niet zou moeten werken.
    Maar het resultaat wat ik verlang.. moet toch wel mogelijk zijn ? dus eigenlijk de code die hier beneden staat.


    [ code verwijderd ]
    Het zou wel moeten kunnen met AJAX geloof ik..
    HuHuzondag 28 januari 2007 @ 21:09
    quote:
    Op zondag 28 januari 2007 20:46 schreef profielnaam het volgende:
    Hee ik probeer php code binnen een javascript uit te voeren, de php moet zich includen in dit javascriptje. Ik weet dat php server side is en javascript client side en dat het daarom niet zou moeten werken.
    Maar het resultaat wat ik verlang.. moet toch wel mogelijk zijn ? dus eigenlijk de code die hier beneden staat.
    [ code verwijderd ]
    Nee... zoals je het daar hebt staan is het niet mogelijk.

    De uitvoer van de PHP code wordt namelijk IN het document gezet, en niet de PHP functies zelf. Je kan deze dus niet meer aanroepen.

    Eventueel kan je met behulp van AJAX een verzoek doen aan de server, daar de functie laten uitvoeren, en het resultaat terug laten sturen. Zie daarvoor bijvoorbeeld: http://www.prototypejs.org/.
    profielnaamzondag 28 januari 2007 @ 21:29
    quote:
    Op zondag 28 januari 2007 21:09 schreef HuHu het volgende:

    [..]

    Nee... zoals je het daar hebt staan is het niet mogelijk.

    De uitvoer van de PHP code wordt namelijk IN het document gezet, en niet de PHP functies zelf. Je kan deze dus niet meer aanroepen.

    Eventueel kan je met behulp van AJAX een verzoek doen aan de server, daar de functie laten uitvoeren, en het resultaat terug laten sturen. Zie daarvoor bijvoorbeeld: http://www.prototypejs.org/.
    zou het wel kunnen als je de php functies gewoon in je page zelf gooit, ipv te includen (aanroepen, zoals jij zei ?)
    JortKzondag 28 januari 2007 @ 21:36
    Ik heb net me eerste stapjes met PHP gezet, en heb een form gemaakt:

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

    ?>

    <HTML><HEAD></HEAD><BODY>
    <?php
    /* Variabele voor connectie naar MySQL Server */ 
    $hostname = '***';
    $username = '***';
    $password = '***';

    /* Variabele voor selecteren juiste database */
    $database_name = 'maximusdb';

    /* Connecteren aan juiste server en database */
    $connection = mysql_connect($hostname,$username,$password) or die ("Kan geen connectie maken met de Database server!");
    $db = mysql_select_db($database_name,$connection) or die ("Database kan niet gevonden worden!");

    echo '<form action="form_add_todo.php" method="POST">
       <input type = "text" name = "Omschrijving">
       <input type = "text" name = "Memo">
       <input type = "submit" value = "OK!"></form>';
    mysql_close($connection);
    ?>
    </BODY></HTML>


    En die roept dit bestand aan:

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

    ?>

    <HTML><HEAD></HEAD><BODY>
    <?php
    /* Variabele voor connectie naar MySQL Server */ 
    $hostname = '***';
    $username = '****';
    $password = '****';

    /* Variabele voor selecteren juiste database */
    $database_name = 'maximusdb';

    /* Connecteren aan juiste server en database */
    $connection = mysql_connect($hostname,$username,$password) or die ("Kan geen connectie maken met de Database server!");
    $db = mysql_select_db($database_name,$connection) or die ("Database kan niet gevonden worden!");

    /* Form code */
    $omschrijving = strip_tags(trim($_POST["Omschrijving"]));
    $memo = strip_tags(trim($_POST["Memo"]));

    /* Query Library */
    $query01 = "INSERT INTO todo (OMS, MEMO, READY) 
             VALUES ($omschrijving, $memo, '0')";

    /* Result Library */
    $result01 = mysql_query($query01) or die ("Kan de query niet uitvoeren (query01)");


    mysql_close($connection);
    ?>
    </BODY></HTML>


    Nu krijg ik de volgende meldingen wanneer ik de OK! knop indruk in me form:

    1
    2
    3
    Notice: D:DownloadsYou Know MeGeeckerDBform_add_todo.php line 20 - Undefined index:  Omschrijving

    Notice: D:DownloadsYou Know MeGeeckerDBform_add_todo.php line 21 - Undefined index:  Memo


    Wie kan me vertellen waarom hij het record niet aan de database toevoegd?
    HuHuzondag 28 januari 2007 @ 21:55
    quote:
    Op zondag 28 januari 2007 21:29 schreef profielnaam het volgende:

    [..]

    zou het wel kunnen als je de php functies gewoon in je page zelf gooit, ipv te includen (aanroepen, zoals jij zei ?)
    Dan moet je er JavaScript functies van maken, dan is het geen enkel probleem. Je kan dan echter niet communiceren met de server.
    ralfiezondag 28 januari 2007 @ 21:57
    @JortK
    Die notices moet je je even niks van aan trekken, de reden dat er niks in de database gezet wordt is omdat je query een aantal 'jes mist rond de twee in te vullen variabelen
    1
    2
    $query01 = "INSERT INTO todo (OMS, MEMO, READY) 
             VALUES ('$omschrijving', '$memo', '0')";
    Mocht je later willen weten waarom een bepaalde query bij mysql niet werkt, gebruik dan de mysql_error() functie om een error-string op te vragen waarin precies aangegeven staat waarom de query niet lukte.
    HuHuzondag 28 januari 2007 @ 21:57
    quote:
    Op zondag 28 januari 2007 21:36 schreef JortK het volgende:
    Ik heb net me eerste stapjes met PHP gezet, en heb een form gemaakt:
    [ code verwijderd ]

    En die roept dit bestand aan:
    [ code verwijderd ]

    Nu krijg ik de volgende meldingen wanneer ik de OK! knop indruk in me form:
    [ code verwijderd ]

    Wie kan me vertellen waarom hij het record niet aan de database toevoegd?
    Er moeten quotes rond de VALUES in je query.

    1
    2
    $query01 = "INSERT INTO todo (OMS, MEMO, READY) 
             VALUES ('{$omschrijving}', '{$memo}', '0')";
    JortKzondag 28 januari 2007 @ 22:01
    Whahaha thanks jongens... beginnersfouten denk ik zomaar... net zoals de semicolon vergeten hah
    Chandlerzondag 28 januari 2007 @ 22:12
    1
    2
    $query01 = "INSERT INTO todo (OMS, MEMO, READY) 
             VALUES ('" . $omschrijving . "', '" . $memo . "', '0')";


    waarom niet gewoon zo? is ook mooier in je hightlighting editor ;)
    CraZaayzondag 28 januari 2007 @ 23:21
    quote:
    Op zondag 28 januari 2007 22:12 schreef Chandler het volgende:

    [ code verwijderd ]

    waarom niet gewoon zo? is ook mooier in je hightlighting editor
    Omdat het een paar milliseconden trager is (je gebruikt dubbele quotes voor een string die je eigenlijk niet geparsed wilt hebben)?
    CraZaayzondag 28 januari 2007 @ 23:21
    quote:
    Op zondag 28 januari 2007 17:18 schreef HuHu het volgende:
    @ JeRa: volgens mij bedoeld hij dit:
    [ code verwijderd ]

    Als er dus dubbele namen zijn, dan wordt het Nummer veld opgehoogt, zodat de rij uniek blijft. Maar dan kan je gewoon de combinatie van naam & nummer gebruiken als uniek ID.
    Wat een zeldzaam ranzig datamodel
    JeRazondag 28 januari 2007 @ 23:51
    quote:
    Op zondag 28 januari 2007 23:21 schreef CraZaay het volgende:

    [..]

    Wat een zeldzaam ranzig datamodel
    Valt wel mee, m:n koppeltabellen zien er 'ongeveer' ook zo uit.
    ralfiemaandag 29 januari 2007 @ 08:38
    quote:
    Op zondag 28 januari 2007 22:12 schreef Chandler het volgende:

    [ code verwijderd ]

    waarom niet gewoon zo? is ook mooier in je hightlighting editor
    Jij hebt geen editor die variabelen in een dubbelgequote string (al dan niet tussen {} ) highlight?
    wobbelmaandag 29 januari 2007 @ 09:34
    quote:
    Op vrijdag 26 januari 2007 17:29 schreef DoDie het volgende:
    Je hebt een ID dus bijv Record 1 heeft ID 1. Dan pak je de ID van Waarde 1, ID + 3 is dus waarde 4 ed
    maar hoe zorg ik dat ik dit geautomatiseerd kan aanpasen?

    Het staat dus nu zo in de DB:

    ID - WAARDE - RANK
    1 - Waarde 4 - 4
    2 - Waarde 2 - 3
    3 - Waarde 3 - 2
    4 - Waarde 1 - 1

    Als ik dan soorteer op RANK DESC komt waarde 4 eerst, dan 2, 3 en 1.

    Maar hoe kan ik met PHP nu aanpassen dat als ik Waarde 1 omhoog wil hebben, en Waarde 3 dus 1 omlaag, hij dit automagisch helemaal goed doet enzo?
    Chandlermaandag 29 januari 2007 @ 09:42
    quote:
    Op zondag 28 januari 2007 23:21 schreef CraZaay het volgende:

    [..]

    Omdat het een paar milliseconden trager is (je gebruikt dubbele quotes voor een string die je eigenlijk niet geparsed wilt hebben)?
    Is het echt sneller? maar werkt het dan ook met $_POST etc?
    quote:
    Op zondag 28 januari 2007 23:21 schreef CraZaay het volgende:
    Wat een zeldzaam ranzig datamodel
    Zo zeldzaam is het niet hoor wordt in vele websites gebruikt, maar handig is anders
    quote:
    Op zondag 28 januari 2007 23:51 schreef JeRa het volgende:
    Valt wel mee, m:n koppeltabellen zien er 'ongeveer' ook zo uit.
    CraZaaymaandag 29 januari 2007 @ 10:04
    quote:
    Op zondag 28 januari 2007 23:51 schreef JeRa het volgende:

    [..]

    Valt wel mee, m:n koppeltabellen zien er 'ongeveer' ook zo uit.
    Om te koppelen ja, waarbij in dat geval 'nummer' een verwijzing is naar een record in een andere tabel neem ik aan. Wat ik ervan begrepen heb is Chandler's tabel geen koppeltabel, maar wordt 'nummer' gebruikt om uniciteit aan te geven (standaard 0, tenzij er al een record met een bepaalde username is, dan ophogen).

    Voor zover ik weet is dat in dagelijks MySQL gebruik niet echt normaal. Ik zou het iig nooit gebruiken. Of begrijp ik de werking van je tabel verkeerd Chandler?
    CraZaaymaandag 29 januari 2007 @ 10:08
    quote:
    Op maandag 29 januari 2007 09:42 schreef Chandler het volgende:

    [..]

    Is het echt sneller? maar werkt het dan ook met $_POST etc?
    Ja, maar het verschil is echt minimaal.
    JeRamaandag 29 januari 2007 @ 11:04
    quote:
    Op maandag 29 januari 2007 10:08 schreef CraZaay het volgende:

    [..]

    Ja, maar het verschil is echt minimaal.
    Om consequent te zijn gebruik ik altijd exact dezelfde coding style, in mijn geval voor strings dus enkele quotes (apostrofes) en concatenatie om variabelen in te voegen.

    Echter ben ik ook van mening dat je, zodra je dat nodig hebt om tijdswinst te boeken, er iets fundamenteels mis is aan je script.
    Chandlermaandag 29 januari 2007 @ 11:17
    quote:
    Op maandag 29 januari 2007 10:04 schreef CraZaay het volgende:
    Voor zover ik weet is dat in dagelijks MySQL gebruik niet echt normaal. Ik zou het iig nooit gebruiken. Of begrijp ik de werking van je tabel verkeerd Chandler?
    Tja bv voor een link tabel. (met meerdere gebruikers)

    userid
    linkid
    link

    auto_incr zit op userid incombi met linkid oftewel bij 0 links is linkid 0 bij 9 links is linkid=9 en dat voor iedere gebruiker zo... maar goed, het is niet een database die ik bedacht heb
    quote:
    Op maandag 29 januari 2007 11:04 schreef JeRa het volgende:
    Om consequent te zijn gebruik ik altijd exact dezelfde coding style, in mijn geval voor strings dus enkele quotes (apostrofes) en concatenatie om variabelen in te voegen.

    Echter ben ik ook van mening dat je, zodra je dat nodig hebt om tijdswinst te boeken, er iets fundamenteels mis is aan je script.
    LOL, ik gebruik ook altijd " . $blaat . " gewoon om het feit dat ik idd ook consequent wil zijn in mijn coding style
    SuperRembomaandag 29 januari 2007 @ 11:50
    quote:
    Op maandag 29 januari 2007 11:04 schreef JeRa het volgende:
    [..]
    Om consequent te zijn gebruik ik altijd exact dezelfde coding style, in mijn geval voor strings dus enkele quotes (apostrofes) en concatenatie om variabelen in te voegen.
    Gebruik je dan ook enkele qoutes voor sql strings? Dan moet je dus een heleboel qoutejes escapen. Dat lijkt me niet handig en het maakt het er ook niet leesbaarder op.
    JeRamaandag 29 januari 2007 @ 11:57
    quote:
    Op maandag 29 januari 2007 11:50 schreef SuperRembo het volgende:

    [..]

    Gebruik je dan ook enkele qoutes voor sql strings? Dan moet je dus een heleboel qoutejes escapen. Dat lijkt me niet handig en het maakt het er ook niet leesbaarder op.
    Jouw 'dan moet je dus' klopt van geen kanten zie een mooi prepared statement voor PgSQL:

    1
    2
    3
    4
    5
    6
    <?php
    $stmt
    = $db->prepare('INSERT INTO "tabel" ("userid", "value") VALUES (:userid, :value)');
    $stmt->bindParam('userid', $userid);  // integer
    $stmt->bindParam('value', $value);  // string
    $res = $stmt->execute();
    ?>


    Et voila, snel, uitermate veilig en zonder ook maar iets te hoeven escapen die dubbele quotes in het statement zijn overigens geen strings, het is de ANSI manier van tabel- en veldnamen quoten (zoals de niet-standaard backticks in MySQL).
    CraZaaymaandag 29 januari 2007 @ 14:31
    quote:
    Op maandag 29 januari 2007 11:17 schreef Chandler het volgende:

    [..]

    Tja bv voor een link tabel. (met meerdere gebruikers)

    userid
    linkid
    link

    auto_incr zit op userid incombi met linkid oftewel bij 0 links is linkid 0 bij 9 links is linkid=9 en dat voor iedere gebruiker zo... maar goed, het is niet een database die ik bedacht heb
    Ah, dan begreep ik je verkeerd. 'nummer' is dus daadwerkelijk een verwijzing naar een record in een andere tabel? Zo ja, dan vind ik alleen de naamgeving waardeloos
    CraZaaymaandag 29 januari 2007 @ 14:33
    -dubbel-
    CraZaaymaandag 29 januari 2007 @ 14:35
    99% van de mensen hier zal MySQL gebruiken denk ik In dat geval is het inderdaad lastig. Ik gebruik enkele quotes en dubbele quotes door elkaar, afhankelijk van welk doel ze dienen. Dit vind ik netjes en conform de PHP syntax; ik gebruik niet selchts 1 van de 2 omdat dat 'mooier' of 'consistenter' is, maar gebruik de quotes waar ze imo voor zijn.

    1
    2
    3
    4
    5
    <php
    $var = 'string';
    $query = "test = '$var'"
    $query = "test = '{$array[1]}'"
    ?>


    Ik ben het overigens eens met je statement dat je enkele quotes niet nodig zou hoeven hebben voor snelheidswinst
    JeRamaandag 29 januari 2007 @ 14:37
    quote:
    Op maandag 29 januari 2007 14:33 schreef CraZaay het volgende:

    [..]

    99% van de mensen hier zal MySQL gebruiken denk ik
    Dat wat ik daar liet zien is PDO, dus dat kan net zo goed met MySQL of SQL server of wat dan ook
    SuperRembomaandag 29 januari 2007 @ 14:45
    quote:
    Op maandag 29 januari 2007 11:57 schreef JeRa het volgende:
    Jouw 'dan moet je dus' klopt van geen kanten zie een mooi prepared statement voor PgSQL:
    Dat was mss een beetje kort door de bocht.
    quote:
    [ code verwijderd ]
    Et voila, snel, uitermate veilig en zonder ook maar iets te hoeven escapen
    Ziet er netjes uit. Is die db class van eigen fabricaat?
    Waarom geef je bij bindParam() eigenlijk geen type informatie mee, het lijk me dat je dat (meestal) wel nodig hebt. Of wordt die informatie er door de db layer zelf bij gehaald?
    CraZaaymaandag 29 januari 2007 @ 14:50
    quote:
    Op maandag 29 januari 2007 14:37 schreef JeRa het volgende:

    [..]

    Dat wat ik daar liet zien is PDO, dus dat kan net zo goed met MySQL of SQL server of wat dan ook
    Rephrase: de meesten hier hakken de SQL-statements rechtstreeks in hun code denk ik (de mensen hier die MVC-concepten e.d. gebruiken zijn op 1 hand te tellen volgens mij ).
    Chandlermaandag 29 januari 2007 @ 15:15
    Ik controlleer tegenwoordig zowat alle input, of het nu via een cookie, get,post of wat dan ook is heb er een paar leuke includes voor geschreven... altijd handig
    CraZaaymaandag 29 januari 2007 @ 15:24
    quote:
    Op maandag 29 januari 2007 15:15 schreef Chandler het volgende:
    Ik controlleer tegenwoordig zowat alle input, of het nu via een cookie, get,post of wat dan ook is heb er een paar leuke includes voor geschreven... altijd handig
    'zowat'? Da's dan net te weinig
    JeRamaandag 29 januari 2007 @ 15:59
    quote:
    Op maandag 29 januari 2007 14:45 schreef SuperRembo het volgende:

    [..]

    Dat was mss een beetje kort door de bocht.
    [..]

    Ziet er netjes uit. Is die db class van eigen fabricaat?
    Waarom geef je bij bindParam() eigenlijk geen type informatie mee, het lijk me dat je dat (meestal) wel nodig hebt. Of wordt die informatie er door de db layer zelf bij gehaald?
    Het is gewoon PDO http://nl2.php.net/PDO

    En verder is het in PHP gewoon mogelijk om het type te bepalen zonder extra argumenten mee te leveren hoor, daar heb je dingen als is_string() en is_float() voor
    super-muffinmaandag 29 januari 2007 @ 16:40
    Hoe kan ik makkelijk controleren of een referer afkomstig is van mijn eigen site of extern?
    CraZaaymaandag 29 januari 2007 @ 16:44
    quote:
    Op maandag 29 januari 2007 16:40 schreef super-muffin het volgende:
    Hoe kan ik makkelijk controleren of een referer afkomstig is van mijn eigen site of extern?
    Checken of je domein voorkomt in de referer?
    SuperRembomaandag 29 januari 2007 @ 16:55
    quote:
    Op maandag 29 januari 2007 15:59 schreef JeRa het volgende:

    [..]

    Het is gewoon PDO http://nl2.php.net/PDO

    En verder is het in PHP gewoon mogelijk om het type te bepalen zonder extra argumenten mee te leveren hoor, daar heb je dingen als is_string() en is_float() voor
    En is_date()?

    Het data type in php hoeft natuurlijk niet overeen te komen met het data type in de database.
    JeRamaandag 29 januari 2007 @ 16:57
    quote:
    Op maandag 29 januari 2007 16:55 schreef SuperRembo het volgende:

    [..]

    En is_date()?

    Het data type in php hoeft natuurlijk niet overeen te komen met het data type in de database.
    Nee, maar ik zet dan ook nooit data of tijden direct zo in de database. Vaak kun je now() of '-infinity' als standaardwaarden gebruiken, en als ik dan toch een willekeurige datum moet invoeren doe ik dat door de datum eerst in PHP te controleren en om te zetten naar een Unix epoch timestamp die voer ik dan vervolgens aan de juiste functies van de RDBMS.
    JortKmaandag 29 januari 2007 @ 17:12
    Weet iemand trouwens of je iets van GUID's aan kan maken in een MySQL database?

    MS-SQL heeft hier gewoon newid() voor, maar deze kan ik niet terugvinden in MySQL
    Chandlermaandag 29 januari 2007 @ 17:13
    quote:
    Op maandag 29 januari 2007 15:24 schreef CraZaay het volgende:

    [..]

    'zowat'? Da's dan net te weinig
    tja kan altijd iets over het hoofd zien hé
    CraZaaymaandag 29 januari 2007 @ 17:18
    quote:
    Op maandag 29 januari 2007 17:12 schreef JortK het volgende:
    Weet iemand trouwens of je iets van GUID's aan kan maken in een MySQL database?

    MS-SQL heeft hier gewoon newid() voor, maar deze kan ik niet terugvinden in MySQL
    UUID()
    super-muffinmaandag 29 januari 2007 @ 17:18
    quote:
    Op maandag 29 januari 2007 16:44 schreef CraZaay het volgende:

    [..]

    Checken of je domein voorkomt in de referer?
    Ja daar zat ik ook aan te denken. Met preg_match.
    Maar ik dacht, misschien is er een makkelijkere manier.
    JeRamaandag 29 januari 2007 @ 17:20
    quote:
    Op maandag 29 januari 2007 17:18 schreef super-muffin het volgende:

    [..]

    Ja daar zat ik ook aan te denken. Met preg_match.
    Maar ik dacht, misschien is er een makkelijkere manier.
    Die is er, je kunt een scherm tonen met daarin de referer en de bezoeker vragen of hij/zij in die string jouw domeinnaam ziet. Echter is de veiligste methode om het gewoon maar zelf te doen met idd een regular expression
    Chandlermaandag 29 januari 2007 @ 17:24
    vraagje; weet iemand een tutoriaal over hoe te werken met externe modules m.b.t. een CMS systeem?
    CraZaaymaandag 29 januari 2007 @ 18:06
    quote:
    Op maandag 29 januari 2007 17:24 schreef Chandler het volgende:
    vraagje; weet iemand een tutoriaal over hoe te werken met externe modules m.b.t. een CMS systeem?
    Die zijn er niet. Een 'externe module' is niets generieks, en 'een CMS systeem' ook niet.
    keepermaandag 29 januari 2007 @ 18:33
    Ik probeer een pagina op een website binnen te halen middels file_get_contents(). Gaat allemaal goed, alleen omdat dit een beveiligde pagina is (joomla-cms) krijg ik dan niet de hele inhoud van de pagina te zien, maar de mededeling "je bent niet gemachtigd, etc". Logisch, want ik ben niet ingelogd op die site.

    Okay, cookies meesturen. Maar hoe werkt dit (of specifieker, hoe werkt dit bij een Joomla pagina)? Welke cookies zijn belangrijk? Ik heb nu deze code:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    <?php
    $uri
    = "http://www.example.com/index.php?option=blaat";

    $contextOptions = array(
        
    "http" => array (
            
    "header" => "Cookie: jalUserName=Username;PHPSESSID=abc12345;419f256etc.=532d83678etc.rn"
            
    )
        );

    $context = stream_context_create( $contextOptions );

    $page = file_get_contents( $uri, false, $context );

    echo
    $page;
    ?>

    Waarbij die laatste waarde in de cookie (419..) een 32 tekens lange Hex-waarde is met als waarde (532...) een 67 tekens lange hex-waarde. Als ik dit zo stuur krijg ik een error "Redirection limit reached". Kan ik daaruit concluderen dat de login op zich werkt, alleen dat ik word teruggestuurd naar de pagina en dat er daar wat mis gaat (ik draai dat script vanaf www.mijnsite.nl/script.php)? Of gaat die login sowieso niet goed? Als ik die laatste waarde met al die hex-shit weglaat, krijg ik gewoon de "niet gemachtigd deze pagina te bekijken error".

    Weet iemand of dit gaat werken? Of kijkt Joomla naar meer dingen tijdens het inloggen, zoals IP waar het vandaan komt of User-Agent? En is dat dan nog ergens mee te nemen?

    disclaimer: het gaat om het automatisch inlezen van een grote pagina met data waar ik wel toegang tot heb via de browser, maar dus niet via een script
    Chandlermaandag 29 januari 2007 @ 19:08
    quote:
    Op maandag 29 januari 2007 18:06 schreef CraZaay het volgende:
    Die zijn er niet. Een 'externe module' is niets generieks, en 'een CMS systeem' ook niet.
    Hoezo niet? er zijn ook tutorialen over het maken van een CMS zelf (voor standaard pagina's ed) maar is er anders dan een beschrijving hoe anderen werken met externe modules? zou fijn vinden om hier wat meer informatie over te hebben.
    splendormaandag 29 januari 2007 @ 19:19
    quote:
    Op maandag 29 januari 2007 17:18 schreef super-muffin het volgende:

    [..]

    Ja daar zat ik ook aan te denken. Met preg_match.
    Maar ik dacht, misschien is er een makkelijkere manier.
    Ik weet niet waar je het voor wil gebruiken maar hou er wel rekening mee dat de headers van een website vrij makkelijk zijn aan te passen waardoor een bezoeker ook kan doen alsof hij van jou domein afkomt.
    splendormaandag 29 januari 2007 @ 19:21
    quote:
    Op zaterdag 27 januari 2007 10:36 schreef JeRa het volgende:

    [..]

    Als PHP zegt dat ie op versie 5 draait, dan is de kans klein dat er ergens stukjes PHP4 achter zijn gebleven

    Verder is het een goed idee om de configuratie met elkaar te vergelijken. Zolang die code die je net liet zien de enige relevante code is en je in eerste instantie alleen $_SESSION hebt gebruikt zonder dat dat werkte, is er iets vreemds aan de hand en is het slim om zo even het één en het ander te vergelijken ja.
    Hij heeft uiteindelijk maar een ander pakket geïnstalleerd (xamp ofzo?) en die deed het wel gelukkig. Geen idee wat het probleem is geweest maar bedankt in ieder geval voor de hulp.
    JortKmaandag 29 januari 2007 @ 19:33
    quote:
    Op maandag 29 januari 2007 17:18 schreef CraZaay het volgende:

    [..]

    UUID()
    Geil dank u
    wipes66maandag 29 januari 2007 @ 19:44
    Weet iemand hoe dit kan? Ik krijg de volgende error: General error: 1406 Data too long for column 'search_d' at row 1 . Ik gebruik mysql en php5 en het veld type is 'text'.
    HuHumaandag 29 januari 2007 @ 19:48
    Het datatype TEXT kan maar 216+2 bytes aan, oftewel 65538 tekens. Je zou een MEDIUMTEXT (224+2) of LONGTEXT (232+2) kunnen nemen.

    Bron: http://dev.mysql.com/doc/refman/5.0/en/storage-requirements.html.
    wipes66maandag 29 januari 2007 @ 19:54
    quote:
    Op maandag 29 januari 2007 19:48 schreef HuHu het volgende:
    Het datatype TEXT kan maar 216+2 bytes aan, oftewel 65538 tekens. Je zou een MEDIUMTEXT (224+2) of LONGTEXT (232+2) kunnen nemen.

    Bron: http://dev.mysql.com/doc/refman/5.0/en/storage-requirements.html.
    Zowel met mediumtext als met longtext krijg ik de zelfde error. Het gaat overigens om 4399 tekens, dus waarschijnlijk ligt het ergens anders aan?
    wipes66maandag 29 januari 2007 @ 19:58
    Ik moet er overigens bij zeggen dat ik gebruik maak van 'TRADITIONAL' als SQL mode en utf-8.
    quote:
    TRADITIONAL is shorthand for "both strict modes, plus a bunch of other restrictions."
    This is more like the way that other "traditional" SQL DBMSs act with regard to data checking.
    edit:

    dit is dus de boosdoener: 'SET NAMES utf8'. (dat uitgevoerd wordt bij iedere verbinding). Moet ik dit maar gewoon weghalen of is er een andere manier om dit op te lossen?

    [ Bericht 20% gewijzigd door wipes66 op 29-01-2007 20:05:09 ]
    HuHumaandag 29 januari 2007 @ 20:02
    Ik lees ook dingen dat het zou kunnen liggen aan het feit dat je characters in de cel probeert te stoppen die niet voorkomen in de gebruikte charset.
    CraZaaymaandag 29 januari 2007 @ 20:05
    quote:
    Op maandag 29 januari 2007 19:08 schreef Chandler het volgende:

    [..]

    Hoezo niet? er zijn ook tutorialen over het maken van een CMS zelf (voor standaard pagina's ed) maar is er anders dan een beschrijving hoe anderen werken met externe modules? zou fijn vinden om hier wat meer informatie over te hebben.
    CMS systemen kun je op ontelbare manieren bouwen. 'Externe modules' (wat dat ook moge zijn) ook. Hoe wil je hier dan ooit een tutorial over schrijven, tenzij je definieert wat voor externe module voor welk CMS?

    Om het anders te stellen: als je naar een garage gaat en je vraagt of ze een uitbreiding voor een auto kunnen bouwen, wat denk je dat ze dan zeggen?

    [ Bericht 8% gewijzigd door CraZaay op 29-01-2007 20:22:55 ]
    JortKmaandag 29 januari 2007 @ 20:12
    Damn kut IIS 5.1

    Heb net PHP erbij geinstalleerd, maar nu iedere keer als ik een link naar een PHP pagina aanklik, wil me browser de PHP pagina gaan downloaden :S

    Weet iemand wat er misgaat?

    * JortK is nog een PHP n00bie
    HuHumaandag 29 januari 2007 @ 20:50
    Eerder een IIS newbie dan . Heb je alle stappen op deze pagina gedaan: http://www.php.net/manual/en/install.windows.iis.php?
    JortKmaandag 29 januari 2007 @ 21:04
    quote:
    Op maandag 29 januari 2007 20:50 schreef HuHu het volgende:
    Eerder een IIS newbie dan . Heb je alle stappen op deze pagina gedaan: http://www.php.net/manual/en/install.windows.iis.php?
    Nu wanneer ik de link aanklik naar het script... blijft deze oneindig laden

    De zoektocht gaat door
    HuHumaandag 29 januari 2007 @ 21:07
    Een reboot gedaan?
    JortKmaandag 29 januari 2007 @ 21:19
    yup
    Swetseneggermaandag 29 januari 2007 @ 21:50
    quote:
    Op maandag 29 januari 2007 21:04 schreef JortK het volgende:

    [..]

    Nu wanneer ik de link aanklik naar het script... blijft deze oneindig laden
    heb je geen infinite loop in je script?
    JortKmaandag 29 januari 2007 @ 22:07
    Neej er zat een fout in me configuratie.

    Echter wanneer ik nu het PHP script open, geeft Firefox de volgende melding:



    * JortK heeft nog nooit zoveel geleerd op een avond
    JortKmaandag 29 januari 2007 @ 22:09
    O ja, script ziet er zo uit:

    1
    2
    3
    4
    5
    <?php
     php

    phpinfo
    ();
    ?>


    :')
    Swetseneggermaandag 29 januari 2007 @ 22:41
    Je php is blijkbaar niet goed geinstalleerd. Waarom wil je uberhaupt met IIS werken?
    JortKmaandag 29 januari 2007 @ 22:43
    Omdat Apache een fucking foutmelding geeft op de een of andere manier... Is er ook een pakket waarin Apache en PHP al in één zitten... dat net zo lief
    splendormaandag 29 januari 2007 @ 22:50
    quote:
    Op maandag 29 januari 2007 22:43 schreef JortK het volgende:
    Omdat Apache een fucking foutmelding geeft op de een of andere manier... Is er ook een pakket waarin Apache en PHP al in één zitten... dat net zo lief
    AppServ, XAMPP
    JortKmaandag 29 januari 2007 @ 22:51
    quote:
    Op maandag 29 januari 2007 22:50 schreef splendor het volgende:

    [..]

    AppServ, XAMPP
    * JortK begint downloaden
    Swetseneggermaandag 29 januari 2007 @ 23:06
    quote:
    Op maandag 29 januari 2007 22:43 schreef JortK het volgende:
    Omdat Apache een fucking foutmelding geeft op de een of andere manier...
    IIS ook
    quote:
    Is er ook een pakket waarin Apache en PHP al in één zitten... dat net zo lief
    Like hundreds

    Maar inderdaad, AppServ, Xamp en tientallen andere zogenaamde WAMP (windows Apache MySql PHP) installers, die er uiteraard ook zijn voor Linux (LAMP) en Mac (MAMP)
    JortKmaandag 29 januari 2007 @ 23:12
    Ja sorry ik moet leren... dus kan zijn dat ik stomme vragen stel

    Nu heb ik XAMPP geinstalleerd.. Apache draait ook weer (how strange)

    Alleen nu als ik het PHP script run krijg ik een blank scherm, en als ik me source bekijk zie ik wel de code staan (de php code)

    Iets gaat er dus nog niet goed
    Swetseneggermaandag 29 januari 2007 @ 23:17
    quote:
    Op maandag 29 januari 2007 23:12 schreef JortK het volgende:
    Ja sorry ik moet leren... dus kan zijn dat ik stomme vragen stel
    Nee hoor, ik moest alleen even lachen
    quote:
    Nu heb ik XAMPP geinstalleerd.. Apache draait ook weer (how strange)
    Hoezo is dat strange Apache is onderdeel van XAMPP
    quote:
    Alleen nu als ik het PHP script run krijg ik een blank scherm, en als ik me source bekijk zie ik wel de code staan (de php code)

    Iets gaat er dus nog niet goed
    Je hebt een fout in je script. je bent een ; of een } ofzo vergeten.
    hornagemaandag 29 januari 2007 @ 23:52
    ff in je php.ini show_errors ofzo aanzetten, dan geeft ie precies aan wat er misgaat.
    JeRadinsdag 30 januari 2007 @ 06:42
    quote:
    Op maandag 29 januari 2007 19:48 schreef HuHu het volgende:
    Het datatype TEXT kan maar 216+2 bytes aan, oftewel 65538 tekens. Je zou een MEDIUMTEXT (224+2) of LONGTEXT (232+2) kunnen nemen.
    Je zit er telkens ééntje te hoog
    Lightdinsdag 30 januari 2007 @ 07:31
    quote:
    Op dinsdag 30 januari 2007 06:42 schreef JeRa het volgende:

    [..]

    Je zit er telkens ééntje te hoog
    Euh, 3 te hoog toch?
    JeRadinsdag 30 januari 2007 @ 07:59
    quote:
    Op dinsdag 30 januari 2007 07:31 schreef Light het volgende:

    [..]

    Euh, 3 te hoog toch?
    Klopt
    Chandlerdinsdag 30 januari 2007 @ 09:20
    quote:
    Op maandag 29 januari 2007 20:05 schreef CraZaay het volgende:

    [..]

    CMS systemen kun je op ontelbare manieren bouwen. 'Externe modules' (wat dat ook moge zijn) ook. Hoe wil je hier dan ooit een tutorial over schrijven, tenzij je definieert wat voor externe module voor welk CMS?

    Om het anders te stellen: als je naar een garage gaat en je vraagt of ze een uitbreiding voor een auto kunnen bouwen, wat denk je dat ze dan zeggen?
    Je hebt deels gelijk, maar ik zie dus steeds meer scripts komen waarbij men apparte modules kan aanschaffen zoals een gastenboek, galerij, contact formulier, downloads, forum, etc etc etc... nu kun je deze scripts zo in een directory zetten en een installer draaien en klaar is kees!

    Ik wil graag weten hoe verwerk je dit in een huidig systeem zoals een CMS die met modules werkt, oftewel modules aan / modules uit..

    heb al aardig wat systemen bekeken maar kan er geen wijs uit worden...

    zelf heb ik nu het volgende bedacht voor mijn CMS.

    Iedere module bestaat uit 3 bestanden.
    1. config
    2. admin
    3. het script

    het script heeft een paar verschillende functies die voor alle scripts het zelfde zijn. (bv)

    gallery.php

    functions:
    gallery_post() // om postings te verwerken
    gallery_run() // laat gallery zien, $_GET kan deze zelf wel verwerken!
    gallery_etc() // etc etc etc

    nu gaat mijn CMS bij een $_SERVER['REQUEST_METHOD'] == "POST" eerst van deze module gallery_post() draaien voordat het gallery_run() draait..

    snap je mijn idee? maar wil weten of het ook handig is zo?
    smesjzdinsdag 30 januari 2007 @ 09:55
    Is het niet makkelijker om zo'n module OO te schrijven?

    Dus dat je een class gallery maakt, die allerlei erft van een parent class waarin dbase, authenticatie, variabele checks e.d. worden gedaan.

    Dat lijkt me makkelijker te onderhouden en later uit te bereiden.
    Chandlerdinsdag 30 januari 2007 @ 10:33
    smesjz: ik ben zelf helaas nog niet erg into OO maar zou je mij de voordelen daarvan kunnen vertellen en eventueel een voorbeeld?
    CraZaaydinsdag 30 januari 2007 @ 10:52
    quote:
    Op dinsdag 30 januari 2007 10:33 schreef Chandler het volgende:
    smesjz: ik ben zelf helaas nog niet erg into OO maar zou je mij de voordelen daarvan kunnen vertellen en eventueel een voorbeeld?
    Je hebt nog nooit met classes gewerkt Chandler? Zie voor meer info: http://nl3.php.net/oop

    Je kunt classes 'extenden', waardoor deze nieuwe class toegang heeft tot de methods van z'n 'parent'.

    Je gebruikt dan dus 1 class voor het standaard werk (dbase, etc), en een extension voor iedere module die je eraan wilt knopen. Dit zou je kunnen gebruiken voor je 'het script heeft een paar verschillende functies die voor alle scripts hetzelfde zijn'-verhaal
    smesjzdinsdag 30 januari 2007 @ 10:56
    Een vergelijking tussen OO en functioneel programmeren kan je met een beetje Google werk zelf ook wel vinden.
    De verschillen zijn te groot vind ik om zo ff uit te leggen, dat is al door anderen duidelijker gedaan

    Bij een CMS zou je kunnen een Pagina als een object kunnen beschouwen. Zo'n pagina kan je bijv. tonen, verwijderen, activeren e.d. (methods). En een pagina heeft wat eigenschappen zoals een titel, auteur, status, datum e.d. (properties).

    En ieder Pagina object heeft een aantal Content elementen (children) die op hun beurt ook weer kunnen objecten zijn. Zo'n element heeft bijv. een type (video, tekst, link, e.d.) en kan verwijderd worden, gewijzigd, toegevoegd e.d. worden.

    Het brengt wat meer logica in je code denk ik.
    Chandlerdinsdag 30 januari 2007 @ 11:33
    quote:
    Op dinsdag 30 januari 2007 10:52 schreef CraZaay het volgende:
    Je hebt nog nooit met classes gewerkt Chandler? Zie voor meer info: http://nl3.php.net/oop
    Tuurlijk wel, maar dan wel simpele oplossingen
    quote:
    Je kunt classes 'extenden', waardoor deze nieuwe class toegang heeft tot de methods van z'n 'parent'.

    Je gebruikt dan dus 1 class voor het standaard werk (dbase, etc), en een extension voor iedere module die je eraan wilt knopen. Dit zou je kunnen gebruiken voor je 'het script heeft een paar verschillende functies die voor alle scripts hetzelfde zijn'-verhaal
    ah, nu snap ik er helemaal de ballen meer van, maar ik ga php.net eens doorspitten.
    quote:
    Op dinsdag 30 januari 2007 10:56 schreef smesjz het volgende:
    Een vergelijking tussen OO en functioneel programmeren kan je met een beetje Google werk zelf ook wel vinden.
    De verschillen zijn te groot vind ik om zo ff uit te leggen, dat is al door anderen duidelijker gedaan
    Ik dacht dus altijd dat classes vooral makkelijk te gebruiken waren wanneer je vaak dezelfde functies moest aanroepen met verschillende waarden zodat je bv gemakkelijker een 3d berekening kon doen...
    quote:
    Bij een CMS zou je kunnen een Pagina als een object kunnen beschouwen. Zo'n pagina kan je bijv. tonen, verwijderen, activeren e.d. (methods). En een pagina heeft wat eigenschappen zoals een titel, auteur, status, datum e.d. (properties).

    En ieder Pagina object heeft een aantal Content elementen (children) die op hun beurt ook weer kunnen objecten zijn. Zo'n element heeft bijv. een type (video, tekst, link, e.d.) en kan verwijderd worden, gewijzigd, toegevoegd e.d. worden.
    Ah, nog niet helemaal duidelijk maar ik begin het wat meer te begrijpen.
    quote:
    Het brengt wat meer logica in je code denk ik.
    Hoeft natuurlijk niet, tis net waar je code voor gebruikt gaat worden...
    super-muffindinsdag 30 januari 2007 @ 11:44
    Ik wil me ook wel eens gaan verdiepen in OOP. Ik begin het nu (ook na de uitleg van Smesjz) een beetje te snappen.
    smesjzdinsdag 30 januari 2007 @ 12:17
    quote:
    Op dinsdag 30 januari 2007 11:33 schreef Chandler het volgende:
    Hoeft natuurlijk niet, tis net waar je code voor gebruikt gaat worden...
    Logica in de zin dat je niet OF een hoop variabele global hoeft te maken OF mee als parameter heen en weer hoeft te gooien.

    Zeker als je veel code gaat schrijven kan je losse classes denk ik makkelijker geschikt maken voor hergebruik. Je hoeft ook minder bang te zijn voor conflicten bij variabele en functie naamgeving.

    Je kan een render() method hebben binnen een Pagina object en binnen een Element object en beiden zitten ze elkaar niet de weg. Maar als je geen OO gebruikt moet je dus altijd een prefix gebruiken.

    Kortom: zowel functioneel als OO hebben voor- en nadelen, maar ik denk dat zeker bij grote projectjes als een CMS een OO achtige aanpak het slimst is.

    Voor kleine zaken maakt het weinig uit welke aanpak je hanteert.


    Zo kan je een abstracte classe maken als framework voor verdere implementatie door anderen en op die manier structuur afdwingen.
    Swetseneggerdinsdag 30 januari 2007 @ 12:39
    Het OO kwartje wil bij mij ook maar niet vallen.
    Ik begrijp het concept, maar het goed toepassen blijft zo compleet anders denken dan dat ik na 25 jaar functioneel programmeren gewend ben.
    ralfiedinsdag 30 januari 2007 @ 12:49
    quote:
    Op dinsdag 30 januari 2007 12:39 schreef Swetsenegger het volgende:
    Het OO kwartje wil bij mij ook maar niet vallen.
    Ik begrijp het concept, maar het goed toepassen blijft zo compleet anders denken dan dat ik na 25 jaar functioneel programmeren gewend ben.
    Dat heb ik ook. Bij c++, java en zelfs javascript kan ik zat toepassingen bedenken, maar bij php gaat het niet verder als $db->query("select blah from blah where bla='blabla'"); En zelfs daar is het nut tegenover gewone functies mij nauwelijks duidelijk
    JeRadinsdag 30 januari 2007 @ 12:57
    Ik gebruik bijna alleen maar OO-implementaties in PHP, maar alleen wanneer dit het werken makkelijker maakt of als ik nut zie in het opbouwen van verschillende lagen (extenden).

    Als ik met meerdere databases tegelijk moet werken is het geweldig om het hele idee van link resources in een class weg te werken, het bespaart code en queries zijn makkelijker op één plek goed te debuggen.

    Het extenden heeft voor mij ook ontzettend veel nut; ik heb bijvoorbeeld ooit een basisimplementatie van een tree-index in een class gemaakt. Vervolgens heb ik deze extended naar classes die elk op verschillende manieren gebruik maakten van die index, en er uiteindelijk ook verschillende dingen in konden opslaan en/of op andere manieren konden opvragen.

    Had ik dat proceduraal gedaan, dan had ik op een gegeven moment door de bomen de tree niet meer gezien.
    smesjzdinsdag 30 januari 2007 @ 13:40
    Bij PHP kan je natuurlijk een authenticatie object maken voor alles wat daar mee te maken heeft er in mikken. Idem voor database interactie.

    Maar het vereist denk ik een andere denkwijze. Idem met een MVC benadering, je kan natuurlijk dbase queries in een template stoppen omdat het zo makkelijk is. Als je echt met OO aan de slag wil kan je eens kijken naar Rubyonrails.

    Bovendien kan je met OO ook allerlei handige methodes gebruiken zoals UML voordat je meteen gaat coden.

    Simpel voorbeeldje van wat OO:

    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
    <?php
    class SimpelLampje {
        
    private $enabled false;
        
    private $voltage "220v";
        
    private $kleur "groen";

       
    public function __construct()
       {
         echo 
    "Ik ben een simpel lampje die aan en uit kan n";
       }

        
    public function AanUit() {
          
    $this->enabled = !$this->enabled;
       }

        
    public function Rapporteer()
       {
         
    $status = ($this->enabled) ? "Aan" "Uit";
          
    printf("Het lampje is nu %s n",$status);
       }

    }

    class 
    BeterLampje extends Simpellampje {
       
    public function __construct()
       {
        
    parent::__construct();
       echo 
    "Maar ik kan nu meer n";
       }

       
    public function dim($percentage 100)
       {
       
    printf"Het licht wordt gedimmed tot %d procent n",$percentage);
       }

    }

    $simpel = new SimpelLampje;
    $simpel->Rapporteer();
    $beter = new BeterLampje;
    $beter->AanUit();
    $beter->Rapporteer();
    $beter->dim(50);
    ?>


    Dit geeft ->

    1
    2
    3
    4
    5
    6
    Ik ben een simpel lampje die aan en uit kan
    Het lampje is nu Uit
    Ik ben een simpel lampje die aan en uit kan
    Maar ik kan nu meer
    Het lampje is nu Aan
    Het licht wordt gedimmed tot 50 procent


    Hoewel erg triviaal, geeft het toch al een beetje de basics van OO weer. Zo hoef je gedeelde functionaliteit (methods, properties) zoals de AanUit en Rapporteer functie maar 1 keer te definieeren.
    Al die basisfunctionaliteit erft de verbetere lamp automatisch.

    En zo kan je natuurlijk ook de AanUit method in BeterLampje opnieuw schrijven zodat ie niet alleen aan of uit kan zijn, maar ook gedimd kan zijn.
    CraZaaydinsdag 30 januari 2007 @ 13:59
    quote:
    Op dinsdag 30 januari 2007 13:40 schreef smesjz het volgende:

    Als je echt met OO aan de slag wil kan je eens kijken naar Rubyonrails.
    Halleluja! Wij doen echt alles met Ruby on Rails, tenzij een opdrachtgever expliciet PHP of Java wil.

    Al is RoR wel iets totaal anders dan PHP (of hoe de meesten hier PHP gebruiken). Rails is bijv. een MVC-framework (een concept dat de meesten hier niet gebruiken en/of kennen). Maarrr... als je eenmaal RoR gebruikt hebt wil je niet meer terug (al was het maar voor de ActiveRecord implementatie ).

    Voor de PHP'ers die langzaamaan willen wennen aan MVC zou ik eens naar Code Igniter of CakePHP kijken.
    keeperdinsdag 30 januari 2007 @ 14:10
    quote:
    Op maandag 29 januari 2007 18:33 schreef keeper het volgende:
    Ik probeer een pagina op een website binnen te halen middels file_get_contents(). Gaat allemaal goed, alleen omdat dit een beveiligde pagina is (joomla-cms) krijg ik dan niet de hele inhoud van de pagina te zien, maar de mededeling "je bent niet gemachtigd, etc". Logisch, want ik ben niet ingelogd op die site.

    Okay, cookies meesturen. Maar hoe werkt dit (of specifieker, hoe werkt dit bij een Joomla pagina)? Welke cookies zijn belangrijk? Ik heb nu deze code:
    [ code verwijderd ]

    Waarbij die laatste waarde in de cookie (419..) een 32 tekens lange Hex-waarde is met als waarde (532...) een 67 tekens lange hex-waarde. Als ik dit zo stuur krijg ik een error "Redirection limit reached". Kan ik daaruit concluderen dat de login op zich werkt, alleen dat ik word teruggestuurd naar de pagina en dat er daar wat mis gaat (ik draai dat script vanaf www.mijnsite.nl/script.php)? Of gaat die login sowieso niet goed? Als ik die laatste waarde met al die hex-shit weglaat, krijg ik gewoon de "niet gemachtigd deze pagina te bekijken error".

    Weet iemand of dit gaat werken? Of kijkt Joomla naar meer dingen tijdens het inloggen, zoals IP waar het vandaan komt of User-Agent? En is dat dan nog ergens mee te nemen?

    disclaimer: het gaat om het automatisch inlezen van een grote pagina met data waar ik wel toegang tot heb via de browser, maar dus niet via een script
    Iemand hier nog sterke ideeën over?

    Of versimpeld: hoe is het mogelijk om via een script te faken dat je bent ingelogd op een site, zodat je gegevens die achter die login staan automatisch binnen kan trekken?
    Swetseneggerdinsdag 30 januari 2007 @ 14:11
    quote:
    Op dinsdag 30 januari 2007 13:40 schreef smesjz het volgende:
    Bij PHP kan je natuurlijk een authenticatie object maken voor alles wat daar mee te maken heeft er in mikken. Idem voor database interactie.

    Maar het vereist denk ik een andere denkwijze. Idem met een MVC benadering, je kan natuurlijk dbase queries in een template stoppen omdat het zo makkelijk is. Als je echt met OO aan de slag wil kan je eens kijken naar Rubyonrails.

    Bovendien kan je met OO ook allerlei handige methodes gebruiken zoals UML voordat je meteen gaat coden.

    Simpel voorbeeldje van wat OO:
    [ code verwijderd ]

    Dit geeft ->
    [ code verwijderd ]

    Hoewel erg triviaal, geeft het toch al een beetje de basics van OO weer. Zo hoef je gedeelde functionaliteit (methods, properties) zoals de AanUit en Rapporteer functie maar 1 keer te definieeren.
    Al die basisfunctionaliteit erft de verbetere lamp automatisch.

    En zo kan je natuurlijk ook de AanUit method in BeterLampje opnieuw schrijven zodat ie niet alleen aan of uit kan zijn, maar ook gedimd kan zijn.
    Hmmm, dit wordt me al duidelijker dan de over bekende 'auto' en 'raceauto' klasses die ik altijd als voorbeeld zie.

    Heb je geen zin om eens een tut te schrijven voor dit topic?
    Sowieso, is het niet voor ons allemaal eens een goed idee om tutorials te maken. Ik kan me voorstellen dat prutsers zoals mijzelf de wat simpelere tuts schrijven, (database results over meerdere pages spreiden enzo) en de goden schrijven dan OO tuts.

    Op die manier krijg je dan in php voor dummies een mooie leercurve. Want een goede tut linken we natuurlijk in de OP.
    JeRadinsdag 30 januari 2007 @ 14:11
    Ruby on Rails en alle andere implementaties van een geautomatiseerd MVC-concept zullen bij mij nooit de voorkeur krijgen. Als er iets is wat ik haat dan is het wel code obfuscatie door generatie. Als ik ooit een performanceprobleem in een applicatie heb is het nu ontzettend gemakkelijk in mijn MVC-model om het probleem te traceren en te debuggen, terwijl bij RoR een bugje in RoR de oorzaak kan zijn. Tuurlijk kan het in PHP ook, maar bij RoR heb je er nog een extra laag bovenop.

    Verder is Ruby echt een kotstaal. [/mening]
    Sjoe538dinsdag 30 januari 2007 @ 14:12
    Hey mensen, ff een kort vraagje regarding SQL

    Ik heb een tabel waar mensen staan ingecheckt om te vertrekken met een vlucht, dit in 2006-10-30 13:30:00.000
    versie. Nu wil ik een passagier zoeken die vandaag vertrekt, vandaag veranderd dus elke dag.. hoe los ik dit op? now() statement werkt niet in query analyzer of now(day)..
    Swetseneggerdinsdag 30 januari 2007 @ 14:12
    quote:
    Op dinsdag 30 januari 2007 14:10 schreef keeper het volgende:

    [..]

    Iemand hier nog sterke ideeën over?

    Of versimpeld: hoe is het mogelijk om via een script te faken dat je bent ingelogd op een site, zodat je gegevens die achter die login staan automatisch binnen kan trekken?
    Nee, dat zou het wel erg onveilig maken he
    Als je weet hoe de login werkt (sessie) kan je die zetten natuurlijk.
    JeRadinsdag 30 januari 2007 @ 14:13
    quote:
    Op dinsdag 30 januari 2007 14:12 schreef Swetsenegger het volgende:

    [..]

    Nee, dat zou het wel erg onveilig maken he
    Als je weet hoe de login werkt (sessie) kan je die zetten natuurlijk.
    Het kan gerust hoor, je hebt alleen wat verstand nodig van het HTTP protocol (en verder is CURL dan een goede optie).
    super-muffindinsdag 30 januari 2007 @ 14:21
    quote:
    Op dinsdag 30 januari 2007 14:11 schreef Swetsenegger het volgende:

    [..]

    Hmmm, dit wordt me al duidelijker dan de over bekende 'auto' en 'raceauto' klasses die ik altijd als voorbeeld zie.

    Heb je geen zin om eens een tut te schrijven voor dit topic?
    Sowieso, is het niet voor ons allemaal eens een goed idee om tutorials te maken. Ik kan me voorstellen dat prutsers zoals mijzelf de wat simpelere tuts schrijven, (database results over meerdere pages spreiden enzo) en de goden schrijven dan OO tuts.

    Op die manier krijg je dan in php voor dummies een mooie leercurve. Want een goede tut linken we natuurlijk in de OP.
    Dat lijkt me wel wat. Zelf ben ik nog een enorme prutser, dus tuts schrijven lijkt me nog geen goede optie
    Swetseneggerdinsdag 30 januari 2007 @ 14:27
    quote:
    Op dinsdag 30 januari 2007 14:13 schreef JeRa het volgende:

    [..]

    Het kan gerust hoor, je hebt alleen wat verstand nodig van het HTTP protocol (en verder is CURL dan een goede optie).
    Hoezo kan het gerust als je niet weet welke sessie info ik set en controleer bij de login?
    hornagedinsdag 30 januari 2007 @ 14:29
    quote:
    Op dinsdag 30 januari 2007 14:12 schreef Sjoe538 het volgende:
    Hey mensen, ff een kort vraagje regarding SQL

    Ik heb een tabel waar mensen staan ingecheckt om te vertrekken met een vlucht, dit in 2006-10-30 13:30:00.000
    versie. Nu wil ik een passagier zoeken die vandaag vertrekt, vandaag veranderd dus elke dag.. hoe los ik dit op? now() statement werkt niet in query analyzer of now(day)..
    uhm? Hoezo werkt now() niet? Ik weet natuurlijk niet je db in elkaar zit maar zoiets moet wel werken:
    1
    2
    3
    SELECT Name, Flight
    FROM CheckedIN
    WHERE DepartDate = Now()

    DepartDate is dan een datetime. Ik weet niet zeker of dit ook goed werkt als dit alleen een date is, maar lijkt me wel
    JeRadinsdag 30 januari 2007 @ 14:30
    quote:
    Op dinsdag 30 januari 2007 14:27 schreef Swetsenegger het volgende:

    [..]

    Hoezo kan het gerust als je niet weet welke sessie info ik set en controleer bij de login?
    Als ik een login bij jou heb en kan inloggen, dan hoef ik (vrijwel altijd) alleen maar rekening te houden met:
    - het IP-adres waarvan ik communiceer
    - de HTTP-headers die ik meestuur (User-Agent, Referer, etc)

    Door een beetje te testen kun je er vrij simpel achterkomen waar jij op controleert
    slakkiedinsdag 30 januari 2007 @ 14:34
    [SQL] datum / tijd functies
    quote:
    Op dinsdag 30 januari 2007 14:28 schreef Sjoe538 het volgende:
    Hallo,

    Ik zit met het volgende probleem, ik wil een passagier die is ingecheckt vergelijken met een vlucht zijn vertrektijd. Maar de query die ik heb gemaakt moet het dus voor 'vandaag' opgeven, oftewel, alle passagiers die vandaag vertrekken. Maar dit kan dus elke dag veranderen.. Hoe los ik dit op? Met day vergelijk ik alleen de dag.. dus hoe pas ik de now() functie toe?
    1
    2
    WHERE date(vlucht.vertrektijd) = 
      day(passagier.inchecktijdstip)
    Swetseneggerdinsdag 30 januari 2007 @ 14:35
    quote:
    Op dinsdag 30 januari 2007 14:30 schreef JeRa het volgende:

    [..]

    Als ik een login bij jou heb en kan inloggen, dan hoef ik (vrijwel altijd) alleen maar rekening te houden met:
    - het IP-adres waarvan ik communiceer
    - de HTTP-headers die ik meestuur (User-Agent, Referer, etc)

    Door een beetje te testen kun je er vrij simpel achterkomen waar jij op controleert
    Dan ga je er dus al vanuit dat je kan inloggen
    JeRadinsdag 30 januari 2007 @ 14:36
    quote:
    Op dinsdag 30 januari 2007 14:35 schreef Swetsenegger het volgende:

    [..]

    Dan ga je er dus al vanuit dat je kan inloggen
    Ja...dat was het hele idee toch? (zie de post van keeper)
    super-muffindinsdag 30 januari 2007 @ 14:38
    quote:
    Op dinsdag 30 januari 2007 14:12 schreef Sjoe538 het volgende:
    Hey mensen, ff een kort vraagje regarding SQL

    Ik heb een tabel waar mensen staan ingecheckt om te vertrekken met een vlucht, dit in 2006-10-30 13:30:00.000
    versie. Nu wil ik een passagier zoeken die vandaag vertrekt, vandaag veranderd dus elke dag.. hoe los ik dit op? now() statement werkt niet in query analyzer of now(day)..
    Is het veld dat je controleerd wel een DATETIME veld of iets in die richting?
    Swetseneggerdinsdag 30 januari 2007 @ 14:39
    quote:
    Op dinsdag 30 januari 2007 14:36 schreef JeRa het volgende:

    [..]

    Ja...dat was het hele idee toch? (zie de post van keeper)
    Daarin werd mij niet duidelijk dat hij een login had
    slakkiedinsdag 30 januari 2007 @ 14:41
    quote:
    Op dinsdag 30 januari 2007 14:11 schreef Swetsenegger het volgende:
    Sowieso, is het niet voor ons allemaal eens een goed idee om tutorials te maken. Ik kan me voorstellen dat prutsers zoals mijzelf de wat simpelere tuts schrijven, (database results over meerdere pages spreiden enzo) en de goden schrijven dan OO tuts.
    Ik ga ff offtopic, maar puik idee (pleur het op de wiki, zo zijn er meerdere onderwerpen - die niks met dit topic te maken hebben) waar we FAQ's / HOWTO's / tutorials voor kunnen gebruiken/aanmaken.
    JeRadinsdag 30 januari 2007 @ 14:43
    quote:
    Op dinsdag 30 januari 2007 14:39 schreef Swetsenegger het volgende:

    [..]

    Daarin werd mij niet duidelijk dat hij een login had
    Mij wel
    quote:
    Ik probeer een pagina op een website binnen te halen middels file_get_contents(). Gaat allemaal goed, alleen omdat dit een beveiligde pagina is (joomla-cms) krijg ik dan niet de hele inhoud van de pagina te zien, maar de mededeling "je bent niet gemachtigd, etc". Logisch, want ik ben niet ingelogd op die site.

    (...)

    disclaimer: het gaat om het automatisch inlezen van een grote pagina met data waar ik wel toegang tot heb via de browser, maar dus niet via een script
    smesjzdinsdag 30 januari 2007 @ 14:46
    quote:
    Op dinsdag 30 januari 2007 13:59 schreef CraZaay het volgende:
    Halleluja! Wij doen echt alles met Ruby on Rails, tenzij een opdrachtgever expliciet PHP of Java wil.
    Doe de groeten aan Thijs als je hem ziet.
    smesjzdinsdag 30 januari 2007 @ 14:53
    quote:
    Op dinsdag 30 januari 2007 14:11 schreef JeRa het volgende:
    Ruby on Rails en alle andere implementaties van een geautomatiseerd MVC-concept zullen bij mij nooit de voorkeur krijgen. Als er iets is wat ik haat dan is het wel code obfuscatie door generatie. Als ik ooit een performanceprobleem in een applicatie heb is het nu ontzettend gemakkelijk in mijn MVC-model om het probleem te traceren en te debuggen, terwijl bij RoR een bugje in RoR de oorzaak kan zijn. Tuurlijk kan het in PHP ook, maar bij RoR heb je er nog een extra laag bovenop.

    Verder is Ruby echt een kotstaal. [/mening]
    Als er een bug in RoR code zit, wordt dat meestal al heel snel opgemerkt omdat veel mensen het gebruiken. Ik heb wel eens last gehad van een memory leak in RoR waardoor een app ontzettend traag was als ie in debug mode wordt gedraaid. Dan is die extra laag wel een nadeel.
    Maar ik vind het zonde van m'n tijd om alle code zelf te schrijven als ik bijv. een attachment wil toevoegen aan een mail om maar iets te noemen of een heel MVC framework neer te mikken.

    Die magic methods van Ruby zoals: Lamp.find_by_kleur('groen') vind ik alleen maar makkelijk. Scheelt mij weer gepruts met SQL.

    Maar ik ga ook maar weer eens ontopic
    Sjoe538dinsdag 30 januari 2007 @ 14:57
    quote:
    Op dinsdag 30 januari 2007 14:12 schreef Sjoe538 het volgende:
    Hey mensen, ff een kort vraagje regarding SQL

    Ik heb een tabel waar mensen staan ingecheckt om te vertrekken met een vlucht, dit in 2006-10-30 13:30:00.000
    versie. Nu wil ik een passagier zoeken die vandaag vertrekt, vandaag veranderd dus elke dag.. hoe los ik dit op? now() statement werkt niet in query analyzer of now(day)..
    smesjzdinsdag 30 januari 2007 @ 15:00
    quote:
    Op dinsdag 30 januari 2007 14:11 schreef Swetsenegger het volgende:
    Heb je geen zin om eens een tut te schrijven voor dit topic?
    Sowieso, is het niet voor ons allemaal eens een goed idee om tutorials te maken. Ik kan me voorstellen dat prutsers zoals mijzelf de wat simpelere tuts schrijven, (database results over meerdere pages spreiden enzo) en de goden schrijven dan OO tuts.

    Op die manier krijg je dan in php voor dummies een mooie leercurve. Want een goede tut linken we natuurlijk in de OP.
    Een tutorial schrijven in het Nederlands kan ik wel doen, maar ik heb zo het gevoel dat zoiets er al is.
    Maar ik zou het dan graag met oefeningen uitbereiden, waarbij voor mij part alleen met pseudo-code gewerkt wordt. Een goede voorbereiding en goede eerste opzet van classes is het belangrijkst.

    Een auth class maken in een tutorial kan wel aardig zijn, maar het moet iets uitdagenders zijn, en niet al te complex omdat anders niet meer te volgen is.
    Aibmidinsdag 30 januari 2007 @ 15:10
    quote:
    Op dinsdag 30 januari 2007 14:57 schreef Sjoe538 het volgende:

    [..]
    Je wilt dus gewoon de huidige dag hebben? Volgens mij kan dat met day(currentdate()), of day(now()), afhankelijk van wat je gebruikt. Wel een tijdje geleden dat ik iets met SQL heb gedaan, dus kan er naast zitten
    Swetseneggerdinsdag 30 januari 2007 @ 15:14
    quote:
    Op dinsdag 30 januari 2007 15:00 schreef smesjz het volgende:

    [..]

    Een tutorial schrijven in het Nederlands kan ik wel doen, maar ik heb zo het gevoel dat zoiets er al is.
    Maar ik zou het dan graag met oefeningen uitbereiden, waarbij voor mij part alleen met pseudo-code gewerkt wordt. Een goede voorbereiding en goede eerste opzet van classes is het belangrijkst.

    Een auth class maken in een tutorial kan wel aardig zijn, maar het moet iets uitdagenders zijn, en niet al te complex omdat anders niet meer te volgen is.
    [/quote]
    Ik zou het graag zien.
    Sjoe538dinsdag 30 januari 2007 @ 15:43
    1WHERE day(vlucht.vertrektijd) = day(passagier.inchecktijdstip) and day(now())


    now is not a recognized function name

    1WHERE day(vlucht.vertrektijd) = day(passagier.inchecktijdstip) and day(currentdate())


    currentdate is not a .. etc.
    Aibmidinsdag 30 januari 2007 @ 15:51
    quote:
    Op dinsdag 30 januari 2007 15:43 schreef Sjoe538 het volgende:

    [ code verwijderd ]

    now is not a recognized function name
    [ code verwijderd ]

    currentdate is not a .. etc.
    En met day(getdate())? Weet nog dat ik hier ook nog mee heb zitten kloten
    Sjoe538dinsdag 30 januari 2007 @ 15:53
    1
    2
    3
    4
    5
    6
    7
    8
    SELECT passagier.passagiernummer, passagier.naam, passagier.vluchtnummer, vlucht.vertrektijd, passagier.balienummer,
    passagier.inchecktijdstip, sum(bagageobject.gewicht) AS 'Totaal gewicht' FROM passagier INNER JOIN vlucht ON 
    passagier.vluchtnummer = vlucht.vluchtnummer INNER JOIN bagageobject ON
    bagageobject.passagiernummer = passagier.passagiernummer
    WHERE day(vlucht.vertrektijd) = day(passagier.inchecktijdstip) and day(getdate())
    GROUP BY passagier.passagiernummer, passagier.naam, passagier.vluchtnummer,
    vlucht.vertrektijd, passagier.balienummer, passagier.inchecktijdstip
    ORDER BY vlucht.vertrektijd, passagier.passagiernummer


    incorrect syntax near the word GROUP.. maar staat daar wel goed toch O.o
    smesjzdinsdag 30 januari 2007 @ 16:19
    quote:
    and day(getdate()) GROUP BY passagier.passagiernummer
    Dat is dus niet goed
    Sjoe538dinsdag 30 januari 2007 @ 16:22
    Er moet nog iets achter / tussen de getdate functie?
    Aibmidinsdag 30 januari 2007 @ 16:25
    quote:
    Op dinsdag 30 januari 2007 16:22 schreef Sjoe538 het volgende:
    Er moet nog iets achter / tussen de getdate functie?
    Na de AND moet een compleet nieuwe statement komen.
    Sjoe538dinsdag 30 januari 2007 @ 16:33
    1
    2
    3
    4
    5
    6
    WHERE day(vlucht.vertrektijd) = day(passagier.inchecktijdstip) and 
    day(getdate()) = day(vlucht.vertrektijd)
    GROUP BY passagier.passagiernummer, passagier.naam, passagier.vluchtnummer,
    vlucht.vertrektijd, passagier.balienummer, passagier.inchecktijdstip
    ORDER BY vlucht.vertrektijd, passagier.passagiernummer
     


    Doet het wel, geeft alleen een datum van ergens in 2006 weer.. dus klopt nog niet..
    Sjoe538dinsdag 30 januari 2007 @ 16:35
    pass. nr
    19
    naam
    Jones GJ
    vluchtnummer
    5315
    vertrektijd
    2006-10-30 13:30:00.000
    balienummer
    2
    inchecktijdstip
    2006-10-30 11:51:00.000 18.00

    klopt niks van dus..
    Aibmidinsdag 30 januari 2007 @ 16:36
    quote:
    Op dinsdag 30 januari 2007 16:33 schreef Sjoe538 het volgende:

    [ code verwijderd ]

    Doet het wel, geeft alleen een datum van ergens in 2006 weer.. dus klopt nog niet..
    Je kijkt nu alleen naar de dag. Als je jaar er bij wilt moet je ook nog year(bla)=year(getdate()) er bij doen natuurlijk.
    Sjoe538dinsdag 30 januari 2007 @ 16:37
    quote:
    Op dinsdag 30 januari 2007 16:36 schreef Aibmi het volgende:

    [..]

    Je kijkt nu alleen naar de dag. Als je jaar er bij wilt moet je ook nog year(bla)=year(getdate()) er bij doen natuurlijk.
    zucht.. tuurlijk.. Ik kijk er vanavond wel verder na.. eerst werken.
    Sjoe538dinsdag 30 januari 2007 @ 16:42
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    SELECT passagier.passagiernummer, passagier.naam, passagier.vluchtnummer, vlucht.vertrektijd, passagier.balienummer,
    passagier.inchecktijdstip, sum(bagageobject.gewicht) AS 'Totaal gewicht' FROM passagier INNER JOIN vlucht ON 
    passagier.vluchtnummer = vlucht.vluchtnummer INNER JOIN bagageobject ON
    bagageobject.passagiernummer = passagier.passagiernummer
    WHERE day(vlucht.vertrektijd) = day(passagier.inchecktijdstip) and 
    month(vlucht.vertrektijd) = month(passagier.inchecktijdstip) and 
    year(vlucht.vertrektijd) = year(passagier.inchecktijdstip) and 
    day(getdate()) = day(vlucht.vertrektijd) and
    month(getdate()) = month(vlucht.vertrektijd) and
    year(getdate()) = year(vlucht.vertrektijd) 
    GROUP BY passagier.passagiernummer, passagier.naam, passagier.vluchtnummer,
    vlucht.vertrektijd, passagier.balienummer, passagier.inchecktijdstip
    ORDER BY vlucht.vertrektijd, passagier.passagiernummer


    yay, kon t niet laten.

    En nu ben ik echt weg
    Pelgrimdinsdag 30 januari 2007 @ 17:12
    Is het mogelijk om via een query de positie van een bepaald items weer te geven. Stel ik heb een tabel met reacties, ik selecteer die reactie. Kan ik dan ook opvragen dat een bepaalde reactie bijvoorbeeld reactie 45 van de 70 is? Hoe doe ik dit?
    Chandlerdinsdag 30 januari 2007 @ 17:38
    LIMIT 45, 15 = vanaf 45 t/m 60..
    Chandlerdinsdag 30 januari 2007 @ 18:52
    Kleine vraag.. Stel ik heb het volgende.

    Ditiseenheleleukevraag,alleenzittenallewoordenaanelkaar.

    Dit is een stukje text die een layout naar de mallemoer kan helpen, heeft iemand een idee hoe ik dit het beste kan uitvullen zodat de text onder elkaar komt ipv de layout verneukt?
    Pelgrimdinsdag 30 januari 2007 @ 19:03
    quote:
    Op dinsdag 30 januari 2007 17:38 schreef Chandler het volgende:
    LIMIT 45, 15 = vanaf 45 t/m 60..
    Ik wil dit eigenlijk doen aan de hand van het volgende. Op een forum dat ik maak kan een reactie bewerkt worden, aangezien de reacties verdeeld zijn over meerdere pagina's wil ik dat na het bewerken de gebruiker automatisch naar zijn reactie gaat op bijvoorbeeld pagina 2. Daarom wil ik dus weten wat de positie is van de reactie in kwestie. Hopelijk is deze uitleg iets duidelijk.
    JeRadinsdag 30 januari 2007 @ 19:10
    quote:
    Op dinsdag 30 januari 2007 19:03 schreef Pelgrim het volgende:

    [..]

    Ik wil dit eigenlijk doen aan de hand van het volgende. Op een forum dat ik maak kan een reactie bewerkt worden, aangezien de reacties verdeeld zijn over meerdere pagina's wil ik dat na het bewerken de gebruiker automatisch naar zijn reactie gaat op bijvoorbeeld pagina 2. Daarom wil ik dus weten wat de positie is van de reactie in kwestie. Hopelijk is deze uitleg iets duidelijk.
    Dat gaat je niet makkelijk lukken zonder ofwel handmatig te tellen via PHP of een slimme LIMIT, of er een aparte counter aan te hangen die de positie van een bericht in een topic weergeeft. Die moet je dan wel bij elke delete e.d. aanpassen
    splendordinsdag 30 januari 2007 @ 19:17
    quote:
    Op dinsdag 30 januari 2007 18:52 schreef Chandler het volgende:
    Kleine vraag.. Stel ik heb het volgende.

    Ditiseenheleleukevraag,alleenzittenallewoordenaanelkaar.

    Dit is een stukje text die een layout naar de mallemoer kan helpen, heeft iemand een idee hoe ik dit het beste kan uitvullen zodat de text onder elkaar komt ipv de layout verneukt?
    Example 2. wordwrap() example
    1
    2
    3
    4
    5
    6
    <?php
    $text = "A very long woooooooooooord.";
    $newtext = wordwrap($text, 8, "n", 1);

    echo "$newtextn";
    ?> 

    This example would display:
    1
    2
    3
    4
    A very
    long
    wooooooo
    ooooord.

    http://nl2.php.net/manual/en/function.wordwrap.php

    Toevallig vandaag tegengekomen op zoek naar iets anders.
    Het probleem alleen is dat iemand die zijn lettergrootte van de browser anders ingesteld heeft staan vaak alsnog je layout verknalt.
    the_disheaverdinsdag 30 januari 2007 @ 19:26
    quote:
    Op dinsdag 30 januari 2007 18:52 schreef Chandler het volgende:
    Kleine vraag.. Stel ik heb het volgende.

    Ditiseenheleleukevraag,alleenzittenallewoordenaanelkaar.

    Dit is een stukje text die een layout naar de mallemoer kan helpen, heeft iemand een idee hoe ik dit het beste kan uitvullen zodat de text onder elkaar komt ipv de layout verneukt?
    ehhm, in het CSS overflow: hidden of overflow: scroll gebruiken. Maar is totaal niet ideaal dus.

    Je kunt van alle woorden de lengte gaan tellen via php (ideetje is explode bij spaties, via loop en count bij een bepaalde waarde de tekst gaan opsplitsen (substr ?), en vervolgens implode).

    edit: wordwrap is idd beter

    Maar aangezien je waarschijnlijk geen monospaced font gebruikt hoeft een aantal tekens niet direct layout verneukend te zijn. Maar dan heb je wel een streepje ofzo in je tekst...
    Tuvai.netdinsdag 30 januari 2007 @ 19:27
    quote:
    Op dinsdag 30 januari 2007 19:17 schreef splendor het volgende:

    [..]

    Example 2. wordwrap() example
    [ code verwijderd ]

    This example would display:
    [ code verwijderd ]

    http://nl2.php.net/manual/en/function.wordwrap.php

    Toevallig vandaag tegengekomen op zoek naar iets anders.
    Het probleem alleen is dat iemand die zijn lettergrootte van de browser anders ingesteld heeft staan vaak alsnog je layout verknalt.
    Wordwrap() is inderdaad handig om lange strings te 'breken'. Maar een nog simpele oplossing kan via simpele HTML en CSS. Gewoon een div layer gebruiken waar het betreffende stukje tekst in moet. Fok doet dit ook als ik het goed heb. Ik ben zelf niet zo dol op wordwrap(), beetje lompe functie vind ik het.
    the_disheaverdinsdag 30 januari 2007 @ 19:29
    quote:
    Op dinsdag 30 januari 2007 19:27 schreef Tuvai.net het volgende:

    [..]

    Wordwrap() is inderdaad handig om lange strings te 'breken'. Maar een nog simpele oplossing kan via simpele HTML en CSS. :) Gewoon een div layer gebruiken waar het betreffende stukje tekst in moet. Fok doet dit ook als ik het goed heb. Ik ben zelf niet zo dol op wordwrap(), beetje lompe functie vind ik het.
    divje met een width gaat niet werken.
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    <html>

    <head>
    <style type="text/css">

    div {width: 10px;}
    </style>
    </head>

    <body>

    <div>Ditiseenheleleukevraag,alleenzittenallewoordenaanelkaar</div>
    </body>

    </html>
    Tuvai.netdinsdag 30 januari 2007 @ 19:32
    Ditiseenheleleukevraag,alleenzittenallewoordenaanelkaarDitiseenheleleukevraag,alleenzittenallewoordenaanelkaar


    Wat Fok hier doet vind ik zelf de mooiste oplossing.

    Je kunt natuurlijk ook voor een div met een vaste width met de overflow klooien. Krijg je wel een scrollbalkje waar ik nogmaals persoonlijk niet zo dol op ben. Gewoon een van de vele manieren.
    keeperdinsdag 30 januari 2007 @ 20:05
    quote:
    Op dinsdag 30 januari 2007 14:30 schreef JeRa het volgende:
    Door een beetje te testen kun je er vrij simpel achterkomen waar jij op controleert
    Okay, het is dus alleen door middel van trial&error te doen. Had ik ook al gedacht, eigenlijk. Het gaat trouwens om een Joomla-site, dus misschien iemand al bekend met wat daar zoal wordt gecheckt? Ik had zelf geprobeerd alle cookies die ik van die site heb mee te sturen in een HTTP-header, gecombineerd met file_get_contents, maar dit geeft dus een 'redirection limit' error.

    Andere tips nog?
    smesjzdinsdag 30 januari 2007 @ 23:41
    quote:
    Op dinsdag 30 januari 2007 15:14 schreef Swetsenegger het volgende:
    Ik zou het graag zien.
    Ik zal een tutorial schrijven a.d.h.v. tenminste twee classes: Student en Vak (of Project) en misschien dat ik er nog een paar bij verzin als dat nuttig is.

    Lijkt je dat wat?

    Het gaat mij vooral om een OO aanpak en niet zo zeer om direct een OO CMS neer te zetten.
    Chandlerwoensdag 31 januari 2007 @ 09:56
    wordwrap is niet helemaal wat ik zoek, want die split gewoon de string ongeacht er spaties in zitten... ik wil gewoon een zin een spatie geven daar waar er geen spatie.

    Stel dus ik heb jou zin

    Ditiseenheleleukevraag,alleenzittenallewoordenaanelkaarDitiseenheleleukevraag,alleenzittenallewoordenaanelkaar

    dan wil ik niet dat de string gewoon netjes een spatie krijgt bv

    Ditiseenheleleukevraag, alleenzittenallewoordenaanelkaar Ditiseenheleleukevraag, alleenzittenallewoordenaanelkaar

    want als ik wordwrap gebruik krijg en ik heb de volgende zin

    hello dit is een tekst met gewoon spaties!

    uitkomst:

    hello dit is een tekst
    met gewoon spaties

    en dat ben ik dus net weer niet nodig
    Swetseneggerwoensdag 31 januari 2007 @ 10:00
    quote:
    Op dinsdag 30 januari 2007 23:41 schreef smesjz het volgende:

    [..]

    Ik zal een tutorial schrijven a.d.h.v. tenminste twee classes: Student en Vak (of Project) en misschien dat ik er nog een paar bij verzin als dat nuttig is.

    Lijkt je dat wat?

    Het gaat mij vooral om een OO aanpak en niet zo zeer om direct een OO CMS neer te zetten.
    Top, het gaat mij ook om de OO aanpak, als het kwartje valt kan ik de rest zelf wel
    Chandlerwoensdag 31 januari 2007 @ 11:01
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    <?php

    $text = "in deze zin zit een heeeeeeelerglangwoooooooooooorddienietdoordebeugelkan dus gesplitst moet worden!";

    $x = explode(" ", $text);

    foreach ($x as $id => $key)
    {
        if (strlen($key) > 20)
        {
            $x[$id] = wordwrap($key, 20, "- ", 1);
        }
    }

    echo implode(" ", $x);

    ?>


    zo... zelf een oplossing bedacht! iemand een betere versie?
    Tuvai.netwoensdag 31 januari 2007 @ 11:05
    Ik zou het zelf ook zo doen. Maar ik zou dan wel 'dat woord' in plaats van 'die woord' gebruiken.
    the_disheaverwoensdag 31 januari 2007 @ 14:03
    Ja, en ook via regex komma's en andere puntjes waar geen spatie achter staan een spatie geven, en hetzelfde voor spaties voor hoofdletters (dit dan pas uitvoeren als een woord meer dan 20 tekens heeft)
    Chandlerwoensdag 31 januari 2007 @ 14:05
    mooi idee the_disheaver!!!
    CraZaaywoensdag 31 januari 2007 @ 14:45
    quote:
    Op woensdag 31 januari 2007 14:03 schreef the_disheaver het volgende:
    Ja, en ook via regex komma's en andere puntjes waar geen spatie achter staan een spatie geven, en hetzelfde voor spaties voor hoofdletters (dit dan pas uitvoeren als een woord meer dan 20 tekens heeft)
    Hopen dat mensen dan geen "dus..." of "B.V.D." gaan schrijven

    edit: oh, je zegt erbij dat je dat alleen voor > 20 karakters doet nevermind
    the_disheaverwoensdag 31 januari 2007 @ 19:57
    quote:
    Op woensdag 31 januari 2007 14:45 schreef CraZaay het volgende:

    [..]

    Hopen dat mensen dan geen "dus..." of "B.V.D." gaan schrijven

    edit: oh, je zegt erbij dat je dat alleen voor > 20 karakters doet nevermind
    Wel de regex uitbreiden dat ie bij meerdere puntjes alleen de laatste pakt, meerdere hoofdletters achter elkaar negeert en B.V.D. wijzigd in 'dank'
    JortKwoensdag 31 januari 2007 @ 20:05
    Ik wil de volgende pagina laden:

    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
    <?php
    <HTML><HEAD></HEAD><BODY>

    /* Variabele voor connectie naar MySQL Server */
    $hostname = 'localhost';
    $username = 'ma**';
    $password = 'console';

    /* Variabele voor selecteren juiste database */
    $database_name = 'ma***';

    /* Connecteren aan juiste server en database */
    $connection = mysql_connect($hostname,$username,$password) or die ("Kan geen connectie maken met de Database server!");
    $db = mysql_select_db($database_name,$connection) or die ("Database kan niet gevonden worden!");

    /* Query Library */
    $query01 = 'SELECT * FROM ToDo WHERE READY = "0"';

    /* Result Library*/
    $result01 = mysql_query($query01) or die ("Kan de query niet uitvoeren (Query01)");

    echo
    "<B>Overzicht openstaande activiteiten</B>";
    echo
    "<P>";
    echo
    "<TABLE BORDER='1'>";
    while (
    $row01 = mysql_fetch_array($result01)) {
        
    extract($row01);
        echo
    "<TR><TD>$OMS</TD> <TD>$MEMO</TD></TR>";
    }

    echo
    "</TABLE>";
    mysql_close($connection);

    </
    BODY></HTML>
    ?>


    En het enige wat Firefox laat zien bij het laden van de pagina is een compleet lege pagina, wanneer ik hiervan de source ga bekijken zie ik dit:

    1<HTML><HEAD></HEAD><BODY>


    wanneer ik phpinfo() draai krijg ik wel gewoon de pagina te zien, dus PHP lijkt wel te werken :)

    Wie kan me helpen

    * JortK nog steeds PHP n00b :')
    wobbelwoensdag 31 januari 2007 @ 20:13
    waarom staat er dit in je php pagina?

    <?php
    <HTML><HEAD></HEAD><BODY>
    super-muffinwoensdag 31 januari 2007 @ 20:20
    Ik denk door de PHP tag hier.
    Als hij <HTML><HEAD> direct in je PHP tag <? krijg je een error.
    JortKwoensdag 31 januari 2007 @ 20:24
    Ja ik moet het echt nog doorkrijgen... vandaar de lachwekkende vragen -O-

    Nu is me pagina 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
    <?php
    /* Variabele voor connectie naar MySQL Server */
    $hostname = 'localhost';
    $username = 'ma***';
    $password = 'console';

    /* Variabele voor selecteren juiste database */
    $database_name = '***usdb';

    /* Connecteren aan juiste server en database */
    $connection = mysql_connect($hostname,$username,$password) or die ("Kan geen connectie maken met de Database server!");
    $db = mysql_select_db($database_name,$connection) or die ("Database kan niet gevonden worden!");

    /* Query Library */
    $query01 = 'SELECT * FROM ToDo WHERE READY = "0"';

    /* Result Library*/
    $result01 = mysql_query($query01) or die ("Kan de query niet uitvoeren (Query01)");

    echo
    "<B>Overzicht openstaande activiteiten</B>";
    echo
    "<P>";
    echo
    "<TABLE BORDER='1'>";
    while (
    $row01 = mysql_fetch_array($result01)) {
        
    extract($row01);
        echo
    "<TR><TD>$OMS</TD> <TD>$MEMO</TD></TR>";
    }

    echo
    "</TABLE>";
    mysql_close($connection);
    ?>


    Maar nu zie ik helemaal niets meer ook niet in me source...

    Wanneer ik hem draai in Zend die ik wel 'Overzicht openstaande activiteiten'
    the_disheaverwoensdag 31 januari 2007 @ 20:35
    Is het wel een php bestand?

    Want je zou geen <html>~ etc moeten zien die tussen <?php ... ?> staat.
    edit:

    hmm, als het geeen php-bestand is, zou je wel weer dat <?php moeten zien...

    ehhh, error's in je error_log?

    edit2: html tags mogen wel buiten de <?php -tags. dus:

    1
    2
    3
    <html>etc
    <?php
    php-code...

    of
    1
    2
    3
    <?php
    print "<html> etc";
    php code...


    [ Bericht 36% gewijzigd door the_disheaver op 31-01-2007 20:42:44 ]
    the_disheaverwoensdag 31 januari 2007 @ 20:50
    1echo "<TABLE BORDER='1'>";

    Dit zal neit voor een php error zorgen, maar geeft geen goede html. html elementen moeten in dubbele aanhalingstekens (al zal het voor weinig fouten zorgen denk ik) dus echo ' <table border="1">';

    1    echo "<TR><TD>$OMS</TD> <TD>$MEMO</TD></TR>";

    >
    1    echo "<TR><TD>". $OMS ."</TD> <TD>".$MEMO."</TD></TR>";
    Tuvai.netwoensdag 31 januari 2007 @ 20:58
    Of nog beter, zorg gewoon voor een volledig PHP bestand. Dus niet:

    1
    2
    3
    4
    echo "<html>";
    echo "<head>";
    echo "<title>";
    enzovoorts.


    Maar gewoon:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <?
    echo "<html>
    <head>
    <title></title>

    </head>
    <body>

    <table border=\"0\">
    <tr>
    <td>

    enzovoorts";
    ?>


    Waarom die \"? Zoals the_disheaver al zei, levert het zetten van elemten in apostrophes (oftewel enkele aanhalingstekens) incorrecte HTML op. Als je gewoon " zou gebruiken in een echo "" regel dan neemt de PHP die aanhalingstekens op als PHP code. Door middel van een backslash, oftewel een escape character, vertel je PHP dat de aanhalingstekens waar een backslash voor staat geen PHP code zijn.

    Ik weet dat je nogal wat met SEO doet, Jort, dus is voor jou nóg belangrijker om je HTML correct te hebben. Maar dat weet je zelf ook al denk ik.
    JortKwoensdag 31 januari 2007 @ 21:09
    ja html snap ik wel... maar nu het stuk PHP erbij maakt het in een keer een stuk moeilijker
    JortKwoensdag 31 januari 2007 @ 21:15
    Waarschijnlijk ben ik erachter... verkeerde verwijzing naar PHP.ini... die stond nog naar me oude PHP... die ik niet had verwijderd voor me installatie van XAMPP

    FF verder testen...

    EDIT: hij doet het nu perfect... blijkt dus gewoon dat me code goed is vanaf het begin LOL

    Code netter maken is van latere zorg... ik wil eerst een beetje de taal onder de knie krijgen


    [ Bericht 42% gewijzigd door JortK op 31-01-2007 21:23:37 ]
    markiemarkdonderdag 1 februari 2007 @ 01:26
    Even een snelle vraag.. Kan ik met php de naam van een directory wijzigen. In mijn script maak ik directory's aan, maar deze wil ik kunnen wijzigen.. Iemand een idee hoe? Wissen (rmdir()) en opnieuw aanmaken is geen optie..
    markiemarkdonderdag 1 februari 2007 @ 01:29
    quote:
    Op donderdag 1 februari 2007 01:26 schreef markiemark het volgende:
    Even een snelle vraag.. Kan ik met php de naam van een directory wijzigen. In mijn script maak ik directory's aan, maar deze wil ik kunnen wijzigen.. Iemand een idee hoe? Wissen (rmdir()) en opnieuw aanmaken is geen optie..

    http://www.php.net/manual/en/function.rename.php
    Op een of andere manier vind ik pas de oplossing voor mijn problemen als ik in dit topic heb gereageerd...
    Tuvai.netdonderdag 1 februari 2007 @ 11:24
    quote:
    Op woensdag 31 januari 2007 21:09 schreef JortK het volgende:
    ja html snap ik wel... maar nu het stuk PHP erbij maakt het in een keer een stuk moeilijker :)
    Als ik aan een nieuwe layout of iets dergelijks begin, dan maak ik gewoon eerst de HTML af. Pas wanneer ik op het punt kom dat ik echt PHP code moet gaan gebruiken om bijvoorbeeld MySQL records te weergeven, dan zet ik de boel om. Meestal betekent dat voor mij slechts dat ik door middel van Kladblok " vervang door \", PHP moet openen en sluiten ( <? en [/b]?>[/b]) en de boel in een echo() te zetten. :)

    Stel je het volgende stukje HTML eens voor:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <body>

    <div id="container">

    <div id="header">

    <div id="logo"></div>

    <h2 class="verborgen">Navigatie</h2>
    <ul class="navigatie">


    Ga je dat simpelweg omzetten naar PHP dan krijg je dus dit:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <?
    echo "<body>

    <div id=\"container\">

    <div id=\"header\">

    <div id=\"logo\"></div>

    <h2 class=\"verborgen\">Navigatie</h2>
    <ul class=\"navigatie\">";
    ?>
    JortKdonderdag 1 februari 2007 @ 11:34
    quote:
    Op donderdag 1 februari 2007 11:24 schreef Tuvai.net het volgende:

    [..]

    Als ik aan een nieuwe layout of iets dergelijks begin, dan maak ik gewoon eerst de HTML af. Pas wanneer ik op het punt kom dat ik echt PHP code moet gaan gebruiken om bijvoorbeeld MySQL records te weergeven, dan zet ik de boel om. Meestal betekent dat voor mij slechts dat ik door middel van Kladblok " vervang door \", PHP moet openen en sluiten ( <? en [/b]?>[/b]) en de boel in een echo() te zetten.

    Stel je het volgende stukje HTML eens voor:
    [ code verwijderd ]

    Ga je dat simpelweg omzetten naar PHP dan krijg je dus dit:
    [ code verwijderd ]
    Tis voor 'Intern' gebruik

    Alleen ik maak er gebruik van
    Chandlerdonderdag 1 februari 2007 @ 11:37
    Persoonlijk zou ik HTML buiten php scripting zetten, dit is a. overzichtelijker en b. hoeft het dan niet geparsed te worden (scheelt tijd)

    oftwel zo (sjit bugs in fok)

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    <?php
    // code hier!
    // hieronder zit de sluit tag, maar die zie je niet op FOK? (BUGGG!)

    <html>
    <
    head>
        <
    title>Voorbeeld</title>
    </
    head>
    <
    body>

    // ^^ open tag
    // php scripting etc.

    // hier onder weer een sluit tag!

    </body>
    </
    html>
    ?>

    (hier in code ivm fok bug!)

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

    // code hier!
    // hieronder zit de sluit tag, maar die zie je niet op FOK? (BUGGG!)
    ?>
    <html>
    <head>
        <title>Voorbeeld</title>
    </head>
    <body>
    <?php
    // ^^ open tag 
    // php scripting etc.

    // hier onder weer een sluit tag!
    ?>
    </body>
    </html>


    [ Bericht 30% gewijzigd door Chandler op 01-02-2007 11:39:48 (fok bug) ]
    Tuvai.netdonderdag 1 februari 2007 @ 11:41
    Ik heb zelf niet zo graag dat ik in een PHP bestand twintigduizend keren PHP moet openen en sluiten. Denk dat dat ook komt door het feit dat ik veel PHP gebruik. Als je zeg maar gewoon een statische HTML pagina hebt waarop je d.m.v. PHP een datum wilt weergeven, dan is dat natuurlijk een ander verhaal.

    Parsen met PHP doe ik in een PHP bestand sowieso, dus dan parse ik gewoon alles in PHP.
    the_disheaverdonderdag 1 februari 2007 @ 11:54
    En dat terwijl een echo meer tekens zijn dan php openen en sluiten...
    Tuvai.netdonderdag 1 februari 2007 @ 11:58
    Klopt, maar ik vind het gewoon onhandig qua syntaxis. Ik heb in m'n eigen PHP bestanden altijd alles volledig in PHP, ook de HTML die geparsed word. Het is voor mij dan ook een gewende om met gebackslashde HTML code te werken. Het aantal tekens maakt verder geen mallemoer uit.
    Swetseneggerdonderdag 1 februari 2007 @ 12:38
    quote:
    Op donderdag 1 februari 2007 11:58 schreef Tuvai.net het volgende:
    Klopt, maar ik vind het gewoon onhandig qua syntaxis. Ik heb in m'n eigen PHP bestanden altijd alles volledig in PHP, ook de HTML die geparsed word. Het is voor mij dan ook een gewende om met gebackslashde HTML code te werken. Het aantal tekens maakt verder geen mallemoer uit.
    Mijn highlighter maakt onderscheidt tussen html en php. Als ik alle html parse mis ik dat.
    Tuvai.netdonderdag 1 februari 2007 @ 12:41
    Ik heb altijd met Notepad (+) gewerkt en sinds kort met Notepad++ (met highlighting). Heb geen problemen met de herkenning of iets dergelijks. Maar ik werk dan ook al wat jaartjes op deze manier.
    __Saviour__donderdag 1 februari 2007 @ 12:47
    kun je als een sql verbinding/opdracht niet lukt ipv de die("tekst") opdracht ook iets anders laten uitvoeren, gewoon een compleet ander stuk van het script?
    Swetseneggerdonderdag 1 februari 2007 @ 12:48
    quote:
    Op donderdag 1 februari 2007 12:41 schreef Tuvai.net het volgende:
    Ik heb altijd met Notepad (+) gewerkt en sinds kort met Notepad++ (met highlighting). Heb geen problemen met de herkenning of iets dergelijks. Maar ik werk dan ook al wat jaartjes op deze manier.
    Het gaat niet om herkenning het gaat om een verschil tussen php en html highlighting. PHP designer maakt een verschil in highlighting tussen php en html en dat kan best handig zijn (commentaar in php en html is dus onderscheiden. Best handig, want tenslotte is html commentaar WEL zichtbaar in je source). Zodra je html door php parsed zal de editor de html als inhoud van je functie/language construct highlighten en niet als html functies.

    Daarnaast vind ik het overzichtelijker wanneer ik een source een jaar later weer eens open
    Swetseneggerdonderdag 1 februari 2007 @ 12:49
    quote:
    Op donderdag 1 februari 2007 12:47 schreef __Saviour__ het volgende:
    kun je als een sql verbinding/opdracht niet lukt ipv de die("tekst") opdracht ook iets anders laten uitvoeren, gewoon een compleet ander stuk van het script?
    Je kan ipv die toch gewoon een andere opdracht/functie/what ever in je else stoppen.

    -edit-

    zoiets dus
    1
    2
    3
    4
    5
    if(mysql_connect($hostname,$username,$password)){
    // doe iets
    }else{
    //doe iets anders
    }

    Even uit mijn hoofd, want ik weet niet of mysql_connect een boolean terug geeft.
    Tuvai.netdonderdag 1 februari 2007 @ 12:51
    quote:
    Op donderdag 1 februari 2007 12:47 schreef __Saviour__ het volgende:
    kun je als een sql verbinding/opdracht niet lukt ipv de die("tekst") opdracht ook iets anders laten uitvoeren, gewoon een compleet ander stuk van het script?
    wat je nu hebt is dan:
    mysql_connect(bla,bla,bla) or die('tekst');

    i.p.v. die() kun je dus ook gewoon iets anders uitvoeren, die() is immers ook gewoon een functie die je in bovenstaande regel activeert ALS de mysql_connect() regel niet werkt. D'r kan in plaats van die() dus net zo goed een echo() of een andere functie staan.

    EDIT: En wat Swets zegt kan ook.
    __Saviour__donderdag 1 februari 2007 @ 12:53
    ok, dus dit zou moeten werken?
    1
    2
    3
    4
    $dbconnect = mysql_connect($hostname,$username,$password) or
    {
    // code hier
    }
    Swetseneggerdonderdag 1 februari 2007 @ 12:55
    quote:
    Op donderdag 1 februari 2007 12:53 schreef __Saviour__ het volgende:
    ok, dus dit zou moeten werken?
    [ code verwijderd ]
    Nee volgens mij op die manier 1 functie.

    $con=mysql_connect('','','') or echo "Kut"
    __Saviour__donderdag 1 februari 2007 @ 12:58
    en die manier van jou? kan ik daar wel een variable toewijzen aan de verbinding?
    anders heb er je er toch niks aan, dan kun je niet naar die verbinding verwijzen
    Tuvai.netdonderdag 1 februari 2007 @ 13:01
    mysql_connect() geeft een FALSE terug wanneer die niet lukt. Dus dan zou je ook nog kunnen doen:

    if($dbconnect==FALSE){
    // bla bla
    }

    Gebruik dan wel een @ voor je mysql_connect() (dus $dbconnect=@mysql_connect();) zodat je geen foutmeldingen krijgt wanneer de verbinding dus niet wil.
    Swetseneggerdonderdag 1 februari 2007 @ 13:03
    quote:
    Op donderdag 1 februari 2007 12:58 schreef __Saviour__ het volgende:
    en die manier van jou? kan ik daar wel een variable toewijzen aan de verbinding?
    anders heb er je er toch niks aan, dan kun je niet naar die verbinding verwijzen
    1
    2
    3
    4
    5
    6
    $con=mysql_connect($hostname,$username,$password);
    if($con!=FALSE){
    // doe iets
    }else{
    //doe iets anders
    }
    __Saviour__donderdag 1 februari 2007 @ 13:14
    ha, dat lijkt logisch te zijn. eens proberen. thanx allebei.
    Chandlerdonderdag 1 februari 2007 @ 13:31
    OR roepfunctieaan(met,param,eters)
    JortKdonderdag 1 februari 2007 @ 13:32
    Volgende uitdaging is het wegschrijven van meerdere records..

    Ik vul een form in met drie rijen.. en die moeten met een druk op de knop allemaal weggeschreven worden als aparte regels

    Kijken of ik hier uit kan komen (mochten jullie voorbeeldscripts hebben, graag )
    Tuvai.netdonderdag 1 februari 2007 @ 13:37
    quote:
    Op donderdag 1 februari 2007 13:32 schreef JortK het volgende:
    Volgende uitdaging is het wegschrijven van meerdere records..

    Ik vul een form in met drie rijen.. en die moeten met een druk op de knop allemaal weggeschreven worden als aparte regels

    Kijken of ik hier uit kan komen (mochten jullie voorbeeldscripts hebben, graag )
    OF het er nou 1 of 100 zijn, maakt allemaal niks uit.

    Meestal heb je, wanneer een formulier gepost word middels _POST, een dergelijk PHP script:
    1
    2
    3
    4
    5
    6
    <?php
    if($_POST['actie']=='verzenden'){
    mysql_query("INSERT INTO bla (veld) VALUES ('inhoud van vledje bla')");
    header("location:bestand.php");
    }
    ?>


    mysql_query() en header() zijn dan beide functies die aangeroepen worden, en afgesloten worden met ;. In feite heb je met een scriptje waar 3 records weggeschreven moeten worden precies hetzelfde, maar dan 3 keer een mysql_query(). header() heb ik er trouwens bij gezet. Het header() regeltje boven redirect je door naar 'bestand.php', zodat de scriptuitvoer niet herhaald kan worden door middel van een refresh.

    Oh en Jort, als je met formulieren gaat werken waar gebruikers input leveren, wees je dan wel voorzichtig met 'SQL injection'?
    JortKdonderdag 1 februari 2007 @ 13:41
    quote:
    Op donderdag 1 februari 2007 13:37 schreef Tuvai.net het volgende:

    [..]

    OF het er nou 1 of 100 zijn, maakt allemaal niks uit.

    Meestal heb je, wanneer een formulier gepost word middels _POST, een dergelijk PHP script:
    [ code verwijderd ]

    mysql_query() en header() zijn dan beide functies die aangeroepen worden, en afgesloten worden met ;. In feite heb je met een scriptje waar 3 records weggeschreven moeten worden precies hetzelfde, maar dan 3 keer een mysql_query(). header() heb ik er trouwens bij gezet. Het header() regeltje boven redirect je door naar 'bestand.php', zodat de scriptuitvoer niet herhaald kan worden door middel van een refresh.

    Oh en Jort, als je met formulieren gaat werken waar gebruikers input leveren, wees je dan wel voorzichtig met 'SQL injection'?
    Alleen ik werk er mee
    ralfiedonderdag 1 februari 2007 @ 13:53
    quote:
    Op donderdag 1 februari 2007 13:03 schreef Swetsenegger het volgende:

    [..]
    [ code verwijderd ]
    Nog iets korter
    1
    2
    3
    4
    5
    if(!$con=mysql_connect($hostname,$username,$password)){
    // doe iets
    }else{
    //doe iets anders
    }
    Tuvai.netdonderdag 1 februari 2007 @ 13:54
    Hmm, maar dan nog, ik ben altijd paranoïde genoeg om ook de afgeschermde gedeeltes te beveiligen. Ook jij kunt als beheerder foute maken, en stel d'r breekt eens een keertje iemand in jouw afgeschermde gedeelte, dan kan die toch niks met je MySQL doen.
    gorggdonderdag 1 februari 2007 @ 14:33
    Ik wil stukjes tekst gehaald uit HTML wegschrijven naar txt-files. Probleem is dat hij tekens als  & nbsp;, & amp;, & #8220; enz. niet automatisch omzet naar bv & of ". Ik kan natuurlijk gebruik maken van str_replace en handmatig aangeven wat hij moet vervangen, maar dat lijkt mij niet de beste manier. Waarschijnlijk bestaat hier wel een of andere functie voor ofzo?
    Tuvai.netdonderdag 1 februari 2007 @ 14:38
    html_entity_decode()
    gorggdonderdag 1 februari 2007 @ 14:44
    Aha, dat dus. Merci.
    JortKdonderdag 1 februari 2007 @ 14:45
    als ik dat zo zie heeft PHP voor alles wel een functie gemaakt lol
    Swetseneggerdonderdag 1 februari 2007 @ 15:19
    quote:
    Op donderdag 1 februari 2007 14:45 schreef JortK het volgende:
    als ik dat zo zie heeft PHP voor alles wel een functie gemaakt lol
    Ik heb in het verleden wel functies geschreven die gewoon bestonden.
    Tegenwoordig zoek ik wel even goed in de manual
    Chandlerdonderdag 1 februari 2007 @ 16:29
    quote:
    Op donderdag 1 februari 2007 15:19 schreef Swetsenegger het volgende:
    Ik heb in het verleden wel functies geschreven die gewoon bestonden.
    Tegenwoordig zoek ik wel even goed in de manual
    Deels vind ik het wel jammer maar aan de andere kant maakt het scripten ook weer heel gemakkelijk
    Swetseneggerdonderdag 1 februari 2007 @ 16:40
    quote:
    Op donderdag 1 februari 2007 16:29 schreef Chandler het volgende:

    [..]

    Deels vind ik het wel jammer maar aan de andere kant maakt het scripten ook weer heel gemakkelijk
    Ik denk dat er nog genoeg te scripten overblijft. Maar als je eht echt jammer vind, raadt ik je assembley aan.... Daar mag je ALLES zelf verzinnen (behalve optellen, aftrekken en delen enzo)
    HuHudonderdag 1 februari 2007 @ 18:57
    quote:
    Op donderdag 1 februari 2007 16:40 schreef Swetsenegger het volgende:

    [..]

    Ik denk dat er nog genoeg te scripten overblijft. Maar als je eht echt jammer vind, raadt ik je assembley aan.... Daar mag je ALLES zelf verzinnen (behalve optellen, aftrekken en delen enzo)
    Je kan natuurlijk ook altijd nog je eigen programmeertaal implementeren en zelf een compiler ervoor schrijven.
    Chandlerdonderdag 1 februari 2007 @ 19:18
    quote:
    Op donderdag 1 februari 2007 16:40 schreef Swetsenegger het volgende:

    [..]

    Ik denk dat er nog genoeg te scripten overblijft. Maar als je eht echt jammer vind, raadt ik je assembley aan.... Daar mag je ALLES zelf verzinnen (behalve optellen, aftrekken en delen enzo)
    Ooit eens 1 progie mee gemaakt om de scherm mode naar mode 13 te veranderen maaruh voor mij te hoog gegrepen, want je moet bij iedere JMP, MOV, AS etc etc etc gaan nadenken over wat het allemaal voor consequenties zou kunnen hebben..