FOK!forum / Digital Corner / [PHP/(My)SQL] voor dummies - Deel 45
Darkomenwoensdag 20 juni 2007 @ 14:47

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


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 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


  • W3Schools PHP
  • W3Schools SQL

    Deze OP en instructies voor nieuw topic: http://wiki.fok.nl/index.php/OP/PHP

    [ Bericht 2% gewijzigd door Darkomen op 20-06-2007 14:52:58 ]
  • Darkomenwoensdag 20 juni 2007 @ 14:47
    Mn eerste keer een OP op FOK

    Hopelijk goed gedaan, ga nog ff alle andere topics van 42 -44 toevoegen
    JeRawoensdag 20 juni 2007 @ 14:48
    De OP moet nodig geüpdatet worden

    edit: spuit <?php echo '11'; ?>
    Darkomenwoensdag 20 juni 2007 @ 14:51
    Ja idd, zag het ook ben het ook nu aan het doen
    WyriHaximuswoensdag 20 juni 2007 @ 14:53
    TerugVindPpppppppp erhm anyway vanmiddag maar eens lekker verder met me CAPTCHA's en user databases .
    Darkomenwoensdag 20 juni 2007 @ 14:54
    quote:
    Op woensdag 20 juni 2007 13:58 schreef PiRANiA het volgende:

    [..]

    als het te lastig is gaan ze gelijk naar andere site...
    tenzij je een grote site hebt...
    We zijn niet een enorme site, maar zo'n 8600 unieke bezoeken per dag
    WyriHaximuswoensdag 20 juni 2007 @ 14:57
    quote:
    Op woensdag 20 juni 2007 14:54 schreef Darkomen het volgende:

    [..]

    We zijn niet een enorme site, maar zo'n 8600 unieke bezoeken per dag
    Even goed nog lekker . Ga deze vandaag intregreren in me CAPTCHA class: http://www.phpclasses.org/browse/package/3929.html

    Misschien ook iets voor jouw om naar te kijken .
    Darkomenwoensdag 20 juni 2007 @ 15:02
    Ruim voldoende.

    Ik ben de hele wesbite toch aan het herbouwen, bouw ook mn eigen chapta denk ik
    En anders idd zo'n class.
    PiRANiAwoensdag 20 juni 2007 @ 15:03
    You need to be a subscriber and log in to access this file. ><
    te fokkin irritantvp
    WyriHaximuswoensdag 20 juni 2007 @ 15:08
    quote:
    Op woensdag 20 juni 2007 15:03 schreef PiRANiA het volgende:
    You need to be a subscriber and log in to access this file. ><
    te fokkin irritantvp
    Moet ik hem ff ergens uploaden voor jullie?

    http://rapidshare.com/fil(...)07-06-08.tar.gz.html sorry voor de rapidshare link maar dat was ff het makkelijksts en snelst

    * WyriHaximus moet eens eigen filehosting gaan bouwen
    Xcaliburwoensdag 20 juni 2007 @ 15:16
    Ik gebruik nu ook zo'n vraag-check op een phpBB board trouwens, en die werkt feilloos... sinds 11 mei zo'n 1100 spambots geblocked
    PiRANiAwoensdag 20 juni 2007 @ 15:24
    quote:
    Op woensdag 20 juni 2007 15:16 schreef Xcalibur het volgende:
    Ik gebruik nu ook zo'n vraag-check op een phpBB board trouwens, en die werkt feilloos... sinds 11 mei zo'n 1100 spambots geblocked
    stats zijn altijd leuk
    Geqxonwoensdag 20 juni 2007 @ 15:27
    TVP.
    fokME2woensdag 20 juni 2007 @ 15:48
    quote:
    Op woensdag 20 juni 2007 13:31 schreef WyriHaximus het volgende:

    [..]

    Hoe vaak proberen ze het eingelijk? Ook altijd leuk om te weten
    Geen idee eigenlijk. De site is niet (zo heel) druk bezocht, maar voor de beveiliging kwamen er zo'n 10 bots per dag langs?
    WyriHaximuswoensdag 20 juni 2007 @ 15:52
    quote:
    Op woensdag 20 juni 2007 15:48 schreef fokME2 het volgende:

    [..]

    Geen idee eigenlijk. De site is niet (zo heel) druk bezocht, maar voor de beveiliging kwamen er zo'n 10 bots per dag langs?
    Ow valt nog mee dus. Heb tegen woordig een auto ban systeem wat na 3 keer de CAPTCHA in 3 dagen fout je banned voor 3 dagen. En heb tot nu toe eingelijk iedere dag wel 3 bans . Zit nog te wachten op de 1e auto ban van iemand die al eens eerder gebanned is, ben ik hem gelijk 6 adgen kwijt .
    Chandlerwoensdag 20 juni 2007 @ 15:55
    quote:
    Op woensdag 20 juni 2007 15:08 schreef WyriHaximus het volgende:

    [..]

    Moet ik hem ff ergens uploaden voor jullie?

    http://rapidshare.com/fil(...)07-06-08.tar.gz.html sorry voor de rapidshare link maar dat was ff het makkelijksts en snelst

    * WyriHaximus moet eens eigen filehosting gaan bouwen
    je mag altijd upload.bruggema.nl misbruiken voor dit soort zaakjes (al zit er wel een limiet op )

    tee

    vee

    pee
    WyriHaximuswoensdag 20 juni 2007 @ 15:56
    quote:
    Op woensdag 20 juni 2007 15:55 schreef Chandler het volgende:

    [..]

    je mag altijd upload.bruggema.nl misbruiken voor dit soort zaakjes (al zit er wel een limiet op )

    tee

    vee

    [sub]pee[/sup]
    Zal het onthouden alleen net laptop al afgesloten waar het op staat Tijd om naar huis te gaan werkdag zit er al weer op voor mij
    Chandlerwoensdag 20 juni 2007 @ 15:56
    Ik ga ook zo, heb nog wel 30 minuten te wachten op eingelijk niets... ja dat ik weg mag
    PiRANiAwoensdag 20 juni 2007 @ 15:57
    quote:
    Op woensdag 20 juni 2007 15:52 schreef WyriHaximus het volgende:

    [..]

    Ow valt nog mee dus. Heb tegen woordig een auto ban systeem wat na 3 keer de CAPTCHA in 3 dagen fout je banned voor 3 dagen. En heb tot nu toe eingelijk iedere dag wel 3 bans . Zit nog te wachten op de 1e auto ban van iemand die al eens eerder gebanned is, ben ik hem gelijk 6 adgen kwijt .
    ik denk dat voor de eerste 3 keer fout 10 minuten ook wel genoeg is hoor.
    Daarna, na weer 3 keer gewoon permbannen
    WyriHaximuswoensdag 20 juni 2007 @ 16:00
    quote:
    Op woensdag 20 juni 2007 15:57 schreef PiRANiA het volgende:

    [..]

    ik denk dat voor de eerste 3 keer fout 10 minuten ook wel genoeg is hoor.
    Daarna, na weer 3 keer gewoon permbannen
    True, zit wel te monitoren (krijg mailtjes) wat er fout gaat en het zijn altijd. Nu net laatsts me eerste echte user gehad die het fout had. Op honderd duizenden bot pogingen . Maar het is een goeie als het een user is is 3 dagen wel veel
    PiRANiAwoensdag 20 juni 2007 @ 16:12
    quote:
    Op woensdag 20 juni 2007 16:00 schreef WyriHaximus het volgende:

    [..]

    True, zit wel te monitoren (krijg mailtjes) wat er fout gaat en het zijn altijd. Nu net laatsts me eerste echte user gehad die het fout had. Op honderd duizenden bot pogingen . Maar het is een goeie als het een user is is 3 dagen wel veel
    is de code goed leesbaar?
    mscholwoensdag 20 juni 2007 @ 17:28
    tvp ( )
    super-muffinwoensdag 20 juni 2007 @ 17:39
    quote:
    Op woensdag 20 juni 2007 15:27 schreef Geqxon het volgende:
    TVP.
    Hoi Geqxon!
    WyriHaximuswoensdag 20 juni 2007 @ 18:12
    quote:
    Op woensdag 20 juni 2007 16:12 schreef PiRANiA het volgende:

    [..]

    is de code goed leesbaar?
    http://beta.wyrihaximus.net/en-guestbook.html

    Test site voor me site . (Word later ook de nieuwe CAPTCHA's op zichtbaar .)

    EDIT: Het kan zijn dat je af en toe een error ziet

    [ Bericht 11% gewijzigd door WyriHaximus op 20-06-2007 18:17:30 ]
    ikheetmartijnwoensdag 20 juni 2007 @ 18:23
    Iemand goed in sql?
    PiRANiAwoensdag 20 juni 2007 @ 18:48
    quote:
    Op woensdag 20 juni 2007 18:23 schreef ikheetmartijn het volgende:
    Iemand goed in sql? ;(
    Laat maar, ik heb het al:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    select doc.*,
    b1.naam as fabrikant_naam,
    b2.naam as leverancier_naam,
    b3.naam as leverancier2_naam
    from documentatie as doc, bedrijven as b1, bedrijven as b2
    left outer join bedrijven as b3
    on doc.leverancier2_id = b3.bedrijf_id
    and doc.fabrikant_id=b1.bedrijf_id
    and doc.leverancier_id=b2.bedrijf_id



    De eerste 'and' op regel 8 moet zijn 'where'. Anders ziet hij dat gedeelte ook nog ofals het bij de join hoort :)
    PiRANiAwoensdag 20 juni 2007 @ 18:52
    quote:
    Op woensdag 20 juni 2007 18:12 schreef WyriHaximus het volgende:

    [..]

    http://beta.wyrihaximus.net/en-guestbook.html

    Test site voor me site :). (Word later ook de nieuwe CAPTCHA's op zichtbaar :).)

    EDIT: Het kan zijn dat je af en toe een error ziet :@
    oeh, das een enorme captcha :P
    soms is het echter niet goed leesbaar...

    tip:
    1<a href="#" onClick="javascript:document.getElementById("idvanplaatje")='http://beta.wyrihaximus.net/includes/image_code.php?ih='+ih+'&random='+math.random();">Ververs plaatje</a>

    zomaar ff getypt, probeer het even ;)
    als er dan op de link geklikt wordt, herlaadt de code.
    ikheetmartijnwoensdag 20 juni 2007 @ 18:53
    Geweldig bedankt! Je hebt m'n hele avond weer goed gemaakt!
    WyriHaximuswoensdag 20 juni 2007 @ 19:44
    quote:
    Op woensdag 20 juni 2007 18:52 schreef PiRANiA het volgende:

    [..]

    oeh, das een enorme captcha
    soms is het echter niet goed leesbaar...

    tip:
    [ code verwijderd ]

    zomaar ff getypt, probeer het even
    als er dan op de link geklikt wordt, herlaadt de code.
    Ok maar verder wel redelijk goed leesbaar? Ga het er zo ff inzetten dat van jouw . Danke!
    WyriHaximuswoensdag 20 juni 2007 @ 21:06
    quote:
    Op woensdag 20 juni 2007 19:44 schreef WyriHaximus het volgende:

    [..]

    Ok maar verder wel redelijk goed leesbaar? Ga het er zo ff inzetten dat van jouw :D. Danke!
    Heb je script iets wat aangepast zodat ze niet ff vlug kunnen refreshen snel achter elkaar. Plus je math code werkte niet die er in zit nu wel. Ow en heb javascript:void(0); ipv # gedaan bij href want dan schiet je niet omhoog :).

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <div id="captcha_refresh_3801a54da81c6d6d28c8b45b2d2c2969"></div>
    <script language="javascript">
    function captcha_refresh_func_3801a54da81c6d6d28c8b45b2d2c2969(show)
    {
       if(show)
       {
          document.getElementById('captcha_refresh_3801a54da81c6d6d28c8b45b2d2c2969').innerHTML = 'You need to wait 5 secconds before you can refresh the image again...';
       }
       setTimeout(function() {
          document.getElementById('captcha_refresh_3801a54da81c6d6d28c8b45b2d2c2969').innerHTML = '<a href="javascript:void(0);" onClick="javascript:document.getElementById('captcha_3801a54da81c6d6d28c8b45b2d2c2969').src='includes/image_code.php?ih=00dbf059b1cbcdfe16f3dd5fd242367f&random='+Math.floor(Math.random()*65000);captcha_refresh_func_3801a54da81c6d6d28c8b45b2d2c2969(true);">Refresh image if you can't read it properly...</a>';
       },5000)
    }
    captcha_refresh_func_3801a54da81c6d6d28c8b45b2d2c2969(false);
    PiRANiAwoensdag 20 juni 2007 @ 21:31
    quote:
    Op woensdag 20 juni 2007 21:06 schreef WyriHaximus het volgende:

    [..]

    Heb je script iets wat aangepast zodat ze niet ff vlug kunnen refreshen snel achter elkaar. Plus je math code werkte niet die er in zit nu wel. Ow en heb javascript:void(0); ipv # gedaan bij href want dan schiet je niet omhoog .


    [ code verwijderd ]
    5 secconds?

    maar verder is het een goede vooruitgang
    PiRANiAwoensdag 20 juni 2007 @ 21:32
    zou je btw je inputbox-randjes niet wat duidelijker maken?
    het is haast niet te lezen... ik moest hoveren met me uis om te kijken waar het input-veld was..
    PiRANiAwoensdag 20 juni 2007 @ 21:33
    en ik doe meestal bij de 1e comment een captcha, en daarna om de 5 comments
    WyriHaximuswoensdag 20 juni 2007 @ 21:41
    quote:
    Op woensdag 20 juni 2007 21:31 schreef PiRANiA het volgende:

    [..]

    5 secconds?

    maar verder is het een goede vooruitgang
    My engls is not zo goed .

    Was wel de bedoeling ^^.
    quote:
    Op woensdag 20 juni 2007 21:33 schreef PiRANiA het volgende:
    en ik doe meestal bij de 1e comment een captcha, en daarna om de 5 comments
    Als iemand de CAPTCHA passed dan neem ik aan? Niet dat het fout gaat en dat je het daarna wijd open zet .
    quote:
    Op woensdag 20 juni 2007 21:32 schreef PiRANiA het volgende:
    zou je btw je inputbox-randjes niet wat duidelijker maken?
    het is haast niet te lezen... ik moest hoveren met me uis om te kijken waar het input-veld was..
    Komt door het design ga ik nog wel aan sleutelen .
    WyriHaximuswoensdag 20 juni 2007 @ 23:57
    Dit is die captcha waar ik het over had:
    http://beta.wyrihaximus.net/en-guestbook.html

    Misschien nog wat maar randomness er in maar dit is volgens mij voor een heleboel mensen al een stuk beter .
    super-muffindonderdag 21 juni 2007 @ 00:48
    Waarom geanimeerd?
    Op mijn werk kan ik het formulier dus niet gebruiken, want daar zijn geanimeerde afbeeldingen geblokt.

    Ik gebruik dit:
    http://danielpunt.nl/captcha

    Of anders dat idee van de vraag 'wat voor kleur heeft een gele banaan?'
    WyriHaximusdonderdag 21 juni 2007 @ 08:01
    quote:
    Op donderdag 21 juni 2007 00:48 schreef super-muffin het volgende:
    Waarom geanimeerd?
    Op mijn werk kan ik het formulier dus niet gebruiken, want daar zijn geanimeerde afbeeldingen geblokt.

    Ik gebruik dit:
    http://danielpunt.nl/captcha

    Of anders dat idee van de vraag 'wat voor kleur heeft een gele banaan?'
    Omdat het het moeilijker voor bots maakt om uit te vogelen wat er neer gezet moet worden, ik maak straks/morgen wel iets dat je op een link klikt en dat je stilstaande versie krijgt voor gevallen zolas jij .


    Ergens is die te simpel voor bots om uit te vogelen. De manier waarop de captcha werkt is goed, alleen kan ik heel makkelijk een scriptje maken die de captcha die jij gebruikt kraakt. Wat je kunt doen is meerdere keren een soms neer zitten maar alleen de juiste laten zien met javascript. Het 1 en ander erg kut en random neer gooit met javascript. Het is niet 100% waterdicht aangezien je met text werkt maar zolang je het goed random houd kom je al een heel eind .
    PiRANiAdonderdag 21 juni 2007 @ 08:42
    quote:
    Op woensdag 20 juni 2007 21:41 schreef WyriHaximus het volgende:

    [..]

    My engls is not zo goed .

    Was wel de bedoeling ^^.
    moet dus: seconds zijn
    quote:
    [..]

    Als iemand de CAPTCHA passed dan neem ik aan? Niet dat het fout gaat en dat je het daarna wijd open zet .
    whehe, nee
    quote:
    [..]

    Komt door het design ga ik nog wel aan sleutelen .
    okee
    PiRANiAdonderdag 21 juni 2007 @ 08:43
    quote:
    Op woensdag 20 juni 2007 23:57 schreef WyriHaximus het volgende:
    Dit is die captcha waar ik het over had:
    http://beta.wyrihaximus.net/en-guestbook.html

    Misschien nog wat maar randomness er in maar dit is volgens mij voor een heleboel mensen al een stuk beter .
    ah, kijk
    WyriHaximusdonderdag 21 juni 2007 @ 08:56
    quote:
    Op donderdag 21 juni 2007 08:42 schreef PiRANiA het volgende:

    [..]

    moet dus: seconds zijn
    [..]

    whehe, nee
    [..]

    okee
    Aye ff doen zo .

    Doh.

    ^^ is nog helemaal standaard eigenlijk ga later wel leuke custom dingetjes er in doen
    quote:
    Op donderdag 21 juni 2007 08:43 schreef PiRANiA het volgende:

    [..]

    ah, kijk
    En hoe vind je het?
    ikheetmartijndonderdag 21 juni 2007 @ 08:58
    Ziet er leuk uit, grappig bedacht. Maar denk je niet dat de gebruiker het irritant vind omdat hij langer moet wachten?
    PiRANiAdonderdag 21 juni 2007 @ 09:01
    quote:
    Op donderdag 21 juni 2007 08:56 schreef WyriHaximus het volgende:

    [..]

    Aye ff doen zo .

    Doh.

    ^^ is nog helemaal standaard eigenlijk ga later wel leuke custom dingetjes er in doen
    [..]

    En hoe vind je het?
    chil, maar wat martijn (zo heet hij denk) zegt:
    quote:
    Op donderdag 21 juni 2007 08:58 schreef ikheetmartijn het volgende:
    Ziet er leuk uit, grappig bedacht. Maar denk je niet dat de gebruiker het irritant vind omdat hij langer moet wachten?
    WyriHaximusdonderdag 21 juni 2007 @ 09:21
    quote:
    Op donderdag 21 juni 2007 08:58 schreef ikheetmartijn het volgende:
    Ziet er leuk uit, grappig bedacht. Maar denk je niet dat de gebruiker het irritant vind omdat hij langer moet wachten?
    quote:
    Op donderdag 21 juni 2007 09:01 schreef PiRANiA het volgende:

    [..]

    chil, maar wat martijn (zo heet hij denk) zegt:
    [..]
    Lijkt er wel op ja .

    Goed punt, de gebruiker zal uberhaupt al geirriteerd zijn dat ze iets moeten invullen. Wil er sowieso nog wat dingen aan veranderen o.a. de snelheid. Duurt nu +/- 5 a 6 sec en wil dat terug brengen naar max 3. Zelf heb ik wat kennisen laten kijken en de reacties zijn iig een stuk positiever dan een 'normale CAPTCHA'. Wil wel naar een systeem dat er een cookie word geset als iemand de CAPTCHA heeft gepassed dan gewoon een week het niet meer hoeft te doen .
    ikheetmartijndonderdag 21 juni 2007 @ 09:39
    quote:
    Op donderdag 21 juni 2007 09:21 schreef WyriHaximus het volgende:
    Lijkt er wel op ja .
    correct
    quote:
    Op donderdag 21 juni 2007 09:21 schreef WyriHaximus het volgende:
    Duurt nu +/- 5 a 6 sec en wil dat terug brengen naar max 3.
    Dat zou wel relaxt zijn.
    Ik vind het anders wel een slim idee. Je hebt ook wel eens van die CAPTCHA (wist niet dat dat zo werd genoemd) systemen waar je pas na 3x typen het goede antwoord hebt -> DAT is pas irritant
    WyriHaximusdonderdag 21 juni 2007 @ 09:46
    quote:
    Op donderdag 21 juni 2007 09:39 schreef ikheetmartijn het volgende:

    [..]

    correct
    [..]

    Dat zou wel relaxt zijn.
    Ik vind het anders wel een slim idee. Je hebt ook wel eens van die CAPTCHA (wist niet dat dat zo werd genoemd) systemen waar je pas na 3x typen het goede antwoord hebt -> DAT is pas irritant
    Link naar het script wat ik nu ingebouwd heb staat in het vorige deel dacht ik. Maar je kunt gewoon de tijd instellen hoe lang het duurt voordat i naar het volgende plaatje gaat . Die heb ik ook maar sinds gister met linkje voor een redraw zodat het misschien duidelijker is dan de vorige . Heb hem nu op deze vast gezet uiteindelijk word het een set van 4 of 5 verschillende die hij random laat zien .
    ralfiedonderdag 21 juni 2007 @ 10:22
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    <?php
    $a 
    3;
    $c 22 $a;
    $f = array(2,34,6);
    $r = -1;
    $e 22 * ( $f[0]-);
    $w $e 1;

    for( 
    $x 0$x 17$x++ ) {
        
    $c += 3;
        while ( 
    $y ) {
            
    $f[$y] +=$c;
            
    $y -= $r;
        }
    }
    $s array_reverse($f);
    $f[0] = array_pop($f);
    $f[3] = array_pop($s);

    for ( 
    $x 0$x $a$x++) {
        if (
    $x == 2) {
        for(
    $d=0;$d<strlen($f[$e]);$d++) {
                 
    $t[$d]=substr($f[$e],$d,1);
            }
            
    $f[$e]=array();
            
    $f[$e][$e]=$t[$w];
            
    $f[$e][$w]=$t[$w-1]+2;
        
    $f[$e]=implode($f[$e]);
        }
        
    $f[$x+1] += $c;
        switch (
    $x 7) {
        case 
    $a 1:
             
    $f[$x] -= 53;
        case 
    $c 11:
             
    $f[$x] += 6;
        case 
    $c 3:
             
    $f[$x] -= 5;
        }  
    }

    for ( 
    $x $a-1;$x 4$x++) {
        
    $f[$x] -= (15 $x);    
    }

    $f=array_reverse($f);

    while ( 
    $p array_pop($f) ) {
        
    printf("%c",$p);
    }
    ?>
    #ANONIEMdonderdag 21 juni 2007 @ 10:29
    tvp. En wat de neuk is die lap code hierboven mij?
    super-muffindonderdag 21 juni 2007 @ 10:38
    quote:
    Op donderdag 21 juni 2007 10:22 schreef ralfie het volgende:

    [ code verwijderd ]
    WyriHaximusdonderdag 21 juni 2007 @ 10:52
    quote:
    Op donderdag 21 juni 2007 10:22 schreef ralfie het volgende:

    [ code verwijderd ]
    Dat kan ik ook :o
    1
    2
    3
    <?php
    die('bitch!');
    ?>


    wtf moet die code van jouw nou doen eingelijk? :P
    Boy_Snakeyedonderdag 21 juni 2007 @ 13:42
    Ik had het in het vorig topic over om mijn gastenboek te beveiligen tegen Bots, toen werd CAPTCHA genoemd.

    Ik zat te denken, met zo'n vraag van: "welk jaar is het" dat als iemand invult 2007 dat dan de submitbutton klikbaar is.

    iemand een idee hoe ik dat het best kan schrijven. Ik weet niet echt hoe ik moet beginnen
    fokME2donderdag 21 juni 2007 @ 13:44
    quote:
    Op donderdag 21 juni 2007 10:22 schreef ralfie het volgende:

    [ code verwijderd ]
    SPOILER
    Notice: Undefined variable: y in D:wwwwtf.php on line 11

    Notice: Undefined variable: y in D:wwwwtf.php on line 12

    Notice: Undefined index: in D:wwwwtf.php on line 12

    Notice: Undefined variable: y in D:wwwwtf.php on line 13
    TVP!
    Hoe heb je dat gemaakt?
    WyriHaximusdonderdag 21 juni 2007 @ 13:52
    quote:
    Op donderdag 21 juni 2007 13:42 schreef Boy_Snakeye het volgende:
    Ik had het in het vorig topic over om mijn gastenboek te beveiligen tegen Bots, toen werd CAPTCHA genoemd.

    Ik zat te denken, met zo'n vraag van: "welk jaar is het" dat als iemand invult 2007 dat dan de submitbutton klikbaar is.

    iemand een idee hoe ik dat het best kan schrijven. Ik weet niet echt hoe ik moet beginnen :{
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    <?php
    if(count($_POST)>0)
    {
    if(
    intval($_POST['jaar'])==2007)
    {
    die(
    'goed');
    }
    else
    {
    die(
    'fout');
    }
    }
    else
    {

    <
    form method="POST">
    <
    intput name="jaar" /><input type="submit" />
    </
    form>

    }
    ?>
    Uit de losse pols en gelijk in het reageer scherm dus bijt me er niet op vast :P.
    ikheetmartijndonderdag 21 juni 2007 @ 14:08
    Zou ik gewoon met javascript doen:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    <html>
    <head>
    <script type="text/javascript">
    function checkyear(year){
       var d = new Date();
       var thisyear = d.getFullYear();
       
       if (year==thisyear){
          form1.btn_submit.disabled=false;
       }else{
          form1.btn_submit.disabled=true;
       }
    }
    </script>
    </head>
    <body>
       <form name="form1" id="form1">
          Waar voor jaar is het nu?<input type="text" name="txt_year" id="txt_year" onkeyup="checkyear(this.value);" /><br/>
          <input type="submit" name="btn_submit" id="btn_submit" value="Ok" disabled />
       </form>
    </body>
    </html>
    Boy_Snakeyedonderdag 21 juni 2007 @ 14:09
    quote:
    Op donderdag 21 juni 2007 14:08 schreef ikheetmartijn het volgende:
    Zou ik gewoon met javascript doen:
    [ code verwijderd ]
    Ga ik meteen proberen

    Thnx
    Geqxondonderdag 21 juni 2007 @ 14:09
    quote:
    Op donderdag 21 juni 2007 13:42 schreef Boy_Snakeye het volgende:
    Ik had het in het vorig topic over om mijn gastenboek te beveiligen tegen Bots, toen werd CAPTCHA genoemd.

    Ik zat te denken, met zo'n vraag van: "welk jaar is het" dat als iemand invult 2007 dat dan de submitbutton klikbaar is.

    iemand een idee hoe ik dat het best kan schrijven. Ik weet niet echt hoe ik moet beginnen :{
    In de meest simpele vorm van javascript:

    1
    2
    <input type="text" onkeyup="if (this.value == '2007') document.getElementById('submitbutton').disabled = false;">
    <input type="submit" id="submitbutton" disabled="disabled">


    Het punt is alleen wel dat bots dit makkelijk uit kunnen lezen :)
    WyriHaximusdonderdag 21 juni 2007 @ 14:14
    quote:
    Op donderdag 21 juni 2007 14:09 schreef Geqxon het volgende:

    [..]

    In de meest simpele vorm van javascript:
    [ code verwijderd ]

    Het punt is alleen wel dat bots dit makkelijk uit kunnen lezen
    Idd en bots negeren JS eingelijk altijd .
    ikheetmartijndonderdag 21 juni 2007 @ 14:16
    quote:
    Op donderdag 21 juni 2007 14:14 schreef WyriHaximus het volgende:
    Idd en bots negeren JS eingelijk altijd .
    En als je de action parameter van form1 nou ook pas invult nadat het jaar gecheckt is?
    Boy_Snakeyedonderdag 21 juni 2007 @ 14:17
    quote:
    Op donderdag 21 juni 2007 14:08 schreef ikheetmartijn het volgende:
    Zou ik gewoon met javascript doen:
    [ code verwijderd ]
    Deze werkt niet, aangezien de button disabled blijft.....

    Probeer ik nu meteen ff die ander...

    -edit-
    quote:
    Op donderdag 21 juni 2007 14:09 schreef Geqxon het volgende:

    [..]

    In de meest simpele vorm van javascript:
    [ code verwijderd ]

    Het punt is alleen wel dat bots dit makkelijk uit kunnen lezen
    Deze werkt wel

    woehoe, nou hoef ik misschien niet elke dag het gastenboek bij te houden

    Hopen dat de Bots dit niet snel doorhebben

    [ Bericht 26% gewijzigd door Boy_Snakeye op 21-06-2007 14:24:12 ]
    ikheetmartijndonderdag 21 juni 2007 @ 14:27
    Apart, bij mij werkt het perfect (in IE en Firefox).

    Toevallig een ouwe browser?
    Geqxondonderdag 21 juni 2007 @ 14:29
    quote:
    Op donderdag 21 juni 2007 14:16 schreef ikheetmartijn het volgende:

    [..]

    En als je de action parameter van form1 nou ook pas invult nadat het jaar gecheckt is?
    Slim.

    1
    2
    3
    4
    5
    6
    7
    8
    <script>
    var submitbutton = document.getElementById('submitbutton');
    </script>

    <form method="post" action="goaway.php" onsubmit="if (submitbutton.disabled == false){ this.action = 'index.php'; }">
    <input type="text" onkeyup="if (this.value == '2007') submitbutton.disabled = false; else submitbutton.disabled = true">
    <input type="submit" id="submitbutton" disabled="disabled">
    </form>


    [ Bericht 8% gewijzigd door Geqxon op 21-06-2007 14:33:30 (Perfectionisme) ]
    WyriHaximusdonderdag 21 juni 2007 @ 14:33
    quote:
    Op donderdag 21 juni 2007 14:16 schreef ikheetmartijn het volgende:

    [..]

    En als je de action parameter van form1 nou ook pas invult nadat het jaar gecheckt is?
    Mijn ervaring met bots is dat ze uitlezen welke velden er in een form staan. Deze checken ze op bekende veld namen en gooien er dan iets in wat overeen komt met een bekend veldnaam en anders of random crap of niks of iets standaards. Waar door ze infeite altijd al falen met een CAPTCHA (tenzij ze het kennen dan ). Daarnaast mijn ervaring met browsers (weet niet of het met bots ook zo is denk het wel) is dat als het actie veld er niet is dat ze dan de URL waar het form op staat als action gebruiken .
    quote:
    Op donderdag 21 juni 2007 14:29 schreef Geqxon het volgende:

    [..]

    Slim.
    [ code verwijderd ]
    Goeie die van de submit knop uitschakelen . Er straks ook maar ff in zetten .
    Geqxondonderdag 21 juni 2007 @ 14:36
    Bovenstaande methode is nog leuker als je op goaway.php een alternatief gastenboek voor bots neerzet. Laat ze maar rotten, in een speciaal voor zichzelf gemaakte cel. Ook is een IP ban een mogeljjkheid, aangezien een normale (goedwillende) user zo goed als onmogelijk op goaway.php terrecht kan komen.
    Boy_Snakeyedonderdag 21 juni 2007 @ 14:38
    quote:
    Op donderdag 21 juni 2007 14:27 schreef ikheetmartijn het volgende:
    Apart, bij mij werkt het perfect (in IE en Firefox).

    Toevallig een ouwe browser?
    Nieuwste versie van firefox....kan zijn dat ik iets verkeerd doe....

    Is die van jou dan minder bots gevoelig dan voor die ander van Geqxon ?
    Geqxondonderdag 21 juni 2007 @ 14:39
    En martijn, if you don't mind:

    1<input type="text" onkeyup="if (this.value == new Date().getFullYear()) submitbutton.disabled = false; else submitbutton.disabled = true">


    Nog een stapje dichter bij een bot-vrij gastenboek, zonder de user al te veel te pijnigen.
    WyriHaximusdonderdag 21 juni 2007 @ 14:39
    quote:
    Op donderdag 21 juni 2007 14:36 schreef Geqxon het volgende:
    Bovenstaande methode is nog leuker als je op goaway.php een alternatief gastenboek voor bots neerzet. Laat ze maar rotten, in een speciaal voor zichzelf gemaakte cel. Ook is een IP ban een mogeljjkheid, aangezien een normale (goedwillende) user zo goed als onmogelijk op goaway.php terrecht kan komen.
    Idd of pwnd.php ofzo . Maakt het gelijk een stuk makkelijker om bots te identificeren en gebruikers die angstig zijn om hun privacy en daarom JS uit hebben staan .
    Geqxondonderdag 21 juni 2007 @ 14:41
    quote:
    Op donderdag 21 juni 2007 14:39 schreef WyriHaximus het volgende:

    [..]

    Idd of pwnd.php ofzo . Maakt het gelijk een stuk makkelijker om bots te identificeren en gebruikers die angstig zijn om hun privacy en daarom JS uit hebben staan .
    Mensen die JS uit hebben staan zullen naar mijn weten een grijze submitbutton krijgen, die niet goed te krijgen is. Dus ook die zullen nooit op pwnd.php ( ) komen
    ikheetmartijndonderdag 21 juni 2007 @ 14:44
    quote:
    Op donderdag 21 juni 2007 14:38 schreef Boy_Snakeye het volgende:

    [..]

    Nieuwste versie van firefox....kan zijn dat ik iets verkeerd doe....

    Is die van jou dan minder bots gevoelig dan voor die ander van Geqxon ?
    Nee, is hetzelfde, alleen verkort.
    Ik hou er alleen van alles lekker overzichtelijk in functies te zetten.

    Plus hij heeft m'n tweede opmerking er in verwerkt (het later invullen van de action param). -> wat hem dus idd minder gevoelig maakt voor bots.

    [ Bericht 4% gewijzigd door ikheetmartijn op 21-06-2007 14:55:03 ]
    WyriHaximusdonderdag 21 juni 2007 @ 14:46
    quote:
    Op donderdag 21 juni 2007 14:41 schreef Geqxon het volgende:

    [..]

    Mensen die JS uit hebben staan zullen naar mijn weten een grijze submitbutton krijgen, die niet goed te krijgen is. Dus ook die zullen nooit op pwnd.php ( ) komen
    True, en zo veel zijn het er nou ook weer niet .

    maar ik ga dat pwnd.php idee er straks ff inzetten kijken hoeveel bans ik in een half uurtje er bij heb !
    ikheetmartijndonderdag 21 juni 2007 @ 14:48
    quote:
    Op donderdag 21 juni 2007 14:39 schreef Geqxon het volgende:
    En martijn, if you don't mind:
    I don't
    WyriHaximusdonderdag 21 juni 2007 @ 14:49
    Wat mij ook opvalt aan de 22 bans in me ban tabel (waarvan er 5 actief zijn) er 5 tussen zitten die op een volgend zijn, waar dus waarschijnlijk hele racks met servers zijn gehuurt . Dat maakt het bannen wel erg makkelijk . Btw zijn hier niet blacklists voor ?
    Geqxondonderdag 21 juni 2007 @ 15:00
    quote:
    Op donderdag 21 juni 2007 14:44 schreef ikheetmartijn het volgende:

    [..]

    Nee, is hetzelfde, alleen verkort.
    Ik hou er alleen van alles lekker overzichtelijk in functies te zetten.

    Plus hij heeft m'n tweede opmerking er in verwerkt (het later invullen van de action param). -> wat hem dus idd minder gevoelig maakt voor bots.
    Eerlijk is eerlijk, functies zijn mooier. Iets dat ik normaal altijd wel gebruik, maar niet bij de drie lijntjes code die voor iets als dit nodig zijn
    fokME2donderdag 21 juni 2007 @ 15:07
    Ook wel laggen om op die pwnd.php gewoon de berichten te plaatsen. Vraag me af hoe snel dat gaat.
    PiRANiAdonderdag 21 juni 2007 @ 15:11
    quote:
    Op donderdag 21 juni 2007 14:49 schreef WyriHaximus het volgende:
    Wat mij ook opvalt aan de 22 bans in me ban tabel (waarvan er 5 actief zijn) er 5 tussen zitten die op een volgend zijn, waar dus waarschijnlijk hele racks met servers zijn gehuurt . Dat maakt het bannen wel erg makkelijk . Btw zijn hier niet blacklists voor ?
    ip-range-bannen...
    WyriHaximusdonderdag 21 juni 2007 @ 15:29
    quote:
    Op donderdag 21 juni 2007 15:07 schreef fokME2 het volgende:
    Ook wel laggen om op die pwnd.php gewoon de berichten te plaatsen. Vraag me af hoe snel dat gaat.
    Bij mij tussen de 50 en 100 perdag .
    quote:
    Op donderdag 21 juni 2007 15:11 schreef PiRANiA het volgende:

    [..]

    ip-range-bannen...
    Wat denkje dat ik met Dat maakt het bannen wel erg makkelijk bedoelde .
    Boy_Snakeyedonderdag 21 juni 2007 @ 15:36
    quote:
    Op donderdag 21 juni 2007 14:39 schreef Geqxon het volgende:
    En martijn, if you don't mind:
    [ code verwijderd ]

    Nog een stapje dichter bij een bot-vrij gastenboek, zonder de user al te veel te pijnigen.
    helaas, had de eerste 3 berichten binnen een 3 kwartier in het gastenboek.

    MIsschien toch aangeven dat als er een bericht is met http:// erin dat dan het bericht niet geplaatst is.
    ikheetmartijndonderdag 21 juni 2007 @ 15:42
    Ook met die Javascript functie dat hij de action param later invult? vast niet.
    super-muffindonderdag 21 juni 2007 @ 15:42
    En wat nou als een bezoeker een link plaatst?
    @martijn: Zo sluit je de gebruikers zonder JS uit. Ook al is dat maar +/- 5%.
    WyriHaximusdonderdag 21 juni 2007 @ 15:50
    quote:
    Op donderdag 21 juni 2007 15:42 schreef super-muffin het volgende:
    En wat nou als een bezoeker een link plaatst?
    @martijn: Zo sluit je de gebruikers zonder JS uit. Ook al is dat maar +/- 5%.
    Waarschuwing boven in zetten dat zonder JS ze bepaalde dingen niet kunnen doen?
    Boy_Snakeyedonderdag 21 juni 2007 @ 15:54
    quote:
    Op donderdag 21 juni 2007 15:42 schreef ikheetmartijn het volgende:
    Ook met die Javascript functie dat hij de action param later invult? vast niet.
    Je bedoeld deze?

    1
    2
    3
    4
    5
    6
    7
    8
    <script>
    var submitbutton = document.getElementById('submitbutton');
    </script>

    <form method="post" action="goaway.php" onsubmit="if (submitbutton.disabled == false){ this.action = 'index.php'; }">
    <input type="text" onkeyup="if (this.value == '2007') submitbutton.disabled = false; else submitbutton.disabled = true">
    <input type="submit" id="submitbutton" disabled="disabled">
    <input type="hidden" name="sid" value="1543ac7dee2090c76ace66dc0c5325a3" /><input type="hidden" name="sid" value="1543ac7dee2090c76ace66dc0c5325a3" /></form>


    volgens mij heb ik 'm, ff in de gaten houden ....

    [ Bericht 14% gewijzigd door Boy_Snakeye op 21-06-2007 16:02:20 ]
    Geqxondonderdag 21 juni 2007 @ 17:33
    En als we dat dan nog even compleet hip uppimpen met AJAX:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    <script language="Javascript">
    function getXMLObject(){
       if (window.XMLHttpRequest)
          return new XMLHttpRequest();
       else if (window.ActiveXObject)
          return ActiveXObject("Microsoft.XMLHTTP");
    }

    function sendForm(form){
       pars = "";

       for (i = 0; i < form.length; i++){
          pars += (i > 0 ? "&" : "");
          pars += form.elements[i].name + "=" + form.elements[i].value;
       }

       http = getXMLObject();
       http.open("POST",postURL,true);
       http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
        http.onreadystatechange = function() {
           if (http.readyState == 4) {
              if (http.responseText == postResponse)
                 document.location = forwardURL;
              else
                 alert(errorMessage);
            }
         }
         http.send(pars);
    }

    function tryAnswer(value){
       submitButton = document.getElementById("submitbutton");

       if (value == secretAnswer)
          submitButton.disabled = false;
       else
          submitButton.disabled = true;
    }

    secretAnswer = 2007            // Antwoord op de geheime vraag
    postURL = "ajax.php";         // Waar het form naar gesubmit wordt
    forwardURL = "bedankt.php";      // Waar de gebruiker naar doorgestuurd wordt
    postResponse = "readysetgo";   // Het antwoord dat de postURL geeft als alles oké is
    errorMessage = "Error!";      // De error als de postURL geen goed antwoord geeft
    </script>

    <form>
       Naam: <br />
       <input type="text" name="naam"><br />
       Bericht: <br />
       <input type="text" name="bericht"><br />
       In welk jaar leven we nu? <br />
       <input type="text" onkeyup="tryAnswer(this.value)"><br />
       <input type="button" id="submitbutton" value="Verstuur" onclick="sendForm(this.form)" disabled="disabled"><br />
    </form>


    Of draaf ik nu door?

    [ Bericht 2% gewijzigd door Geqxon op 21-06-2007 20:18:50 ]
    ikheetmartijndonderdag 21 juni 2007 @ 17:40
    Neuh
    Alleen jaartal nog even dynamisch maken
    Geqxondonderdag 21 juni 2007 @ 19:21
    Daar waar het antwoord op de vraag een door de beheerder in te vullen variabele is heb ik hier dus 2007 van gemaakt. Maar daar kun je zelf natuurlijk alles van maken, desnoods welke kleur een rode auto heeft

    Oeps, dit is dus het PHP topic!
    PiRANiAdonderdag 21 juni 2007 @ 20:17
    quote:
    Op donderdag 21 juni 2007 15:29 schreef WyriHaximus het volgende:

    [..]

    Bij mij tussen de 50 en 100 perdag .
    [..]

    Wat denkje dat ik met Dat maakt het bannen wel erg makkelijk bedoelde .
    :S:P
    quote:
    Op donderdag 21 juni 2007 19:21 schreef Geqxon het volgende:
    Daar waar het antwoord op de vraag een door de beheerder in te vullen variabele is heb ik hier dus 2007 van gemaakt. Maar daar kun je zelf natuurlijk alles van maken, desnoods welke kleur een rode auto heeft

    Oeps, dit is dus het PHP topic!
    beetje variatie kan geen kwaad
    Geqxondonderdag 21 juni 2007 @ 20:19
    Heerlijk dat Fok!, plakt het zomaar mijn session-id tussen mijn sourcecode.
    PiRANiAvrijdag 22 juni 2007 @ 09:55
    quote:
    Op donderdag 21 juni 2007 20:19 schreef Geqxon het volgende:
    Heerlijk dat Fok!, plakt het zomaar mijn session-id tussen mijn sourcecode.
    <!--
    **************************************************************************

    LET OP!
    Deze broncode bevat gegevens (zoals je session ID) die je beter
    niet kan verspreiden. Als mensen dus vragen of je "even" deze
    broncode voor ze wilt kopieeren, doe dit dan niet!

    Ze kunnen dan in staat zijn om in te loggen onder jouw account,
    zonder dat ze je wachtwoord nodig hebben. Gevaarlijk dus!

    **************************************************************************
    -->
    Geqxonvrijdag 22 juni 2007 @ 10:10
    En Fok plakt dat dus midden tussen mijn eigen sourcecode.
    WyriHaximusvrijdag 22 juni 2007 @ 11:40
    quote:
    Op donderdag 21 juni 2007 20:17 schreef PiRANiA het volgende:

    [..]

    :S:P
    quote:
    Op donderdag 21 juni 2007 20:17 schreef PiRANiA het volgende:
    [..]

    beetje variatie kan geen kwaad
    Idd en je moet toch nog stukje server side checks doen .
    PiRANiAvrijdag 22 juni 2007 @ 18:36
    wat nou als je iemands sessioncode heb? wat dan?

    in het koekje zetten?
    WyriHaximusvrijdag 22 juni 2007 @ 18:46
    quote:
    Op vrijdag 22 juni 2007 18:36 schreef PiRANiA het volgende:
    wat nou als je iemands sessioncode heb? wat dan?

    in het koekje zetten?
    Yup, en dan hopen dat er niks op IP gelocked it .
    WyriHaximusvrijdag 22 juni 2007 @ 19:14
    Tof heb me pwnd.php geïmplementeerd .
    JeRavrijdag 22 juni 2007 @ 19:17
    quote:
    Op vrijdag 22 juni 2007 19:14 schreef WyriHaximus het volgende:
    Tof heb me pwnd.php geïmplementeerd .
    quote:
    Your IP (xx.xx.171.153) has been banned from this site for the following reason: Trapped in the anti-spambot trap and is banned forever!!!
    WyriHaximusvrijdag 22 juni 2007 @ 19:22
    quote:
    Op vrijdag 22 juni 2007 19:17 schreef JeRa het volgende:

    [..]


    [..]

    pwnd.php is een bestandje wat je automatish banned. Het idee is dat een comment form er op gericht staat, nadat het CAPTCHA antwoord is ingevoerd (veranderd) dan word het action veld van form veranderd. Komt nog uit het vorige deel denk ik, goeie CAPTCHA discussie daar . 1 ding, was pwnd.php niet een hint dat er iets 'slechst' zou komen?
    PiRANiAvrijdag 22 juni 2007 @ 19:26
    quote:
    Op vrijdag 22 juni 2007 19:22 schreef WyriHaximus het volgende:

    [..]

    pwnd.php is een bestandje wat je automatish banned. Het idee is dat een comment form er op gericht staat, nadat het CAPTCHA antwoord is ingevoerd (veranderd) dan word het action veld van form veranderd. Komt nog uit het vorige deel denk ik, goeie CAPTCHA discussie daar . 1 ding, was pwnd.php niet een hint dat er iets 'slechst' zou komen?
    noem het anders guestbook.html en plaats het in een link: "sign my guestbook"
    JeRavrijdag 22 juni 2007 @ 19:30
    quote:
    Op vrijdag 22 juni 2007 19:22 schreef WyriHaximus het volgende:

    [..]

    pwnd.php is een bestandje wat je automatish banned. Het idee is dat een comment form er op gericht staat, nadat het CAPTCHA antwoord is ingevoerd (veranderd) dan word het action veld van form veranderd. Komt nog uit het vorige deel denk ik, goeie CAPTCHA discussie daar . 1 ding, was pwnd.php niet een hint dat er iets 'slechst' zou komen?
    Maakt verder niet uit hoor, ik heb het al het contact met IP 83.98.159.6 bij voorbaat maar stilgelegd in m'n gateway @AMS denk je niet dat het enigzins foutgevoelig is? Wat gebeurt er met iemand die javascript heeft uitgeschakeld, om maar wat te noemen?
    WyriHaximusvrijdag 22 juni 2007 @ 19:30
    quote:
    Op vrijdag 22 juni 2007 19:26 schreef PiRANiA het volgende:

    [..]

    noem het anders guestbook.html en plaats het in een link: "sign my guestbook"
    Mwah dan gaan users er op klikken, bots kan ik nog tegenhouwden met rel="nofollow" .
    WyriHaximusvrijdag 22 juni 2007 @ 19:34
    quote:
    Op vrijdag 22 juni 2007 19:30 schreef JeRa het volgende:

    [..]

    Maakt verder niet uit hoor, ik heb het al het contact met IP 83.98.159.6 bij voorbaat maar stilgelegd in m'n gateway @AMS denk je niet dat het enigzins foutgevoelig is? Wat gebeurt er met iemand die javascript heeft uitgeschakeld, om maar wat te noemen?
    Hahahaha! Ja het is foutgevoelig. Submit knop word standaard uitgezet en tegelijkertijd met de form.action aanpassing op enabled gezet. Dan heb ik nog wel het probleem dat users zonder javascript geen comments ergens op kunnen maken. Was 5% wat iemand zei (is evengoed nog veel), moet nog iets verzinnen dat hun het wel kunnen of gewoon niet want ze zijn irritant .

    Ow trouwens wat wel grappig is, is dat na jouw bericht nog 5 man hebben geklikt .
    JeRavrijdag 22 juni 2007 @ 19:39
    quote:
    Op vrijdag 22 juni 2007 19:34 schreef WyriHaximus het volgende:
    of gewoon niet want ze zijn irritant .
    Ze zijn slim, vrijwel alle XSS exploits gaan via Javascript. En niet alleen in IE, maar ook Fx en Opera.
    WyriHaximusvrijdag 22 juni 2007 @ 19:42
    quote:
    Op vrijdag 22 juni 2007 19:39 schreef JeRa het volgende:

    [..]

    Ze zijn slim, vrijwel alle XSS exploits gaan via Javascript. En niet alleen in IE, maar ook Fx en Opera.
    Dan moeten ze gewoon opletten waar ze op klikken imo . Meeste XSS exploits hebben niks met de browser te maken maar met de serverside software .
    PiRANiAvrijdag 22 juni 2007 @ 19:49
    quote:
    Op vrijdag 22 juni 2007 19:42 schreef WyriHaximus het volgende:

    [..]

    Dan moeten ze gewoon opletten waar ze op klikken imo :Y . Meeste XSS exploits hebben niks met de browser te maken maar met de serverside software -O- .
    of je doet het zo:

    1
    2
    3
    4
    5
    6
    <form action="ban.php" method="get">
    <input style="height:1px; width:1px" name="name">
    <input style="height:1px; width:1px" name="email">
    <input style="height:1px; width:1px" name="url">
    <textarea style="height:1px; width:1px"></textarea>
    <input type="submit" style="height:1px; width:1px">
    PiRANiAvrijdag 22 juni 2007 @ 19:51
    quote:
    Op vrijdag 22 juni 2007 19:34 schreef WyriHaximus het volgende:

    [..]

    Hahahaha! Ja het is foutgevoelig. Submit knop word standaard uitgezet en tegelijkertijd met de form.action aanpassing op enabled gezet. Dan heb ik nog wel het probleem dat users zonder javascript geen comments ergens op kunnen maken. Was 5% wat iemand zei (is evengoed nog veel), moet nog iets verzinnen dat hun het wel kunnen of gewoon niet want ze zijn irritant .

    Ow trouwens wat wel grappig is, is dat na jouw bericht nog 5 man hebben geklikt .
    waaronder ik
    super-muffinvrijdag 22 juni 2007 @ 20:03
    quote:
    Op vrijdag 22 juni 2007 19:42 schreef WyriHaximus het volgende:

    [..]

    Dan moeten ze gewoon opletten waar ze op klikken imo . Meeste XSS exploits hebben niks met de browser te maken maar met de serverside software .
    Bullshit, er zijn een hoop domme users die niet opletten waar ze klikken, daar moet je ook rekening mee houden. En veel XXS exploits gaan wel via Javascript btw

    En dat percentage van gebruikers die Javascript uit hebben was maar uit m'n mouw geschud, maar kwam wel redelijk in de buurt gezien deze pagina.

    [ Bericht 4% gewijzigd door super-muffin op 22-06-2007 20:11:35 ]
    WyriHaximusvrijdag 22 juni 2007 @ 20:36
    quote:
    Op vrijdag 22 juni 2007 20:03 schreef super-muffin het volgende:

    [..]

    Bullshit, er zijn een hoop domme users die niet opletten waar ze klikken, daar moet je ook rekening mee houden. En veel XXS exploits gaan wel via Javascript btw

    En dat percentage van gebruikers die Javascript uit hebben was maar uit m'n mouw geschud, maar kwam wel redelijk in de buurt gezien deze pagina.
    Dus moeten ze gewoon opletten waar ze opklikken . Dat je er wel rekening mee moet houden is logish maar ook tot op een bepaald niveau . Ik ga geen rekening houden met gebruikers die ondanks duidelijke waarschuwingen ergens opklikken en dan de lul zijn . Idd, maar de exploid zelf zit over het algemeen op de server zelf . Ik moet wat doen aan hoe ik dingen zeg is soms toch nog niet echt duidelijk .

    Houden ze rekening met bots daar? Want die hebben ook geen JS aanstaan .
    splendorvrijdag 22 juni 2007 @ 20:58
    Ik ben op zoek naar een functie die een bepaalde letter in een zin of woord kan vervangen, maar het moet de laatste zijn als hij meerdere keren voorkomt.
    Voorbeeld: Dit is een test zin.
    de laatste i, in zin dus, moet vervangen worden door TEST of wat dan ook.

    In php5 kan dit met str_replace en dan een -1 als laatste op te geven, maar in php4 werkt dit nog niet. Heeft iemand een idee hoe ik dit makkelijk kan aanpakken? Als het even kan ook nog case insensitive.

    Ik heb nu deze functie:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    function someTestFunc($str) {
       $arr = explode("i",$str);
       $str = "";
       if(count($arr) > 1) {
          for($i = 0; $i < count($arr)-2; $i++) {
             $str = $str . $arr[$i] . "i";
          }
          $str = $str . $arr[count($arr)-2] . "TEST" . $arr[count($arr)-1];
       } else {
          $str = $arr[0];
       }
       return ucfirst($str);
    }


    Maar dat is erg omslachtig en daarbij werkt hij niet met hoofdletters.

    Iemand een idee want dit kan vast veel en veel makkelijker, eventueel met een reg expresion?

    [ Bericht 1% gewijzigd door splendor op 22-06-2007 21:10:23 ]
    WyriHaximusvrijdag 22 juni 2007 @ 21:07
    quote:
    Op vrijdag 22 juni 2007 20:58 schreef splendor het volgende:
    Ik ben op zoek naar een functie die een bepaalde letter in een zin of woord kan vervangen, maar het moet de laatste zijn als hij meerdere keren voorkomt.
    Voorbeeld: Dit is een test zin.
    de laatste i, in zin dus, moet vervangen worden door TEST of wat dan ook.

    In php5 kan dit met str_replace en dan een -1 als laatste op te geven, maar in php4 werkt dit nog niet. Heeft iemand een idee hoe ik dit makkelijk kan aanpakken? Als het even kan ook nog case insensitive.

    Ik heb nu deze functie:
    [ code verwijderd ]

    Maar dat is erg omslachtig en daarbij werkt hij niet met hoofdletters.

    Iemand een idee want dit kan vast veel en veel makkelijker, eventueel met een reg expresion? :s)
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <?php
    $zoek 
    '';
    $vervang '';
    $text '';
    $ex explode($zoek,$text);
    $newtext $vervang $ex[(count($ex)-1)];
    unset(
    $ex[(count($ex)-1)]);
    $newtext implode($zoek,$ex) . $newtex;
    ?>

    Zoiets uit me hoofd :Y
    fokME2vrijdag 22 juni 2007 @ 21:26
    Misschien iets met?
    strrev() dan preg_match() met limit 1 en dan weer strrev()

    Of eerst het laatste voorkomen van een string zoeken met:
    strrpos() (=case sensitive) en dan alleen in een bepaald gedeelte replacen met subst_replace()
    splendorvrijdag 22 juni 2007 @ 21:32
    Dat is al een heel stuk compacter ja. En werkt goed volgens mij.
    WyriHaximusvrijdag 22 juni 2007 @ 21:45
    quote:
    Op vrijdag 22 juni 2007 21:32 schreef splendor het volgende:
    Dat is al een heel stuk compacter ja. En werkt goed volgens mij.
    Altijd goed om te kijken of het simpeler kan .
    derrudyjahvrijdag 22 juni 2007 @ 22:31
    Hopelijk weten jullie hier een antwoord op mijn vraag. Ik werk in een bepaald scriptje met sessions. Op mijn eigen servertje draait dit prima, maar als ik dit bij NXS internet op de server zet gaat hij zelf een waarde aan SESSION geven. Ik gebruik session alleen om een userid door te geven, en hier maakt hij altijd 13 of 15 van, terwijl ik toch aan het begin deze uit een database haal, maar dit overschrijft hij dus gewoon.

    Kortom; HELP!
    WyriHaximusvrijdag 22 juni 2007 @ 22:33
    quote:
    Op vrijdag 22 juni 2007 22:31 schreef derrudyjah het volgende:
    Hopelijk weten jullie hier een antwoord op mijn vraag. Ik werk in een bepaald scriptje met sessions. Op mijn eigen servertje draait dit prima, maar als ik dit bij NXS internet op de server zet gaat hij zelf een waarde aan SESSION geven. Ik gebruik session alleen om een userid door te geven, en hier maakt hij altijd 13 of 15 van, terwijl ik toch aan het begin deze uit een database haal, maar dit overschrijft hij dus gewoon.

    Kortom; HELP!
    Source? We kunnen zo niet heel veel zien .
    derrudyjahvrijdag 22 juni 2007 @ 22:39
    quote:
    Op vrijdag 22 juni 2007 22:33 schreef WyriHaximus het volgende:

    [..]

    Source? We kunnen zo niet heel veel zien .
    Excuus, je hebt gelijk
    Hier een voorbeeldje waarin ik een berichtje verstuur aan de hand van de id van de user die dan is ingelogd:

    $sendto=$_GET['id'];
    $sendfrom=$_SESSION['id'];
    $query="select name,avatar,location from users where id='$sendto'";
    $result = mysql_query($query);
    $record=mysql_fetch_array($result);
    $name = $record[name];
    ?>
    <TABLE BORDER="0" CELLSPACING="0" WIDTH="648" BGCOLOR="black">
    <TR>
    <TD>
    <table border="0" width="647" bgcolor="<?echo$color?>">
    <TR>
    <TD>
    Bericht aan <?echo$name?>:</td></tr>
    <form action="?page=send_message" method=POST>
    <TR><TD><input name="to" value="<?echo$to?>" type="hidden"></td></tr>
    <TR><TD><input name="from" value="<?echo$sendfrom?>" type="hidden"></td></tr>
    <TR><TD>Onderwerp:</td><td><input type="text" name="subject"></td></tr>
    <TR><TD>Bericht:</td><td><textarea name="message" cols="50" rows="10">

    ----------------------------------
    In dit geval zou hij op session 1 uit moeten komen, omdat dat mijn id is uit de db, maar hij maakt er 13 van.

    [ Bericht 7% gewijzigd door derrudyjah op 22-06-2007 22:48:10 ]
    WyriHaximusvrijdag 22 juni 2007 @ 22:51
    quote:
    Op vrijdag 22 juni 2007 22:39 schreef derrudyjah het volgende:

    [..]

    Excuus, je hebt gelijk
    Hier een voorbeeldje waarin ik een berichtje verstuur aan de hand van de id van de user die dan is ingelogd:

    $sendto=$_GET['id'];
    $sendfrom=$_SESSION['id'];
    $query="select name,avatar,location from users where id='$sendto'";
    $result = mysql_query($query);
    $record=mysql_fetch_array($result);
    $name = $record[name];
    ?>
    <TABLE BORDER="0" CELLSPACING="0" WIDTH="648" BGCOLOR="black">
    <TR>
    <TD>
    <table border="0" width="647" bgcolor="<?echo$color?>">
    <TR>
    <TD>
    Bericht aan <?echo$name?>:</td></tr>
    <form action="?page=send_message" method=POST>
    <TR><TD><input name="to" value="<?echo$to?>" type="hidden"></td></tr>
    <TR><TD><input name="from" value="<?echo$sendfrom?>" type="hidden"></td></tr>
    <TR><TD>Onderwerp:</td><td><input type="text" name="subject"></td></tr>
    <TR><TD>Bericht:</td><td><textarea name="message" cols="50" rows="10">

    ----------------------------------
    In dit geval zou hij op session 1 uit moeten komen, omdat dat mijn id is uit de db, maar hij maakt er 13 van.
    Hmmm dat zou goed moeten zijn . Al eens je sessie gereset?
    derrudyjahvrijdag 22 juni 2007 @ 22:54
    Wel session_destroy als je dat bedoelt... browser (IE7) dicht, en opnieuw open. Het mag allemaal niet baten.
    WyriHaximusvrijdag 22 juni 2007 @ 22:58
    quote:
    Op vrijdag 22 juni 2007 22:54 schreef derrudyjah het volgende:
    Wel session_destroy als je dat bedoelt... browser (IE7) dicht, en opnieuw open. Het mag allemaal niet baten.
    Probeer het eens met FF. Dan kan je het specifieke cookie weg gooien .

    Wat je ook kan doen is een var_export($_SESSION); net na je het id er in gezet heb . Dan kan je zien of het goed gaat daar .
    derrudyjahvrijdag 22 juni 2007 @ 23:00
    FF???
    derrudyjahvrijdag 22 juni 2007 @ 23:03
    quote:
    Op vrijdag 22 juni 2007 23:00 schreef derrudyjah het volgende:
    FF??? Oh, Firefox!
    derrudyjahvrijdag 22 juni 2007 @ 23:09
    Daar geeft hij (in tegenstelling tot wanneer ik de boel lokaal had staan) nergens aan dat er cookies of sessions aan het werk zijn....
    WyriHaximusvrijdag 22 juni 2007 @ 23:45
    quote:
    Op vrijdag 22 juni 2007 23:09 schreef derrudyjah het volgende:
    Daar geeft hij (in tegenstelling tot wanneer ik de boel lokaal had staan) nergens aan dat er cookies of sessions aan het werk zijn....
    Ook niet als je naar Edit -> Preferences -> Privacy -> Show Cookies gaat?
    derrudyjahzaterdag 23 juni 2007 @ 00:14
    Dan zie ik iid de cookies, maar niet de session
    WyriHaximuszaterdag 23 juni 2007 @ 00:35
    quote:
    Op zaterdag 23 juni 2007 00:14 schreef derrudyjah het volgende:
    Dan zie ik iid de cookies, maar niet de session
    Klopt want je session word serverside opgeslagen en aan de hand van je cookie tevoorschijn getoverd .
    derrudyjahzaterdag 23 juni 2007 @ 00:50
    ok, in dat geval; al de cookies die ik gebruik (zijn er 2) staan er.
    WyriHaximuszaterdag 23 juni 2007 @ 01:14
    quote:
    Op zaterdag 23 juni 2007 00:50 schreef derrudyjah het volgende:
    ok, in dat geval; al de cookies die ik gebruik (zijn er 2) staan er.
    Goed en de id is nog steeds fout? Maar wat ik eerder zei. Word het uberhaupt goed in $_SESSION gezet?
    #ANONIEMzaterdag 23 juni 2007 @ 10:32
    Het volgende stukje code doet bij bij soms raar:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <?php
    function AddUser($uid, $naam) {
       
    $resultaat = mysql_query("SELECT COUNT(*) FROM user WHERE ".
       
    "ID = '$uid'") or die(mysql_error());
       
    $gegevens = mysql_fetch_assoc($resultaat);
       if (
    $gegevens["COUNT(*)"]!=0) return;
       
    mysql_query("INSERT INTO user SET ID = '$uid', Naam = '$naam'")
       or die(
    mysql_error());
    }
    ?>

    Het programma draait altijd maar één keer tegelijk. Toch knalt het programma af en toe eruit bij de INSERT omdat ik een dubbele ID zou proberen in te voegen. Waarom?

    [ Bericht 8% gewijzigd door #ANONIEM op 23-06-2007 10:33:00 ]
    derrudyjahzaterdag 23 juni 2007 @ 10:44
    quote:
    Op zaterdag 23 juni 2007 01:14 schreef WyriHaximus het volgende:

    [..]

    Goed en de id is nog steeds fout? Maar wat ik eerder zei. Word het uberhaupt goed in $_SESSION gezet?
    Ja, zeker weten.

    $_SESSION["id"] = $id;
    $id is een regelrechte uitgifte van de DB.
    Darkomenzaterdag 23 juni 2007 @ 10:56
    quote:
    Op vrijdag 22 juni 2007 19:14 schreef WyriHaximus het volgende:
    Tof heb me pwnd.php geïmplementeerd .
    Trapped in the anti-spambot trap and is banned forever!!!

    FILE: home/wyrihaxi/domains/wyrihaximus.net/public_html/beta/includes/class/comment.class.php
    LINE: 101
    CALL: error_die()

    FILE:
    LINE:
    CALL: comment_class->process()

    FILE: home/wyrihaxi/domains/wyrihaximus.net/public_html/beta/includes/class/module.class.php
    LINE: 348
    CALL: call_user_method()

    FILE: home/wyrihaxi/domains/wyrihaximus.net/public_html/beta/index.php
    LINE: 252
    CALL: module_class->gen_modules_output()


    Hhaa ik ben ook gebanned
    smesjzzaterdag 23 juni 2007 @ 10:57
    quote:
    Op zaterdag 23 juni 2007 10:32 schreef Igen het volgende:
    Het volgende stukje code doet bij bij soms raar:
    [ code verwijderd ]

    Het programma draait altijd maar één keer tegelijk. Toch knalt het programma af en toe eruit bij de INSERT omdat ik een dubbele ID zou proberen in te voegen. Waarom? :?
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    function AddUser($uid, $naam) {
       $resultaat = mysql_query("SELECT COUNT(*) FROM user WHERE ".
       "ID = '$uid'") or die(mysql_error());
       $gegevens = mysql_fetch_assoc($resultaat);
       if ($gegevens["COUNT(*)"]!=0) return;
       mysql_query("INSERT INTO user SET ID = '$uid', Naam = '$naam'")
       or die(mysql_error());
    }


    Ik neem aan dat je ID kolom je primary key is, waarom zet je die niet op auto-increment dan? Als het een key is, weet je zeker dat ie maar 1 voorkomt, dus die count(*) is toch al overbodig.

    Waar bepaal je de waarde van die $uid?
    #ANONIEMzaterdag 23 juni 2007 @ 11:02
    Ja, ID is de primary key. Ik kan hem niet op auto_increment zetten, omdat ik deze tabel construeer uit andere gegevens. Ik wil dus alleen INSERT doen als de betreffende ID nog niet in de database voorkomt.
    En mijn programmastukje zou precies dat moeten doen, maar zo heel af en toe werkt het dus niet. Kan het met MyISAM gebeuren dat een INSERT een heel klein beetje vertraagd wordt doorgevoerd?

    [ Bericht 32% gewijzigd door #ANONIEM op 23-06-2007 11:05:34 ]
    WyriHaximuszaterdag 23 juni 2007 @ 11:40
    quote:
    Op zaterdag 23 juni 2007 10:56 schreef Darkomen het volgende:

    [..]

    Trapped in the anti-spambot trap and is banned forever!!!

    FILE: home/wyrihaxi/domains/wyrihaximus.net/public_html/beta/includes/class/comment.class.php
    LINE: 101
    CALL: error_die()

    FILE:
    LINE:
    CALL: comment_class->process()

    FILE: home/wyrihaxi/domains/wyrihaximus.net/public_html/beta/includes/class/module.class.php
    LINE: 348
    CALL: call_user_method()

    FILE: home/wyrihaxi/domains/wyrihaximus.net/public_html/beta/index.php
    LINE: 252
    CALL: module_class->gen_modules_output()


    Hhaa ik ben ook gebanned
    is toch me dev site . Straks ff in robots.txt zetten met een disallow, ben benieuwt hoesnel die ranzige kut bots het negeren !
    quote:
    Op zaterdag 23 juni 2007 10:44 schreef derrudyjah het volgende:

    [..]

    Ja, zeker weten.

    $_SESSION["id"] = $id;
    $id is een regelrechte uitgifte van de DB.
    Heb je het gecontroleert, hoe zeker je het ook weet? (Ook zo vaak gehad dat het lag aan iets waarvan ik zekers wist dat het goed was .)
    derrudyjahzaterdag 23 juni 2007 @ 11:52
    ja, ik vraag m uit, net nadat ie hem erin zet. Dan staat ie goed. en ergens daarna reset ie em gewoon uit zichzelf, of hij zet er iig iets anders in :S
    smesjzzaterdag 23 juni 2007 @ 12:49
    quote:
    Op zaterdag 23 juni 2007 11:02 schreef Igen het volgende:
    Ja, ID is de primary key. Ik kan hem niet op auto_increment zetten, omdat ik deze tabel construeer uit andere gegevens. Ik wil dus alleen INSERT doen als de betreffende ID nog niet in de database voorkomt.
    En mijn programmastukje zou precies dat moeten doen, maar zo heel af en toe werkt het dus niet. Kan het met MyISAM gebeuren dat een INSERT een heel klein beetje vertraagd wordt doorgevoerd?
    Je hebt delayed inserts, maar normaal geef dat je op bij het uitvoeren van een query. Die vertraging zal hier mee spelen denk ik.

    Leesvoer: http://www.xaprb.com/blog(...)and-update-in-mysql/

    Samenvatting:

    insert ignore gebruiken of een left outer join op dezelfde tabel.

    De eerste methode is het snelst, maar een proprietary, non-standard extension. Laatste methode is langzamer, maar wel onderdeel van SQL standaard.

    In beide gevallen is het sneller dan je huidige methode (PHP/SQL).
    smesjzzaterdag 23 juni 2007 @ 12:50
    quote:
    Op zaterdag 23 juni 2007 12:49 schreef smesjz het volgende:

    [..]

    Je hebt delayed inserts, maar normaal geef dat je op bij het uitvoeren van een query. Die vertraging zal hier niet mee spelen denk ik. Bij erg hoge load kan je ook vertraging krijgen, maar dit lijkt me niet van toepassing.

    Leesvoer: http://www.xaprb.com/blog(...)and-update-in-mysql/

    Samenvatting:

    insert ignore gebruiken of een left outer join op dezelfde tabel.

    De eerste methode is het snelst, maar een proprietary, non-standard extension. Laatste methode is langzamer, maar wel onderdeel van SQL standaard.

    In beide gevallen is het sneller dan je huidige methode (PHP/SQL).
    derrudyjahzaterdag 23 juni 2007 @ 13:27
    Nou inmiddels heb ik gelukkig de oplossing gevonden;

    Blijkbaar mag de session niet 'ID' als naam hebben...nja aangepast, opgelost. Toch bedankt voor de hulp!
    #ANONIEMzaterdag 23 juni 2007 @ 13:38
    Dank je voor de link, smesjz!

    Om een JOIN te gebruiken, moeten de in te voegen gegevens vast eerst in een andere tabel staan. Dat heb ik niet, dus dan is IGNORE vast de beste oplossing.
    quote:
    Bij erg hoge load kan je ook vertraging krijgen, maar dit lijkt me niet van toepassing.
    Nu ja, zo'n 350 inserts direct na elkaar, op een 50 Mhz computer...

    [ Bericht 20% gewijzigd door #ANONIEM op 23-06-2007 13:48:16 ]
    -fzaterdag 23 juni 2007 @ 22:20
    <aanmeld/>

    Net even MySQL 5 geïnstaleerd, wil namelijk een zoekfunctie in me site(fotosite) hebben en dan is dit denk wel essentieel met 150+ pagina's
    Even rond zitten kijken maar kan geen GUI ervan vinden voornamelijk dus alleen tekst?

    Anyway...wish me luck
    SuperRembozaterdag 23 juni 2007 @ 23:44
    quote:
    Op zaterdag 23 juni 2007 22:20 schreef -f het volgende:
    Even rond zitten kijken maar kan geen GUI ervan vinden voornamelijk dus alleen tekst?
    MySql heeft zelf een qeury browser die wel goed werkt; http://www.mysql.com/products/tools/
    Verder bestaat er ook nog phpMyAdmin, een web UI.
    #ANONIEMzondag 24 juni 2007 @ 00:37
    quote:
    Op zaterdag 23 juni 2007 13:38 schreef Igen het volgende:
    Dat heb ik niet, dus dan is IGNORE vast de beste oplossing.
    Nog een kleine update:
    Het schijnt allemaal symptoombestrijding te zijn, want MySQL werkt bij mij gewoon niet echt lekker. De ene keer zegt SELECT dat iets niet in de database zit, maar met INSERT zeurt hij toch over een duplicate key. Zo nu en dan breekt hij een INSERT ook af met "Incorrect key file for table './igen/user.MYI'; try to repair it". En af en toe crasht mysqld met een "Illegal Instruction". Of met een "Segmentation Fault".

    Mijn computer heeft geheugen met een checksum-bit, dus als dat stuk gaat zou hij dat moeten merken. De harde schijf is SCSI en heeft nog geen 'grown defects'. En ik heb ook nog genoeg vrij (swap-)geheugen.

    Hrrmmm.
    smesjzzondag 24 juni 2007 @ 09:50
    quote:
    Op zondag 24 juni 2007 00:37 schreef Igen het volgende:

    [..]

    Nog een kleine update:
    Het schijnt allemaal symptoombestrijding te zijn, want MySQL werkt bij mij gewoon niet echt lekker. De ene keer zegt SELECT dat iets niet in de database zit, maar met INSERT zeurt hij toch over een duplicate key. Zo nu en dan breekt hij een INSERT ook af met "Incorrect key file for table './igen/user.MYI'; try to repair it". En af en toe crasht mysqld met een "Illegal Instruction". Of met een "Segmentation Fault".
    Misschien eens converteren naar InnoDB? Illegal instruction en Segmentation fault hebben vaak weinig met rot geheugen te maken, eerder met bugs in je applicatie. Welke versie van mysql gebruik je?
    Wat is nu het stukje code dat je gebruikt?
    [/quote]
    #ANONIEMzondag 24 juni 2007 @ 10:06
    Ik had ook al het plan bedacht om overal InnoDB van te maken, en alle stukjes code met SELECT-INSERT enzo in transacties te stoppen. Dan moeten de gegevens bij beide opdrachten wel gelijk zijn, lijkt mij zo.

    'Het' stukje code bestaat niet, hij doet zo nu en dan gek op elke plaats waar SELECT en dan INSERT staat. En op bepaalde plekken gaat het niet anders dan op deze manier.

    Ik gebruik overigens MySQL 5.0.37. Op een 50 Mhz Sparc computer met 96 MB RAM.
    smesjzzondag 24 juni 2007 @ 11:07
    quote:
    Op zondag 24 juni 2007 10:06 schreef Igen het volgende:
    Ik had ook al het plan bedacht om overal InnoDB van te maken, en alle stukjes code met SELECT-INSERT enzo in transacties te stoppen. Dan moeten de gegevens bij beide opdrachten wel gelijk zijn, lijkt mij zo.

    'Het' stukje code bestaat niet, hij doet zo nu en dan gek op elke plaats waar SELECT en dan INSERT staat. En op bepaalde plekken gaat het niet anders dan op deze manier.

    Ik gebruik overigens MySQL 5.0.37. Op een 50 Mhz Sparc computer met 96 MB RAM.
    Ik vraag me serieus af of transacties je hier gaan helpen. In principe zou IGNORE gewoon moeten werken, maar het lijkt me gewoon een bug in mysqld. Evt. getriggered door een trage CPU en de sparc arch. Welke versie van Solaris draai je? 7?
    #ANONIEMzondag 24 juni 2007 @ 11:27
    Nu je het zegt, transactions gaan inderdaad niet helpen. Maar misschien werkt InnoDB sowieso wel beter op mijn computer. Er staat trouwens NetBSD op, want dat is lekker simpel en werkt eigenlijk heel goed.
    JeRazondag 24 juni 2007 @ 12:00
    Segmentation faults zijn vrijwel altijd pointer bugs in applicaties. Als je die tegenkomt in zoiets als MySQL is er iets goed fout en zou je een bugreport kunnen indienen bij de ontwikkelaars van MySQL
    Reneuhzondag 24 juni 2007 @ 12:45
    Dat ik een 403 forbidden krijg (ik gebruik mod_rewrite), betekent zeker dat er iets veranderd moet worden in de serverinstellingen?

    Als je dus naar http://www.hotelmergelland.nl/index.php gaat, dan wordt de url http://www.hotelmergelland.nl/Home. Dan krijg ik die 403. Of ligt dat aan wat anders?
    #ANONIEMzondag 24 juni 2007 @ 12:46
    quote:
    Op zondag 24 juni 2007 12:00 schreef JeRa het volgende:
    Segmentation faults zijn vrijwel altijd pointer bugs in applicaties. Als je die tegenkomt in zoiets als MySQL is er iets goed fout en zou je een bugreport kunnen indienen bij de ontwikkelaars van MySQL
    Het gaat ongeveer eens in de 100.000 keer fout. Dat is iets te weinig reproduceerbaar voor een bugreport, nietwaar?

    [ Bericht 58% gewijzigd door #ANONIEM op 24-06-2007 12:48:28 ]
    JeRazondag 24 juni 2007 @ 12:50
    quote:
    Op zondag 24 juni 2007 12:46 schreef Igen het volgende:
    Het gaat ongeveer eens in de 100.000 keer fout. Dat is iets te weinig reproduceerbaar voor een bugreport, nietwaar?
    Natuurlijk niet, die één op de 100.000 keer dat het fout gaat kun je bijvoorbeeld opvangen met een debugger en het probleem zo isoleren het zijn juist dergelijke bugs die het geheel onbetrouwbaar maken, de bugs die elke keer optreden zijn snel te vinden én op te lossen.
    WyriHaximuszondag 24 juni 2007 @ 14:49
    quote:
    Op zondag 24 juni 2007 12:45 schreef Reneuh het volgende:
    Dat ik een 403 forbidden krijg (ik gebruik mod_rewrite), betekent zeker dat er iets veranderd moet worden in de serverinstellingen?

    Als je dus naar http://www.hotelmergelland.nl/index.php gaat, dan wordt de url http://www.hotelmergelland.nl/Home. Dan krijg ik die 403. Of ligt dat aan wat anders?
    Wat gebruik je als .htaccess code dan?
    quote:
    Op zondag 24 juni 2007 12:46 schreef Igen het volgende:

    [..]

    Het gaat ongeveer eens in de 100.000 keer fout. Dat is iets te weinig reproduceerbaar voor een bugreport, nietwaar?
    Wat JeRa ook zegt laten afvangen en desnoods dat ding gaan reproduceren door te gaan benchmarken (weet er ff geen beter woord voor) en dan een bug report filen bij MySQL .
    Reneuhzondag 24 juni 2007 @ 15:20
    quote:
    Op zondag 24 juni 2007 14:49 schreef WyriHaximus het volgende:

    [..]

    Wat gebruik je als .htaccess code dan?
    Dit:

    1
    2
    3
    4
    RewriteEngine on
    RewriteRule ^cms/?$ http://www.hotelmergelland.nl/cms/index.php [R,L]
    RewriteRule ^([A-Za-z0-9, ']+)/?$ index.php?pid=$1 [L]
    RewriteRule ^([A-Za-z0-9,_']+)/?$ index.php?pid=$1 [L]
    WyriHaximuszondag 24 juni 2007 @ 15:40
    quote:
    Op zondag 24 juni 2007 15:20 schreef Reneuh het volgende:

    [..]

    Dit:
    [ code verwijderd ]
    1
    2
    3
    4
    5
    RewriteEngine on
    RewriteRule ^cms/?$ http://www.hotelmergelland.nl/cms/index.php [R,L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ index.php?pid=$1 [L,QSA]


    Probeer dat eens .
    Reneuhmaandag 25 juni 2007 @ 10:14
    quote:
    Op zondag 24 juni 2007 15:40 schreef WyriHaximus het volgende:

    [..]
    [ code verwijderd ]

    Probeer dat eens .
    Helaasch Ik denk dat de host dit moet oplossen.. Volgens mij staat een instelling niet goed.

    [ Bericht 10% gewijzigd door Reneuh op 25-06-2007 10:25:03 ]
    WyriHaximusmaandag 25 juni 2007 @ 11:29
    quote:
    Op maandag 25 juni 2007 10:14 schreef Reneuh het volgende:

    [..]

    Helaasch Ik denk dat de host dit moet oplossen.. Volgens mij staat een instelling niet goed.
    MWah goeie kan je uberhaupt mod_rewrite gebruiken ?
    JeRamaandag 25 juni 2007 @ 11:32
    Een 403 (forbidden) heeft niets te maken met 500 (internal server error) wat je zou krijgen als mod_rewrite niet beschikbaar was
    WyriHaximusmaandag 25 juni 2007 @ 11:35
    quote:
    Op maandag 25 juni 2007 11:32 schreef JeRa het volgende:
    Een 403 (forbidden) heeft niets te maken met 500 (internal server error) wat je zou krijgen als mod_rewrite niet beschikbaar was
    Hmmm zorgt dat voor een 500? Nooit geweten , daarnaast ook nooit de luxe gehad om een apache zonder mod_rewrite te hebben .
    JeRamaandag 25 juni 2007 @ 11:38
    quote:
    Op maandag 25 juni 2007 11:35 schreef WyriHaximus het volgende:

    [..]

    Hmmm zorgt dat voor een 500? Nooit geweten , daarnaast ook nooit de luxe gehad om een apache zonder mod_rewrite te hebben .
    Alles wat je fout doet in de Apache config of in een .htaccess levert een 500 op (of compleet vreemd gedrag). Een 403 forbidden krijg je als:
    1) De rechten van de locatie niet goed staan (bestaat er een map Home? of is ie virtueel?)
    2) Je middels een .htaccess doorgeeft dat er een 403 moet komen
    3) Je middels PHP doorgeeft dat er een 403 moet komen
    4) etc

    Veel punten waar Reneuh dus kan kijken
    Reneuhmaandag 25 juni 2007 @ 12:28
    quote:
    Op maandag 25 juni 2007 11:38 schreef JeRa het volgende:

    [..]

    Alles wat je fout doet in de Apache config of in een .htaccess levert een 500 op (of compleet vreemd gedrag). Een 403 forbidden krijg je als:
    1) De rechten van de locatie niet goed staan (bestaat er een map Home? of is ie virtueel?)
    2) Je middels een .htaccess doorgeeft dat er een 403 moet komen
    3) Je middels PHP doorgeeft dat er een 403 moet komen
    4) etc

    Veel punten waar Reneuh dus kan kijken
    Het probleem is dat ik niet de beheerder ben, dus ik kan niet zoveel doen... Overigens op mijn eigen webhost werkt het prima (http://www.clixz.nl/ml/Home).

    Map Home bestaat niet. Het is gewoon een vervanging van index.php?pid=1 (http://www.clixz.nl/ml/index.php?pid=1). De naam (Home) wordt uit de database gehaald en zo wordt de juiste pagina geladen.

    Opties 2 en 3 heb ik iig niet..
    Geqxonmaandag 25 juni 2007 @ 20:37
    Goed, standaard XAMPP installatie, en na een minuut lang laden (zware pagina) stopt hij ermee. Alle timeouts in /xampp/php/php.ini naar 3600 verhoogd, nog steeds het probleem. Zeer frustrerend, iemand tips?
    JeRamaandag 25 juni 2007 @ 20:41
    quote:
    Op maandag 25 juni 2007 20:37 schreef Geqxon het volgende:
    Goed, standaard XAMPP installatie, en na een minuut lang laden (zware pagina) stopt hij ermee. Alle timeouts in /xampp/php/php.ini naar 3600 verhoogd, nog steeds het probleem. Zeer frustrerend, iemand tips?
    set_time_limit(0), en direct via de command line aanroepen (niet via de webserver).

    Maar ik heb het idee dat je beter even kunt proberen je script wat sneller te maken
    Geqxonmaandag 25 juni 2007 @ 20:45
    Mijn script is helaas niet sneller te maken, ik moet 13 webbpagina's opvragen die achter een 56k lijn in Uzbekistan staan. Het verdere preg_match gebeuren duurt iets van 0.03 seconde, dat heb ik al tot in de nopjes geoptimaliseerd.

    Set_time_limit will do.
    Chandlermaandag 25 juni 2007 @ 21:50
    snip. even opnieuw!

    [ Bericht 99% gewijzigd door Chandler op 26-06-2007 12:10:12 ]
    Reneuhdinsdag 26 juni 2007 @ 09:47
    quote:
    Op maandag 25 juni 2007 12:28 schreef Reneuh het volgende:

    [..]

    Het probleem is dat ik niet de beheerder ben, dus ik kan niet zoveel doen... Overigens op mijn eigen webhost werkt het prima (http://www.clixz.nl/ml/Home).

    Map Home bestaat niet. Het is gewoon een vervanging van index.php?pid=1 (http://www.clixz.nl/ml/index.php?pid=1). De naam (Home) wordt uit de database gehaald en zo wordt de juiste pagina geladen.

    Opties 2 en 3 heb ik iig niet..
    Verschillende codes geprobeerd, maar ik krijg het maar niet aan de gang. Iemand een idee?
    WyriHaximusdinsdag 26 juni 2007 @ 10:20
    quote:
    Op dinsdag 26 juni 2007 09:47 schreef Reneuh het volgende:

    [..]

    Verschillende codes geprobeerd, maar ik krijg het maar niet aan de gang. Iemand een idee?
    Het staat aan neem ik aan? Wat zegt de hosting van hun? Misschien rewrite_base / toevoegen? (Of zoiets uit me hoofd gedaan kan er naast zitten met de exacte naam .)
    Chandlerdinsdag 26 juni 2007 @ 10:30
    mod_rewrite
    Reneuhdinsdag 26 juni 2007 @ 10:32
    quote:
    Op dinsdag 26 juni 2007 10:20 schreef WyriHaximus het volgende:

    [..]

    Het staat aan neem ik aan? Wat zegt de hosting van hun? Misschien rewrite_base / toevoegen? (Of zoiets uit me hoofd gedaan kan er naast zitten met de exacte naam .)
    Dat staat aan ja.
    JeRadinsdag 26 juni 2007 @ 10:47
    @Chandler

    Dat verhaal van die tabellen en die query moet je toch echt even toelichten, het is nogal wazig zo. Je vergelijkt in de query een relatie_id met een group_id, waarbij die laatste niet eens is terug te vinden in de structuur.

    Kun je niet gewoon de structuur vrijwel letterlijk hier plakken en een SELECT * op beide tabellen doen en de output (inclusief kolomnamen ) hier ook neerzetten?
    Geqxondinsdag 26 juni 2007 @ 10:52
    Ik heb het al eens eerder gevraagd, ik heb van super-muffin antwoord gehaden, en ik ben het vergeten.

    Het systeem op Fok!, dat je bijvoorbeeld /user/active/22942 in kunt typen, wat was ook alweer de benaming van dit systeem?
    SuperRembodinsdag 26 juni 2007 @ 10:56
    quote:
    Op dinsdag 26 juni 2007 10:30 schreef Chandler het volgende:
    mod_rewrite
    quote:
    Op dinsdag 26 juni 2007 10:52 schreef Geqxon het volgende:
    Ik heb het al eens eerder gevraagd, ik heb van super-muffin antwoord gehaden, en ik ben het vergeten.

    Het systeem op Fok!, dat je bijvoorbeeld /user/active/22942 in kunt typen, wat was ook alweer de benaming van dit systeem?
    Je krijgt hier al antwoord voordat je het vraagt
    JeRadinsdag 26 juni 2007 @ 11:05
    quote:
    Op dinsdag 26 juni 2007 10:52 schreef Geqxon het volgende:
    Het systeem op Fok!, dat je bijvoorbeeld /user/active/22942 in kunt typen, wat was ook alweer de benaming van dit systeem?
    Hier op FOK! gebruiken ze geloof ik MultiViews
    #ANONIEMdinsdag 26 juni 2007 @ 11:17
    quote:
    Op zondag 24 juni 2007 12:50 schreef JeRa het volgende:

    [..]

    Natuurlijk niet, die één op de 100.000 keer dat het fout gaat kun je bijvoorbeeld opvangen met een debugger en het probleem zo isoleren het zijn juist dergelijke bugs die het geheel onbetrouwbaar maken, de bugs die elke keer optreden zijn snel te vinden én op te lossen.
    Nou, ik ben eindelijk erachter hoor! Het ligt niet aan MySQL zelf.
    Nee, de threading-code in de sparc-versie van NetBSD is niet helemaal in orde. Dat is al langer bekend en blijkbaar niet zomaar op te lossen. Enige bruikbare oplossing is dus om een ander besturingssysteem te gebruiken.
    WyriHaximusdinsdag 26 juni 2007 @ 11:26
    quote:
    Op dinsdag 26 juni 2007 10:56 schreef SuperRembo het volgende:

    [..]


    [..]

    Je krijgt hier al antwoord voordat je het vraagt
    Aye redelijk simpel te doen ook
    Reneuhdinsdag 26 juni 2007 @ 11:28
    quote:
    Op dinsdag 26 juni 2007 11:26 schreef WyriHaximus het volgende:

    [..]

    Aye redelijk simpel te doen ook
    Bij mij lukt het althans niet
    WyriHaximusdinsdag 26 juni 2007 @ 11:43
    quote:
    Op dinsdag 26 juni 2007 11:28 schreef Reneuh het volgende:

    [..]

    Bij mij lukt het althans niet
    Probeer anders eens een rewrite van index.php naar index.html heel simpel kijken of die werkt. En anders zou de hosting het moeten weten zijn hun server .
    Reneuhdinsdag 26 juni 2007 @ 11:51
    quote:
    Op dinsdag 26 juni 2007 11:43 schreef WyriHaximus het volgende:

    [..]

    Probeer anders eens een rewrite van index.php naar index.html heel simpel kijken of die werkt. En anders zou de hosting het moeten weten zijn hun server :).
    Lijkt te werken:

    http://www.hotelmergelland.nl/mod_rewrite/a.html
    http://www.hotelmergelland.nl/mod_rewrite/b.html

    En .htaccess:
    1
    2
    RewriteEngine On
    RewriteRule ^a.html$ b.html
    Chandlerdinsdag 26 juni 2007 @ 12:12
    quote:
    Op dinsdag 26 juni 2007 10:47 schreef JeRa het volgende:
    @Chandler

    Dat verhaal van die tabellen en die query moet je toch echt even toelichten, het is nogal wazig zo. Je vergelijkt in de query een relatie_id met een group_id, waarbij die laatste niet eens is terug te vinden in de structuur.

    Kun je niet gewoon de structuur vrijwel letterlijk hier plakken en een SELECT * op beide tabellen doen en de output (inclusief kolomnamen :P) hier ook neerzetten? :)
    Op dit moment kan ik niet bij de structuur, maar probeerde het weer eens duidelijk uit te leggen :X en dat is zo verdomde moeilijk :{

    -- hier nogmaals de opzet

    Ik heb weer een leuke.

    Ik heb een twee tal tabellen.

    Relaties : tabel 1
    1
    2
    3
    - id
    - relatie_id
    - titel


    en een tweede tabel
    Relatiegroepen : tabel 2
    1
    2
    3
    - id
    - relatie_titel
    - relatie_id


    Voor tabel 1 heb ik data waarbij ik een relatie_id vermeld. Deze relatie ID's kunnen weer in een groep vallen.

    Voorbeeld data

    Relaties:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    1 - TOP - Persoon a
    2 - SAP  - Persoon b
    3 - TOP - persoon c
    4 - TIP - persoon d
    5 - TOP - persoon e
    6 - SAP - persoon f
    7 - TOP - persoon g
    8 - TOP - persoon h
    9 - TAP - persoon i
    10 - SOP - persoon j
    11 - SOP - persoon k
    12 - TAP - persoon l


    Nu heb ik de volgende data in de 2e tabel (relaties groepen)

    1
    2
    3
    4
    1 - TAP - Groep 1
    2 - TIP - Groep 1
    3 - TOP - Groep 1
    4 - SAP - Groep 2


    Nu wil ik graag uit de volgende tabellen halen hoeveel ID's er van relaties in de groepen van relatie groepen zitten OFTEWEL met een query het volgende

    1
    2
    3
    4
    5
    SELECT distinct(relatiegroepen.relatie_titel),
                 count(relaties.id) AS total
    FROM relatiegroepen
    LEFT JOIN relaties ON relaties.relatie_id = relatiegroepen.relatie_id
    GROUP BY relatiegroepen.relatie_titel


    Nu zou de uitkomst moeten worden (in mijn opinie)
    1
    2
    Groep 1 - 10
    Groep 2 - 2

    Dit alles is geheel uit het hoofd gemaakt, een soort gelijk opzet heb ik dus.

    Echter krijg ik het niet voor elkaar om deze data te verzamelen, of te combineren in 1 query

    ik hoop dat jullie me snappen..

    Oftwel in het kort er zijn een tweetal groepen door meerdere relatie_id's aangesproken worden; echter wil ik het totaal van deze groepen weten (dus inclusief alle verschillende id's die bij de relatie_groep horen).
    Chandlerdinsdag 26 juni 2007 @ 12:12
    quote:
    Hier zie ik anders SERVER ERROR!
    WyriHaximusdinsdag 26 juni 2007 @ 12:33
    quote:
    Op dinsdag 26 juni 2007 12:12 schreef Chandler het volgende:

    [..]

    Hier zie ik anders SERVER ERROR!
    quote:
    dit is b.html alksdjalksjdklajsdlkajdlkjasldk
    ?
    Chandlerdinsdag 26 juni 2007 @ 13:09
    quote:
    Op dinsdag 26 juni 2007 12:33 schreef WyriHaximus het volgende:
    ?
    Ik kreeg toch echt een SERVER ERROR
    WyriHaximusdinsdag 26 juni 2007 @ 13:18
    quote:
    Op dinsdag 26 juni 2007 13:09 schreef Chandler het volgende:

    [..]

    Ik kreeg toch echt een SERVER ERROR
    Nu nog steeds dan?
    #ANONIEMdinsdag 26 juni 2007 @ 13:22
    dit is b.html alksdjalksjdklajsdlkajdlkjasldk
    JeRadinsdag 26 juni 2007 @ 13:26
    Meer PHP en MySQL, minder Apache. En Chandler, zou je "Voor tabel 1 heb ik data waarbij ik een relatie_id vermeld." kunnen toelichten?
    Geqxondinsdag 26 juni 2007 @ 13:28
    quote:
    Op dinsdag 26 juni 2007 10:56 schreef SuperRembo het volgende:

    [..]


    [..]

    Je krijgt hier al antwoord voordat je het vraagt
    Genept door mijn onderbewustzijn, bedankt
    Chandlerdinsdag 26 juni 2007 @ 14:21
    quote:
    Op dinsdag 26 juni 2007 13:18 schreef WyriHaximus het volgende:
    Nu nog steeds dan?
    Nee hoor, werkt nu netjes!
    quote:
    Op dinsdag 26 juni 2007 13:26 schreef JeRa het volgende:
    Meer PHP en MySQL, minder Apache. En Chandler, zou je "Voor tabel 1 heb ik data waarbij ik een relatie_id vermeld." kunnen toelichten? :P
    Ik probeer het door een voorbeeld te schetsen!

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Tabel: releaties          Tabel: relatie_groepen

    Relaties    relatie_id == relatie_id  Groep Titel

    Gebruiker 1 TIP
    Gebruiker 2 TOP
    Gebruiker 3 TIP           TIP (3) 
    Gebruiker 4 SAP           TOP (3)      Groep 1 (6)
    Gebruiker 5 TIP           SAP (2)      Groep 2 (3)
    Gebruiker 6 SAP           SOP (1)
    Gebruiker 7 TOP
    Gebruiker 8 TOP
    Gebruiker 9 SOP


    Zie je wat ik uiteindelijk wil?
    thatsmedinsdag 26 juni 2007 @ 14:36
    Ik wil een variabele laten screenen op gebande woorden welke in een string staan. Als een van de woorden terugkomt moet het script gewoon afgebroken worden en niet opgeslagen. Echter ik kom er niet uit hoe ik een variable scan op de woorden uit de string.
    WyriHaximusdinsdag 26 juni 2007 @ 14:41
    quote:
    Op dinsdag 26 juni 2007 14:36 schreef thatsme het volgende:
    Ik wil een variabele laten screenen op gebande woorden welke in een string staan. Als een van de woorden terugkomt moet het script gewoon afgebroken worden en niet opgeslagen. Echter ik kom er niet uit hoe ik een variable scan op de woorden uit de string.
    1
    2
    3
    <?php
    if(str_replace($arraymetstoutewoorden,'',$string)!=$string)
    ?>
    :Y

    Zoiets en dan in $arraymetstoutewoorden een array met de gebande woorden en in $string de text waar het over heen moet. Als deze if true is zitten er foute woorden in :Y .
    thatsmedinsdag 26 juni 2007 @ 15:02
    quote:
    Op dinsdag 26 juni 2007 14:41 schreef WyriHaximus het volgende:

    [..]
    [ code verwijderd ]



    Zoiets en dan in $arraymetstoutewoorden een array met de gebande woorden en in $string de text waar het over heen moet. Als deze if true is zitten er foute woorden in .
    mijn dank
    JeRadinsdag 26 juni 2007 @ 15:19
    quote:
    Op dinsdag 26 juni 2007 14:21 schreef Chandler het volgende:

    [..]

    Nee hoor, werkt nu netjes!
    [..]

    Ik probeer het door een voorbeeld te schetsen!
    [ code verwijderd ]

    Zie je wat ik uiteindelijk wil?
    Nu is het duidelijker ja waarom heb je die DISTINCT() in je query als je al een GROUP BY hebt? Je query ziet er goed uit verder
    super-muffindinsdag 26 juni 2007 @ 15:29
    Ik heb hulp nodig met een regex.

    ik heb deze code:
    1
    2
    3
    4
    <?php
    $str 
    'bla bla bla wat tekst. [PLUGIN:FORM]';
    echo 
    preg_replace("$\[PLUGIN:([A-Z]{1,})\]$" '$1'$str);
    ?>

    Maar ik wil daar van alleen alles wat er tussen de ':' en de ']' staat.

    Met deze regex krijg ik dit:
    1bla bla bla wat tekst. FORM


    Wat doe ik verkeerd?

    [ Bericht 5% gewijzigd door super-muffin op 26-06-2007 15:38:20 ]
    JeRadinsdag 26 juni 2007 @ 15:30
    Je moet de square brackets ( [ en ] ) escapen, want dat geeft in een regex een character class aan.
    super-muffindinsdag 26 juni 2007 @ 15:32
    Die heb ik ook geescaped, maar die zijn verdwenen door Fok!
    Geqxondinsdag 26 juni 2007 @ 15:34
    Dus als ik het met Multiviews goed begrijp, in mijn root .htaccess:
    1Options Indexes FollowSymLinks MultiViews All


    en met $_SERVER['PATH_INFO'] lees ik alles uit? Want ik krijg hier een 404 als ik een custom URL pak. :@
    JeRadinsdag 26 juni 2007 @ 15:46
    quote:
    Op dinsdag 26 juni 2007 15:32 schreef super-muffin het volgende:
    Die heb ik ook geescaped, maar die zijn verdwenen door Fok!
    Maar wat wil je precies doen? Jouw regex werkt prima, hij vervangt het PLUGIN-gedeelte compleet door wat er na de dubbele punt staat dat doet preg_replace() nu eenmaal
    super-muffindinsdag 26 juni 2007 @ 15:50
    ik wil alleen wat er na de plugin staat.
    Dus niet de tekst 'bla bla bla wat tekst.' er bij.
    JeRadinsdag 26 juni 2007 @ 15:53
    quote:
    Op dinsdag 26 juni 2007 15:50 schreef super-muffin het volgende:
    ik wil alleen wat er na de plugin staat.
    Dus niet de tekst 'bla bla bla wat tekst.' er bij.
    Dan moet je preg_match() gebruiken en niet preg_replace()
    super-muffindinsdag 26 juni 2007 @ 16:03
    Oh ja, ik heb het. Bedankt.
    Chandlerdinsdag 26 juni 2007 @ 16:13
    quote:
    Op dinsdag 26 juni 2007 15:19 schreef JeRa het volgende:

    [..]

    Nu is het duidelijker ja waarom heb je die DISTINCT() in je query als je al een GROUP BY hebt? Je query ziet er goed uit verder
    dit omdat de namen van de categorieen vaker voorkomen

    TIP - Groep 1
    TOP - Groep 1
    SAP - Groep 2
    SOP - Groep 2

    Nu wil ik dus alleen terug ontvangen (groep1, groep2 met het aantal items oftwel voor groep 1 alle items van TIP & TOP etc)

    Ik zal straks thuis even proberen of het werkt!
    JeRadinsdag 26 juni 2007 @ 16:53
    quote:
    Op dinsdag 26 juni 2007 16:13 schreef Chandler het volgende:

    [..]

    dit omdat de namen van de categorieen vaker voorkomen

    TIP - Groep 1
    TOP - Groep 1
    SAP - Groep 2
    SOP - Groep 2
    Ja...maar je doet al een GROUP BY op de naam van de categorie, dus die zullen nooit vaker dan één keer voorkomen. Test het maar eens
    broodmonkehdinsdag 26 juni 2007 @ 19:28
    ben ik weer met m'n lastige vragen

    Ik wil ff op weg geholpen met iets , dat is namelijk iets met de tijd. Als het tussen 8:30 en 9:15 is dan is lesuur 1 bezig , als de tijd tussen 9:15 en 10:00 is is lesuur 2 bezig enz.. Maar hoe bereken ik dit met PHP?
    Tijndinsdag 26 juni 2007 @ 19:31
    Ik zou het omrekenen naar timestamps en dan kijken of een gegeven timestamp tussen de 2 timestamps van een lesuur valt.

    Je kunt het bijvoorbeeld met mktime() makkelijk doen
    broodmonkehdinsdag 26 juni 2007 @ 19:51
    quote:
    Op dinsdag 26 juni 2007 19:31 schreef Tijn het volgende:
    Ik zou het omrekenen naar timestamps en dan kijken of een gegeven timestamp tussen de 2 timestamps van een lesuur valt.

    Je kunt het bijvoorbeeld met mktime() makkelijk doen
    Ja ik heb de tijden al in timestamps , en zat ook al te klooien met mktime , maar hoe bereken ik het precies of de ene timestamp tussen 2 andere timestamps valt? Daar kom ik niet uit.
    Xcaliburdinsdag 26 juni 2007 @ 19:55
    1
    2
    3
    4
    5
    if(timestamp1 < timestamp_now < timestamp2){
      ja
    }else{
      nee
    }


    ?
    Geqxondinsdag 26 juni 2007 @ 20:02
    Een nette maar trage manier:

    1
    2
    3
    4
    5
    6
    7
    8
    <?php
        $lesuur1 
    range(mktime(8,15,0,31,12,2007),mktime(9,30,0,31,12,2007));
        
    $tijd mktime(8,30,0,31,12,2007);
        
        if (
    in_array($tijd,$lesuur1)){
            echo 
    "Valt in lesuur 1";
        }
    ?>


    PiRANiAdinsdag 26 juni 2007 @ 20:12
    quote:
    Op dinsdag 26 juni 2007 19:28 schreef broodmonkeh het volgende:
    ben ik weer met m'n lastige vragen

    Ik wil ff op weg geholpen met iets , dat is namelijk iets met de tijd. Als het tussen 8:30 en 9:15 is dan is lesuur 1 bezig , als de tijd tussen 9:15 en 10:00 is is lesuur 2 bezig enz.. Maar hoe bereken ik dit met PHP?
    heb ik ooit op de GRM gemaakt.
    tiBASIC Met aftellen enzo. Ook omrekenen naar seconden eerst
    JeRadinsdag 26 juni 2007 @ 20:26
    Wat ik eigenlijk in PHP nogal mis, is de volgende mogelijkheid:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    <?php
    if (...)
    {
        
    // doe iets
    }
    else if (...)
    {
        
    // doe iets anders
    }
    else
    {
        
    // doe iets als de bovenstaande condities allemaal onwaar waren
    }
    any
    {
        
    // doe iets als minstens één van de bovenstaande condities waar was
    }
    ?>
    Geqxondinsdag 26 juni 2007 @ 20:28
    Dat zou inderdaad erg handig zijn, zoiets had ik laatst in een switch-statement nodig

    Zelf werk ik in zulke gevallen met booleans overigens.
    broodmonkehdinsdag 26 juni 2007 @ 20:32
    quote:
    Op dinsdag 26 juni 2007 20:02 schreef Geqxon het volgende:
    Een nette maar trage manier:
    [ code verwijderd ]

    danku dit werkt perfect snel hoeft et niet te zijn
    freissdinsdag 26 juni 2007 @ 20:39
    quote:
    Op dinsdag 26 juni 2007 20:28 schreef Geqxon het volgende:
    Dat zou inderdaad erg handig zijn, zoiets had ik laatst in een switch-statement nodig

    Zelf werk ik in zulke gevallen met booleans overigens.
    In een switch kan je toch default gebruiken?
    Geqxondinsdag 26 juni 2007 @ 20:41
    quote:
    Op dinsdag 26 juni 2007 20:39 schreef freiss het volgende:

    [..]

    In een switch kan je toch default gebruiken?
    Default is volgens mij wat hij doet als alles faalt (else dus), JeRa heeft het er over als één van de booleans van de switch wel lukt, dat hij in dat geval een stukje code altijd uit moet voeren.
    freissdinsdag 26 juni 2007 @ 20:42
    quote:
    Op dinsdag 26 juni 2007 20:41 schreef Geqxon het volgende:

    [..]

    Default is volgens mij wat hij doet als alles faalt (else dus), JeRa heeft het er over als één van de booleans van de switch wel lukt, dat hij in dat geval een stukje code altijd uit moet voeren.
    Ja, ik zag dat ik het verkeerd had gelezen
    Geqxondinsdag 26 juni 2007 @ 20:45
    Goed, moet ik wel zeggen dat een switch anders dan een if-elseif-else constructie werkt, aangezien die doorloopt totdat je hem breakt.
    Tijnwoensdag 27 juni 2007 @ 01:02
    Weet iemand of er een goede implementatie van het Porter stemming algoritme is gemaakt in PHP voor het Nederlands? Voor de Engelse taal zijn ze wel te vinden (PHP4 & PHP5), maar ik zou er graag eentje hebben in het Nederlands

    [ Bericht 43% gewijzigd door Tijn op 27-06-2007 01:50:50 ]
    fokME2woensdag 27 juni 2007 @ 01:59
    quote:
    Op dinsdag 26 juni 2007 20:26 schreef JeRa het volgende:
    Wat ik eigenlijk in PHP nogal mis, is de volgende mogelijkheid:
    [ code verwijderd ]
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    <?php
    $any 
    false;
    if (...)
    {
        
    // doe iets
        
    $any true;
    }
    else if (...)
    {
        
    // doe iets anders
        
    $any true;
    }
    else
    {
        
    // doe iets als de bovenstaande condities allemaal onwaar waren
        
    $any true;
    }

    if(
    $any)
    {
        
    // doe iets als minstens één van de bovenstaande condities waar was
    }
    ?>


    Zoiets?
    Geqxonwoensdag 27 juni 2007 @ 02:04
    In jouw geval is $any nutteloos. Haal hem eens bij de else weg
    JeRawoensdag 27 juni 2007 @ 02:16
    quote:
    Op woensdag 27 juni 2007 01:59 schreef fokME2 het volgende:

    [..]
    [ code verwijderd ]

    Zoiets?
    Nee, dat is lelijk, zeker bij veel conditional blocks
    Geqxonwoensdag 27 juni 2007 @ 02:22
    Is het geen optie die "$any = true" gelijk in je if-statement te stoppen?
    fokME2woensdag 27 juni 2007 @ 02:39
    quote:
    Op woensdag 27 juni 2007 02:16 schreef JeRa het volgende:

    [..]

    Nee, dat is lelijk, zeker bij veel conditional blocks
    Maar het werkt wel, als het echt moet.
    WyriHaximuswoensdag 27 juni 2007 @ 08:21
    quote:
    Op woensdag 27 juni 2007 02:39 schreef fokME2 het volgende:

    [..]

    Maar het werkt wel, als het echt moet.
    functionaliteit > schoonheid iig zolang de code maar goed leesbaar blijft
    SuperRembowoensdag 27 juni 2007 @ 08:36
    quote:
    Op dinsdag 26 juni 2007 20:26 schreef JeRa het volgende:
    Wat ik eigenlijk in PHP nogal mis, is de volgende mogelijkheid:
    [ code verwijderd ]
    Je mist het in PHP, is er een taal waar zo'n constructie wel bestaat?
    quote:
    Op woensdag 27 juni 2007 01:59 schreef fokME2 het volgende:
    [..]
    [ code verwijderd ]

    Zoiets? O-)
    Keer het dan om:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    <?php
    $any = true;
    if (...)
    {
        // doe iets
    }
    else if (...)
    {
        // doe iets anders
    }
    else
    {
        // doe iets als de bovenstaande condities allemaal onwaar waren
        $any = false;
    }

    if($any)
    {
        // doe iets als minstens één van de bovenstaande condities waar was
    }
    ?>



    Het lijkt me een beetje overbodig om hier een speciaal statement voor te introduceren.
    Chandlerwoensdag 27 juni 2007 @ 09:09
    quote:
    Op dinsdag 26 juni 2007 15:19 schreef JeRa het volgende:
    Nu is het duidelijker ja waarom heb je die DISTINCT() in je query als je al een GROUP BY hebt? Je query ziet er goed uit verder
    je hebt helemaal gelijk gehad, snap niet waarom ik toen koos voor distinct maar goed!!

    Nu nog een kleine andere vraag over preformance van PHP

    Is het zo dat hoe groter je script hoe langer het er over doet ookal wordt 90% van het script niet uitgevoerd?

    Ik heb namelijk nu een script van ruim 100KB en dacht dat als ik onderdelen in een switch nu eens in apparte php bestanden ga zetten de preformance omhoog zou gaan... Anyone?

    [ Bericht 22% gewijzigd door Chandler op 27-06-2007 11:13:49 ]
    Geqxonwoensdag 27 juni 2007 @ 11:35
    quote:
    Op woensdag 27 juni 2007 09:09 schreef Chandler het volgende:

    [..]

    je hebt helemaal gelijk gehad, snap niet waarom ik toen koos voor distinct maar goed!!

    Nu nog een kleine andere vraag over preformance van PHP

    Is het zo dat hoe groter je script hoe langer het er over doet ookal wordt 90% van het script niet uitgevoerd?

    Ik heb namelijk nu een script van ruim 100KB en dacht dat als ik onderdelen in een switch nu eens in apparte php bestanden ga zetten de preformance omhoog zou gaan... Anyone?
    Goed punt, aangezien hij er vaak over struikelt als je ergens onderop in een niet gebruikt stukje code een punt-komma mist. TVP
    Xcaliburwoensdag 27 juni 2007 @ 11:54
    quote:
    Op woensdag 27 juni 2007 09:09 schreef Chandler het volgende:
    Is het zo dat hoe groter je script hoe langer het er over doet ookal wordt 90% van het script niet uitgevoerd?
    Gevoelsmatig zeg ik dat het niet uitmaakt.... maar onderbouwen kan ik het niet
    WyriHaximuswoensdag 27 juni 2007 @ 11:58
    quote:
    Op woensdag 27 juni 2007 09:09 schreef Chandler het volgende:

    [..]

    je hebt helemaal gelijk gehad, snap niet waarom ik toen koos voor distinct maar goed!!

    Nu nog een kleine andere vraag over preformance van PHP

    Is het zo dat hoe groter je script hoe langer het er over doet ookal wordt 90% van het script niet uitgevoerd?

    Ik heb namelijk nu een script van ruim 100KB en dacht dat als ik onderdelen in een switch nu eens in apparte php bestanden ga zetten de preformance omhoog zou gaan... Anyone?
    Weet niet, ff kijken hoe includes werken .
    WyriHaximuswoensdag 27 juni 2007 @ 12:41
    quote:
    Op woensdag 27 juni 2007 11:58 schreef WyriHaximus het volgende:

    [..]

    Weet niet, ff kijken hoe includes werken .
    Allemaal kleine bestandjes = meer I/O (en dat vraagt veel) = trager .
    fokME2woensdag 27 juni 2007 @ 12:42
    quote:
    Op woensdag 27 juni 2007 09:09 schreef Chandler het volgende:

    [..]

    je hebt helemaal gelijk gehad, snap niet waarom ik toen koos voor distinct maar goed!!

    Nu nog een kleine andere vraag over preformance van PHP

    Is het zo dat hoe groter je script hoe langer het er over doet ookal wordt 90% van het script niet uitgevoerd?

    Ik heb namelijk nu een script van ruim 100KB en dacht dat als ik onderdelen in een switch nu eens in apparte php bestanden ga zetten de preformance omhoog zou gaan... Anyone?
    Geen idee, maar PHP parsed toch ook de dingen die hij niet 'hoeft' te doen. Als php niet op regel 50 hoeft te zijn, maar daar zit wel een fout, dan krijg je toch een error. Zit die fout echter in je include dan krijg je geen error totdat die file is geïnclude.
    Chandlerwoensdag 27 juni 2007 @ 12:51
    Inderdaad, en dat niet alleen maar de scripts worden ook gecached bij vulvuldig gebruik oftewel pHp leest deze includes dan weer niet via de disk maar via het geheugen dus dat zou niet heel veel moeten uitmaken imho.
    fokME2woensdag 27 juni 2007 @ 12:54
    Maar, al testresultaten?
    WyriHaximuswoensdag 27 juni 2007 @ 12:59
    Voor het overzicht kan het wel handiger zijn maar het is niet echt iets om je al te druk over te maken kwa performence . Code optimalisatie in zekere mate en je SQL en I/O gebruik en veel meer van PHP .
    JeRawoensdag 27 juni 2007 @ 13:18
    quote:
    Op woensdag 27 juni 2007 08:36 schreef SuperRembo het volgende:

    [..]

    Je mist het in PHP, is er een taal waar zo'n constructie wel bestaat?
    Ongetwijfeld, maar het gaat me eerder om dit:
    quote:
    Op woensdag 27 juni 2007 08:21 schreef WyriHaximus het volgende:

    [..]

    functionaliteit > schoonheid iig zolang de code maar goed leesbaar blijft
    Hier ben ik het dus niet mee eens, ik ben meer van het type functionaliteit == schoonheid; zodra ik in een taal teveel truukjes moet gaan uithalen alleen al voor de logische vertakking, krijg ik een hekel aan de taal het is dat ik goed bekend ben met PHP en het voor een scripttaal een goede performance heeft tegenover een korte ontwikkelingstijd.
    quote:
    [..]

    Keer het dan om:
    [ code verwijderd ]

    Het lijkt me een beetje overbodig om hier een speciaal statement voor te introduceren.
    Dat is dus mogelijk ja, maar lelijk.
    WyriHaximuswoensdag 27 juni 2007 @ 14:27
    quote:
    Op woensdag 27 juni 2007 13:18 schreef JeRa het volgende:

    [..]

    Hier ben ik het dus niet mee eens, ik ben meer van het type functionaliteit == schoonheid; zodra ik in een taal teveel truukjes moet gaan uithalen alleen al voor de logische vertakking, krijg ik een hekel aan de taal het is dat ik goed bekend ben met PHP en het voor een scripttaal een goede performance heeft tegenover een korte ontwikkelingstijd.
    Ik hang liever niet te veel op schoonheid, vind het absoluut belangrijk (zeker tegenwoordig hecht ik er veel meer waarde aan dan vroeger). Maar als ik met een kleine hack de functionaliteit kan krijgen die nodig is zie ik daar geen probleem in. Moet niet een gekkenhuis worden want dan word het ook niet lekker meer leesbaar en ga je er alleen maar op achter uit .
    JeRawoensdag 27 juni 2007 @ 14:59
    Zodra ik te vieze hacks moet gaan gebruiken om de functionaliteit te verkrijgen die ik nodig heb, ga ik ernstig twijfelen aan het platform dat ik gekozen heb
    WyriHaximuswoensdag 27 juni 2007 @ 15:09
    quote:
    Op woensdag 27 juni 2007 14:59 schreef JeRa het volgende:
    Zodra ik te vieze hacks moet gaan gebruiken om de functionaliteit te verkrijgen die ik nodig heb, ga ik ernstig twijfelen aan het platform dat ik gekozen heb
    Precies .

    Zal forearch($this as $key => $value) werken om alle varriables van een class te cachen en later weer op te vragen?
    JeRawoensdag 27 juni 2007 @ 15:12
    quote:
    Op woensdag 27 juni 2007 15:09 schreef WyriHaximus het volgende:

    [..]

    Precies .

    Zal forearch($this as $key => $value) werken om alle varriables van een class te cachen en later weer op te vragen?
    Is serialize() geen optie? Meer leesmateriaal.
    WyriHaximuswoensdag 27 juni 2007 @ 16:02
    quote:
    Op woensdag 27 juni 2007 15:12 schreef JeRa het volgende:

    [..]

    Is serialize() geen optie? Meer leesmateriaal.
    Ik moet ff kijken wat ik precies wil, ik wil iig een stuk code over kunnen slaan wat redelijk intensief is en vaak het zelfde als uitkomst heeft.
    JeRawoensdag 27 juni 2007 @ 16:04
    quote:
    Op woensdag 27 juni 2007 16:02 schreef WyriHaximus het volgende:

    [..]

    Ik moet ff kijken wat ik precies wil, ik wil iig een stuk code over kunnen slaan wat redelijk intensief is en vaak het zelfde als uitkomst heeft.
    Afhankelijk van die uitkomst lijkt het me beter als je puur die uitkomst cachet? Of bestaat de uitkomst uit een object?
    WyriHaximuswoensdag 27 juni 2007 @ 17:58
    quote:
    Op woensdag 27 juni 2007 16:04 schreef JeRa het volgende:

    [..]

    Afhankelijk van die uitkomst lijkt het me beter als je puur die uitkomst cachet? Of bestaat de uitkomst uit een object?
    De uitkomst zijn verschillende arrays binnen een class. En de inhoud van die arrays verschilt per pagina + afhankelijk welke rechten de gebruiker heeft. Dus het is een beetje tricky.
    Tijnwoensdag 27 juni 2007 @ 18:18
    Ik probeer een zoekfunctie te maken voor een kleine website. Ik heb nog nooit een zoekfunctie gemaakt, dus alle tips zijn welkom, maar ik zit met 1 specifiek dingetje nu.

    Ik heb het volgende bedacht: om te zoeken gebruik ik een formuliertje waar mensen zoektermen kunnen invullen. Vervolgens haal ik alle woorden die korter dan 4 tekens zijn eruit, omdat dat waarschijnlijk geen belangrijke woorden zijn. Ook splits ik de string op spaties en zet de losse woorden in een array.

    Deze array, die $words heet, gaat vervolgens naar de volgende query:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    <?php
    $sql 
    'SELECT DISTINCT COUNT(*) 
            As occurrences, id, timestamp, title, content 
            FROM `'
    .mysql_real_escape_string($table).'` 
            WHERE ('
    ;
            
    // alle woorden langs
            
    foreach($words as $word)
            {
                
    $sql .= '(`title` LIKE "%'.mysql_real_escape_string($word).'%") 
                OR (`content` LIKE "%'
    .mysql_real_escape_string($word).'%") OR';
            }
            
    $sql substr($sql,0,(strLen($sql)-3)); // de laatste OR eraf

            
    $sql .= ') GROUP BY `id` 
            ORDER BY occurrences DESC, `timestamp` DESC'
    ;
    ?>


    Als je op bijvoorbeeld "vrijdag koffie" zoekt in de tabel "internal_news", komt daar de volgende query uit:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    SELECT DISTINCT COUNT(*)
       As occurrences, id, timestamp, title, content 
       FROM `internal_news` 
       WHERE (
          (`title` LIKE "%vrijdag%") OR 
          (`content` LIKE "%vrijdag%") OR
          (`title` LIKE "%koffie%") OR 
          (`content` LIKE "%koffie%")
       )
       GROUP BY `id` 
       ORDER BY occurrences DESC, `timestamp` DESC


    Deze query levert inderdaad artikelen op waar dit woord in voorkomt, dus so far so good. Maarrrr... er is 1 artikel waarin het woord "koffie" vaker voorkomt. Toch blijft de teller "occurrences" op 1 staat, waardoor dit artikel niet bovenaan in de resultaten komt te staan

    Heeft iemand een idee hoe het komt dat "occurrences" nooit hoger dan 1 is, ook al komt het woord vaker voor in het doorzochte record? En natuurlijk, hoe los ik dit op?

    [ Bericht 3% gewijzigd door Tijn op 27-06-2007 18:31:03 ]
    JeRawoensdag 27 juni 2007 @ 18:30
    @Tijn

    Je groepeert op 'id', dus je zult per artikel nooit meer dan '1' kunnen terugkrijgen op een COUNT(*). Je kunt met een LIKE-operator simpelweg niet tellen hoe vaak het voorkomt, aangezien de functie van de LIKE-operator is om true te geven zodra de pattern matcht

    Verder als oplossing kan ik je de fulltext index van MySQL aanraden heb je 80% van de zoekfunctionaliteit al af.
    Tijnwoensdag 27 juni 2007 @ 18:31
    quote:
    Op woensdag 27 juni 2007 18:30 schreef JeRa het volgende:

    Verder als oplossing kan ik je de fulltext index van MySQL aanraden heb je 80% van de zoekfunctionaliteit al af.
    Ja, daar las ik ook iets over. Maar ik las ook dat het voor een kleine database niet aan te raden is, omdat je dan weinig vindt ofzo, omdat de relevantie automatisch bepaald wordt.

    De database gaat namelijk waarschijnlijk nooit meer dan 20 a 30 records bevatten. En als bijvoorbeeld het woord "vrijdag" in 10 daarvan voorkomt, wordt het niet meer als een relevant woord gezien en krijg je geen resultaten terug als je hierop zoekt. Wat natuurlijk niet de bedoeling is.

    [ Bericht 24% gewijzigd door Tijn op 27-06-2007 18:37:35 ]
    JeRawoensdag 27 juni 2007 @ 18:40
    quote:
    Op woensdag 27 juni 2007 18:31 schreef Tijn het volgende:

    [..]

    Ja, daar las ik ook iets over. Maar ik las ook dat het voor een kleine database niet aan te raden is, omdat je dan weinig vindt ofzo, omdat de relevantie automatisch bepaald wordt.

    De database gaat namelijk waarschijnlijk nooit meer dan 20 a 30 records bevatten. En als bijvoorbeeld het woord "vrijdag" in 10 daarvan voorkomt, wordt het niet meer als een relevant woord gezien en krijg je geen resultaten terug als je hierop zoekt. Wat natuurlijk niet de bedoeling is.
    Dat is allemaal vrij goed te tunen dacht ik zolang je tabel meer dan 2 records bevat moet het redelijk werken. De relevantie van documenten bepaal je aan méér dan alleen het aantal voorkomens. Echter is dat erg lastig via LIKE te doen een derde optie is 3rd party search engines te gebruiken, zoals Xapian/Omega, Lucene of Senna+MySQL. Maar dat is wellicht over the top
    Tijnwoensdag 27 juni 2007 @ 18:42
    Ok, dan ga ik nu dingen over Full Text search lezen
    Siegfrieddonderdag 28 juni 2007 @ 05:20
    Goed, SQL vraagje.

    Ik heb een tabel waarin een veld 'datum' zit met daarin een waarde als '2007-06-28 05:18:'
    Nu wil ik een SELECT query hebben die alleen de rijen selecteerd die overeenkomen met de datum van vandaag. Daarbij moet hij de tijd dus buiten beschouwing laten, en puur naar de datum kijken.

    Ik kom er helaas niet uit. Hopelijk kunnen jullie helpen..

    SELECT * FROM '' WHERE datum =
    dokadonderdag 28 juni 2007 @ 05:32
    quote:
    Op donderdag 28 juni 2007 05:20 schreef Siegfried het volgende:
    Goed, SQL vraagje.

    Ik heb een tabel waarin een veld 'datum' zit met daarin een waarde als '2007-06-28 05:18:'
    Nu wil ik een SELECT query hebben die alleen de rijen selecteerd die overeenkomen met de datum van vandaag. Daarbij moet hij de tijd dus buiten beschouwing laten, en puur naar de datum kijken.

    Ik kom er helaas niet uit. Hopelijk kunnen jullie helpen..

    SELECT * FROM '' WHERE datum =
    Je kunt zoiets proberen:

    1SELECT * FROM * WHERE DATE(datum) = '2007-06-28'


    DATE selecteerd het datumgedeelte van een datum of timestamp.

    Zie: http://dev.mysql.com/doc/(...)s.html#function_date

    [ Bericht 1% gewijzigd door doka op 28-06-2007 05:37:54 ]
    Xcaliburdonderdag 28 juni 2007 @ 07:16
    quote:
    Op woensdag 27 juni 2007 18:31 schreef Tijn het volgende:
    De database gaat namelijk waarschijnlijk nooit meer dan 20 a 30 records bevatten.
    Wat is precies het nut van een zoekfunctie als je maar 20 records hebt?
    #ANONIEMdonderdag 28 juni 2007 @ 08:23
    quote:
    Op woensdag 27 juni 2007 08:36 schreef SuperRembo het volgende:

    [..]

    Je mist het in PHP, is er een taal waar zo'n constructie wel bestaat?
    [..]

    Keer het dan om:
    [ code verwijderd ]

    Het lijkt me een beetje overbodig om hier een speciaal statement voor te introduceren.
    In Java zou je een try/catch/finally doen met if statements in het try gedeelte.
    Zo weet je dat finally altijd uitgevoerd wordt, zelfs als er errors in het try gedeelte staat.
    Geqxondonderdag 28 juni 2007 @ 09:15
    quote:
    Op donderdag 28 juni 2007 07:16 schreef Xcalibur het volgende:

    [..]

    Wat is precies het nut van een zoekfunctie als je maar 20 records hebt?
    Er komen complete boeken in een record te staan?
    JeRadonderdag 28 juni 2007 @ 09:17
    quote:
    Op donderdag 28 juni 2007 09:15 schreef Geqxon het volgende:

    [..]

    Er komen complete boeken in een record te staan?
    Is het dan niet misschien beter om het per hoofdstuk op te slaan, ofzo? Tenminste, ik weet niet of het de bedoeling is dat het hele boek gevonden moet worden of dat het om de inhoud gaat.
    Tijndonderdag 28 juni 2007 @ 09:31
    quote:
    Op donderdag 28 juni 2007 07:16 schreef Xcalibur het volgende:

    [..]

    Wat is precies het nut van een zoekfunctie als je maar 20 records hebt?
    Ach, het gaat er meer om dat ik de ervaring eens op doe. Het leek me handiger om kleinschalig te beginnen.
    Geqxondonderdag 28 juni 2007 @ 09:31
    quote:
    Op donderdag 28 juni 2007 09:17 schreef JeRa het volgende:

    [..]

    Is het dan niet misschien beter om het per hoofdstuk op te slaan, ofzo? Tenminste, ik weet niet of het de bedoeling is dat het hele boek gevonden moet worden of dat het om de inhoud gaat.
    Hehe, ik gokte maar wat. Maar dan kun je het inderdaad beter per hoofdstuk opslaan.
    JeRadonderdag 28 juni 2007 @ 09:35
    quote:
    Op donderdag 28 juni 2007 09:31 schreef Tijn het volgende:

    [..]

    Ach, het gaat er meer om dat ik de ervaring eens op doe. Het leek me handiger om kleinschalig te beginnen.
    Dan was je in ieder geval met LIKE tegen de lamp gelopen, aangezien die operator de gehele string moet doorzoeken van elk record met een FT index indexeer je alle woorden apart en koppel je ze aan de bronrecords, waardoor je snel per woord de juiste records terugkrijgt.

    Overigens is het niet de beste oplossing, er zijn ook andere (losstaande) search indexers & engines die (betere) ondersteuning bieden voor phrase matching, proximity ranking, boolean operators en nog veel meer
    Tijndonderdag 28 juni 2007 @ 09:40
    Ach, ik wil het ook niet te ingewikkeld maken. Ik ben al behoorlijk blij met het FT gebeuren van MySQL
    Devrim_donderdag 28 juni 2007 @ 10:27
    quote:
    Op donderdag 28 juni 2007 08:59 schreef JeRa het volgende:

    [..]

    Dit is echt te simpel voor een apart topic. Gebruik zoiets:

    [ code verwijderd ]

    En dan een cronjob/taakplanner om de 6 uur dit scriptje laten uitvoeren. Volgende keer:

    [PHP/(My)SQL] voor dummies - Deel 45
    Ik krijg dit

    Warning: copy(/feed/rssfeed-2007-06-28-1124.xml): failed to open stream: No such file or directory in /home/www/feed.net/feeds.xml on line 3
    JeRadonderdag 28 juni 2007 @ 10:29
    quote:
    Op donderdag 28 juni 2007 10:27 schreef Devrim_ het volgende:

    [..]

    Ik krijg dit

    Warning: copy(/feed/rssfeed-2007-06-28-1124.xml): failed to open stream: No such file or directory in /home/www/feed.net/feeds.xml on line 3
    Die /feed/ in dat pad was maar een voorbeeldje, dat moet je aanpassen naar de locatie waar je de feeds wilt opslaan
    Devrim_donderdag 28 juni 2007 @ 10:30
    quote:
    Op donderdag 28 juni 2007 10:29 schreef JeRa het volgende:

    [..]

    Die /feed/ in dat pad was maar een voorbeeldje, dat moet je aanpassen naar de locatie waar je de feeds wilt opslaan
    Heb ik ook gedaan..Maar krijg nog steeds die error..
    JeRadonderdag 28 juni 2007 @ 10:30
    quote:
    Op donderdag 28 juni 2007 10:30 schreef Devrim_ het volgende:

    [..]

    Heb ik ook gedaan..Maar krijg nog steeds die error..
    Dan doe je iets fout laat eens zien wat je hebt, anders wordt het nogal lastig
    Devrim_donderdag 28 juni 2007 @ 10:34
    quote:
    Op donderdag 28 juni 2007 10:30 schreef JeRa het volgende:

    [..]

    Dan doe je iets fout :) laat eens zien wat je hebt, anders wordt het nogal lastig ;)
    1
    2
    3
    4
    <?php
    $destname = '/filemp3/rssfeed-' . date('Y-m-d-Hi') . '.xml';
    copy('-rsslink', $destname);
    ?>


    en het moet hier in komen
    http://nellyf.100webspace.net/filemp3/
    JeRadonderdag 28 juni 2007 @ 10:45
    quote:
    Op donderdag 28 juni 2007 10:34 schreef Devrim_ het volgende:

    [..]
    [ code verwijderd ]

    en het moet hier in komen
    http://nellyf.100webspace.net/filemp3/
    Dan moet je die eerste forwardslash in de destination weghalen dat is namelijk de root, en daar heb jij wrs geen rechten voor.
    SuperRembodonderdag 28 juni 2007 @ 13:19
    quote:
    Op donderdag 28 juni 2007 08:23 schreef Scorpie het volgende:

    [..]

    In Java zou je een try/catch/finally doen met if statements in het try gedeelte.
    Zo weet je dat finally altijd uitgevoerd wordt, zelfs als er errors in het try gedeelte staat.
    _dat_ is pas een ranzige constructie, en nog langzaam ook.

    Er is niets mis met try/catch/finally, zolang het gebruikt wordt waar het echt nodig is. Ik zie de toegevoegde waarde van een speciale constructie als if/else/any nog steeds niet.
    JeRadonderdag 28 juni 2007 @ 13:34
    quote:
    Op donderdag 28 juni 2007 13:19 schreef SuperRembo het volgende:

    [..]

    _dat_ is pas een ranzige constructie, en nog langzaam ook.

    Er is niets mis met try/catch/finally, zolang het gebruikt wordt waar het echt nodig is. Ik zie de toegevoegde waarde van een speciale constructie als if/else/any nog steeds niet.
    Stel dat er bij conditie1, conditie2 én conditie3 iets verschillends moet gebeuren, maar hierna altijd dezelfde handeling wordt uitgevoerd. Die handeling moet niet worden uitgevoerd als er geen van de condities waar zijn. Praktijkvoorbeelden vind je vaak bij rechtenafhandeling, waarbij iemand in verschillende omstandigheden iets mag uitvoeren. Dan is zo'n any imho toch wel handig

    edit: voorbeeldje:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    <?php
    // Procedure om een post te deleten
    if (user.hasRight('delete_post') && !topic.isClosed())
    {
        
    // Verberg post
        // Voeg notitie toe aan logboek gekoppeld aan user
    }
    else if (
    user.hasRight('delete_post') && user.hasRight('is_admin'))
    {
        
    // Verwijder post
    }
    any
    {
        
    // Ga terug naar het topic
    }
    else
    {
        
    // Geef foutmelding
    }
    ?>
    #ANONIEMdonderdag 28 juni 2007 @ 13:39
    quote:
    Op donderdag 28 juni 2007 13:19 schreef SuperRembo het volgende:

    [..]

    _dat_ is pas een ranzige constructie, en nog langzaam ook.

    Er is niets mis met try/catch/finally, zolang het gebruikt wordt waar het echt nodig is. Ik zie de toegevoegde waarde van een speciale constructie als if/else/any nog steeds niet.
    Het feit dat je ten allen tijde een bepaald blok code wilt uitvoeren, indien alle bovenstaande checks falen?
    Tja, ik ben er nog niet tegenaan gelopen, ik zeg alleen hoe dat in Java over het algemeen opgelost word
    SuperRembodonderdag 28 juni 2007 @ 14:27
    quote:
    Op donderdag 28 juni 2007 13:34 schreef JeRa het volgende:

    [..]

    Stel dat er bij conditie1, conditie2 én conditie3 iets verschillends moet gebeuren, maar hierna altijd dezelfde handeling wordt uitgevoerd. Die handeling moet niet worden uitgevoerd als er geen van de condities waar zijn. Praktijkvoorbeelden vind je vaak bij rechtenafhandeling, waarbij iemand in verschillende omstandigheden iets mag uitvoeren. Dan is zo'n any imho toch wel handig :)

    edit: voorbeeldje:
    [ code verwijderd ]
    Hoe geef je aan welke if statements allemaal bij de any horen?
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    if (foo)
    {
       Foo();

    else if (bar)
    {
       Bar();
    }
    else
    {
       Baz();
    }

    komt overeen met
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    if (foo)
    {
       Foo();

    else 
    {
       if (bar)
       {
          Bar();
       }
       else
       {
          Baz();
       }
    }


    Daar past geen any tussen. Any zou dus een uitbreiding moeten worden op de if/elseif/else constructie.
    Maar met 1 variabele en 2 regels code kom je er ook.
    SuperRembodonderdag 28 juni 2007 @ 14:37
    quote:
    Op donderdag 28 juni 2007 13:39 schreef Scorpie het volgende:

    [..]

    Het feit dat je ten allen tijde een bepaald blok code wilt uitvoeren, indien alle bovenstaande checks falen?
    Tja, ik ben er nog niet tegenaan gelopen, ik zeg alleen hoe dat in Java over het algemeen opgelost word
    Exceptions gebruik je voor, zoals de naam al zegt, uitzonderingen. Exception handling kost behoorlijk wat extra processor tijd. Als je door middel van een simpele reeks if's kan bepalen of een bepaald stuk code moet worden uitgevoerd, dan is het onzinnig om daar een try/finaly blok voor te gebruiken.
    Ik zie trouwens ook niet hoe een try/finaly zou kunnen helpen in het if/elseif/any/else geval.
    Devrim_donderdag 28 juni 2007 @ 15:12
    quote:
    Op donderdag 28 juni 2007 10:45 schreef JeRa het volgende:

    [..]

    Dan moet je die eerste forwardslash in de destination weghalen dat is namelijk de root, en daar heb jij wrs geen rechten voor.
    nice
    Het werkt nu!
    Bedankt
    Siegfrieddonderdag 28 juni 2007 @ 17:41
    quote:
    Op donderdag 28 juni 2007 05:32 schreef doka het volgende:

    [..]

    Je kunt zoiets proberen:
    [ code verwijderd ]

    DATE selecteerd het datumgedeelte van een datum of timestamp.

    Zie: http://dev.mysql.com/doc/(...)s.html#function_date
    Hm, nee.. Want morgen is de datum van vandaag weer een andere
    Het moet dus variabel zijn, zoals met NOW(), maar dan echt puur op vandaag..

    Iemand anders een oplossing hiervoor:
    quote:
    Op donderdag 28 juni 2007 05:20 schreef Siegfried het volgende:
    Goed, SQL vraagje.

    Ik heb een tabel waarin een veld 'datum' zit met daarin een waarde als '2007-06-28 05:18:'
    Nu wil ik een SELECT query hebben die alleen de rijen selecteerd die overeenkomen met de datum van vandaag. Daarbij moet hij de tijd dus buiten beschouwing laten, en puur naar de datum kijken.

    Ik kom er helaas niet uit. Hopelijk kunnen jullie helpen..

    SELECT * FROM '' WHERE datum =
    #ANONIEMdonderdag 28 juni 2007 @ 18:17
    quote:
    Op donderdag 28 juni 2007 14:37 schreef SuperRembo het volgende:

    [..]

    Exceptions gebruik je voor, zoals de naam al zegt, uitzonderingen. Exception handling kost behoorlijk wat extra processor tijd. Als je door middel van een simpele reeks if's kan bepalen of een bepaald stuk code moet worden uitgevoerd, dan is het onzinnig om daar een try/finaly blok voor te gebruiken.
    Ik zie trouwens ook niet hoe een try/finaly zou kunnen helpen in het if/elseif/any/else geval.
    Zoals je zelf al aangeeft word bij mij op het werk de try catch vooral gebruikt om excepties e.d te gooien
    __Saviour__donderdag 28 juni 2007 @ 18:25
    quote:
    Op donderdag 28 juni 2007 17:41 schreef Siegfried het volgende:

    [..]

    Hm, nee.. Want morgen is de datum van vandaag weer een andere
    Het moet dus variabel zijn, zoals met NOW(), maar dan echt puur op vandaag..

    Iemand anders een oplossing hiervoor:
    [..]
    Kan met
    where DATUM like '2007-06-28%'
    en in het algemeen voor elke datum natuurlijk zoiets als where DATUM like '$datumvandaag%'
    waarbij je $datumvandaag simpel zelf samenstelt met de date funtie.
    Siegfrieddonderdag 28 juni 2007 @ 18:39
    Hm, en kan dat binnen SQL?
    Want ik heb eigenlijk geen mogelijkheid om php te gebruiken. Just SQL..
    __Saviour__donderdag 28 juni 2007 @ 18:53
    is het gewoon een handmatige query die je iedere keer draait?
    dan gewoon zelf de datum invullen
    SELECT * FROM whatever WHERE datum LIKE '2007-06-28%'
    Siegfrieddonderdag 28 juni 2007 @ 18:56
    Nope, niet handmatig helaas. Het moet volautomatisch gaan.
    #ANONIEMdonderdag 28 juni 2007 @ 19:57
    SELECT * FROM whatever WHERE DATE(datum) = DATE(NOW());

    Zou dat niet moeten werken?

    [ Bericht 2% gewijzigd door #ANONIEM op 28-06-2007 19:57:49 ]
    Siegfrieddonderdag 28 juni 2007 @ 20:08
    Hm.. is het proberen straks eens waard
    JeRavrijdag 29 juni 2007 @ 13:33
    quote:
    Op donderdag 28 juni 2007 14:27 schreef SuperRembo het volgende:
    Any zou dus een uitbreiding moeten worden op de if/elseif/else constructie.
    Ja, dat was het hele idee
    quote:
    Maar met 1 variabele en 2 regels code kom je er ook.
    En dat is lelijk, imho.
    Chandlervrijdag 29 juni 2007 @ 14:47
    Kleine vraag.

    Stel ik heb 10 id's (1 t/m 10) en heb de middelste geselecteerd en wil de vorige en volgende uitlezen in 1 query? hoe moet je dat doen? of wil dat niet?
    Mordrethvrijdag 29 juni 2007 @ 14:59
    Met having kom je een heel eind
    Chandlervrijdag 29 juni 2007 @ 15:03
    Sry, ik snap het toch nog niet helemaal. Hoe bedoel je met having?
    JeRavrijdag 29 juni 2007 @ 15:27
    Ben benieuwd hoe jij het met HAVING zou oplossen Mordreth verder denk ik niet dat zoiets netjes in één query kan, wel met UNION SELECTs waarschijnlijk.
    Chandlervrijdag 29 juni 2007 @ 16:03
    Maar zonder UNION Selects? Misschien met LIMIT?
    JortKvrijdag 29 juni 2007 @ 16:17
    UNION gaat je denk ik wel helpen ja
    JeRavrijdag 29 juni 2007 @ 16:36
    quote:
    Op vrijdag 29 juni 2007 16:03 schreef Chandler het volgende:
    Maar zonder UNION Selects? Misschien met LIMIT?
    Met LIMIT kun je één kant op, maar niet zowel het id ervoor als erna pakken. Ook kun je niet garanderen dat id 11 links id 10 en rechts id 12 heeft (als er items tussendoor worden verwijderd) wat het geheel nog wat lastiger maakt
    SuperRembovrijdag 29 juni 2007 @ 19:33
    quote:
    Op vrijdag 29 juni 2007 16:03 schreef Chandler het volgende:
    Maar zonder UNION Selects? Misschien met LIMIT?
    1
    2
    3
    4
    5
    6
    7
    SELECT a.id,  a.name, b.id nextid,  b.name nextname, c.id previd, c.name prevname
    FROM mytable a
    LEFT OUTER JOIN mytable b ON b.name >= a.name AND b.id != a.id
    LEFT OUTER JOIN mytable c ON c.name <= a.name AND c.id != a.id
    WHERE a.id = $id
    ORDER BY b.name ASC, c.name DESC
    LIMIT 1


    Dit zou denk ik moeten werken (maar niet getest). En 't zou best wel eens erg traag kunnen zijn.

    [ Bericht 4% gewijzigd door SuperRembo op 29-06-2007 23:07:26 ]
    Chandlervrijdag 29 juni 2007 @ 20:14
    Haha, ik zal het strakjes eens proberen.. tnx Sr!
    Chandlervrijdag 29 juni 2007 @ 22:22
    Maar helaas, was leuk bedacht Sr, maar het werkte toch niet.

    Krijg steeds de melding:

    #1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE a.id = 2000
    LIMIT 1' at line 11

    Ook met LEFT JOIN etc wilde het niet...
    SuperRembovrijdag 29 juni 2007 @ 23:07
    Oh, de where en oder by staan verkeerd om.
    Geqxonvrijdag 29 juni 2007 @ 23:44
    Ik bid op mijn knieën tot mysql_fetch_assoc, aangezien het mij veel geholpen heeft, en het een goddelijk commando is.

    Maar bestaat er eigenlijk een kant en klare functie een een mysql_query result compleet doorloopt en alle resultaten in een 2D associatieve array stopt?
    Chandlerzaterdag 30 juni 2007 @ 09:22
    quote:
    Op vrijdag 29 juni 2007 23:07 schreef SuperRembo het volgende:
    Oh, de where en oder by staan verkeerd om.
    Dat had ik ook al geprobeerd maar gaf dezelfde foutmelding
    WyriHaximuszaterdag 30 juni 2007 @ 10:03
    Moet id niet zo geschreven worden ivm reserved words? `id`
    Chandlerzaterdag 30 juni 2007 @ 10:55
    nee dat hoeft niet
    SuperRembozaterdag 30 juni 2007 @ 11:08
    quote:
    Op vrijdag 29 juni 2007 23:44 schreef Geqxon het volgende:
    Maar bestaat er eigenlijk een kant en klare functie een een mysql_query result compleet doorloopt en alle resultaten in een 2D associatieve array stopt?
    Voor SQLite heb je sqlite_fetch_all() Maar een soortgelijke functie zie ik niet voor MySql.
    Gelukkig maak je die zelf in een paar minuten
    Geqxonzaterdag 30 juni 2007 @ 11:11
    Sterker: ATM heb ik de functie al gemaakt, ik zocht gewoon een native functie binnen PHP.
    SuperRembozaterdag 30 juni 2007 @ 11:25
    quote:
    Op zaterdag 30 juni 2007 09:22 schreef Chandler het volgende:

    [..]

    Dat had ik ook al geprobeerd maar gaf dezelfde foutmelding
    Als je precies dezelfde foutmelding krijgt dan heb je de tweede keer ook nog de WHERE direct voor de LIMIT staan, dus de ORDER voor de WHERE.

    Ik heb 't net getest met SQLite, daar werkt het.
    WyriHaximuszaterdag 30 juni 2007 @ 11:39
    1
    2
    3
    4
    5
    6
    7
    SELECT a.id,  a.name, b.id nextid,  b.name nextname, c.id previd, c.name prevname
    FROM mytable a
    LEFT OUTER JOIN mytable b ON (b.name >= a.name AND b.id != a.id)
    LEFT OUTER JOIN mytable c ON (c.name <= a.name AND c.id != a.id)
    WHERE a.id = $id
    ORDER BY b.name ASC, c.name DESC
    LIMIT 1
    Zo misschien? Misschien dat die haakjes uit maken
    #ANONIEMzaterdag 30 juni 2007 @ 11:41
    quote:
    Op zaterdag 30 juni 2007 11:11 schreef Geqxon het volgende:
    Sterker: ATM heb ik de functie al gemaakt, ik zocht gewoon een native functie binnen PHP.
    Please do share, altijd handig om kennis te vergaren enzovoorts.
    Geqxonzaterdag 30 juni 2007 @ 15:53
    quote:
    Op zaterdag 30 juni 2007 11:41 schreef Scorpie het volgende:

    [..]

    Please do share, altijd handig om kennis te vergaren enzovoorts.
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    <?php
    $sql 
    "SELECT * FROM users";
    $result mysql_query($sql);

    if (
    $result){
        
    $users mysql_fetch_all_assoc($result,"ID");
    }

    print_r($users);

    function 
    mysql_fetch_all_assoc($result,$uniquekey){
        
    $all = array();
            
        while (
    $row mysql_fetch_assoc($result)){
            
    $all[$row[$uniquekey]] = $row;
        }
        
        return 
    $all;
    }
    ?>


    Levert in mijn geval:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    Array
    (
        [1] => Array
            (
                [ID] => 1
                [Username] => Geqxon
                [Userlevel] => 2
                [Password] => xxx
                [EmailAddress] => xxx
                [Timezone] => 1
                [RegIP] => 
                [DateAdded] => 0
                [DateUpdated] => 0
            )

        [8] => Array
            (
                [ID] => 8
                [Username] => Heinz
                [Userlevel] => 0
                [Password] => xxx
                [EmailAddress] => ketchup@hotmail.com
                [Timezone] => 1
                [RegIP] => 
                [DateAdded] => 0
                [DateUpdated] => 0
            )

        [21] => Array
            (
                [ID] => 21
                [Username] => Testcase
                [Userlevel] => 0
                [Password] => xxx
                [EmailAddress] => testcase@hotmail.com
                [Timezone] => 1
                [RegIP] => 
                [DateAdded] => 0
                [DateUpdated] => 0
            )

        [27] => Array
            (
                [ID] => 27
                [Username] => asdf
                [Userlevel] => 0
                [Password] => xxx
                [EmailAddress] => asdf
                [Timezone] => 1
                [RegIP] => 127.0.0.1
                [DateAdded] => 1182898662
                [DateUpdated] => 0
            )

    )
    Geqxonzaterdag 30 juni 2007 @ 22:28
    Zo, weer een MySQL vraagje

    Mijn resultatenset van een query met een left-join heeft op sommige velden een "NULL" , omdat er geen bijpassend record is. Nu wil ik hier op filteren, maar "b.ID = NULL" of "b.ID = 'NULL'" werkt helaas niet. Wat moet ik hiervoor gebruiken?

    PS: Ja, ik wil het op deze manier, en liever geen andere manier
    JeRazaterdag 30 juni 2007 @ 22:37
    quote:
    Op zaterdag 30 juni 2007 22:28 schreef Geqxon het volgende:
    Zo, weer een MySQL vraagje

    Mijn resultatenset van een query met een left-join heeft op sommige velden een "NULL" , omdat er geen bijpassend record is. Nu wil ik hier op filteren, maar "b.ID = NULL" of "b.ID = 'NULL'" werkt helaas niet. Wat moet ik hiervoor gebruiken?

    PS: Ja, ik wil het op deze manier, en liever geen andere manier
    IS NULL of IS NOT NULL dit omdat alle vergelijkingen met NULL-waardes (NULL <> NULL, NULL = NULL, etc) altijd NULL opleveren. Zo is die waarde nu eenmaal gedefiniëerd
    WyriHaximuszaterdag 30 juni 2007 @ 22:37
    b.ID NOT NULL overigens werkt != het zelfde als in PHP

    EDIT: Erhm idd wat JeRa zegt NOT NULL is het zelfde als !=
    Geqxonzaterdag 30 juni 2007 @ 22:51
    My god, dat MySQL zo simpel is. Prachtige "taal" , dat MySQL! De meest complexe querys zijn nog leesbaar, en je kunt er vanalles mee. Thanks guys!
    WyriHaximuszaterdag 30 juni 2007 @ 22:57
    quote:
    Op zaterdag 30 juni 2007 22:51 schreef Geqxon het volgende:
    My god, dat MySQL zo simpel is. Prachtige "taal" , dat MySQL! De meest complexe querys zijn nog leesbaar, en je kunt er vanalles mee. Thanks guys!
    Eingelijk is SQL schitterend . SQL is de query taal om met de server te praten, MySQL is niks anders dan de server die de data opslaat . Meer info: http://en.wikipedia.org/wiki/SQL
    Geqxonzaterdag 30 juni 2007 @ 23:08
    Maar qua commando's zitten er toch verschillen tussen MSSQL en MySQL? Vandaar dat ik specifiek op MySQL duidde, aangezien ik daar ATM mee werk
    HuHuzaterdag 30 juni 2007 @ 23:12
    De taal SQL zou overal gelijk moeten zijn, maar er is verschil tussen de verschillende implementaties. Zo is MySQL iets anders dan MSSQL en ook weer iets anders dan PostgeSQL en die ook weer ...

    Maar de basis is bijna overal gelijk.
    WyriHaximuszaterdag 30 juni 2007 @ 23:21
    Idd over het algemeen is het allemaal het zelfde het verschil zal vooral in de functies, globale manier hoe de database in elkaar steekt en hele kleine syntax dingen .
    Chandlerzondag 1 juli 2007 @ 00:58
    quote:
    Op zaterdag 30 juni 2007 11:39 schreef WyriHaximus het volgende:

    [ code verwijderd ]

    Zo misschien? Misschien dat die haakjes uit maken
    Dat werkt inderdaad wel maar......

    1
    2
    3
    1e keer: Toon Records 0 - 0 (1 totaal, Query duurde 19.0347 sec)
    2e keer: 12, 5 secs
    3e keer: Toon Records 0 - 0 (1 totaal, Query duurde 0.0003 sec)




    en de uitkomst is niet wat ik zoek

    ID = 2000

    1
    2
    3
    2000 Een jongen of een meisje 
    490 een jongen of een meisje 
    490 een jongen of een meisje 




    [ Bericht 15% gewijzigd door Chandler op 01-07-2007 00:59:13 (-argh smilies hgra-) ]
    JeRazondag 1 juli 2007 @ 01:19
    quote:
    Op zondag 1 juli 2007 00:58 schreef Chandler het volgende:

    [..]

    Dat werkt inderdaad wel maar......
    [ code verwijderd ]



    en de uitkomst is niet wat ik zoek

    ID = 2000
    [ code verwijderd ]

    Vraagje, waarom wil je het niet via een UNION SELECT oplossen?
    1) Het is sneller dan 3 losse selects via PHP
    2) Zolang je de goede indices gebruikt is het praktisch net zo snel als een simpele join, maar gezien jouw wens wordt die join zo complex zal een UNION alsnog sneller worden
    3) Een UNION SELECT is duidelijker (imho) dan een complexe join

    Chandlerzondag 1 juli 2007 @ 08:41
    Wil dat dan ook draaien op MySQL 4.1.22-community-nt ?
    JeRazondag 1 juli 2007 @ 14:01
    quote:
    Op zondag 1 juli 2007 08:41 schreef Chandler het volgende:
    Wil dat dan ook draaien op MySQL 4.1.22-community-nt ?
    Twee seconden nazoekwerk, documentatie, vanaf MySQL 4.0.0 dus
    Chandlerzondag 1 juli 2007 @ 17:54
    Ik zal eens kijken wat een UNION select allemaal kan
    Chandlermaandag 2 juli 2007 @ 18:23
    Slotje... heb een nieuwe vraag