abonnement Unibet Coolblue Bitvavo
pi_58017589

cd niet bijgeleverd

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

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

Zie ook:
  • PHP Dataverwerking
  • Offici�le PHP website
  • PHP Documentatie
  • MySQL Reference Manual
  • Yet Another PHP Faq
  • PHP Cheat Sheet
  • PHP5 Power Programming - boek met uitleg over OOP, Pear, XML, etc

    Tutorials:
  • W3Schools PHP
  • W3Schools SQL

    Deze OP en instructies voor nieuw topic: http://wiki.fok.nl/index.php/OP/PHP
  • I asked God for a bike, but I know God doesn't work that way.
    So I stole a bike and asked for forgiveness.
    pi_58017599
    Laatste vraag:
    quote:
    Op zondag 13 april 2008 10:54 schreef beerten het volgende:
    Een beetje een n00b vraag...

    MySQL tabelrijen kan je voorzien van een index. Nu begrijp ik dat dit omwille van doorzoekbaarheid gedaan kan worden.

    Wat is nu precies een index, welke kolommen komen hier voor in aanmerking?
    Ik vind allerlei info over het hoe, maar niet het waarom.
    I asked God for a bike, but I know God doesn't work that way.
    So I stole a bike and asked for forgiveness.
      zondag 13 april 2008 @ 11:12:35 #3
    62215 qu63
    ..de tijd drinkt..
    pi_58017616
    hodfr, heb d'r net ook een gemaakt
    It's Time To Shine
    [i]What would life be like without rhethorical questions?[/i]
      zondag 13 april 2008 @ 11:13:09 #4
    62215 qu63
    ..de tijd drinkt..
    pi_58017621
    It's Time To Shine
    [i]What would life be like without rhethorical questions?[/i]
    pi_58017661
    Ik heb een tabel met getallen erin. Die getallen geven het aantal rijen in een tabel in mn db aan.
    Nu wil ik dat als je over het getal heen gaat er een klein schermpje overheen komt met wat informatie over dat getal. Dat kan natuurlijk met onmouseover enz, maar nu wil ik in dat schermpje geen eigen tekst hebben, maar een tekst gegenereerd door een stukje php.
    Weet iemand wel script ik daarvoor kan gebruiken? De mouseover-scipts die ik ken, laten geen php toe in dat schermpje.
    I asked God for a bike, but I know God doesn't work that way.
    So I stole a bike and asked for forgiveness.
    pi_58017704
    quote:
    Op zondag 13 april 2008 11:15 schreef -J-D- het volgende:
    Ik heb een tabel met getallen erin. Die getallen geven het aantal rijen in een tabel in mn db aan.
    Nu wil ik dat als je over het getal heen gaat er een klein schermpje overheen komt met wat informatie over dat getal. Dat kan natuurlijk met onmouseover enz, maar nu wil ik in dat schermpje geen eigen tekst hebben, maar een tekst gegenereerd door een stukje php.
    Weet iemand wel script ik daarvoor kan gebruiken? De mouseover-scipts die ik ken, laten geen php toe in dat schermpje.
    de td tag heeft natuurlijk title als property die je gewoon kan setten. En als het in je eigen stijl moet zijn of dynamisch gewoon iets in elkaar draaien met javascript/ajax
    pi_58018311
    tvp
      zondag 13 april 2008 @ 12:02:05 #8
    62215 qu63
    ..de tijd drinkt..
    pi_58018382
    quote:
    Op zondag 13 april 2008 11:15 schreef -J-D- het volgende:
    Ik heb een tabel met getallen erin. Die getallen geven het aantal rijen in een tabel in mn db aan.
    Nu wil ik dat als je over het getal heen gaat er een klein schermpje overheen komt met wat informatie over dat getal. Dat kan natuurlijk met onmouseover enz, maar nu wil ik in dat schermpje geen eigen tekst hebben, maar een tekst gegenereerd door een stukje php.
    Weet iemand wel script ik daarvoor kan gebruiken? De mouseover-scipts die ik ken, laten geen php toe in dat schermpje.
    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
    <script type="text/javascript">
    var cX = 0; var cY = 0;
    function UpdateCursorPosition(e){ cX = e.pageX; cY = e.pageY;}
    function UpdateCursorPositionDocAll(e){ cX = event.clientX; cY = event.clientY;}
    if(document.all) { document.onmousemove = UpdateCursorPositionDocAll; }
    else { document.onmousemove = UpdateCursorPosition; }
    function AssignPosition(d) {
    d.style.left = (cX+10) + "px";
    d.style.top = (cY+10) + "px";
    }
    function HideContent(d) {
    if(d.length < 1) { return; }
    document.getElementById(d).style.display = "none";
    }
    function ShowContent(d) {
    if(d.length < 1) { return; }
    var dd = document.getElementById(d);
    AssignPosition(dd);
    dd.style.display = "";
    }
    function ReverseContentDisplay(d) {
    if(d.length < 1) { return; }
    var dd = document.getElementById(d);
    AssignPosition(dd);
    if(dd.style.display == "none") { dd.style.display = ""; }
    else { dd.style.display = "none"; }
    }
    </script>

    <a onmouseover="ShowContent('uniquename2'); return true;" onmouseout="HideContent('uniquename2'); return true;" href="javascript:ShowContent('uniquename2')">LINKJE</a>

    <div id="uniquename2" style="display:none; position:absolute; border-style: solid; background-color: #FFFFFF; color: #004A95; padding: 5px;">EN HIER DE TEKST DIE JE WILT LATEN ZIEN</div>


    Zo heb ik het iig gedaan
    Kleruen zijn aan te passen aan je website
    En ipv een link kan het ook een div, td, of wat dan ook zijn
    It's Time To Shine
    [i]What would life be like without rhethorical questions?[/i]
    pi_58018432
    quote:
    Op zondag 13 april 2008 12:02 schreef qu63 het volgende:

    [..]
    [ code verwijderd ]

    Zo heb ik het iig gedaan
    Kleruen zijn aan te passen aan je website
    En ipv een link kan het ook een div, td, of wat dan ook zijn
    Ik moet nu weg, maar ga er van de week naar kijken
    Mijn dank is in ieder geval groot.
    I asked God for a bike, but I know God doesn't work that way.
    So I stole a bike and asked for forgiveness.
      zondag 13 april 2008 @ 12:09:15 #10
    107951 JortK
    Immer kwaliteitsposts
    pi_58018755
    @Beerten:
    Een index doet precies wat het zegt. Je kunt het vergelijken als een index achter in een boek. Je kiest het onderwerp uit de lijst en je ziet welke pagina('s) je moet hebben om het te vinden. Bij een database-index is dat net zo. Door een index toe te passen hoeft de database niet de hele tabel door te nemen, maar kan het meteen de juiste rij pakken.

    Als voorbeeld even een foutje die ik zelf nog recentelijk had gemaakt. Ik heb een applicatie die een logfile op disk schrijft en na 1000 regels roteert. Nu wil ik die in de database hebben om er allehande queries op los te laten. Maar ik wil ook de nieuwste regels hebben, dus ik neem ook de nog niet geroteerde logfile mee waar nog in geschreven kan worden. Om te zorgen dat er geen dubbelle entries in de logfile komen, controleer ik het timestamp en een ander stuk van de logregel.

    Het inlezen van een logfile duurde ca. 11 seconden, en dat is gewoon lang. TE lang. Dus na wat zoekwerk kwam ik er achter dat de database ca. 0,01 seconde nodig had voor een query. Met 1 query per logregel en dat x 1000 zit je dus al snel op 10 seconden aan database-tijd. Toen ik zag dat daar de traagheid vandaan kwam was het probleem in no-time opgelost: even een index aanleggen op het timestamp-veld van de tabel en nu wordt een complete logfile in minder dan een seconde de database ingepropt. De query tijd is afgenomen naar 0,00039 seconden.

    Nu kun je je natuurlijk afvragen waarom er niet standaard een index op elk veld zit. En dat is simpel, als je iets wegschrijft naar de database, dan moeten alle indexen bijgewerkt worden. Dus hoe meer indexen, hoe sneller je kunt lezen, maar hoe trager je iets weg kunt schrijven.
    Don't hurry, be crappy!
    pi_58018864
    klen vraagje stel ik heb een telefoonnummer 0472123456
    hoe verwijder ik de 0472 gedeelte en vervang ik het door 32472
    pi_58018884
    quote:
    Op zondag 13 april 2008 11:15 schreef -J-D- het volgende:
    Nu wil ik dat als je over het getal heen gaat er een klein schermpje overheen komt met wat informatie over dat getal. Dat kan natuurlijk met onmouseover enz, maar nu wil ik in dat schermpje geen eigen tekst hebben, maar een tekst gegenereerd door een stukje php.
    Weet iemand wel script ik daarvoor kan gebruiken? De mouseover-scipts die ik ken, laten geen php toe in dat schermpje.
    Hoezo zou een javascript PHP aan moeten kunnen? Je kunt je PHP toch zo schrijven dat hij dat er gewoon inwrot?
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <?php 
       $query = "SELECT `tekst` FROM `tooltips` WHERE `tooltip_id`= $tooltip_id; ";
       $row = mysql_fetch_row(mysql_query($query));
       $tooltip_text = $row[0];
    ?>
    <HTML><HEAD>
    <SCRIPT> 
    ...javascript geblaaat....
    var tekst = '<? $tooltip_text ?>'
    ...javascript geblaaat....
    </SCRIPT>
    ...

    Zo kun je tekst en variabellen in elk javascriptje prakken.
    Don't hurry, be crappy!
    pi_58018974
    quote:
    Op zondag 13 april 2008 12:37 schreef redboyonline het volgende:
    klen vraagje stel ik heb een telefoonnummer 0472123456
    hoe verwijder ik de 0472 gedeelte en vervang ik het door 32472
    1
    2
    3
    4
    $telefoonnummer = '0472123456';
    $oud = '0472';
    $nieuw = '32472';
    $nieuw_nummer = str_replace ( $oud, $nieuw, $telefoonnummer);

    En als $telefoonnummer een array is dan wordt $nieuw_nummer ook een array. Je kunt dus ineens een hele reeks van die nummers er doorheen rammen.
    Don't hurry, be crappy!
    pi_58019126
    quote:
    Op zondag 13 april 2008 12:45 schreef RiDo78 het volgende:

    [..]
    [ code verwijderd ]

    En als $telefoonnummer een array is dan wordt $nieuw_nummer ook een array. Je kunt dus ineens een hele reeks van die nummers er doorheen rammen.
    thx
    pi_58019415
    quote:
    Op zondag 13 april 2008 12:29 schreef RiDo78 het volgende:
    @Beerten:...
    Thnx!
    pi_58020094
    quote:
    Op zondag 13 april 2008 12:45 schreef RiDo78 het volgende:

    [..]
    [ code verwijderd ]

    En als $telefoonnummer een array is dan wordt $nieuw_nummer ook een array. Je kunt dus ineens een hele reeks van die nummers er doorheen rammen.
    Dan moet je wel zeker weten dat '0472' maar 1 keer in het telefoonnummer voor komt, anders gaat het fout.
    Wil iedereen die in telekinese gelooft nu mijn hand op steken?
    | Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
    pi_58020501
    quote:
    Op zondag 13 april 2008 14:05 schreef SuperRembo het volgende:

    [..]

    Dan moet je wel zeker weten dat '0472' maar 1 keer in het telefoonnummer voor komt, anders gaat het fout.
    Inderdaad, beter zou zijn een substring of iets dergelijks te gebruiken..
    pi_58020529
    tijd voor pizza
    The people who lost my respect will never get a capital letter for their name again.
    Like trump...
    pi_58020684
    quote:
    Op zondag 13 april 2008 14:38 schreef Chandler het volgende:
    tijd voor pizza
    Hey, het is hier geen slowchat
      zondag 13 april 2008 @ 16:02:23 #21
    32768 DionysuZ
    Respect my authority!
    pi_58021688
    quote:
    Op zondag 13 april 2008 14:05 schreef SuperRembo het volgende:

    [..]

    Dan moet je wel zeker weten dat '0472' maar 1 keer in het telefoonnummer voor komt, anders gaat het fout.
    1
    2
    3
    4
    $telefoonnummer = '04721234560472';
    $oud = '0472';
    $nieuw = '32472';
    $nieuw_nummer = preg_replace('/'.$oud.'/', $nieuw, $telefoonnummer, 1);
    □ Reality is merely an illusion,albeit a very persistent one-A.Einstein
    ■ Of ik ben gek of de rest van de wereld.Ik denk zelf de rest van de wereld-Rudeonline
    □ The war is not meant to be won.It is meant to be continuous-G.Orwell
      zondag 13 april 2008 @ 16:10:30 #22
    32768 DionysuZ
    Respect my authority!
    pi_58021800
    maarrrrr.. als je ook telefoonnummers met een ander kengetal gaat parsen dan krijg je daar weer problemen mee aangezien die functie de eerste occurrence vervangt, en zodra het een ander kengetal is kan het getal verderop weer terugkomen in de rest van het telefoonnummer.
    □ Reality is merely an illusion,albeit a very persistent one-A.Einstein
    ■ Of ik ben gek of de rest van de wereld.Ik denk zelf de rest van de wereld-Rudeonline
    □ The war is not meant to be won.It is meant to be continuous-G.Orwell
    pi_58026148
    okay, dan doen we het anders... er zijn meer wegen die naar rome leiden:
    1
    2
    3
    4
    $telefoonnummer = '04721234560472';
    $oud = '0472';
    $nieuw = '32472';
    $nieuw_nummer = $nieuw.substr($telefoonnummer, 3)

    Dit knipt de eerste 4 tekens weg (tellen begint bij 0) en plakt daar $nieuw voor. Er wordt dan niet opgelet wat dat voor cijfers zijn.

    Eventueel kun je ook nog kijken of die eerste 4 tekens wel het oude nummer zijn:
    1
    2
    3
    4
    5
    6
    $telefoonnummer = '04721234560472';
    $oud = '0472';
    $nieuw = '32472';
    if (substr($telefoonnummer, 0,4) == $oud) {
       $nieuw_nummer = $nieuw.substr($telefoonnummer, 3)
    }

    Maar beide methodes werken maar met 1 nummer tegelijk.
    Don't hurry, be crappy!
    pi_58026225
    quote:
    Op zondag 13 april 2008 16:10 schreef DionysuZ het volgende:
    maarrrrr.. als je ook telefoonnummers met een ander kengetal gaat parsen dan krijg je daar weer problemen mee aangezien die functie de eerste occurrence vervangt, en zodra het een ander kengetal is kan het getal verderop weer terugkomen in de rest van het telefoonnummer.

    Als je het kengetgal wil wijzigen doe je toch simpel:

    preg_replace('/^020/', '010', $tel_no);

    Zal alleen de waarde veranderen indien het telefoonnummer begint met 020.
      zondag 13 april 2008 @ 19:30:44 #25
    62215 qu63
    ..de tijd drinkt..
    pi_58026240
    kan je dan niet beter gewoon de 0 vervangen door 32?
    Ik neem aan dat je een telefoonnummer om wilt zetten naar een internationaal nummer?
    It's Time To Shine
    [i]What would life be like without rhethorical questions?[/i]
    pi_58026777
    quote:
    Op zondag 13 april 2008 16:02 schreef DionysuZ het volgende:

    [..]
    [ code verwijderd ]
    Jij hebt best wel een vet user ID, powers of two
    pi_58031399
    quote:
    Op zondag 13 april 2008 19:50 schreef JeRa het volgende:

    [..]

    Jij hebt best wel een vet user ID, powers of two
    Ach de jouwe is 2 2log 47509,
    pi_58031810
    quote:
    Op zondag 13 april 2008 12:02 schreef qu63 het volgende:

    [..]
    [ code verwijderd ]

    Zo heb ik het iig gedaan
    Kleruen zijn aan te passen aan je website
    En ipv een link kan het ook een div, td, of wat dan ook zijn
    Het werkt als een tiet.
    Tering veel werk om het op mijn site te implementeren.
    Het moet op zo'n 150 plaatsen geplaatst worden
    Maar goed, het werkt
    I asked God for a bike, but I know God doesn't work that way.
    So I stole a bike and asked for forgiveness.
      zondag 13 april 2008 @ 22:52:44 #29
    62215 qu63
    ..de tijd drinkt..
    pi_58031977
    quote:
    Op zondag 13 april 2008 22:47 schreef -J-D- het volgende:

    [..]

    Het werkt als een tiet.
    Tering veel werk om het op mijn site te implementeren.
    Het moet op zo'n 150 plaatsen geplaatst worden
    Maar goed, het werkt
    Die div kan je overal op je site neergooien, dus ook in een footer ofzo
    Als je die footer dan toch al include is het makkelijk

    en verder gewoon je linkjes aanpassen
    It's Time To Shine
    [i]What would life be like without rhethorical questions?[/i]
    pi_58034163
    Goed, ik wil mijn volgende projectje maar eens in een framwork gaan maken, nadat ik ontdekt heb dat die toch wel tot mooie dingen in staat zijn. De vraag is nu alleen nog welke? Ik heb de volgende bekeken en zijn het eigenlijk net allemaal niet.

    Ik heb een paar eisen:

  • MVC
  • Goede database class
  • Goede documentatie
  • Het liefst PHP 5

    CakePHP: Mooi gebruik van MVC, ook PHP 5. De documentatie is op zich redelijk maar mist wel een wat uitgebreidere uitleg en goede voorbeelden. Ook denk ik dat ik te weinig kan met al die automatische koppelingen tussen de database en de models, zonder er goede documentatie over te hebben. Ook mis ik eigenlijk wel een paar goede extra basisfunctionaliteiten waar je wat aan hebt.

    Code Igniter: Ook een mooi framework, helaas wel nog PHP 4. De documentatie is goed, ook denk ik mede doordat er een bedrijf achter zit, dit kan natuurlijk ook een nadeel zijn (?). Werkt prettig alhoewel ik dan wel weer het automatisch laden van functies mis zoals bij Kohana, komt denk ik ook mede doordat het nog in PHP 4 geschreven is (of niet?).

    Kohana: Is een fork van Code Igniter en is wel op PHP 5 gebouwd. Ziet er heel goed uit maar de documentatie laat echt heel erg te wensen over en het is zo te zien nog niet heel erg oud, dus hoe het er in de toekomst mee verder gaat bevalt ook nog maar te zien natuurlijk. Op het eerste gezicht met een beetje spelen ziet het er iig wel veelbelovend uit. Toch maar weer overwegen.

    Zend Framework: Heel kort bekeken, volgens mij out-of-the-box niet zo'n compleet framework als de anderen, wel heel erg goede documentatie maar het staat me eigenlijk gewoon niet aan.

    Iemand nog ervaringen, suggesties of iets anders waardoor ik een goede keuze kan maken? Ik weet het echt niet..
  •   maandag 14 april 2008 @ 00:06:27 #31
    32768 DionysuZ
    Respect my authority!
    pi_58034252
    quote:
    Op zondag 13 april 2008 19:30 schreef slakkie het volgende:

    [..]

    Als je het kengetgal wil wijzigen doe je toch simpel:

    preg_replace('/^020/', '010', $tel_no);

    Zal alleen de waarde veranderen indien het telefoonnummer begint met 020.
    aw natuurlijk ^ startwaarde, ff vergeten joh =)
    □ Reality is merely an illusion,albeit a very persistent one-A.Einstein
    ■ Of ik ben gek of de rest van de wereld.Ik denk zelf de rest van de wereld-Rudeonline
    □ The war is not meant to be won.It is meant to be continuous-G.Orwell
    pi_58036794
    Ik wil een functie maken waarmee ik een string / code kan genereren op basis van een pattern. Een soort omgekeerde regex dus ... Ik heb alleen geen idee hoe ik dit aan moet pakken

    Ik kan natuurlijk at random codes gaan genereren, en die net zo lang tegen m'n pattern matchen totdat ik een hit heb, maar dat is natuurlijk hopeloos inefficient... iemand suggesties?
    pi_58036986
    Je wilt jezelf gaan pijnigen? Waarom wil je regular expressions reversen?
    pi_58037030
    quote:
    Op maandag 14 april 2008 08:51 schreef slakkie het volgende:
    Je wilt jezelf gaan pijnigen? Waarom wil je regular expressions reversen?
    Om bijvoorbeeld wachtwoorden a.d.h.v. een custom format te genereren?

    Ik denk dat het wel te doen is, maar er is voor zover ik weet geen PHP functie voor. Dus ofwel zelf implementeren ofwel old school strings aan elkaar plakken totdat je het gewenste formaat hebt
    pi_58037256
    quote:
    Op maandag 14 april 2008 00:02 schreef Janteh het volgende:
    Goed, ik wil mijn volgende projectje maar eens in een framwork gaan maken, nadat ik ontdekt heb dat die toch wel tot mooie dingen in staat zijn. De vraag is nu alleen nog welke? Ik heb de volgende bekeken en zijn het eigenlijk net allemaal niet.

    Ik heb een paar eisen:

  • MVC
  • Goede database class
  • Goede documentatie
  • Het liefst PHP 5

    CakePHP: Mooi gebruik van MVC, ook PHP 5. De documentatie is op zich redelijk maar mist wel een wat uitgebreidere uitleg en goede voorbeelden. Ook denk ik dat ik te weinig kan met al die automatische koppelingen tussen de database en de models, zonder er goede documentatie over te hebben. Ook mis ik eigenlijk wel een paar goede extra basisfunctionaliteiten waar je wat aan hebt.

    Code Igniter: Ook een mooi framework, helaas wel nog PHP 4. De documentatie is goed, ook denk ik mede doordat er een bedrijf achter zit, dit kan natuurlijk ook een nadeel zijn (?). Werkt prettig alhoewel ik dan wel weer het automatisch laden van functies mis zoals bij Kohana, komt denk ik ook mede doordat het nog in PHP 4 geschreven is (of niet?).

    Kohana: Is een fork van Code Igniter en is wel op PHP 5 gebouwd. Ziet er heel goed uit maar de documentatie laat echt heel erg te wensen over en het is zo te zien nog niet heel erg oud, dus hoe het er in de toekomst mee verder gaat bevalt ook nog maar te zien natuurlijk. Op het eerste gezicht met een beetje spelen ziet het er iig wel veelbelovend uit. Toch maar weer overwegen.

    Zend Framework: Heel kort bekeken, volgens mij out-of-the-box niet zo'n compleet framework als de anderen, wel heel erg goede documentatie maar het staat me eigenlijk gewoon niet aan.

    Iemand nog ervaringen, suggesties of iets anders waardoor ik een goede keuze kan maken? Ik weet het echt niet..
  • Is de smarty template geen optie?
    pi_58037361
    quote:
    Op maandag 14 april 2008 09:13 schreef dik_voormekaar het volgende:

    [..]

    Is de smarty template geen optie?
    Dat is een template engine en geen framework ernstig verschil.
    pi_58037372
    quote:
    Op maandag 14 april 2008 09:21 schreef JeRa het volgende:

    [..]

    Dat is een template engine en geen framework ernstig verschil.
    Oops..., sorry.
    pi_58037508
    quote:
    Op maandag 14 april 2008 08:56 schreef JeRa het volgende:
    Om bijvoorbeeld wachtwoorden a.d.h.v. een custom format te genereren?
    Correct... en om reeksen in een bepaald format te genereren
      maandag 14 april 2008 @ 10:18:55 #39
    187069 slacker_nl
    Sicko pur sang
    pi_58038304
    Kijk eens naar de source code van deze Perl module en rewrite het naar PHP: http://search.cpan.org/~s(...)lib/String/Random.pm
    In theory there is no difference between theory and practice. In practice there is.
      maandag 14 april 2008 @ 11:00:04 #40
    187069 slacker_nl
    Sicko pur sang
    pi_58039072
    quote:
    Op maandag 14 april 2008 00:02 schreef Janteh het volgende:
    Goed, ik wil mijn volgende projectje maar eens in een framwork gaan maken, nadat ik ontdekt heb dat die toch wel tot mooie dingen in staat zijn. De vraag is nu alleen nog welke? Ik heb de volgende bekeken en zijn het eigenlijk net allemaal niet.

    Ik heb een paar eisen:

  • MVC
  • Goede database class
  • Goede documentatie
  • Het liefst PHP 5
  • Misschien ben je deze sites al tegengekomen met je kleine onderzoek:

    http://www.phpframeworks.com/index.php5
    http://www.phpit.net/article/ten-different-php-frameworks/
    http://www.mustap.com/phpzone_post_73_top-10-php-mvc-frameworks
    http://www.phpclasses.org(...)-PHP-frameworks.html
    In theory there is no difference between theory and practice. In practice there is.
    pi_58039462
    quote:
    Op maandag 14 april 2008 10:18 schreef slacker_nl het volgende:
    Kijk eens naar de source code van deze Perl module en rewrite het naar PHP: http://search.cpan.org/~s(...)lib/String/Random.pm
    Hee, dat ziet er wel interessant uit
      maandag 14 april 2008 @ 16:38:11 #42
    63192 ursel
    "Het Is Hier Fantastisch!
    pi_58045276
    quote:
    Op maandag 14 april 2008 00:02 schreef Janteh het volgende:
    Goed, ik wil mijn volgende projectje maar eens in een framwork gaan maken, nadat ik ontdekt heb dat die toch wel tot mooie dingen in staat zijn. De vraag is nu alleen nog welke? Ik heb de volgende bekeken en zijn het eigenlijk net allemaal niet.

    Ik heb een paar eisen:

  • MVC
  • Goede database class
  • Goede documentatie
  • Het liefst PHP 5

    CakePHP: Mooi gebruik van MVC, ook PHP 5. De documentatie is op zich redelijk maar mist wel een wat uitgebreidere uitleg en goede voorbeelden. Ook denk ik dat ik te weinig kan met al die automatische koppelingen tussen de database en de models, zonder er goede documentatie over te hebben. Ook mis ik eigenlijk wel een paar goede extra basisfunctionaliteiten waar je wat aan hebt.

    Code Igniter: Ook een mooi framework, helaas wel nog PHP 4. De documentatie is goed, ook denk ik mede doordat er een bedrijf achter zit, dit kan natuurlijk ook een nadeel zijn (?). Werkt prettig alhoewel ik dan wel weer het automatisch laden van functies mis zoals bij Kohana, komt denk ik ook mede doordat het nog in PHP 4 geschreven is (of niet?).

    Kohana: Is een fork van Code Igniter en is wel op PHP 5 gebouwd. Ziet er heel goed uit maar de documentatie laat echt heel erg te wensen over en het is zo te zien nog niet heel erg oud, dus hoe het er in de toekomst mee verder gaat bevalt ook nog maar te zien natuurlijk. Op het eerste gezicht met een beetje spelen ziet het er iig wel veelbelovend uit. Toch maar weer overwegen.

    Zend Framework: Heel kort bekeken, volgens mij out-of-the-box niet zo'n compleet framework als de anderen, wel heel erg goede documentatie maar het staat me eigenlijk gewoon niet aan.

    Iemand nog ervaringen, suggesties of iets anders waardoor ik een goede keuze kan maken? Ik weet het echt niet..
  • www.pradosoft.com schijnt ook wel erg goed te zijn. Alleen door tijdgebrek niet voldoende tijd aan kunnen besteden jammergenoeg.
      maandag 14 april 2008 @ 16:40:35 #43
    63192 ursel
    "Het Is Hier Fantastisch!
    pi_58045308
    Ooh.. trouwens ook weer een vraagje

    Wat is nu de beste methode om een SOAP call uit te gaan voeren?

    Ik weet dat je PHP SOAP hebt. Momenteel maken we hier nu nog gebruik van NuSOAP. maar ik begreep dat dit nu niet een van de betere is.
    Via cUrl kan je ook nog een soort van SOAP versturen, zij het dat je dan de gegevens in de url zelf moet knallen.

    Wat is jullie advies om te gebruiken??
    pi_58045955
    ik gebruik NuSOAP, naar mijn weten is dat juist wel een van de betere.

    Voor zover ik weet is deze ook heel wat uitgebreider dan de PHP SOAP library. Bovendien vind ik het ook wel een voordeel dat je NuSOAP kunt gebruiken zonder dat hier speciale libraries op de betreffende server nodig zijn

    Volgens mij werkt NuSOAP overigens ook via cURL?
      maandag 14 april 2008 @ 23:18:18 #45
    46383 Tiemie
    sowieso wel!
    pi_58056673
    Nadeel van Nusoap is dat een aantal namen van classes overeen komen met (standaard?) php5-modules.
    pi_58056805
    quote:
    Op maandag 14 april 2008 23:18 schreef Tiemie het volgende:
    Nadeel van Nusoap is dat een aantal namen van classes overeen komen met (standaard?) php5-modules.
    Zal ook heel blij zijn als PHP6 stable wordt, namespaces zijn geweldig. De keren dat ik een XMLWriter/Reader class heb geschreven zonder te weten dat ze ook al in PHP5 aanwezig zijn, zijn helaas talloos
    pi_58057199
    quote:
    Op maandag 14 april 2008 23:23 schreef JeRa het volgende:

    [..]

    Zal ook heel blij zijn als PHP6 stable wordt, namespaces zijn geweldig. De keren dat ik een XMLWriter/Reader class heb geschreven zonder te weten dat ze ook al in PHP5 aanwezig zijn, zijn helaas talloos
    Moet PHP6 jouw gebrek aan kennis van PHP compenseren?
    Wil iedereen die in telekinese gelooft nu mijn hand op steken?
    | Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
    pi_58057282
    quote:
    Op maandag 14 april 2008 23:40 schreef SuperRembo het volgende:

    [..]

    Moet PHP6 jouw gebrek aan kennis van PHP compenseren?
    Geef toe, voorgedefiniëerde global classes zijn gewoon ernstig nutteloos en in zo'n geval alleen maar hinderlijk
    pi_58059698
    Een paar kleine vraagjes over XML.

    Ik moet een XML script schrijven voor iemand, echter deed ik dit eerst met eregi (zoeken en uitlezen). Nu wil ik het juist aanpakken. Dus een paar vragen over XML.

    Hoe kan ik het beste een XML bestand uitlezen
    Hoe kan ik een bepaald element en zijn nodes uitlezen?
    Hoe kan ik een bepaald element zoeken?

    Ik heb de documentatie van php.net geraadpleegd maar werdt er niet echt wijs van
    The people who lost my respect will never get a capital letter for their name again.
    Like trump...
    pi_58059736
    Beter zoeken:

    http://nl2.php.net/xml
    Allemaal handige functies om XML bestanden uit te lezen.
      dinsdag 15 april 2008 @ 08:52:49 #51
    63192 ursel
    "Het Is Hier Fantastisch!
    pi_58060224
    Mja, zit er nu een beetje naar te kijken en was verteld dat de ontwikkeling van NuSOAP al hele tijd stil lag, maar zie nu dat er in nov. 2007 een nieuwe versie is gekomen. Ga er toch even mee aan de gang..
    pi_58060252
    Ik ben ook zo'n blaataap met lezen hé maar ik heb een voorbeeld gevonden die mij kon helpen.. Bedankt GSMboy
    The people who lost my respect will never get a capital letter for their name again.
    Like trump...
    pi_58061374
    Wat is er mis met mijn query? Het gedeelte TOT de AND werkt, maar ik wil van het te submitten formulier dat hij alleen de 'volgorde' +1ed van de entries in db portfolio waar de waarde 'afdeling' hetzelfde is als de te submitten entry

    $result=db_query(sprintf("UPDATE portfolio SET volgorde = volgorde +1 WHERE volgorde >= '%s',$form['volgorde'] AND `afdeling` = $form['afdeling']));
    never underestimate the power of stupid people in large groups
    pi_58061611
    quote:
    Op dinsdag 15 april 2008 10:09 schreef Skyrise het volgende:
    Wat is er mis met mijn query?
    Kijk eens naar de query die uitgevoerd wordt, dus naar de uitkomst van sprintf(). Dan zie je vast zelf wel wat er mis is.
    Wil iedereen die in telekinese gelooft nu mijn hand op steken?
    | Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
    pi_58063169
    Ik zeg het wel even voor SR

    de fout zit um hier
    WHERE volgorde >= '%s',$form['volgorde'] AND `afdeling` = $form['afdeling']));

    oftewel dit er van maken
    1$result=db_query(sprintf("UPDATE portfolio SET volgorde = volgorde +1 WHERE volgorde >= '%s' AND `afdeling` = " . $form['afdeling']), $form['volgorde']);
    The people who lost my respect will never get a capital letter for their name again.
    Like trump...
    pi_58063437
    quote:
    Op dinsdag 15 april 2008 11:46 schreef Chandler het volgende:
    Ik zeg het wel even voor SR

    de fout zit um hier
    WHERE volgorde >= '%s',$form['volgorde'] AND `afdeling` = $form['afdeling']));

    oftewel dit er van maken
    [ code verwijderd ]
    Nog lelijker, sprintf en dan nog $string . "andere string doen"... IEEK.

    1
    2
    3
    <?php
    $sql 
    sprintf("UPDATE portfolio SET volgorde = volgorde +1 WHERE volgorde >= '%s' AND `afdeling` = '%s'",  $form['volgorde'],  $form['afdeling']);
    ?>
      dinsdag 15 april 2008 @ 12:01:01 #57
    84926 WyriHaximus
    Release the hounds smithers!
    pi_58063552
    quote:
    Op dinsdag 15 april 2008 11:46 schreef Chandler het volgende:
    Ik zeg het wel even voor SR

    de fout zit um hier
    WHERE volgorde >= '%s',$form['volgorde'] AND `afdeling` = $form['afdeling']));

    oftewel dit er van maken
    [ code verwijderd ]
    * WyriHaximus zucht
    1$result=db_query(sprintf("UPDATE portfolio SET volgorde = volgorde +1 WHERE volgorde >= '%s' AND `afdeling` = " . $form['afdeling'], $form['volgorde']));
    Je 1e ) stond verkeerd .

    EDIT: En ook wat slakkie zegt .
    phluphy for president!
    pi_58065715
    Hehe,... goedzo, het werkt alleen nog niet. Hij update nu uberhaupt geen volgorde meer.

    `afdeling` en `volgorde` vallen wel allebei onder dezelfde entry (parent), waarom ik dus geen simpele mutatie (+1 voor alles gelijk aan en hoger voor `volgorde`) voor alles met dezelfde `afdeling` kan maken snap ik niet.
    never underestimate the power of stupid people in large groups
    pi_58065872
    quote:
    Op dinsdag 15 april 2008 13:33 schreef Skyrise het volgende:
    Hehe,... goedzo, het werkt alleen nog niet. Hij update nu uberhaupt geen volgorde meer.

    `afdeling` en `volgorde` vallen wel allebei onder dezelfde entry (parent), waarom ik dus geen simpele mutatie (+1 voor alles gelijk aan en hoger voor `volgorde`) voor alles met dezelfde `afdeling` kan maken snap ik niet.
    Maar wat is nou de query die uitgevoerd wordt?
    Maak er eens dit van zodat je kan zien wat erg werkelijk gebreurt:

    1
    2
    3
    $sql = sprintf("UPDATE ...);
    echo $sql;
    $result = db_query($sql);


    `volgorde` is een integer, maar de parameter krijgt wel quotjes? Is `afdeling` ook een int, want die parameter krijg geen quotjes?

    [ Bericht 3% gewijzigd door SuperRembo op 15-04-2008 13:48:05 ]
    Wil iedereen die in telekinese gelooft nu mijn hand op steken?
    | Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
    pi_58066549
    afdeling is een text, volgorde een integer ik zal die quotjes even omwisselen.

    De warning die ik krijg is:

    UPDATE portfolio SET volgorde = volgorde +1 WHERE volgorde >= '17', AND `afdeling` = projects
    Warning: Cannot modify header information - headers already sent

    Ik stuur echter geen headers volgens mij, ff dubbelchecken.
    edit:: Ik heb gekeken waar die headers dan verzonden worden, maar die andere .php waar hij naar verwijst
    gaat in die line over thumbs, dus dat is het iig niet.

    [ Bericht 30% gewijzigd door Skyrise op 15-04-2008 14:34:42 ]
    never underestimate the power of stupid people in large groups
      dinsdag 15 april 2008 @ 17:37:56 #61
    37634 wobbel
    Da WoBBeL King
    pi_58070022
    Ik had deze code, maar die werkte niet:

    1
    2
    3
    4
    DELETE FROM SHOP_Subcategory 
    INNER JOIN SHOP_Subcategory_Lang 
    ON ( SHOP_Subcategory.IdSubcategory = SHOP_Subcategory_Lang.SubcategoryId ) 
    WHERE SHOP_Subcategory.CategoryId = '1'


    Ik kreeg deze foutmelding:
    quote:
    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 'INNER JOIN SHOP_Subcategory_Lang ON ( SHOP_Subcategory.IdSubcat' at line 3
    In het vorige topic had ik dit probleem gepost, en iemand kwam met deze onderstaande code:

    1
    2
    3
    4
    DELETE SHOP_Subcategory
    FROM SHOP_Subcategory s
    INNER JOIN SHOP_Subcategory_Lang l ON s.IdSubcategory = l.SubcategoryId
    WHERE s.CategoryId = 1


    maar die geeft deze foutmelding:
    quote:
    Unknown table 'SHOP_Subcategory' in MULTI DELETE
    Unknown table SHOP_Subcategory?? De tabelnaam is gewoon goed hoor :P
    pi_58071233
    Oh, dan moet het "DELETE s" zijn in plaats van "DELETE SHOP_Subcategory". Na DELETE moet dus de alias worden gebruikt.
    Wil iedereen die in telekinese gelooft nu mijn hand op steken?
    | Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
    pi_58073655
    MySQL vraagje..
    Ik ben bezig een database uit een oude webapplicatie over te zetten naar een nieuwe applicatie.
    De oude situatie is zo:
    Er is een tabel met hierin bedrijven. Onder andere bedrijfsnaam, website, email, bezoekadres, postadres, enzovoort. Deze moet overgezet worden.
    In de nieuwe applicatie is er ondersteuning voor meerdere filialen per bedrijf, oftewel, er is een 1 op n relatie ontstaan met bedrijf_id als eigenschap van een filiaal.

    Dit betekent dus dat ik de oude tabel moet gaan opsplitsen in 2 tabellen, waarbij het toegewezen ID uit de bedrijventabel, in het veld bedrijf_id in de filialentabel geplaatst moet worden, samen met de rest van de velden..

    Geen idee hoe ik dit simpel kan oplossen.. Tips?
    Alvast bedankt
    pi_58073815
    Scriptje maken wat de oude tabel leest, en daar doorheen loopt... In de nieuwe bedrijventabel een record aanmaken, ID opvragen en de hele meuk in de filialen tabel importeren?

    Om hoeveel bedrijven gaat het? En komt er helemaal geen info in de bedrijventabel?
    pi_58077788
    Dit hieronder is een script om de pagina's goed of af te keuren. Als ze gekeurd zijn krijgen de leden een email, maar de afzender is md108183@geenpunt.nl (dus volgens mij onbekend)

    Hoe kan ik dit veranderen?
    quote:
    <?php
    include "connect.php";
    include "var.php";
    session_start();
    print "<link rel='stylesheet' href='style.css' type='text/css'>";
    if(isset($_SESSION['topadmin']))
    {
    print "<table width=90%>";
    print "<tr><td valign='top'>";
    include "adminleft.php";
    print "</td>";
    print "<td valign='top' width=80%>";
    print "<table class='maintable'>";
    print "<tr class='headline'><td><center>Validate Sites</center></td></tr>";
    print "<tr class='mainrow'><td>";
    if(isset($_POST['submit']))
    {
    $ID=$_POST['ID'];
    $selectsite="SELECT * from ts_sites where ID='$ID'";
    $selectsite2=mysql_query($selectsite) or die("no select");
    $selectsite3=mysql_fetch_array($selectsite2);
    $validatesite="Update ts_sites set validated='1' where ID='$ID'";
    mysql_query($validatesite) or die("Could not validate site");
    print "Site Validated";
    mail("$selectsite3[email]","Je site is goedgekeurd", "Je site $selectsite3[title] is goedgekeurd bij $title");

    }
    else if(isset($_POST['submit2']))
    {
    $ID=$_POST['ID'];
    $selectsite="SELECT * from ts_sites where ID='$ID'";
    $selectsite2=mysql_query($selectsite) or die("no select");
    $selectsite3=mysql_fetch_array($selectsite2);
    $deletesite="DELETE from ts_sites where ID='$ID'";
    mysql_query($deletesite) or die("Could not delete site");
    print "Site Deleted";
    mail("$selectsite3[email]","Site verwijderd", "Helaas hebben wij je site $selectsite3[title] moeten verwijderen van $title");

    }
    else
    {
    $getnotvalidated="SELECT * from ts_sites where validated='0'";
    $getnotvalidated2=mysql_query($getnotvalidated) or die("Could not get sites");
    while($getvalidated3=mysql_fetch_array($getnotvalidated2))
    {
    print "<form action='validate.php' method='post'>";
    print "Site: <A href='$getvalidated3[url]' target='_blank'>$getvalidated3[title]</a><br>";
    print "<img src='$getvalidated3[button]'><br>";
    print "Category:$getvalidated3[catparent]<br>";
    print "Description: $getvalidated3[description]<br>";
    print "<input type='hidden' name='ID' value='$getvalidated3[ID]'>";
    print "<input type='submit' name='submit' value='validate'>";
    print " <input type='submit' name='submit2' value='Delete'></form>";
    }
    }

    print "</td></tr></table>";
    print "</td></tr></table>";
    }
    else
    {
    print "Not logged in";
    }

    ?>
    Alvast bedankt
    pi_58078107
    quote:
    Op dinsdag 15 april 2008 20:43 schreef Xcalibur het volgende:
    Scriptje maken wat de oude tabel leest, en daar doorheen loopt... In de nieuwe bedrijventabel een record aanmaken, ID opvragen en de hele meuk in de filialen tabel importeren?

    Om hoeveel bedrijven gaat het? En komt er helemaal geen info in de bedrijventabel?
    De bedrijventabel bevat: id, naam, branche, website, algemeen emailadres
    Filialentabel bevat: id, bedrijf id, postadres (meerdere velden), bezoekadres, telefoon, fax, and so on..
    Het gaat om ongeveer 18,000 records.. Het liefste zou ik het met pure SQL oplossen, maar voor zover ik heb kunnen vinden gaat dat niet helemaal lukken en moet ik inderdaad terugvallen op een PHP-scriptje..
    In ieder geval bedankt voor het meedenken

    Ik hoopte zelf dat er iets als een SELECT INTO met een join-mogelijkheid bestond, maarja, dat zal wel tegenvallen
    pi_58078165
    quote:
    Op dinsdag 15 april 2008 23:20 schreef bartoz het volgende:
    Dit hieronder is een script om de pagina's goed of af te keuren. Als ze gekeurd zijn krijgen de leden een email, maar de afzender is md108183@geenpunt.nl (dus volgens mij onbekend)

    Hoe kan ik dit veranderen?
    [..]

    Alvast bedankt
    Je gebruikt de functie mail() om je berichten te verzenden.
    Als je deze pagina doorleest, kom je al een stuk verder.
    pi_58078521
    quote:
    Op dinsdag 15 april 2008 23:36 schreef svierkant het volgende:

    [..]

    Je gebruikt de functie mail() om je berichten te verzenden.
    Als je deze pagina doorleest, kom je al een stuk verder.
    Ok bedankt....maar is het niet gewoon 1 zin die ik er tussen kan zetten?
      dinsdag 15 april 2008 @ 23:52:00 #69
    62215 qu63
    ..de tijd drinkt..
    pi_58078574
    quote:
    Op dinsdag 15 april 2008 23:50 schreef bartoz het volgende:

    [..]

    Ok bedankt....maar is het niet gewoon 1 zin die ik er tussen kan zetten?
    wat staat er in var.php? ik denk dat daar de afzender vermeldt staat, of in de php.ini
    It's Time To Shine
    [i]What would life be like without rhethorical questions?[/i]
    pi_58078661
    <?php //variables for topsites
    $adminemail="***@*****.com";
    ?>

    Dit staat er in var.php
    pi_58079244
    quote:
    Op dinsdag 15 april 2008 23:50 schreef bartoz het volgende:

    [..]

    Ok bedankt....maar is het niet gewoon 1 zin die ik er tussen kan zetten?
    Ten eerste weet ik niet wat er allemaal in de bestanden staat, waaronder var.php. Je zult je iets meer in de code moeten verdiepen dan je nu doet.
    pi_58079330
    var.php staan voor de rest geen dingen die te maken hebben met de email.
    pi_58084295
    quote:
    Op dinsdag 15 april 2008 14:16 schreef Skyrise het volgende:
    afdeling is een text, volgorde een integer ik zal die quotjes even omwisselen.

    De warning die ik krijg is:

    UPDATE portfolio SET volgorde = volgorde +1 WHERE volgorde >= '17', AND `afdeling` = projects
    Warning: Cannot modify header information - headers already sent

    Ik stuur echter geen headers volgens mij, ff dubbelchecken.
    edit:: Ik heb gekeken waar die headers dan verzonden worden, maar die andere .php waar hij naar verwijst
    gaat in die line over thumbs, dus dat is het iig niet.
    http://www.geeklog.net/faqman/index.php?op=view&t=38
    http://forum.mamboserver.com/showthread.php?t=15068
      zaterdag 19 april 2008 @ 11:18:14 #74
    62215 qu63
    ..de tijd drinkt..
    pi_58155551
    Ik weet dat je met PHP-auth je website kan 'beveiligen' (aub geen discussie of het wel veilig genoeg is, daar gaat het me nu niet om ), maar kan je met PHP ook de username en password doorgeven? Zodat je die prompt niet krijgt..
    It's Time To Shine
    [i]What would life be like without rhethorical questions?[/i]
      zaterdag 19 april 2008 @ 11:20:49 #75
    62215 qu63
    ..de tijd drinkt..
    pi_58155590
    whoops
    It's Time To Shine
    [i]What would life be like without rhethorical questions?[/i]
    pi_58159187
    Ik heb 2 vragen maar ben niet eens zeker of het wel onder php zelf valt.

    Op een website die ik gemaakt heb gebruikte ik tot nu toe altijd om bijvoorbeeld naar een artikel te gaan een link zoals deze: www.blabla.com/blabla.php?id=965
    Op fora zoals hier bijvoorbeeld op fok worden echter links gebruikt zoals bijvoorbeeld: forum.fok.nl/topic/1145006.
    Ik vraag me echter af hoe je links maakt zoals de laatste? Dat je dus geen gebruik maakt van ?id=965 maar dat je gewoon /1145006 hebt. Ik zou namelijk de 2e manier willen gebruiken maar heb geen idee hoe je dat moet doen.
    M'n vraag is nogal onduidelijk maar hopelijk begrijp je wat ik bedoel .

    En dan nog een vraagje dat ook over links gaat:
    (Als voorbeeld neem ik nu een artikel vanop de frontpage)
    Op de FP staat momenteel een artikel dat 'Operatie onder hypnose in plaats van verdoving' noemt. Als je naar de link kijkt van deze pagina zie je dat de pagina -Operatie-onder-hypnose-in-plaats-van-verdoving.html heet. M'n vraag is nu hoe je ervoor zorgt dat een html pagina aangemaakt wordt (of hoe het ook juist werkt) met als naam de titel van je artikel? Het is veel praktischer om de titel in de link te hebben dan louter een id dat verwijst naar je database.

    Bedankt alvast!
    pi_58164362
    Ik heb al een beetje zitten Googlen en het lijkt erop dat wat ik wil, mogelijk is, maar ik wil hier toch iets meer zekerheid over:

    Stel: er is een Excel-bestand met verschillende werkbladen (ongeveer 15) met daarin alle klantgegevens. De verschillende werkbladen zijn met elkaar gelinkt.

    Zo is snel te zien welke producten de klanten hebben. (werkblad 1 -> NAWT-gegevens klant, werkblad 2 geeft product X aan en in dit werkblad staan dus alle verschillende producten X met de klantnummers. Werkblad 3 gaat over product Y, enz. enz.)

    Elk product heeft ook nog een bepaalde provisiestructuur. Product X bij producent A geeft 10% van de omzet, product X van producent B geeft 15% van de omzet. Enz. enz.

    Elk verkocht product wordt dagelijks toegevoegd en dus automatisch gelinkt aan de klant en alle andere gegevens van deze klant.

    Uiteindelijk worden hieruit ook alle management-rapportages gehaald.

    Nu wordt er gestoeid met een nieuw softwarepakket (database) en het ervoor zorgen dat dit vlekkeloos verloopt, is een ellenlang traject, wat nog maanden gaat duren.


    De uiteindelijke vraag is dan ook: is het mogelijk om deze Excel-sheet m.b.v. PHP in te lezen in MySQL, op een dusdanige manier dat alle koppelingen behouden blijven en er nog steeds dezelfde managementsrapportages uit te extraheren zijn? Het afgelopen jaar heb ik me mede bezig gehouden met het bouwen van een applicatie, die volledig liep op PHP/MySQL. Niet de programmeer-kant, maar inhoudelijk. Daar heb ik veel mooie dingen van gezien (ik kan nog steeds niet programmeren, maar ik kan PHP inmiddels wel enigszins 'lezen') en vandaar dat ik vermoed dat dit een perfecte oplossing zou zijn.

    [b]A question that sometimes drives me hazy: am I or are the others crazy?[/b]
      FOK!-Schrikkelbaas zaterdag 19 april 2008 @ 20:05:28 #78
    1972 Swetsenegger
    Egocentrische Narcist
    pi_58164510
    Hmz, eenvoudig wordt het in ieder geval niet.
      FOK!-Schrikkelbaas zaterdag 19 april 2008 @ 20:07:35 #79
    1972 Swetsenegger
    Egocentrische Narcist
    pi_58164545
    quote:
    Op zaterdag 19 april 2008 15:11 schreef fate het volgende:
    Ik heb 2 vragen maar ben niet eens zeker of het wel onder php zelf valt.

    Op een website die ik gemaakt heb gebruikte ik tot nu toe altijd om bijvoorbeeld naar een artikel te gaan een link zoals deze: www.blabla.com/blabla.php?id=965
    Op fora zoals hier bijvoorbeeld op fok worden echter links gebruikt zoals bijvoorbeeld: forum.fok.nl/topic/1145006.
    Ik vraag me echter af hoe je links maakt zoals de laatste? Dat je dus geen gebruik maakt van ?id=965 maar dat je gewoon /1145006 hebt. Ik zou namelijk de 2e manier willen gebruiken maar heb geen idee hoe je dat moet doen.
    M'n vraag is nogal onduidelijk maar hopelijk begrijp je wat ik bedoel .
    Dat worden user friendly urls genoemd. Met apache (webserver software) is dat vrij eenvoudig te realiseren dmv een zogenaamde mod rewrite.
    quote:
    En dan nog een vraagje dat ook over links gaat:
    (Als voorbeeld neem ik nu een artikel vanop de frontpage)
    Op de FP staat momenteel een artikel dat 'Operatie onder hypnose in plaats van verdoving' noemt. Als je naar de link kijkt van deze pagina zie je dat de pagina -Operatie-onder-hypnose-in-plaats-van-verdoving.html heet. M'n vraag is nu hoe je ervoor zorgt dat een html pagina aangemaakt wordt (of hoe het ook juist werkt) met als naam de titel van je artikel? Het is veel praktischer om de titel in de link te hebben dan louter een id dat verwijst naar je database.

    Bedankt alvast!
    Mjah, als je via het cms de pagina opslaat schrijft je de url zo weg en dmv een stukje scripting zorg je dat het goed komt.
    pi_58165049
    quote:
    Op zaterdag 19 april 2008 20:05 schreef Swetsenegger het volgende:
    Hmz, eenvoudig wordt het in ieder geval niet.

    Dat zat er dik in

    Ik weet niet of het echt duidelijk is, zo zonder voorbeeld. Maandag zal ik sowieso de sheets uitpluizen op daadwerkelijke links.

    Ik vermoed dat het louter invullen van de velden niet zo'n probleem is (toch?). Maar dat is slechts een kopie van alle velden op de werkbladen. Er is dan wel een database, maar een hele platte.

    Als alle werkbladen op een bepaalde manier aan elkaar gekoppeld zijn, moet het herschrijven van deze koppeling toch relatief eenvoudig zijn? (ik kan me voorstellen dat ik het nu heel erg simplificeer) Dan kunnen de gegevens die in MySQL staan op dezelfde manier gekoppeld worden.

    De output is dan weer verhaal twee.....

    Mja.... inderdaad.... niet eenvoudig
    [b]A question that sometimes drives me hazy: am I or are the others crazy?[/b]
      zaterdag 19 april 2008 @ 20:42:38 #81
    67978 HenryHill
    Fake it 'till you make it
    pi_58165519
    quote:
    Op zaterdag 19 april 2008 19:59 schreef Five_Horizons het volgende:
    Stel: er is een Excel-bestand met verschillende werkbladen (ongeveer 15) met daarin alle klantgegevens. De verschillende werkbladen zijn met elkaar gelinkt.

    Zo is snel te zien welke producten de klanten hebben. (werkblad 1 -> NAWT-gegevens klant, werkblad 2 geeft product X aan en in dit werkblad staan dus alle verschillende producten X met de klantnummers. Werkblad 3 gaat over product Y, enz. enz.)

    Elk product heeft ook nog een bepaalde provisiestructuur. Product X bij producent A geeft 10% van de omzet, product X van producent B geeft 15% van de omzet. Enz. enz.

    Elk verkocht product wordt dagelijks toegevoegd en dus automatisch gelinkt aan de klant en alle andere gegevens van deze klant.
    <...>
    De uiteindelijke vraag is dan ook: is het mogelijk om deze Excel-sheet m.b.v. PHP in te lezen in MySQL, op een dusdanige manier dat alle koppelingen behouden blijven en er nog steeds dezelfde managementsrapportages uit te extraheren zijn?
    Sowiezo klinkt bovenstaand verhaal niet iets waar je Excel voor zou moeten gebruiken, een database is dan beter op z'n plaats.

    Dan: Ja, het is mogelijk om een Excel-bestand als een ODBC datasource te gebruiken, zodat je vanuit PHP (of MySQL) die data kunt benaderen, maar: deze methode is verre van stabiel en kent behoorlijk wat beperkingen.
    Ik zou deze methode afraden, en ervoor kiezen om de data uit Excel te exporteren naar bijvoorbeeld CSV, en deze in MySQL in te lezen.

    Houdt er rekening mee dat je de werkbladen niet 1 op 1 over wilt nemen als tabellen in je database, en dat je dus eerst een goed database-schema (= tabelstructuur) zult moeten hebben. Hiervoor zul je de data moeten herschikken zodat het correspondeert met de vorm zoals je het in de database wilt hebben. Dit kan je voor de export (dus in Excel) of na de import (als je de 'ruwe' data in tijdelijke tabellen hebt geladen) doen - ik zou je de eerste optie aanraden.

    Ook zullen de formules die je in je Excel-bestand hebt gedefinieerd verloren gaan tijdens de migratie. Hiervoor zul je een database-oplossing moeten verzinnen (stored procedures, of views met calculated fields, bijv.).

    En ik weet niet hoe jullie je management-rapportages nu maken, maar de kans is vrijwel 0% dat je deze 1 op 1 over kunt nemen als je de data in een database hebt zitten.

    't Wordt een flinke klus iig.
    So this is how liberty dies... with thunderous applause.
    Truth? What's so great about the truth? Try lying for a change, it's the currency of the world
      zaterdag 19 april 2008 @ 20:47:08 #82
    67978 HenryHill
    Fake it 'till you make it
    pi_58165622
    quote:
    Op zaterdag 19 april 2008 20:26 schreef Five_Horizons het volgende:
    Ik vermoed dat het louter invullen van de velden niet zo'n probleem is (toch?). Maar dat is slechts een kopie van alle velden op de werkbladen. Er is dan wel een database, maar een hele platte.

    Als alle werkbladen op een bepaalde manier aan elkaar gekoppeld zijn, moet het herschrijven van deze koppeling toch relatief eenvoudig zijn? (ik kan me voorstellen dat ik het nu heel erg simplificeer) Dan kunnen de gegevens die in MySQL staan op dezelfde manier gekoppeld worden.
    Nee en nee.

    Een database is heel wat anders als een Excel-werkblad. De data bestaat in beide gevallen in rijen en kolommen, maar daar houdt de vergelijking ook echt op. Zie bijv. deze link over hoe een database conceptueel opgezet moet worden.
    So this is how liberty dies... with thunderous applause.
    Truth? What's so great about the truth? Try lying for a change, it's the currency of the world
    pi_58165866
    quote:
    Op zaterdag 19 april 2008 20:47 schreef HenryHill het volgende:

    [..]

    Nee en nee.

    Een database is heel wat anders als een Excel-werkblad. De data bestaat in beide gevallen in rijen en kolommen, maar daar houdt de vergelijking ook echt op. Zie bijv. deze link over hoe een database conceptueel opgezet moet worden.
    Ik weet wat een database is. Het excel-bestand wordt daadwerkelijk als database gebruikt. Dat het geen database is, is wat anders. Toch is een eenvoudig Excel-bestand in te lezen in MySQL. De centrale vraag hier is dan ook of het in dit geval mogelijk is.

    Als dat blijkbaar niet zo is, dan is het niet zo.
    [b]A question that sometimes drives me hazy: am I or are the others crazy?[/b]
    pi_58165978
    quote:
    Op zaterdag 19 april 2008 15:11 schreef fate het volgende:
    En dan nog een vraagje dat ook over links gaat:
    (Als voorbeeld neem ik nu een artikel vanop de frontpage)
    Op de FP staat momenteel een artikel dat 'Operatie onder hypnose in plaats van verdoving' noemt. Als je naar de link kijkt van deze pagina zie je dat de pagina -Operatie-onder-hypnose-in-plaats-van-verdoving.html heet. M'n vraag is nu hoe je ervoor zorgt dat een html pagina aangemaakt wordt (of hoe het ook juist werkt) met als naam de titel van je artikel? Het is veel praktischer om de titel in de link te hebben dan louter een id dat verwijst naar je database.
    Simpel, het laatste stuk na de / wordt gewoon genegeerd (m.b.v. mod rewrite). Daar kan je dus invullen wat je maar wil.
    Wil iedereen die in telekinese gelooft nu mijn hand op steken?
    | Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
      zaterdag 19 april 2008 @ 21:04:02 #85
    67978 HenryHill
    Fake it 'till you make it
    pi_58166003
    quote:
    Op zaterdag 19 april 2008 20:58 schreef Five_Horizons het volgende:

    [..]

    Ik weet wat een database is. Het excel-bestand wordt daadwerkelijk als database gebruikt. Dat het geen database is, is wat anders.
    Wat bedoel je hier precies mee? Zijn de gegevens in dat Excel-bestand volledig gestructureerd, en stelt elke rij een apart element voor? Worden de gegevens programatisch toegevoegd en uitgelezen (bijv. via een ODBC koppeling die je Excel-bestand doet voorkomen als een database)?

    Disclaimer: ik wil niemand hier de les lezen, ik probeer zo efficient mogelijk een zo duidelijk mogelijk beeld van je probleem boven water te krijgen. Dat idee wil nog wel eens ondergesneeuwd raken in het spervuur van vragen en adviezen, dus vandaar dat ik het maar even expliciet vermeldt.

    [ Bericht 11% gewijzigd door HenryHill op 19-04-2008 21:16:24 ]
    So this is how liberty dies... with thunderous applause.
    Truth? What's so great about the truth? Try lying for a change, it's the currency of the world
    pi_58166023
    quote:
    Op zaterdag 19 april 2008 20:42 schreef HenryHill het volgende:

    [..]

    Sowiezo klinkt bovenstaand verhaal niet iets waar je Excel voor zou moeten gebruiken, een database is dan beter op z'n plaats.


    Daar is men van bewust en dat is ook de reden dat een programma is aangeschaft. Alleen: ik vraag me af of die aanschaf goed is geweest (het programma is verre van af, zo blijkt nu) Het duurt nu al maanden (wellicht zelfs jaren) om de database gereed te maken voor het excelbestand.
    quote:
    Dan: Ja, het is mogelijk om een Excel-bestand als een ODBC datasource te gebruiken, zodat je vanuit PHP (of MySQL) die data kunt benaderen, maar: deze methode is verre van stabiel en kent behoorlijk wat beperkingen.
    Ik zou deze methode afraden, en ervoor kiezen om de data uit Excel te exporteren naar bijvoorbeeld CSV, en deze in MySQL in te lezen.


    Die methode is mij inderdaad bekend. In de gevallen waar ik dat heb moeten gebruiken, was het een Excel-bestand met maar één enkel werkblad.
    quote:
    Houdt er rekening mee dat je de werkbladen niet 1 op 1 over wilt nemen als tabellen in je database, en dat je dus eerst een goed database-schema (= tabelstructuur) zult moeten hebben. Hiervoor zul je de data moeten herschikken zodat het correspondeert met de vorm zoals je het in de database wilt hebben. Dit kan je voor de export (dus in Excel) of na de import (als je de 'ruwe' data in tijdelijke tabellen hebt geladen) doen - ik zou je de eerste optie aanraden.


    Logisch. De werkbladen zelf zijn uiteraard niet de tabellen. Die staan zelf op de werkbladen, in dit geval. Ik moet mezelf nog meer inlezen in wat het Excel-bestand nu daadwerkelijk doet, misschien stel ik de vraag ook een week te vroeg
    quote:
    Ook zullen de formules die je in je Excel-bestand hebt gedefinieerd verloren gaan tijdens de migratie. Hiervoor zul je een database-oplossing moeten verzinnen (stored procedures, of views met calculated fields, bijv.).
    Ook dat klinkt logisch voor me.
    quote:
    En ik weet niet hoe jullie je management-rapportages nu maken, maar de kans is vrijwel 0% dat je deze 1 op 1 over kunt nemen als je de data in een database hebt zitten.

    't Wordt een flinke klus iig.
    Dat lukt inderdaad sowieso niet. Ik ga er van de week nog eens goed mee stoeien en mocht ik daar iets zinniger antwoorden kunnen geven, dan meld ik me weer.

    Bedankt voor de input, i.i.g.
    [b]A question that sometimes drives me hazy: am I or are the others crazy?[/b]
      FOK!-Schrikkelbaas zaterdag 19 april 2008 @ 21:07:07 #87
    1972 Swetsenegger
    Egocentrische Narcist
    pi_58166064
    quote:
    Op zaterdag 19 april 2008 20:58 schreef Five_Horizons het volgende:

    [..]

    Ik weet wat een database is. Het excel-bestand wordt daadwerkelijk als database gebruikt. Dat het geen database is, is wat anders. Toch is een eenvoudig Excel-bestand in te lezen in MySQL. De centrale vraag hier is dan ook of het in dit geval mogelijk is.

    Als dat blijkbaar niet zo is, dan is het niet zo.
    je zal sowieso de aparte werkbladen als losse bestanden moeten opslaan. Vervolgens is ze stuk voor stuk inlezen niet zo'n probleem, vervolgens zal je de key's moeten aanbrengen. Je moet je alleen wel afvragen of de database structuur optimaal is.

    De rapporten kan je vervolgens in PHP opbouwen.
      zaterdag 19 april 2008 @ 21:22:38 #88
    67978 HenryHill
    Fake it 'till you make it
    pi_58166399
    quote:
    Op zaterdag 19 april 2008 21:07 schreef Swetsenegger het volgende:

    [..]

    je zal sowieso de aparte werkbladen als losse bestanden moeten opslaan. Vervolgens is ze stuk voor stuk inlezen niet zo'n probleem, vervolgens zal je de key's moeten aanbrengen. Je moet je alleen wel afvragen of de database structuur optimaal is.

    De rapporten kan je vervolgens in PHP opbouwen.
    PHP zou kunnen, maar wat je ook zou kunnen overwegen is een aparte reporting tool te gebruiken zoals Crystal Reports of Microsoft Reporting Services. Van de laatste weet ik iig dat deze in theorie ook overweg kan met andere RDBMSen dan MS SQL, maar in hoeverre dat in de praktijk ook echt praktisch is, durf ik niet te zeggen.

    Enne, een Excel sheet met grafiekjes e.d., die zijn data uit de database haalt, dat is natuurlijk ook een mogelijkheid.
    So this is how liberty dies... with thunderous applause.
    Truth? What's so great about the truth? Try lying for a change, it's the currency of the world
      zaterdag 19 april 2008 @ 22:47:39 #89
    37634 wobbel
    Da WoBBeL King
    pi_58168286
    Ik had net m'n PHPMyAdmin op Afrikaans staan per ongeluk

    "Jou SQL-navraag is suksesvol uitgevoer"
    "Beloer data"
    "Kies asb. 'n databasis"

    pi_58187805
    quote:
    Op zaterdag 19 april 2008 20:07 schreef Swetsenegger het volgende:

    [..]

    Dat worden user friendly urls genoemd. Met apache (webserver software) is dat vrij eenvoudig te realiseren dmv een zogenaamde mod rewrite.
    [..]

    Mjah, als je via het cms de pagina opslaat schrijft je de url zo weg en dmv een stukje scripting zorg je dat het goed komt.
    Dat eerste ga ik even moeten nakijken hoe ik het juist moet doen. Dat tweede is eigelijk logisch, dom dat ik daar niet op kwam hoe je dat kan maken .
    Bedankt!
    pi_58195726
    quote:
    Op zaterdag 19 april 2008 22:47 schreef wobbel het volgende:
    Ik had net m'n PHPMyAdmin op Afrikaans staan per ongeluk

    "Jou SQL-navraag is suksesvol uitgevoer"
    "Beloer data"
    "Kies asb. 'n databasis"

    Leuk he dat afrikaans... best leuk om te lezen (engels/ oud nederlands door elkaar )
    The people who lost my respect will never get a capital letter for their name again.
    Like trump...
      maandag 21 april 2008 @ 15:30:02 #92
    187069 slacker_nl
    Sicko pur sang
    pi_58204130
    Excel is om te zetten naar csv, csv is zo in een DB te importeren, easy does it.
    In theory there is no difference between theory and practice. In practice there is.
      maandag 21 april 2008 @ 16:02:52 #93
    62215 qu63
    ..de tijd drinkt..
    pi_58204734
    quote:
    Op zaterdag 19 april 2008 11:18 schreef qu63 het volgende:
    Ik weet dat je met PHP-auth je website kan 'beveiligen' (aub geen discussie of het wel veilig genoeg is, daar gaat het me nu niet om ), maar kan je met PHP ook de username en password doorgeven? Zodat je die prompt niet krijgt..
    (n)iemand?
    It's Time To Shine
    [i]What would life be like without rhethorical questions?[/i]
      maandag 21 april 2008 @ 17:07:45 #94
    182538 jusdOrange
    Limoentjesfr3sh
    pi_58205890
    Verduidelijk je vraag eens?
      maandag 21 april 2008 @ 17:25:44 #95
    62215 qu63
    ..de tijd drinkt..
    pi_58206182
    quote:
    Op maandag 21 april 2008 17:07 schreef jusdOrange het volgende:
    Verduidelijk je vraag eens?
    http://nl2.php.net/manual/en/features.http-auth.php

    daarme kan je dingen instellen zoals
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    <?php
    /* Check for values in $PHP_AUTH_USER and $PHP_AUTH_PW */

    if ((!isset($PHP_AUTH_USER)) || (!isset($PHP_AUTH_PW))) {

        
    /* No values: send headers causing dialog box to appear */
        
    header('WWW-Authenticate: Basic realm="My Private Stuff"');
        
    header('HTTP/1.0 401 Unauthorized');
        echo 
    'Authorization Required.';
        exit;

    } else if ((isset(
    $PHP_AUTH_USER)) && (isset($PHP_AUTH_PW))){

        
    /* Values contain some values, so check to see if they're correct */

        
    if (($PHP_AUTH_USER != "validname") || ($PHP_AUTH_PW != "goodpassword")) {
           
    /* If either the username entered is incorrect, or the password entered is incorrect, send the headers causing dialog box to appear */
           
    header('WWW-Authenticate: Basic realm="My Private Stuff"');
           
    header('HTTP/1.0 401 Unauthorized');
           echo 
    'Authorization Required.';
           exit;
        } else if ((
    $PHP_AUTH_USER == "validname") || ($PHP_AUTH_PW == "goodpassword")) {
           
    /* if both values are correct, print success message */
           
    echo "<P>You're authorized!</p>";
        }

    ?>


    nu wil ik alleen een pagina, die niet van mijzelf is, includen in een pagina zodat ik niet steeds username en ww in hoef te vullen
    It's Time To Shine
    [i]What would life be like without rhethorical questions?[/i]
    pi_58219297
    Het ligt eraan hoe de pagina zijn authenticatie regelt. Als dat door middel van een form gebeurd, dan zul je de inhoud van dat form moeten versturen en een cookie accepteren voordat je de bewuste pagina kunt downloaden.

    Als het door middel van de webserver-authenticatie gebeurd (dus met een popup waar je gebruikersnaam/wachtwoord in moet vullen) dan kun je de pagina simpelweg opvragen door alle gegevens in de URL mee te geven: http://username:password@webserver:port/dir/page.html
    Don't hurry, be crappy!
      dinsdag 22 april 2008 @ 09:27:58 #97
    62215 qu63
    ..de tijd drinkt..
    pi_58220355
    quote:
    Op dinsdag 22 april 2008 08:11 schreef RiDo78 het volgende:
    Het ligt eraan hoe de pagina zijn authenticatie regelt. Als dat door middel van een form gebeurd, dan zul je de inhoud van dat form moeten versturen en een cookie accepteren voordat je de bewuste pagina kunt downloaden.
    zo is het dus niet, wel zoals je hieronder beschrijft
    quote:
    Als het door middel van de webserver-authenticatie gebeurd (dus met een popup waar je gebruikersnaam/wachtwoord in moet vullen) dan kun je de pagina simpelweg opvragen door alle gegevens in de URL mee te geven: http://username:password@webserver:port/dir/page.html
    en dat werkt dus helaas niet.
    It's Time To Shine
    [i]What would life be like without rhethorical questions?[/i]
    pi_58220998
    quote:
    Op dinsdag 22 april 2008 09:27 schreef qu63 het volgende:
    en dat werkt dus helaas niet.
    Bij gebrek aan PM, om welke website gaat het?
    Don't hurry, be crappy!
      dinsdag 22 april 2008 @ 10:51:02 #99
    62215 qu63
    ..de tijd drinkt..
    pi_58221896
    quote:
    Op dinsdag 22 april 2008 10:03 schreef RiDo78 het volgende:

    [..]

    Bij gebrek aan PM, om welke website gaat het?
    voordat ik het vertel, wil ik wel weten waarvoor je het wilt weten
    username en password krijg je sowieso niet
    It's Time To Shine
    [i]What would life be like without rhethorical questions?[/i]
    pi_58245808
    Username en password heb ik niet nodig, ik wil gewoon even kijken hoe die authorisatie onderwater geregeld is, om te voorkomen dat we langs elkaar heen praten.
    Don't hurry, be crappy!
      woensdag 23 april 2008 @ 10:24:34 #101
    62215 qu63
    ..de tijd drinkt..
    pi_58247647
    quote:
    Op woensdag 23 april 2008 09:02 schreef RiDo78 het volgende:
    Username en password heb ik niet nodig, ik wil gewoon even kijken hoe die authorisatie onderwater geregeld is, om te voorkomen dat we langs elkaar heen praten.
    pm
    It's Time To Shine
    [i]What would life be like without rhethorical questions?[/i]
    pi_58247704
    quote:
    Op maandag 21 april 2008 17:25 schreef qu63 het volgende:

    nu wil ik alleen een pagina, die niet van mijzelf is, includen in een pagina zodat ik niet steeds username en ww in hoef te vullen
    Je kunt een socket openen. Dan stuur je zelf de headers en leest daarna de response uit.
    Wil iedereen die in telekinese gelooft nu mijn hand op steken?
    | Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
      woensdag 23 april 2008 @ 10:34:43 #103
    62215 qu63
    ..de tijd drinkt..
    pi_58247875
    quote:
    Op woensdag 23 april 2008 10:27 schreef SuperRembo het volgende:

    [..]

    Je kunt een socket openen. Dan stuur je zelf de headers en leest daarna de response uit.
    en hoe doen we dat?
    It's Time To Shine
    [i]What would life be like without rhethorical questions?[/i]
    pi_58251984
    quote:
    Op woensdag 23 april 2008 10:34 schreef qu63 het volgende:
    [..]
    en hoe doen we dat?
    Daartoe lezen we de f... manual
    Wil iedereen die in telekinese gelooft nu mijn hand op steken?
    | Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
      woensdag 23 april 2008 @ 13:46:02 #105
    62215 qu63
    ..de tijd drinkt..
    pi_58252685
    quote:
    Op woensdag 23 april 2008 13:13 schreef SuperRembo het volgende:

    [..]

    Daartoe lezen we de f... manual :P
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    <?php
    $fp 
    fsockopen("server.busbroker.nl"80$errno$errstr30);
    if (!
    $fp) {
        echo 
    "$errstr ($errno)<br />\n";
    } else {
        
    $out "GET / HTTP/1.1\r\n";
        
    $out .= "Host: www.example.com\r\n";
        
    $out .= "Connection: Close\r\n\r\n";

        
    fwrite($fp$out);
        while (!
    feof($fp)) {
            echo 
    fgets($fp128);
        }
        
    fclose($fp);
    }
    ?>

    response:
    HTTP/1.1 401 Unauthorized Content-Length: 1710 Content-Type: text/html Server: Microsoft-IIS/6.0 WWW-Authenticate: Negotiate WWW-Authenticate: NTLM X-Powered-By: ASP.NET Date: Wed, 23 Apr 2008 11:45:03 GMT Connection: close

    U bent niet gemachtigd om deze pagina te bekijken
    U bent niet gemachtigd om deze map of pagina te bekijken met de referenties die u hebt opgegeven, omdat met de webbrowser een koptekstveld voor WWW-verificatie wordt verzonden dat niet kan worden geaccepteerd door de webserver.

    etc.
    It's Time To Shine
    [i]What would life be like without rhethorical questions?[/i]
    pi_58252915
    Aii... NTLM authenticatie... dat kan nog rottig worden. Hopen dat de server ook Basic wil slikken...
    maar voeg deze eens toe:
    1
    2
    $credentials = "username:password";
    $out.= "Authorization: Basic " . base64_encode($credentials)
    Don't hurry, be crappy!
      woensdag 23 april 2008 @ 14:01:04 #107
    62215 qu63
    ..de tijd drinkt..
    pi_58253016
    quote:
    Op woensdag 23 april 2008 13:56 schreef RiDo78 het volgende:
    Aii... NTLM authenticatie... dat kan nog rottig worden. Hopen dat de server ook Basic wil slikken...
    maar voeg deze eens toe:
    [ code verwijderd ]
    nope.
    It's Time To Shine
    [i]What would life be like without rhethorical questions?[/i]
    pi_58253054
    tvp
    pi_58253104
    Het probleem wordt hier beschreven, maar ik heb het niet getest...

    http://blog.thinkphp.de/a(...)ources-with-PHP.html
    Don't hurry, be crappy!
      woensdag 23 april 2008 @ 14:39:08 #110
    62215 qu63
    ..de tijd drinkt..
    pi_58253938
    quote:
    Op woensdag 23 april 2008 14:05 schreef RiDo78 het volgende:
    Het probleem wordt hier beschreven, maar ik heb het niet getest...

    http://blog.thinkphp.de/a(...)ources-with-PHP.html
    ik moet dan eerst nog een NTLM-Proxy opzetten, heb er wel een gevonden, maar die werkt met Python, en ik heb geen diee of mn webhost het ondersteund
    It's Time To Shine
    [i]What would life be like without rhethorical questions?[/i]
    pi_58255603
    Ok, dan is 't toch iets ingewikkelder dan ik in eerste instantie veronderstelde
    Wil iedereen die in telekinese gelooft nu mijn hand op steken?
    | Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
      woensdag 23 april 2008 @ 15:52:18 #112
    63192 ursel
    "Het Is Hier Fantastisch!
    pi_58255926
    Voor het inlezen van een file per lijn gebruiken we de preg_match functie:

    $aData = preg_split("/\r\n/", $fileData['content']);

    Alleen nu krijgen we ook files binnen welke opeens een \n als reguliere expressie moeten hebben.
    Weet iemand hoe we de preg_match het beste op kunnen stellen dat we ongeacht het type "new line" we elke lijn in de array kunnen stouwen?
      woensdag 23 april 2008 @ 16:04:52 #113
    85514 ralfie
    !Yvan eht nioj
    pi_58256273
    quote:
    Op woensdag 23 april 2008 15:52 schreef ursel het volgende:
    Voor het inlezen van een file per lijn gebruiken we de preg_match functie:

    $aData = preg_split("/\r\n/", $fileData['content']);

    Alleen nu krijgen we ook files binnen welke opeens een \n als reguliere expressie moeten hebben.
    Weet iemand hoe we de preg_match het beste op kunnen stellen dat we ongeacht het type "new line" we elke lijn in de array kunnen stouwen?
    gwoon $array_met_elke_regel_op_een_rij = file ( "C:\bestand_met_meerdere_regels.ext");
      woensdag 23 april 2008 @ 16:10:27 #114
    187069 slacker_nl
    Sicko pur sang
    pi_58256403
    http://www.tizag.com/phpT/fileopen.php

    $ourFileName = "testFile.txt";
    $fh = fopen($ourFileName, 'X') or die("Can't open file");
    fclose($fh);

    Weet niet of je over de filehandle kan loopen, zodat je de data kan inlezen..
    In theory there is no difference between theory and practice. In practice there is.
      woensdag 23 april 2008 @ 16:21:17 #115
    63192 ursel
    "Het Is Hier Fantastisch!
    pi_58256646
    quote:
    Op woensdag 23 april 2008 16:04 schreef ralfie het volgende:

    [..]

    gwoon $array_met_elke_regel_op_een_rij = file ( "C:\bestand_met_meerdere_regels.ext");
    Soms zijn dingen makkerlijker dan je wel eens wil denken..
    Deed het in 2 stappen altijd, get_content en daarna uitsplitsen.. Tot ik er nu dus opeens een file had met een andere end line..

    Werkt nog steeds netjes.. Tnx..
      woensdag 23 april 2008 @ 23:40:53 #116
    62215 qu63
    ..de tijd drinkt..
    pi_58268136
    quote:
    Op woensdag 23 april 2008 15:40 schreef SuperRembo het volgende:
    Ok, dan is 't toch iets ingewikkelder dan ik in eerste instantie veronderstelde
    Ik dacht er ook heel simpel over, maar helaas
    It's Time To Shine
    [i]What would life be like without rhethorical questions?[/i]
      donderdag 24 april 2008 @ 10:56:25 #117
    45071 nlboy
    aka Kasesouffle
    pi_58273823
    Ik heb denk ik een hele simpele vraag, maar ik kom er niet uit.

    Het volgende wil ik graag hebben:
    Als ik in het adresbalk test.php?p=nh in typ wil ik als echo Noord-Holland hebben.
    Wanneer ik test.php?p=nb invoer wil ik als echo Noord-Brabant hebben.
    Kortom elke provincies wil ik zo benaderen en dan als echo te tekst van de provincie.

    Ik heb al iets zitten maken, maar helaas lukt het me niet om de goede resultaat te krijgen. Het volgende heb ik:

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

    if ($p="nh")
         echo "Noord-Holland"; 

    elseif ($p="nb")
       echo "Noord-Branbant";

    elseif ($p="zh")
       echo "Zuid-Holland";

    else
      echo "Verkeerde invoer, probeer het opnieuw!";
       
    ?>

    Ik krijg alleen maar Noord-Holland te zien i.pv. bijvoorbeeld Noord-Brabant of ik krijg geen foutmelding wanneer ik niks invul. Wat doe ik fout? Alvast bedankt!
      donderdag 24 april 2008 @ 11:01:33 #118
    46383 Tiemie
    sowieso wel!
    pi_58273908
    Je geeft $p de waarde "nh"

    if($p = 'h') moet zijn if($ == 'h')

    (geldt overigens voor elke regel )

    zie http://nl2.php.net/manual/en/language.operators.comparison.php
      donderdag 24 april 2008 @ 11:03:38 #119
    187069 slacker_nl
    Sicko pur sang
    pi_58273956
    quote:
    Op donderdag 24 april 2008 10:56 schreef nlboy het volgende:
    Ik heb denk ik een hele simpele vraag, maar ik kom er niet uit.

    Het volgende wil ik graag hebben:
    Als ik in het adresbalk test.php?p=nh in typ wil ik als echo Noord-Holland hebben.
    Wanneer ik test.php?p=nb invoer wil ik als echo Noord-Brabant hebben.
    Kortom elke provincies wil ik zo benaderen en dan als echo te tekst van de provincie.

    Ik heb al iets zitten maken, maar helaas lukt het me niet om de goede resultaat te krijgen. Het volgende heb ik:
    [ code verwijderd ]

    Ik krijg alleen maar Noord-Holland te zien i.pv. bijvoorbeeld Noord-Brabant of ik krijg geen foutmelding wanneer ik niks invul. Wat doe ik fout? Alvast bedankt!

    Maak een hash:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    $plaatsnamen = array (
    nh => "Noord-Holland", 
    nb => "Noord-Brabant",
    );

    # Dan kan je heel makkelijk die conversie doen:

    $input = 'nh';
    if (array_key_exists( $input, $plaatnamen)) {
         printf("De plaatsnaam die hoort bij %s is %s\n", $input, $plaatsnamen[$input]);
    } else {
         printf("Kan geen plaatsnaam vinden voor %s\n", $input);
    }


    [ Bericht 2% gewijzigd door slacker_nl op 25-04-2008 10:56:33 ]
    In theory there is no difference between theory and practice. In practice there is.
      donderdag 24 april 2008 @ 11:09:40 #120
    45071 nlboy
    aka Kasesouffle
    pi_58274086
    Bedankt allebei! Ik ga het proberen.
    pi_58284094
    Even kort vraagje: hoe kun je dmv php checken of een site online is? Dus even proberen om een connectie te maken, zo niet: mailtje sturen. Dit wil ik namelijk graag in een cron job hebben (uiteraard op andere host)

    Opgelost: file() doet wat ik wil

    [ Bericht 18% gewijzigd door Piles op 24-04-2008 21:01:07 ]
      donderdag 24 april 2008 @ 22:50:33 #122
    37634 wobbel
    Da WoBBeL King
    pi_58290138
    Hoe kan ik zelf zoiets maken als dit?

    http://www.google.com/webhp?complete=1&hl=en&btnG=Google+Search

    Dat ie dus automatisch aanvult met gegevens uit de database? Dat het met AJAX werkt snap ik wel, maar hoe doe ik dat precies? is er al zoiets kant-en-klaar wat ik om kan bouwen zeg maar?
      donderdag 24 april 2008 @ 22:53:12 #123
    62215 qu63
    ..de tijd drinkt..
    pi_58290207
    quote:
    Op donderdag 24 april 2008 22:50 schreef wobbel het volgende:
    Hoe kan ik zelf zoiets maken als dit?

    http://www.google.com/webhp?complete=1&hl=en&btnG=Google+Search

    Dat ie dus automatisch aanvult met gegevens uit de database? Dat het met AJAX werkt snap ik wel, maar hoe doe ik dat precies? is er al zoiets kant-en-klaar wat ik om kan bouwen zeg maar?
    http://www.dynamicajax.com/fr/AJAX_Suggest_Tutorial-.html

    http://www.google.com/search?complete=1&hl=en&q=ajax+search+suggestion&btnG=Google+Search&aq=0&oq=AJAX+sea
    It's Time To Shine
    [i]What would life be like without rhethorical questions?[/i]
    pi_58290223
    Met een stukje Javascript elke keer als er een toets ingedrukt wordt een request naar een php-pagina sturen. Die php haalt het dan uit de db, en stuurt het naar je javascript terug
    Ik ben er zelf geen ster in, maar heb het geleerd met http://www.w3schools.com/ajax/default.asp
    pi_58290426
    Ja dat is er, er zijn meerdere kant en klare oplossingen. Ik ben zelf een redelijke fan van de Ext JS library, check dat eens uit zou ik zeggen. Voorbeelden te zien op: http://extjs.com/deploy/dev/examples/form/combos.html en http://extjs.com/deploy/dev/examples/form/forum-search.html
      donderdag 24 april 2008 @ 23:16:20 #126
    37634 wobbel
    Da WoBBeL King
      vrijdag 25 april 2008 @ 10:25:29 #127
    53731 Flipper01
    Addicted Dolphin
    pi_58296914
    Ik wil een archief maken van alle nieuwsberichten geordend per maand. Ik heb nu in MySQL een kolom datum waarin de datum als DATETIME wordt weergegeven. Ik wil nu graag het volgende resultaat bereiken:
    - 2008
    januari (2)
    april (1)
    mei (8)
    .....

    Hoe kan ik dit voor elkaar krijgen?
    I don't shine if you don't shine
      vrijdag 25 april 2008 @ 10:28:50 #128
    107951 JortK
    Immer kwaliteitsposts
    pi_58296996
    quote:
    Op vrijdag 25 april 2008 10:25 schreef Flipper01 het volgende:
    Ik wil een archief maken van alle nieuwsberichten geordend per maand. Ik heb nu in MySQL een kolom datum waarin de datum als DATETIME wordt weergegeven. Ik wil nu graag het volgende resultaat bereiken:
    - 2008
    januari (2)
    april (1)
    mei (8)
    .....

    Hoe kan ik dit voor elkaar krijgen?
    Even snel
    1
    2
    3
    SELECT MONTH(datumkolom) AS month, COUNT(MONTH(datumkolom) ) AS aantal
    FROM posts
    GROUP BY MONTH(datumkolom)


    [ Bericht 10% gewijzigd door JortK op 25-04-2008 10:41:11 (Verkeerde syntax) ]
      vrijdag 25 april 2008 @ 10:38:54 #129
    53731 Flipper01
    Addicted Dolphin
    pi_58297222
    Waarvoor dient DATEPART en kan ik dit ook op een linux server gebruiken?
    I don't shine if you don't shine
      vrijdag 25 april 2008 @ 10:41:54 #130
    107951 JortK
    Immer kwaliteitsposts
    pi_58297290
    quote:
    Op vrijdag 25 april 2008 10:38 schreef Flipper01 het volgende:
    Waarvoor dient DATEPART en kan ik dit ook op een linux server gebruiken?
    Ik heb hem wat aangepast, zie deze link die je verder kan helpen

    En op wat voor server maakt niet uit natuurlijk
    pi_58301246
    Hoi,

    ik ondervind een merkwaardig probleem. Ik heb een datase backup scriptje welke iedere dag uitgevoerd wordt. Het verstuurt een dbase dump per email. Dit werkt perfect op een aantal domeinen die ik heb.
    Het werkt net niet op een ander domein. Het verschil is de hostingprovider. De niet werkende staan bij een andere provider gehost.

    Het meest vreemde is: het script verstuurt de dump als attachment. Onder windows, in Outlook Express wordt de bijlage niet herkent. Ik heb het over de "foute" server, bij de andere domeinen werkt het weer wel.
    Als ik de emails ontvang op mijn linux laptop onder Kmail, zie ik de bijlage van de dumps verstuurt door de "foute" server wel! Het verschil is dus de combinatie van mailclient en hostingprovider...

    Ik heb werkelijk geen idee waar ik het zoeken moet. De headers zijn allen hetzelfde, de emails worden verstuurd met attachment, ook dit werkt correct (denk ik, stiekem ook niet)
    Het verschil openbaart zich dus bij het ontvangen van de emails met of Outlook Express of Kmail onder linux.
    Onder Outlook Express zie ik geen bijlage, maar staat de bijlage (gecodeerd???) in de tekst. Onder Kmail is het een keurig attachment.

    Onderstaand het scriptje Komt overigens van phphulp.

    Wie kan me vertellen waar ik de fout zoeken moet? Wat zou verantwoordelijk kunnen zijn voor het verschil in outlook express en kmail, in combinatie met een andere serversetup?
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    <?
    #create a sql backup and send it to your e-mail address
    //define settings
    //database host
    DEFINE('dbhost','localhost');
    //database name
    DEFINE('dbnaam','dbnaam');
    //database user
    DEFINE('dbuser','dbuser');
    //database passwordt
    DEFINE('dbpass','dbpass');
    //domeinnaam
    DEFINE('domein','domein.nl');
    //doel
    DEFINE('email','backup@domein.nl');

    //connect with database
    $link = mysql_connect(dbhost,dbuser,dbpass) or die('No datbase conection could be establised');
    mysql_select_db(dbnaam,$link) or die('No datbase selected');

    //query to recive table names
    $query = mysql_query('SHOW TABLE STATUS') or die(mysql_error());
    $sql_backup = '';

    //whileloop to loop trough every table
    while($row = mysql_fetch_assoc($query))
    {
        //show sql query to rebuild the query
        $sql = 'SHOW CREATE TABLE '.$row['Name'].'';
        //exucte error or give a error
        $query2 = mysql_query($sql) or die(mysql_error());

        //create sql
        $sql_backup.="\r\n#Create table ".$row['Name']."\r\n\r\n";
        $out = mysql_fetch_assoc($query2);

        $sql_backup.=$out['Create Table'].";\r\n\r\n";
        $sql_backup.="#Dump data\r\n\r\n";

        //SQL code to select everything for table
        $sql = 'SELECT * FROM '.$row['Name'];
        $out = mysql_query($sql);
        $sql_code = '';

        //loop trough the colloms
        while($code = mysql_fetch_array($out,MYSQL_ASSOC))
        {
            $sql_code .= "INSERT INTO ".$row['Name']." SET ";

            foreach($code as $insert => $value)
            {
                $sql_code.=$insert ."='".addslashes($value)."',";
            }
            $sql_code = substr($sql_code, 0, -1);
            $sql_code.= ";\r\n";
        }
        $sql_backup.= $sql_code;
    }

    //generade a unique id
    $unique = md5(uniqid(time()));

    //message
    $message = "Backup procedure van database: ".dbnaam." is met succes verlopen. U vind in de bijlage een backup van de inhoud gemaakt op. ".date('d-m-Y H:i:s')."\r\n Autobot";

    //maak headers aan
    //form header
    $headers = "From: Autobot <noreply@".domein.">\r\n";
    //terug sturen naar een niet bestaand mail adress (noreply@domein.nl)
    $headers .= "Reply-To: Autobot <noreply@".domein.">\r\n";
    //vertel dat het een mine versie is
    $headers .= "MIME-Version: 1.0\r\n";
    //email bestaat uit meerdere  bestanden dus vertel wat de scheidings teken is en dat het een multipart is
    $headers .= "Content-Type: multipart/mixed; boundary=\"".$unique."\"\r\n";
    //we zenden een attachment mee
    $headers .= "Content-Disposition:  attachment\r\n";

    //generenen een body. Dit is een multi part gezeik
    $body.= "This is a multi-part message in MIME format.\r\n";
    $body.= "\r\n";
    //boundary
    $body.= "--".$unique."\r\n";
    //content type + charater set (iso in dit geval)
    $body.= "Content-Type: text/plain; charset=iso-8859-1\r\n";
    //codering (7 bit)
    $body.= "Content-Transfer-Encoding: 7bit\r\n";
    $body.= "\r\n";
    //het bericht
    $body.= $message ."\r\n";
    //boundaty
    $body.= "--".$unique."\r\n";
    //content type + naam bestand (database.sql)
    $body .= "Content-Type: application/octet-stream; name=database.sql\r\n";
    //codering
    $body .= "Content-Transfer-Encoding: base64\r\n";
    //als bijlage toegevoegd
    $body.= "Content-disposition: attachment\r\n";
    $body .= "\n";
    //de inhoud van het bestand
    $body .= chunk_split(base64_encode($sql_backup)) . "\r\n";
    //zet alles op email!
    //hier kan wat tijdsverschil in zitten!
    mail(email,'Mysql backup '.date('d-m-Y H:i:s'),$body,$headers);
    ?>
      vrijdag 25 april 2008 @ 18:18:35 #132
    37634 wobbel
    Da WoBBeL King
    pi_58307402
    Ik ben weer eens aan het stoeien met wat JOINS :P en het lukt niet :(

    Ik heb deze query:

    1
    2
    3
    4
    5
    SELECT * FROM SHOP_Products 
    JOIN SHOP_Products_Lang ON SHOP_Products_Lang.ProductId = SHOP_Products.IdProduct 
    JOIN SHOP_Afbeeldingen ON SHOP_Afbeeldingen.ProductId = SHOP_Products.IdProduct 
    WHERE SHOP_Products.SubcategoryId = '1' 
    AND SHOP_Products_Lang.LanguageId = '1'


    Ik heb de tabel Products, Products_Lang en de tabel Afbeeldingen.

    Ik wil nu alle producten met SubcategoryId = 1 weergeven, en daarbij ook alle data uit Products_Lang en Afbeeldingen die hetzelfde product ID hebben.

    Maar ik krijg 0 rows terug :'( en er zijn 5 records met SubcategoryId = '1' en met LanguageId = '1'
    pi_58310832
    In principe is de syntax "INNER JOIN", niet "JOIN". Weet niet of mysql daar moeilijk over doet.

    Weet je zeker dat er in alle 3 de tabellen de juiste gegevens staan?
      zaterdag 26 april 2008 @ 12:18:03 #134
    53731 Flipper01
    Addicted Dolphin
    pi_58318392
    quote:
    Op vrijdag 25 april 2008 10:41 schreef JortK het volgende:
    Ik heb hem wat aangepast, zie deze link die je verder kan helpen

    En op wat voor server maakt niet uit natuurlijk
    Sorry voor m'n n00b vragen.. :$

    Maar ik ben eruit gekomen! Ik snapte niet helemaal hoe het werkte, maar ik heb nu de datum in datetime weergegeven en bij het uitlezen maak ik een aantal extra kolommen aan waarin ik de datum uitsplits:
    1
    2
    3
    <?php
    $query 
    "SELECT  *, DATE_FORMAT(datum, '%d') AS dag, DATE_FORMAT(datum, '%c') AS maand, DATE_FORMAT(datum, '%Y') AS jaar, DATE_FORMAT(datum, '%H:%i') AS tijd FROM weblog ORDER BY -datum LIMIT 0,8";
    ?>


    Daarnaast gebruik ik jouw aangepaste gegevens in een andee query
    THNX!

    [ Bericht 23% gewijzigd door Flipper01 op 26-04-2008 12:24:32 ]
    I don't shine if you don't shine
    pi_58318636
    quote:
    Op vrijdag 25 april 2008 22:02 schreef Arjan321 het volgende:
    In principe is de syntax "INNER JOIN", niet "JOIN". Weet niet of mysql daar moeilijk over doet.
    Daar doet MySQL niet moeilijk over.
      zaterdag 26 april 2008 @ 13:20:10 #136
    37634 wobbel
    Da WoBBeL King
    pi_58319331
    quote:
    Op vrijdag 25 april 2008 22:02 schreef Arjan321 het volgende:
    In principe is de syntax "INNER JOIN", niet "JOIN". Weet niet of mysql daar moeilijk over doet.

    Weet je zeker dat er in alle 3 de tabellen de juiste gegevens staan?
    Ja, ik heb in SHOP_Afbeeldingen 1 record met ProductId = 1
    In SHOP_Products zit ook 1 record met IdProduct = 1
    en SHOP_Products_Lang heeft ook 1 record met ProductId = 1

    alleen krijg ik 0 rows terug met mijn query
    pi_58319419
    quote:
    Op vrijdag 25 april 2008 18:18 schreef wobbel het volgende:
    Ik wil nu alle producten met SubcategoryId = 1 weergeven, en daarbij ook alle data uit Products_Lang en Afbeeldingen die hetzelfde product ID hebben.
    Probeer eens LEFT JOIN ipv gewoon JOIN.
      zaterdag 26 april 2008 @ 13:52:59 #138
    37634 wobbel
    Da WoBBeL King
    pi_58319820
    quote:
    Op zaterdag 26 april 2008 13:27 schreef Farenji het volgende:

    [..]

    Probeer eens LEFT JOIN ipv gewoon JOIN.
    De tabel SHOP_Afbeeldingen hoeft niet perse records te hebben met hetzelfde ProductID
    pi_58319983
    quote:
    Op zaterdag 26 april 2008 13:52 schreef wobbel het volgende:

    [..]

    De tabel SHOP_Afbeeldingen hoeft niet perse records te hebben met hetzelfde ProductID
    Ja, daarom juist! Daarom krijg je met een INNER JOIN geen resultaten!!
    pi_58324153
    quote:
    Op zaterdag 26 april 2008 14:03 schreef Farenji het volgende:

    [..]

    Ja, daarom juist! Daarom krijg je met een INNER JOIN geen resultaten!!
    Hehe
      zondag 27 april 2008 @ 11:35:26 #141
    53731 Flipper01
    Addicted Dolphin
    pi_58335733
    Hoe kan ik de huidige tijd als DateTime in een string zetten? Dit ivm het plaatsen in MySQL.
    Ik heb nu het volgende:
    1
    2
    3
    4
    <?php
     $datum 
    date_create('NOW');
    echo 
    $datum
    ?>

    Maar krijg een foutmelding..
    I don't shine if you don't shine
      zondag 27 april 2008 @ 11:39:15 #142
    107951 JortK
    Immer kwaliteitsposts
    pi_58335783
    quote:
    Op zondag 27 april 2008 11:35 schreef Flipper01 het volgende:
    Hoe kan ik de huidige tijd als DateTime in een string zetten? Dit ivm het plaatsen in MySQL.
    Ik heb nu het volgende:
    [ code verwijderd ]

    Maar krijg een foutmelding..
    Ooi van het datatype datetime gehoord in MySQL?
    pi_58335874
    De functie date_create geeft en DateTime object terug, dus geen string. Ik vind dit echt weer zo'n typische vage php implementatie, gaat ook wel lekker tegen alle verwachting en conventies in maar dat zijn we gewend van php.

    Als je gewoon een string wil hebben die in een mysql datetime past, dan zou ik het simpel doen met date:

    1
    2
    3
    <?php
    $datum 
    date("Y-m-d H:i:s");
    ?>


    Dat geeft dus iets terug als "2008-04-27 11:44:25".

    http://nl3.php.net/manual/en/function.date.php
      zondag 27 april 2008 @ 11:46:11 #144
    53731 Flipper01
    Addicted Dolphin
    pi_58335901
    quote:
    Op zondag 27 april 2008 11:39 schreef JortK het volgende:
    Ooi van het datatype datetime gehoord in MySQL?
    Hoe kan ik da huidige tijd hierin krijgen als ik m'n tabel op de volgende manier aanvul:
    1
    2
    3
    4
    5
    6
    7
    <?php
    $query 
    "INSERT INTO weblog_reactie 
    (weblogid, naam, email, website, tekst, ip, spam, datum) 
    VALUES 
    ('$formId', '$formNaam', '$formEmail', '$formWebsite', '$formTekst', '$_SERVER[REMOTE_ADDR]', 'spam', 'NOW')"
    ;
    mysql_query($query) or die (mysql_error()); 
    ?>
    I don't shine if you don't shine
      zondag 27 april 2008 @ 11:47:46 #145
    53731 Flipper01
    Addicted Dolphin
    pi_58335923
    quote:
    Op zondag 27 april 2008 11:44 schreef Farenji het volgende:
    De functie date_create geeft en DateTime object terug, dus geen string. Ik vind dit echt weer zo'n typische vage php implementatie, gaat ook wel lekker tegen alle verwachting en conventies in maar dat zijn we gewend van php.

    Als je gewoon een string wil hebben die in een mysql datetime past, dan zou ik het simpel doen met date:
    [ code verwijderd ]

    Dat geeft dus iets terug als "2008-04-27 11:44:25".

    http://nl3.php.net/manual/en/function.date.php
    Dit zocht ik!
    Thnx!
    I don't shine if you don't shine
    pi_58335949
    Het kan natuurlijk veel makkelijker bedenk ik me nu pas, dmv de MySQL functie NOW()

    1insert into tabel (veld1, datum) values ('blaat', NOW());
    pi_58346563
    Ik ben op dit moment bezig met het maken van een poll-systeem. Hierbij wil ik controleren of er al gestemd is vanaf het ip waarvandaan de poll bezocht wordt.

    Als ik vervolgens met een query wil kijken of het ip adres al voorkomt bij de betreffende poll krijg ik een foutmelding, namelijk:
    1queryRetreiveIpYou have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'AND ip = x.x.x.x' at line 1

    queryRetreiveIp = identificatie van de query
    x.x.x.x = ip adres


    Betreffende query:
    1
    2
    3
    4
    <?php
    $visitorIp 
    $_SERVER['REMOTE_ADDR'];
    $queryRetreiveIp mysql_query("SELECT * FROM result WHERE poll_id = $pollId AND ip = $visitorIp ") or die("queryRetreiveIp ".mysql_error());
    ?>


    Het ip komt in de database voor (is gevuld met test gegevens). Ik heb al geprobeerd te zoeken op de website van mysql.com naar een mogelijke oplossing maar ik word niks wijzer.
    Deze query heeft eerder wel gewerkt, waardoor hij nu niet meer werkt weet ik dus niet (ik kreeg deze fout niet eerder iig).
    pi_58346824
    Geen oplossing; maar wel belangrijk: zet alsjeplease niet zo variabelen in die query.. is vragen om sql-injectie.. ookal genereer je al de waarden zelf, gewoon even zo doen:
    1
    2
    3
    4
    <?php
    $visitorIp = $_SERVER['REMOTE_ADDR'];
    $queryRetreiveIp = mysql_query("SELECT * FROM result WHERE poll_id = '" . mysql_real_escape_string($pollId) . "' AND ip = "' . mysql_real_escape_string($visitorIp) . "' ") or die("queryRetreiveIp ".mysql_error());
    ?>

    ('" is ' gevolgd door ")

    Nog liever gebruik maken van prepared statements, maar die keuze is aan jezelf..
    pi_58351029
    Sowieso moet je de waarden tussen 'aanhalingstekentjes' zetten. Doe je dat niet, dan denkt MySQL dat het een kolom-naam is - en een IP-adres is uiteraard geen geldige naam voor een kolom...
    In het voorbeeldje van Interpidity is dit trouwens al verbeterd.
    pi_58351619
    quote:
    Op donderdag 24 april 2008 18:46 schreef Piles het volgende:
    Even kort vraagje: hoe kun je dmv php checken of een site online is? Dus even proberen om een connectie te maken, zo niet: mailtje sturen. Dit wil ik namelijk graag in een cron job hebben (uiteraard op andere host)

    Opgelost: file() doet wat ik wil
    Even een vraag die aansluit op hetvolgende:
    quote:
    A URL can be used as a filename with this function if the fopen wrappers have been enabled. See fopen() for more details on how to specify the filename and List of Supported Protocols/Wrappers for a list of supported URL protocols.
    Hoe vaak staan deze fopen_wrappers uit (bij bijvoorbeeld hosters)? Ik doel dan op allow_url_fopen aangezien je deze niet via ini_set() kan setten voor zover ik de documentatie lees.

    Ik vraag dit omdat ik een manier wilde hebben om wget the simuleren in php. Het is op 3 verschillende manier te doen (tenminste, ik heb het op 3 verschillende manieren geimplementeerd). Via copy() en file_get_contents(), maar netzoals file zijn deze afhankelijk van de allow_url_fopen parameter in de file php.ini. En dan om het zelf te doen door een socket te openen en zelf HTTP te gaan praten tegen de desbetreffende server..

    Als je alleen gebruikt maakt van file() in je code dan kan je nooit je scripts portable maken, aangezien file() niet altijd doet wat jij verwacht (het gaat croaken op het moment dat allow_url_fopen niet aanstaat.
    pi_58352503
    quote:
    Op maandag 28 april 2008 00:33 schreef Igen het volgende:
    Sowieso moet je de waarden tussen 'aanhalingstekentjes' zetten. Doe je dat niet, dan denkt MySQL dat het een kolom-naam is - en een IP-adres is uiteraard geen geldige naam voor een kolom...
    In het voorbeeldje van Interpidity is dit trouwens al verbeterd.
    Strings moeten tussen aanhalingstekens, getallen niet. Of nouja, MySQL maakt zich er niet zo druk om als je wel aanhalingstekens om getallen zet, maar het is netter om het niet te doen. En een IP-adres is geen getal maar een string, dus moet aanhalingstekens.
    pi_58357076
    Edit: ik had een pagina gemist
    Dit gaat over de allow_url_fopen() toestand:


    je kunt het natuurlijk ook via cURL doen ofzo
    hoevaak allow_url_fopen uitstaan zou ik niet weten...
    pi_58377513
    Ik heb een website met een deel dat alleen toegankelijk is voor geregistreerde gebruikers.
    Deze mogen bepaalde PDF bestanden downloaden.

    Ik heb het inmiddels redelijk voor elkaar gekregen. Enige minpunt is dat je als gebruiker de download per se moet opslaan. Als je op openen klikt, krijg je van Adobe een foutmelding: "There was an error opening this document. The file cannot be found".

    Ik ben er nu achter dat dit komt door het toevoegen van session_start() bovenaan mijn pagina.
    Dit is echter wel essentieel, anders kan ik niet controleren of de gebruiker is ingelogd. Ik heb geen oplossing voor dit probleem kunnen vinden: session_write_close werkt niet.

    Iemand die de oplossing weet?
      dinsdag 29 april 2008 @ 13:37:43 #154
    187069 slacker_nl
    Sicko pur sang
    pi_58379514
    Note: If you are using cookie-based sessions, you must call session_start() before anything is outputted to the browser.

    Gebruikt je cookie based sessions?
    In theory there is no difference between theory and practice. In practice there is.
      dinsdag 29 april 2008 @ 13:50:12 #155
    37634 wobbel
    Da WoBBeL King
    pi_58379764
    Oke, na wat geworstel heb ik aan de hand van dit topic de volgende query gekregen:

    1
    2
    3
    4
    5
    SELECT * FROM SHOP_Products 
    LEFT JOIN SHOP_Products_Lang ON SHOP_Products_Lang.ProductId = SHOP_Products.IdProduct 
    LEFT JOIN SHOP_Afbeeldingen ON SHOP_Afbeeldingen.ProductId = SHOP_Products.IdProduct 
    WHERE SHOP_Products.SubcategoryId = '1' 
    AND SHOP_Products_Lang.LanguageId = '1'


    Het probleem is nu alleen, dat als één artikel meerdere afbeeldingen heeft, het product ook meerdere keren erin komt te staan.

    Stel ik heb 3 producten, en 1tje heeft 2 plaatjes, eentje heeft 3 plaatjes en de ander heeft 5 plaatjes...dan krijg ik deze output

    Product 1
    Product 1
    Product 2
    Product 2
    Product 2
    Product 3
    Product 3
    Product 3
    Product 3
    Product 3

    Maar hij moet gewoon Product 1, Product 2 en Product 3 weergeven
      dinsdag 29 april 2008 @ 13:51:57 #156
    107951 JortK
    Immer kwaliteitsposts
    pi_58379786
    quote:
    Op dinsdag 29 april 2008 13:50 schreef wobbel het volgende:
    Oke, na wat geworstel heb ik aan de hand van dit topic de volgende query gekregen:
    [ code verwijderd ]

    Het probleem is nu alleen, dat als één artikel meerdere afbeeldingen heeft, het product ook meerdere keren erin komt te staan.

    Stel ik heb 3 producten, en 1tje heeft 2 plaatjes, eentje heeft 3 plaatjes en de ander heeft 5 plaatjes...dan krijg ik deze output

    Product 1
    Product 1
    Product 2
    Product 2
    Product 2
    Product 3
    Product 3
    Product 3
    Product 3
    Product 3

    Maar hij moet gewoon Product 1, Product 2 en Product 3 weergeven
    GROUP BY is your best friend
    pi_58380058
    quote:
    Op dinsdag 29 april 2008 13:37 schreef slacker_nl het volgende:
    Note: If you are using cookie-based sessions, you must call session_start() before anything is outputted to the browser.

    Gebruikt je cookie based sessions?
    Ik heb session_start() helemaal bovenaan staan.

    Het probleem is verholpen door:

    1
    2
    session_cache_limiter('private'); //in mijn geval public
    session_start();
    pi_58385726
    quote:
    Op dinsdag 29 april 2008 13:50 schreef wobbel het volgende:
    Oke, na wat geworstel heb ik aan de hand van dit topic de volgende query gekregen:
    [ code verwijderd ]

    Het probleem is nu alleen, dat als één artikel meerdere afbeeldingen heeft, het product ook meerdere keren erin komt te staan.

    Stel ik heb 3 producten, en 1tje heeft 2 plaatjes, eentje heeft 3 plaatjes en de ander heeft 5 plaatjes...dan krijg ik deze output
    [...]
    Maar hij moet gewoon Product 1, Product 2 en Product 3 weergeven
    Ligt er aan wat je wil laten zien. Als je bij elk product een wisselend aantal plaatjes wilt laten zien, dan zal je het in php moeten oplossen. Als je geen plaatjes wil laten zien, waarom join je dan tegen de afbeeldingen tabel? Als je per product 1 plaatje wil laten zien dan moet je de query aanpassen, maar hoe hangt er weer van af welk plaatje je wil laten zien.
    Wil iedereen die in telekinese gelooft nu mijn hand op steken?
    | Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
      FOK!-Schrikkelbaas woensdag 30 april 2008 @ 13:24:56 #159
    1972 Swetsenegger
    Egocentrische Narcist
    pi_58397560
    .htaccess probleempje

    1
    2
    3
    4
    RewriteEngine On
    RewriteCond %{HTTP_REFERER} !^http://(.+\.)?123swets\.com/ [NC]
    RewriteCond %{HTTP_REFERER} !^$
    RewriteRule .*\.(jpe?g|gif|bmp|png)$ /image/hotlink.gif [L]


    hotlinking wordt wel geblokkeerd, maar alternatieve image wordt niet getoont. Wat doe ik fout?
    pi_58398195
    quote:
    Op woensdag 30 april 2008 13:24 schreef Swetsenegger het volgende:
    .htaccess probleempje
    [ code verwijderd ]

    hotlinking wordt wel geblokkeerd, maar alternatieve image wordt niet getoont. Wat doe ik fout?
    Ik zou hoe dan ook eerst de referer checken op ^$ want en daarna pas je ^123swets.com$. Het is logischer om te checken of de referer bestaat en om dan te checken of het uit het 123swets.com domain komt. Maar dat heeft wellicht niks met je probleem te maken. Of misschien ook wel:

    Als ik www.swets123.com/image/hotlink.gif direct wil benaderen kom ik uit op de volgende URL:

    http://www.123swets.com/i(...)t/index/default/home
    quote:
    Firefox has detected that the server is redirecting the request for this address in a way that will never complete.
    Volgens mij komt dat door de [NC] en de volgorde van de checks. Als de referer leeg is moet ie de check skippen, maar omdat je eerst checked of het vanuit swets123.com komt en dan door de NC ervoor zorgt dat ie de originele URL weer gaat reprocesses en je dus zorgt voor een loop in je rewrites.

    -edit- Die NC heeft er niks mee te maken, even twee flags door elkaar gehaald-

    Enable je rewritelog en zet je levellog op 9.

    Zie ook: http://httpd.apache.org/docs/1.3/misc/rewriteguide.html (zoek op Blocked Inline-Images)

    [ Bericht 4% gewijzigd door slakkie op 30-04-2008 14:27:11 ]
      woensdag 30 april 2008 @ 14:43:44 #161
    62215 qu63
    ..de tijd drinkt..
    pi_58398558
    ik zie http://www.123swets.com/image/hotlink.gif wel
    of Swets heeft het al aangepast
    It's Time To Shine
    [i]What would life be like without rhethorical questions?[/i]
      FOK!-Schrikkelbaas woensdag 30 april 2008 @ 14:52:35 #162
    1972 Swetsenegger
    Egocentrische Narcist
    pi_58398675
    Ja ik zie die image ook gewoon, zowel in safari als FF.

    De rest ga ik ff bekijken
      FOK!-Schrikkelbaas woensdag 30 april 2008 @ 14:59:31 #163
    1972 Swetsenegger
    Egocentrische Narcist
    pi_58398766
    Hij blokkeerde mijn hotlink image ook Die moet je andere extensie geven dan de fileextensies die je blokkeert
      woensdag 30 april 2008 @ 15:07:32 #164
    12880 CraZaay
    prettig gestoord
    pi_58398889
    Handig in het kader van bovenstaande en sowieso een dikke bookmark waard:

    http://perishablepress.co(...)pid-htaccess-tricks/
      woensdag 30 april 2008 @ 15:22:58 #165
    62215 qu63
    ..de tijd drinkt..
    pi_58399125
    quote:
    Op woensdag 30 april 2008 14:59 schreef Swetsenegger het volgende:
    Hij blokkeerde mijn hotlink image ook Die moet je andere extensie geven dan de fileextensies die je blokkeert
    klinkt niet zo heel raar nee

    gefeliciteerd trouwens met de kleine , wist niet dat je alweer papa was
    It's Time To Shine
    [i]What would life be like without rhethorical questions?[/i]
    pi_58399212
    quote:
    Op woensdag 30 april 2008 14:59 schreef Swetsenegger het volgende:
    Hij blokkeerde mijn hotlink image ook Die moet je andere extensie geven dan de fileextensies die je blokkeert
    1
    2
    3
    4
    5
    RewriteEngine On
    RewriteCond %{HTTP_REQUEST} !^/image/hotlink.gif
    RewriteCond %{HTTP_REFERER} !^$
    RewriteCond %{HTTP_REFERER} !^http://(.+\.)?123swets\.com/ [NC]
    RewriteRule .*\.(jpe?g|gif|bmp|png)$ /image/hotlink.gif [L]


    hotlink.gif mag iedereen hotlinken

    Ik blijf overigens die redirect error krijgen.. Ook na een shift reload, Ubuntu/FF/Konqueror. Zal het eens op de Mac proberen..
    Zowel Safari als FF op de Mac geven me een redirect error.

    [ Bericht 8% gewijzigd door slakkie op 30-04-2008 15:39:05 ]
      FOK!-Schrikkelbaas woensdag 30 april 2008 @ 15:37:57 #167
    1972 Swetsenegger
    Egocentrische Narcist
    pi_58399277
    hotlink.gif bestaat nu niet meer. het is nu hotlink.jpe
      FOK!-Schrikkelbaas woensdag 30 april 2008 @ 15:38:43 #168
    1972 Swetsenegger
    Egocentrische Narcist
    pi_58399299
    quote:
    Op woensdag 30 april 2008 15:37 schreef Swetsenegger het volgende:
    hotlink.gif bestaat nu niet meer. het is nu hotlink.jpe
    Dan moet ie een 404 geven ipv een 403 forbidden (Konqueror) en geen redirect errors (FF/Safari).
      woensdag 30 april 2008 @ 15:42:31 #170
    62215 qu63
    ..de tijd drinkt..
    pi_58399321
    quote:
    Op woensdag 30 april 2008 15:38 schreef Swetsenegger het volgende:
    [ afbeelding ]
    ik zie je hotlink plaatje nu
    weliswaar na een ctrl+f5, want Nienke stond nog in mn cache

    Mozilla/5.0 (Windows; U; Windows NT 5.1; nl; rv:1.8.1.14) Gecko/20080404 Firefox/2.0.0.14
    It's Time To Shine
    [i]What would life be like without rhethorical questions?[/i]
      FOK!-Schrikkelbaas woensdag 30 april 2008 @ 16:10:48 #171
    1972 Swetsenegger
    Egocentrische Narcist
    pi_58399657
    quote:
    Op woensdag 30 april 2008 15:40 schreef slakkie het volgende:

    [..]

    Dan moet ie een 404 geven ipv een 403 forbidden (Konqueror) en geen redirect errors (FF/Safari).
    MIjn 404 en 403 verwijst naar de index pagina. Ik heb hier geen errors. Misschien cache?
    -edit- woops, nee error in de redirect
    pi_58403140
    Ik zit met een heel raar probleem, vind ik zelf. Ik heb een html-bestand met daarin allerlei tabs en spaties. Die wil ik er uit hebben. Ik probeer dit:
    1
    2
    3
    4
    5
    6
    <?php
    $part 
    trim($part);
    $part strip_tags($part);
    $part str_replace("\t"""$part);
    $part str_replace(" """$part);
    ?>

    Alle spaties tussen woorden e.d. verdwijnen, maar toch blijven er nog een heleboel over. Wat voor 'soort' spaties kunnen dat zijn, en hoe krijg ik ze weg :?
      woensdag 30 april 2008 @ 20:25:40 #173
    107951 JortK
    Immer kwaliteitsposts
    pi_58403256
    quote:
    Op woensdag 30 april 2008 20:19 schreef Piles het volgende:
    Ik zit met een heel raar probleem, vind ik zelf. Ik heb een html-bestand met daarin allerlei tabs en spaties. Die wil ik er uit hebben. Ik probeer dit:
    [ code verwijderd ]

    Alle spaties tussen woorden e.d. verdwijnen, maar toch blijven er nog een heleboel over. Wat voor 'soort' spaties kunnen dat zijn, en hoe krijg ik ze weg
    Zijn het geen linefeeds of carriage returns?
      woensdag 30 april 2008 @ 20:26:06 #174
    12880 CraZaay
    prettig gestoord
    pi_58403268
    Zijn het spaties in de broncode ("view source")? Dit kan overigens ook:

    1
    2
    3
    <?php
    $string = str_replace(array("\t", ''), '', $string);
    ?>
    pi_58403405
    quote:
    Op woensdag 30 april 2008 20:25 schreef JortK het volgende:
    Zijn het geen linefeeds of carriage returns?
    1
    2
    3
    <?php
    $part 
    trimpreg_replace'/\s+/'' '$part) );  
    ?>

    Dat doet al een hoop, maar er blijven er toch nog een paar over
    quote:
    Op woensdag 30 april 2008 20:26 schreef CraZaay het volgende:
    Zijn het spaties in de broncode ("view source")? Dit kan overigens ook:
    [ code verwijderd ]
    Veranderd niks aan de situatie
      woensdag 30 april 2008 @ 20:38:40 #176
    12880 CraZaay
    prettig gestoord
    pi_58403562
    quote:
    Op woensdag 30 april 2008 20:31 schreef Piles het volgende:

    Veranderd niks aan de situatie
    Dat snap ik, het ging me vooral om het DRY-karakter en het gebruik van dubbele/enkele quotes.

    Maar het zijn in de source dus echt spaties (niet line endings in de HTML die gerenderd worden als spaties)?
    pi_58403627
    Oh, ik zie het al
    Het is & nbsp;
    pi_58420193
    Ik heb een functie met die checkt of een variable leeg is of niet, wanneer hij leeg is zegt hij dat hij leeg is :D. Maar dan wordt het: Hoe krijg je de tekst van een variable die leeg is op het scherm, dus de naam van de lege variable?

    1
    2
    3
    4
    5
    6
    7
    <?php
    function checkempty($var){
        if(empty(
    $var) ){
        echo 
    "$var niet ingevoerd";
        }
    }
    ?>
    pi_58420375
    De naam die je intern gebruikt komt toch niet overeen met de naam die je de gebruiker wil tonen. Ik zou een extra parameter toevoegen voor de "friendly name".
    Wil iedereen die in telekinese gelooft nu mijn hand op steken?
    | Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
    pi_58420441
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <?php
    function ce($var,$dn){
        if(empty(
    $var) ){
        echo 
    $dn." niet ingevoerd";
        }
    }

    ce($name,'naam')
    ?>


    Is er iets waarmee je eenvoudig 10 waardes kan invoeren in zon functie?
    pi_58420477
    $var is de naam van de variabele toch al?
    als je checkempty("blaat") aanroept moet ie checken of $blaat leeg is lijkt me toch?
    dan is het
    if(empty($$var))
    {
    // $var nu outputten.. $var uit $$var word dus omgezet naar "blaat" --> $blaat
    }
    pi_58420626
    quote:
    Op donderdag 1 mei 2008 18:36 schreef Intrepidity het volgende:
    $var is de naam van de variabele toch al?
    als je checkempty("blaat") aanroept moet ie checken of $blaat leeg is lijkt me toch?
    dan is het
    if(empty($$var))
    {
    // $var nu outputten.. $var uit $$var word dus omgezet naar "blaat" --> $blaat
    }
    Kan ook, maar wat SuperRembo zegt klopt, ik wil eigenlijk een userfriendly name eruit hebben. Dus nu nog een manier vinden om 10 waardes in te voeren. Ik kan het handmatig doen, dan heb ik 10 regels code. kan het slimmer?
    pi_58421187
    Je kunt een functie maken waar je een willekeurig aantal parameters aan mee kunt geven; steeds afwisselend een var en een naam. Daarvoor gebruikt je func_get_arg().
    Wil iedereen die in telekinese gelooft nu mijn hand op steken?
    | Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
      donderdag 1 mei 2008 @ 23:05:00 #184
    85514 ralfie
    !Yvan eht nioj
    pi_58425791
    umm, waarom niet gwoon een arraytje?

    1
    2
    3
    4
    5
    6
    7
    8
    9
    <?php
    foreach(not_set( array('var1'=>'naam','var2'=>'lft','var3'=>'tijd','var4'=>'geslacht') as $var )  echo "hee dombo, je hebt '$var' niet gezet!";

    function 
    not_set($arr) {
       
    $out=array();
       foreach(
    $arr as $v=>$x) if(empty($GLOBALS[$v])) $out[]=$x;
       return 
    $out;
    }
    ?>
    mss niet grammaticaal correct, maar het idee klopt toch?
    pi_58427676
    quote:
    Op donderdag 1 mei 2008 23:05 schreef ralfie het volgende:
    umm, waarom niet gwoon een arraytje?
    [ code verwijderd ]

    mss niet grammaticaal correct, maar het idee klopt toch?
    Mmm, dat soort code kan ik allemala niet Ik zal es opzoeken hoe het werkt
    pi_58429556
    quote:
    Op donderdag 1 mei 2008 19:15 schreef SuperRembo het volgende:
    Je kunt een functie maken waar je een willekeurig aantal parameters aan mee kunt geven; steeds afwisselend een var en een naam. Daarvoor gebruikt je func_get_arg().
    Of gebruik func_get_args() icm met count (of func_num_args()).
    pi_58430013
    Heb er maar een recursieve functie van gemaakt, accepteerd zowel arrays, als losse scalars. Persoonlijk zou ik er ook nog check bijgooien om te zien of $GLOBALS[$v] ook gelijk is aan 0 aangezien dat ook een boolean value kan zijn.

    En een nieuwe functie erbij om bepaalde globals te definieren indien ze empty zijn, accepteerd alleen maar hashes (assoc arrays).

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    <?php
    function is_empty() {
        
    $args func_get_args();
        
    $result = array();
        if (
    count($args)) {
            foreach(
    $args as $v) {
                if (
    is_array($v)) {
                    
    $result array_merge($resultcall_user_func_array(__FUNCTION__$v));
                } else {
                    if (empty(
    $GLOBALS[$v])) { $result[] = $v; }
                }
            }
            return 
    $result;
        }
        
    trigger_error(sprintf("%s requires at least 1 parameter\n"__FUNCTION__), E_USER_NOTICE);
        return 
    $result;
    }

    function 
    is_empty_2defaults() {
        
    $result = array();
        if (
    func_num_args()) {
           
    $args func_get_args();
           foreach(
    $args as $v) {
               if (!
    is_array($v)) { continue; }
               
    $tmp is_empty(array_keys($v));
               foreach(
    $tmp as $v2) { $GLOBALS[$v2] = $v[$v2]; }
               
    $result array_merge($result$tmp);
           }
        } else {
            
    trigger_error(sprintf("%s requires at least 1 parameter\n"__FUNCTION__), E_USER_NOTICE);
        }
        return 
    $result;
    }


    $test "test"$leeg '0'$niks null$weer_niks$array = array();

    print_r(is_empty("test"));
    print_r(is_empty("test""leeg""niks""weer_niks""array"));

    # Recursieve arrays
    print_r(is_empty(array(array(0))));

    # En als je met hashes gaat werken:
    $hash = array("var1" => "leeg");
    print_r(is_empty(array_values($hash)));
    # Maar dit mag ook:
    print_r(is_empty($hash));

    $hash = array("glas" => "half vol");

    $tmp is_empty(array_keys($hash));
    foreach(
    $tmp as $v) {
        
    printf("%s is maar %s"$v$hash[$v]);
    }

    # Als je default waardes wilt hebben voor de lege velden... 
    $hash_defaults = array("user" => "guest""password" => "guest");
    is_empty_2defaults($hash_defaults);

    printf("User: %-8s\tPassword: %s\n"$user$password);
    ?>


    [ Bericht 6% gewijzigd door slakkie op 02-05-2008 17:29:45 ]
    pi_58434274
    Stel je voor: Ik heb een klasse die beker heet, en ik heb een klasse die drank heet.

    In de klasse beker heb je de volgende vars:
    beker_id
    beker_inhoud
    beker_materiaal
    beker_drank

    Daarnaast heb ik de klasse drank, met daarin de volgende vars
    drank_id
    drank_naam

    Ik wil een nieuwe beker aanmaken, want ik heb dorst . In het veld beker_drank van de klasse beker komt een waarde, een getal. Dit getal moet overeenkomen met drank_id uit de klasse drank. Wanneer deze overeenkomt, moet de inhoud van drank_naam worden ingevuld in het veld beker_drank. Ik denk dat het wel mogelijk is, maar hoe doe ik dit dan?
    pi_58434379
    quote:
    Op vrijdag 2 mei 2008 05:00 schreef slakkie het volgende:
    Heb er maar een recursieve functie van gemaakt, accepteerd zowel arrays, als losse scalars. Persoonlijk zou ik er ook nog check bijgooien om te zien of $GLOBALS[$v] ook gelijk is aan 0 aangezien dat ook een boolean value kan zijn.
    [ code verwijderd ]
    1
    2
    3
    <?php
    trigger_error
    (sprintf("%s requires at least 1 parameter\n"__FUNCTION__E_USER_NOTICE));
    ?>

    Je geeft aan sprintf 1 string en 2 andere parameters mee, terwijl er in die string maar 1 placeholder is. Gevalletje haakjes verkeerd?
    pi_58434452
    quote:
    Op vrijdag 2 mei 2008 12:57 schreef boskameel het volgende:
    Stel je voor: Ik heb een klasse die beker heet, en ik heb een klasse die drank heet.

    In de klasse beker heb je de volgende vars:
    beker_id
    beker_inhoud
    beker_materiaal
    beker_drank

    Daarnaast heb ik de klasse drank, met daarin de volgende vars
    drank_id
    drank_naam

    Ik wil een nieuwe beker aanmaken, want ik heb dorst . In het veld beker_drank van de klasse beker komt een waarde, een getal. Dit getal moet overeenkomen met drank_id uit de klasse drank. Wanneer deze overeenkomt, moet de inhoud van drank_naam worden ingevuld in het veld beker_drank. Ik denk dat het wel mogelijk is, maar hoe doe ik dit dan?
    Waarom zou je dat überhaupt willen? Als je bij de beker het drank_id opslaat dan kun je altijd de drank_naam weer achterhalen.
    pi_58434844
    Als ik bv gebruik maak van een database, en een tabel beker en drank heb. Of denk ik nu te moeilijk?
    pi_58434858
    quote:
    Op vrijdag 2 mei 2008 13:05 schreef Light het volgende:

    [..]

    Waarom zou je dat überhaupt willen? Als je bij de beker het drank_id opslaat dan kun je altijd de drank_naam weer achterhalen.
    Misschien met foreign keys?
    pi_58435100
    quote:
    Op vrijdag 2 mei 2008 13:23 schreef boskameel het volgende:
    Als ik bv gebruik maak van een database, en een tabel beker en drank heb. Of denk ik nu te moeilijk?
    Dan maak je een JOIN over die twee tabellen, als je tenminste wilt weten welke drank er in een beker zit. Zo'n id is een makkelijk, vast punt. Ander voordeel is dat als je "bier" wilt vervangen door "Heineken" (om verwarring met "Grolsch" te voorkomen bijvoorbeeld) dan hoef je dat maar op 1 plek aan te passen.
    pi_58435144
    quote:
    Op vrijdag 2 mei 2008 13:24 schreef Flaccid het volgende:

    [..]

    Misschien met foreign keys?
    Ja, dan moet je dus die ID's laten staan en niet ineens ID's door namen gaan vervangen. Da's niet logisch. Dat het in PHP kan, komt alleen maar omdat het loosely typed is.
    pi_58435233
    Ah ik snap het . Maar ik zit nu al een paar uur te zoeken hoe je nou die 2 klassen kan laten samenwerken, in php code dan. Ik kan alleen maar dingen vinden over het werken met 1 klasse .
    pi_58435636
    Hallo, waarschijnlijk super simpel op te lossen, maar het lukt me niet;
    Ik heb de volgende code:
    1
    2
      $test = "103050060070003002100004060008030010101010111000020305081011151601060912031615";
      echo $test;

    De STRING $test bevat 76 cijfers. Echter als ik hem nu echo krijg ik zoiets te zien : "1.0305006007E+047". Hoe kan ik mijn string correct tonen? bvd
    to say of what is that it is not, or of what is not that it is, is false, while to say of what is that it is, or of what is not that it is not, is true
      vrijdag 2 mei 2008 @ 14:14:49 #197
    12880 CraZaay
    prettig gestoord
    pi_58435695
    Die code toont bij mij gewoon je string. Als integer (zonder quotes dus) komt 'ie dichter bij jouw weergave in de buurt (1.0305006007E+77).
    pi_58435768
    quote:
    Op vrijdag 2 mei 2008 14:14 schreef CraZaay het volgende:
    Die code toont bij mij gewoon je string. Als integer (zonder quotes dus) komt 'ie dichter bij jouw weergave in de buurt (1.0305006007E+77).
    ai ik zie het al, zit met de verkeerde var te spelen

    thx!
    to say of what is that it is not, or of what is not that it is, is false, while to say of what is that it is, or of what is not that it is not, is true
      vrijdag 2 mei 2008 @ 14:24:56 #199
    63192 ursel
    "Het Is Hier Fantastisch!
    pi_58435874
    quote:
    Op vrijdag 2 mei 2008 14:14 schreef CraZaay het volgende:
    Die code toont bij mij gewoon je string. Als integer (zonder quotes dus) komt 'ie dichter bij jouw weergave in de buurt (1.0305006007E+77).
    Hier ook..
    pi_58435995
    quote:
    Op vrijdag 2 mei 2008 12:57 schreef boskameel het volgende:
    Stel je voor: Ik heb een klasse die beker heet, en ik heb een klasse die drank heet.

    In de klasse beker heb je de volgende vars:
    beker_id
    beker_inhoud
    beker_materiaal
    beker_drank

    Daarnaast heb ik de klasse drank, met daarin de volgende vars
    drank_id
    drank_naam

    Ik wil een nieuwe beker aanmaken, want ik heb dorst . In het veld beker_drank van de klasse beker komt een waarde, een getal. Dit getal moet overeenkomen met drank_id uit de klasse drank. Wanneer deze overeenkomt, moet de inhoud van drank_naam worden ingevuld in het veld beker_drank. Ik denk dat het wel mogelijk is, maar hoe doe ik dit dan?
    Kan drank bestaan zonder beker?

    Zo nee, dan kun je het beste de class drank initiëren in de class beker. Dus bij het vullen van de beker geef je een drank_id mee, vervolgens wordt er in de beker class een $beker_drank = new drank($drank_id) uitgevoerd. In de constructor van drank_id haal je vervolgens alle gegevens op die voor die drank van belang zijn. Indien nodig kun je dan aan de beker vragen welke drank er in zit. De beker vraagt dat vervolgens weer aan drank of geeft het hele drank-object terug.

    Als drank wel kan bestaan zonder beker, bijvoorbeeld omdat het nog in de fles zit, dan kun je de beker vullen met het drank-object:
    1
    2
    3
    4
    $drankje = new drank(0, "cola")
    $flesje = new fles($drankje->get_contents())
    $bekertje = new beker();
    $bekertje->vul($flesje->get_contents());
    Don't hurry, be crappy!
    pi_58436041
    quote:
    Op dinsdag 29 april 2008 13:50 schreef wobbel het volgende:
    Oke, na wat geworstel heb ik aan de hand van dit topic de volgende query gekregen:
    [ code verwijderd ]

    Het probleem is nu alleen, dat als één artikel meerdere afbeeldingen heeft, het product ook meerdere keren erin komt te staan.

    Stel ik heb 3 producten, en 1tje heeft 2 plaatjes, eentje heeft 3 plaatjes en de ander heeft 5 plaatjes...dan krijg ik deze output

    Product 1
    Product 1
    Product 2
    Product 2
    Product 2
    Product 3
    Product 3
    Product 3
    Product 3
    Product 3

    Maar hij moet gewoon Product 1, Product 2 en Product 3 weergeven
    Maak er eens SELECT DISTINCT * .... van
    Don't hurry, be crappy!
      vrijdag 2 mei 2008 @ 14:34:51 #202
    32768 DionysuZ
    Respect my authority!
    pi_58436047
    quote:
    Op vrijdag 2 mei 2008 13:38 schreef Light het volgende:

    [..]

    Dan maak je een JOIN over die twee tabellen, als je tenminste wilt weten welke drank er in een beker zit. Zo'n id is een makkelijk, vast punt. Ander voordeel is dat als je "bier" wilt vervangen door "Heineken" (om verwarring met "Grolsch" te voorkomen bijvoorbeeld) dan hoef je dat maar op 1 plek aan te passen.
    heineken verwarren met grolsch
    □ Reality is merely an illusion,albeit a very persistent one-A.Einstein
    ■ Of ik ben gek of de rest van de wereld.Ik denk zelf de rest van de wereld-Rudeonline
    □ The war is not meant to be won.It is meant to be continuous-G.Orwell
    pi_58437998
    quote:
    Op vrijdag 2 mei 2008 13:02 schreef Light het volgende:

    [..]
    [ code verwijderd ]

    Je geeft aan sprintf 1 string en 2 andere parameters mee, terwijl er in die string maar 1 placeholder is. Gevalletje haakjes verkeerd?
    Duidelijk gevalletje van ja, en zelfs twee .

    Aangezien trigger_error E_USER_NOTICE gebruikt als error_type als je deze niet meegeeft, viel de fout me niet op.

    [ Bericht 10% gewijzigd door slakkie op 02-05-2008 16:45:21 ]
    pi_58438146
    quote:
    Op vrijdag 2 mei 2008 14:10 schreef webbyplus het volgende:
    Hallo, waarschijnlijk super simpel op te lossen, maar het lukt me niet;
    Ik heb de volgende code:
    [ code verwijderd ]

    De STRING $test bevat 76 cijfers. Echter als ik hem nu echo krijg ik zoiets te zien : "1.0305006007E+047". Hoe kan ik mijn string correct tonen? bvd
    Een simpele oplossing is:

    1
    2
    $test = "103050060070003002100004060008030010101010111000020305081011151601060912031615";
    echo  0 + $test;


    [ Bericht 1% gewijzigd door slakkie op 02-05-2008 16:52:05 ]
      vrijdag 2 mei 2008 @ 16:49:15 #205
    12880 CraZaay
    prettig gestoord
    pi_58438324
    quote:
    Op vrijdag 2 mei 2008 16:40 schreef slakkie het volgende:

    Een simpele oplossing is:
    Mooi he dat PHP... een int en een string bij elkaar optellen
    pi_58438389
    quote:
    Op vrijdag 2 mei 2008 16:49 schreef CraZaay het volgende:

    [..]

    Mooi he dat PHP... een int en een string bij elkaar optellen
    Perl doet hetzelfde
    pi_58438426
    quote:
    Op vrijdag 2 mei 2008 16:49 schreef CraZaay het volgende:

    [..]

    Mooi he dat PHP... een int en een string bij elkaar optellen
    het zou verboden moeten worden!
      vrijdag 2 mei 2008 @ 17:10:22 #208
    12880 CraZaay
    prettig gestoord
    pi_58438664
    quote:
    Op vrijdag 2 mei 2008 16:52 schreef slakkie het volgende:

    Perl doet hetzelfde
    JavaScript en allerlei andere loosely typed talen ook, maar dat maakt het nog niet netter
    pi_58439193
    quote:
    Op vrijdag 2 mei 2008 17:10 schreef CraZaay het volgende:

    [..]

    JavaScript en allerlei andere loosely typed talen ook, maar dat maakt het nog niet netter
    Das waar, maar echo (float) $test werkt ook, en is wellicht nog netter ook
      zaterdag 3 mei 2008 @ 14:16:29 #210
    159841 Dzy
    It is I
    pi_58454062
    Ik heb een vraagje :)

    Ik ben bezig met een site waar een heleboel gedichten op komen te staan van dezelfde dichter. Deze kan hij taggen met meerdere tags, die allemaal weer in een aparte tabel tags staan. Omdat er meerdere tags bij meerdere gedichten kunnen gebruik ik een koppeltabel gedichten_tags. Alleen hoe kan ik nu mooi in 1 query alle gedichten opvragen die bij 1 of meer tags horen?

    Ik zat zelf al een beetje te prutsen met de volgende query:

    1SELECT * FROM gedichten,gedichten_tags WHERE gedichten.gedicht_id=gedichten_tags.gedicht_id AND tag_id IN (1,3,4)


    Dit zou dan alle gedichten opvragen die een tag hebben van 1, 3 of 4 maar de bedoeling is natuurlijk dat ze alle drie zo getagd moeten zijn. En voor mijn gevoel is dit een ranzige query, maar dat kan ik verkeerd hebben. Ingewikkelde queries ben ik nog niet zo goed in :P Wie kan me helpen?
    "Reality is an illusion created by a lack of alcohol."
      zaterdag 3 mei 2008 @ 14:49:01 #211
    3677 SuperRembo
    Sinds 1998
    pi_58454461
    Met behulp van een soortgelijke query moet dat lukken. (In oude topics staan nog wel eens handige dingen)
    Wil iedereen die in telekinese gelooft nu mijn hand op steken?
    | Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
    pi_58454618
    quote:
    Op zaterdag 3 mei 2008 14:16 schreef Dzy het volgende:
    Ik heb een vraagje

    Ik ben bezig met een site waar een heleboel gedichten op komen te staan van dezelfde dichter. Deze kan hij taggen met meerdere tags, die allemaal weer in een aparte tabel tags staan. Omdat er meerdere tags bij meerdere gedichten kunnen gebruik ik een koppeltabel gedichten_tags. Alleen hoe kan ik nu mooi in 1 query alle gedichten opvragen die bij 1 of meer tags horen?

    Ik zat zelf al een beetje te prutsen met de volgende query:
    [ code verwijderd ]

    Dit zou dan alle gedichten opvragen die een tag hebben van 1, 3 of 4 maar de bedoeling is natuurlijk dat ze alle drie zo getagd moeten zijn. En voor mijn gevoel is dit een ranzige query, maar dat kan ik verkeerd hebben. Ingewikkelde queries ben ik nog niet zo goed in Wie kan me helpen?
    Ik zie niks verkeerd aan deze query om heel eerlijk te zijn. Maar toegegeven SQL is niet mijn sterkste ding.
      zaterdag 3 mei 2008 @ 15:06:40 #213
    159841 Dzy
    It is I
    pi_58454671
    Dan zou het dus iets soortgelijks worden:

    1
    2
    3
    4
    SELECT * FROM gedichten,gedicht_tags
    WHERE gedichten.gedicht_id = gedichten_tags.gedicht_id AND gedicht_tags.tag_id IN (1,3,4)
    GROUP BY gedichten.gedicht_id
    HAVING COUNT(*) = 3

    worden?

    Ik snap de query nog niet helemaal :P Wat doet dat GROUP BY nou precies? Zorgt die dat die duplicates wegblijven? En die HAVING COUNT zorgt ervoor dat alleen resultaten die precies 3 keer voorkomen doorkomen om te zorgen dat alle tags aanwezig moeten zijn? Als ik nog andere zoekdingen toevoeg dan maakt het niet uit verder toch? Zolang het geen moeilijke constructies worden zal hij er altijd 3 blijven vinden of niet?

    Bedankt, ben nog niet zo'n ster in MySQL maar er komt verandering in, tof onderschrift trouwens :P
    "Reality is an illusion created by a lack of alcohol."
      zaterdag 3 mei 2008 @ 15:34:22 #214
    3677 SuperRembo
    Sinds 1998
    pi_58455094
    quote:
    Op zaterdag 3 mei 2008 15:06 schreef Dzy het volgende:
    Ik snap de query nog niet helemaal :P
    Zie andere topic :P


    Het zou (uitgaande van MySQL 5) zo iets worden:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    SELECT * 
    FROM gedichten g
    WHERE g.gedicht_id IN (
       SELECT t.gedicht_id
       FROM gedichten_tags t
       WHERE t.tag_id IN (1, 3, 4)
       GROUP BY t.gedicht_id
       HAVING COUNT(*) = 3
    )
    Wil iedereen die in telekinese gelooft nu mijn hand op steken?
    | Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
    pi_58455612
    quote:
    Op donderdag 1 mei 2008 18:20 schreef Flaccid het volgende:
    Ik heb een functie met die checkt of een variable leeg is of niet, wanneer hij leeg is zegt hij dat hij leeg is . Maar dan wordt het: Hoe krijg je de tekst van een variable die leeg is op het scherm, dus de naam van de lege variable?
    [ code verwijderd ]
    omfg
      zaterdag 3 mei 2008 @ 16:35:48 #216
    159841 Dzy
    It is I
    pi_58455922
    Ik heb het aan de praat, dankjewel. Hier is een query die ik gebruik om op 2 tags te zoeken die moeten matchen en het moet uit een bepaald boekje komen:

    1
    2
    3
    4
    5
    6
    7
    8
    SELECT * FROM gedichten g 
    WHERE (g.gedicht_id IN 
      ( 
      SELECT t.gedicht_id 
      FROM gedicht_tags t WHERE t.tag_id IN (1,2) 
      GROUP BY t.gedicht_id HAVING COUNT(*) = 2) 
      ) 
      AND (g.gedicht_boekje = '3')


    Doet het prima :) Thanks! Ik snap het ook zowaar :P
    "Reality is an illusion created by a lack of alcohol."
      zaterdag 3 mei 2008 @ 16:40:36 #217
    63192 ursel
    "Het Is Hier Fantastisch!
    pi_58455970
    quote:
    Op zaterdag 3 mei 2008 15:34 schreef SuperRembo het volgende:

    [..]

    Zie andere topic


    Het zou (uitgaande van MySQL 5) zo iets worden:
    [ code verwijderd ]
    Zover ik tot nog toe heb ondervonden duren dit queries (dus met querie in querie) langer dan een join.
      zaterdag 3 mei 2008 @ 16:56:49 #218
    12880 CraZaay
    prettig gestoord
    pi_58456145
    quote:
    Op zaterdag 3 mei 2008 16:40 schreef ursel het volgende:

    querie in querie
    Een subquery dus

    Als je fatsoenlijke caching van de output gebruikt zou het snelheidsverschil weinig invloed mogen hebben overigens.

    Zijn er hier überhaupt mensen bezig met memcached en dergelijke?
      zaterdag 3 mei 2008 @ 18:03:56 #219
    3677 SuperRembo
    Sinds 1998
    pi_58457257
    quote:
    Op zaterdag 3 mei 2008 16:40 schreef ursel het volgende:
    Zover ik tot nog toe heb ondervonden duren dit queries (dus met querie in querie) langer dan een join.
    In dit geval lukt het ook wel zonder sub-query, alleen wordt 't daar wat minder overzichtelijk van. En de vraag is of 't echt sneller is.

    1
    2
    3
    4
    5
    6
    7
    SELECT g.gedicht_id, g.titel
    FROM gedichten g
    INNER JOIN gedichten_tags t ON t.gedicht_id = g.gedicht_id 
    WHERE g.gedicht_boekje = 3 
       AND t.tag_id IN (1, 3, 4)
    GROUP BY g.gedicht_id, g.titel
    HAVING COUNT(*) = 3

    (En alles wat je in de SELECT opneemt ook toevoegen aan de GROUP BY)
    Wil iedereen die in telekinese gelooft nu mijn hand op steken?
    | Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
      zaterdag 3 mei 2008 @ 18:04:33 #220
    3677 SuperRembo
    Sinds 1998
    pi_58457268
    quote:
    Op zaterdag 3 mei 2008 16:56 schreef CraZaay het volgende:
    Zijn er hier überhaupt mensen bezig met memcached en dergelijke?
    Wat bedoel je daar precies mee?
    Wil iedereen die in telekinese gelooft nu mijn hand op steken?
    | Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
      zaterdag 3 mei 2008 @ 18:38:19 #221
    12880 CraZaay
    prettig gestoord
    pi_58457709
    quote:
    Op zaterdag 3 mei 2008 18:04 schreef SuperRembo het volgende:

    Wat bedoel je daar precies mee?
    Eigenlijk wat er staat Zijn er hier mensen die bijvoorbeeld query results cachen d.m.v. bijvoorbeeld memcached (cachen in geheugen). Ik gebruik het veelvuldig voor zeer drukke websites, waarbij query results in het geheugen gaan totdat ze geïnvalideerd worden. Voor sommige sites gaan er hele stukken HTML (segmenten of hele pagina's) in het geheugen.

    Misschien niet van toepassing op de meeste sites die hier gebouwd worden (geen idee over wat voor projecten we het hier hebben), maar voor echt drukke sites is het onmisbaar.
    pi_58457973
    Ik gebruik de cachingfunctie van Smarty, voor de templates / HTML dus. Op dynamische pagina's heb je daar niks aan, maar bij pagina's die weinig tot nooit wijzigen is de winst opvallend groot.

    Verder gebruik ik Adodb als database class, en die heeft ook een caching functie waarbij het resultaat in een file opgeslagen wordt. Het opzoeken en inlezen van de file is dermate traag dat je het eigenlijk alleen als backup-mechanisme kunt gebruiken, iets wat de documentatie zelf ook aangeeft.

    Met cachen in het geheugen heb ik geen ervaring.... Aan wat voor bezoekersaantallen / queries moet ik denken als jij het over een drukke site hebt?
      zaterdag 3 mei 2008 @ 19:14:01 #223
    159841 Dzy
    It is I
    pi_58458273
    Ik heb er op m'n werk wel eens mee moeten werken, afhankelijk van allerlei factoren scheelt het een beetje tot een hele boel, vooral afhankelijk van hoe vaak en veel de data verandert. Maar inderdaad, voor 99% van de sites die hier gebouwd worden is het vrij zinloos.

    Ik heb nog een vraagje hoe jullie het volgende zouden aanpassen:

    Ik kan nu mooi zoeken in de gedichten op meerdere dingen, op tags, het boek waar het gedicht in staan en/of de inhoud en titel. Deze query dingen staan gewoon in de url dmv GET, zelfs als je een gedicht aan het lezen bent. Hierdoor kan ik binnen dezelfde selectie gedichten met pijltjes vooruit en achteruit in de gedichten. Dus stel dat ik een zoekactie heb gedaan op gedichten met het woord School erin en de tag Liefde, dan staat in de url. Dan krijg ik een lijstje met gedichten die hieronder vallen, klik ik er een aan en dan krijg ik die voorgeschoteld. Nu wil ik dus zonder op Vorige te drukken naar het volgende of vorige gedicht in de selectie komen door op een pijltje te drukken. Dit is niet zo moeilijk te realiseren alleen zijn er een paar verschillende opties, wat zouden jullie doen:

    - Zodra je bent gaan zoeken alle IDs van de gedichten op volgorde in een sessie op slaan zodat je die heel makkelijk kunt checken om de pijltjes te maken met de goede link erbij. Nadeel van deze is dat er echt duizenden gedichten in de database komen en je dus bij een hele vrije search makkelijk 2000 ID's op gaat slaan. Ik weet niet precies wat voor limiet er bij sessions zitten maar op deze host zal het vast niet hoog zijn.
    - Als je het bericht checkt kun je zo de search opnieuw doen zonder limit en dan zo de vorige en volgende ID ophalen. Nadeel is wel dat je dan elk gedicht weer de query moet uitvoeren.

    EDIT: Nadeel bij 1 vergeten.
    "Reality is an illusion created by a lack of alcohol."
      zaterdag 3 mei 2008 @ 19:17:22 #224
    12880 CraZaay
    prettig gestoord
    pi_58458323
    quote:
    Op zaterdag 3 mei 2008 18:56 schreef Xcalibur het volgende:
    Aan wat voor bezoekersaantallen / queries moet ik denken als jij het over een drukke site hebt?
    Een project wat ik voor NU.nl gedaan heb bijvoorbeeld (da's extreem), maar ook een jongerensite met een sociaal netwerk wat met 30.000 pageviews per dag al aardig wat zware queries oplevert.
      zaterdag 3 mei 2008 @ 20:35:38 #225
    3677 SuperRembo
    Sinds 1998
    pi_58459757
    Nee, memcached gebruik ik niet, maar dat had je al wel begrepen
    Ziet er interessant uit, daar moet ik eens in duiken.
    Wil iedereen die in telekinese gelooft nu mijn hand op steken?
    | Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
    pi_58464706
    Memcache gebruik ik niet zo vaak maar ik gebruik wel regelmatig sql caching, waar het resultaat van een loodzware query geserialized wordt opgeslagen in een objectstorage in de db. Aan memory caching heb je in dit geval minder omdat het om queries gaat waar het resultaat hoogstens 1 keer per dag wijzigt en je aan alle bezoekers hetzelfde resultaat wil tonen. Die wil je dus ook maar 1 keer per dag berekenen, niet meer.
    Eigenlijk gebruik ik caching alleen als het echt heel nodig is - als het om het verschil tussen een server die op zijn bek gaat en een server die netjes door blijft werken gaat bijvoorbeeld - maar als het niet perse moet dan liever niet. Caching kan voor allerlei nare problemen zorgen en maakt troubleshooten ook vaak moeilijker.
      zondag 4 mei 2008 @ 07:03:12 #227
    12880 CraZaay
    prettig gestoord
    pi_58466773
    quote:
    Op zondag 4 mei 2008 01:17 schreef Farenji het volgende:
    Memcache gebruik ik niet zo vaak maar ik gebruik wel regelmatig sql caching, waar het resultaat van een loodzware query geserialized wordt opgeslagen in een objectstorage in de db. Aan memory caching heb je in dit geval minder omdat het om queries gaat waar het resultaat hoogstens 1 keer per dag wijzigt en je aan alle bezoekers hetzelfde resultaat wil tonen. Die wil je dus ook maar 1 keer per dag berekenen, niet meer.
    Waarom zou memcached hier niet geschikt voor zijn? In dat geval check ik in de model of het result in de cache zit, en zo niet voer ik de query uit en sla het resultaat op in de cache met een time to live van 24 uur
    pi_58485796
    Kleine vraag, stel ik heb een hostname cc93022-a.tu.nogwat.home.nl

    Van deze hostname wil ik het volgende uitlezen (maar dit kan natuurlijk ook een andere hostname zijn)
    - home.nl
    - home
    - @home internet Groningen Nederland (dit kun je ergens uitlezen maar waar?)

    Is er voor de 1e 2 een regex die ook werkt met co.uk en dergelijke domeinnamen? en waar kan ik de 3e gegeven weg halen?
    The people who lost my respect will never get a capital letter for their name again.
    Like trump...
    pi_58486392
    ik denk dat je de eerste 2 wel met parse_url() kunt uitvinden.
    De 3e krijg je met gethostbyaddr() denk ik....
      maandag 5 mei 2008 @ 11:04:11 #230
    62215 qu63
    ..de tijd drinkt..
    pi_58487351
    quote:
    Op maandag 5 mei 2008 09:14 schreef Chandler het volgende:
    Kleine vraag, stel ik heb een hostname cc93022-a.tu.nogwat.home.nl

    Van deze hostname wil ik het volgende uitlezen (maar dit kan natuurlijk ook een andere hostname zijn)
    - home.nl
    - home
    - @home internet Groningen Nederland (dit kun je ergens uitlezen maar waar?)

    Is er voor de 1e 2 een regex die ook werkt met co.uk en dergelijke domeinnamen? en waar kan ik de 3e gegeven weg halen?
    punt 3 is alleen uit te lezen bij @home en nog een geloof ik. Bij planet (mijn ISP) wordt het niet meegestuurd. Je hebt wel databases die dat soort info verzamelen en waar je beroep op kunt doen, sommige gratis, sommige niet.
    It's Time To Shine
    [i]What would life be like without rhethorical questions?[/i]
      maandag 5 mei 2008 @ 14:54:59 #231
    37634 wobbel
    Da WoBBeL King
    pi_58491472
    Ik heb een tabel met Auto Increment, hoe krijg ik nu heel makkelijk het laatste ID eruit?

    Nu doe ik namelijk SELECT id FROM gegevens ORDER BY id DESC LIMIT 1, maar kan dat niet sneller?
      maandag 5 mei 2008 @ 14:59:19 #232
    107951 JortK
    Immer kwaliteitsposts
    pi_58491535
    quote:
    Op maandag 5 mei 2008 14:54 schreef wobbel het volgende:
    Ik heb een tabel met Auto Increment, hoe krijg ik nu heel makkelijk het laatste ID eruit?

    Nu doe ik namelijk SELECT id FROM gegevens ORDER BY id DESC LIMIT 1, maar kan dat niet sneller?
    SELECT MAX(id) FROM gegevens ?
      maandag 5 mei 2008 @ 15:00:06 #233
    107951 JortK
    Immer kwaliteitsposts
      maandag 5 mei 2008 @ 15:11:11 #234
    37634 wobbel
    Da WoBBeL King
    pi_58491686
    quote:
    Op maandag 5 mei 2008 14:59 schreef JortK het volgende:

    [..]

    SELECT MAX(id) FROM gegevens ?
    moet ik die dan weer opvragen met mysql_fetch_assoc of kan dat ook met mysql_result ofzo?
    pi_58491701
    quote:
    Op maandag 5 mei 2008 15:11 schreef wobbel het volgende:

    [..]

    moet ik die dan weer opvragen met mysql_fetch_assoc of kan dat ook met mysql_result ofzo?
    1
    2
    3
    <?php
    $laatste 
    mysql_result(mysql_query("SELECT MAX(id) FROM gegevens"),0);
    ?>

    Zo ff uit mn hoofd :P
      maandag 5 mei 2008 @ 15:14:03 #236
    37634 wobbel
    Da WoBBeL King
    pi_58491739
    quote:
    Op maandag 5 mei 2008 15:12 schreef Piles het volgende:

    [..]
    [ code verwijderd ]

    Zo ff uit mn hoofd
    Ah bedankt, gewoon met mysql_result!!

    Super jongens, weeti k dat ook weer
      maandag 5 mei 2008 @ 16:36:22 #237
    3677 SuperRembo
    Sinds 1998
    pi_58493275
    Als je de id wil weten van de row die je net ge-insert hebt, dan kan je beter mysql_insert_id() gebruiken.
    Wil iedereen die in telekinese gelooft nu mijn hand op steken?
    | Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
      maandag 5 mei 2008 @ 16:38:05 #238
    107951 JortK
    Immer kwaliteitsposts
    pi_58493315
    quote:
    Op maandag 5 mei 2008 16:36 schreef SuperRembo het volgende:
    Als je de id wil weten van de row die je net ge-insert hebt, dan kan je beter mysql_insert_id() gebruiken.
    Goede tip zeg
      maandag 5 mei 2008 @ 18:54:57 #239
    37634 wobbel
    Da WoBBeL King
    pi_58495738
    quote:
    Op maandag 5 mei 2008 16:36 schreef SuperRembo het volgende:
    Als je de id wil weten van de row die je net ge-insert hebt, dan kan je beter mysql_insert_id() gebruiken.
    Die kende ik gelukkig al


    Andere vraag: Ik heb onderstaande query, alleen daar is blijkbaar iets fout aan

    1
    2
    3
    4
    DELETE FROM SHOP_Carts, SHOP_Cartcontents 
    USING SHOP_Carts.IdCart 
    LEFT JOIN SHOP_Cartcontents.CartId = SHOP_Carts.IdCart 
    WHERE SHOP_Carts.IdCart = '1'


    Foutmelding
    quote:
    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 '.IdCart WHERE SHOP_Carts.IdCart = '1'' at line 1
    pi_58497876
    quote:
    Op maandag 5 mei 2008 18:54 schreef wobbel het volgende:

    [..]

    Die kende ik gelukkig al ;)


    Andere vraag: Ik heb onderstaande query, alleen daar is blijkbaar iets fout aan :P
    [ code verwijderd ]

    Foutmelding
    [..]
    Moet het niet zijn
    1delete from table left join table2 on table.id = table2.id where id = 'something'
    pi_58499271
    Er is wel meer fout aan je query. Wat wil je wissen, uit welke tabellen? Na een "using" moet een tabel komen, geen veld. Een left join werkt zo niet. De syntax is "left join <tabelnaam> on <join conditie>".
    pi_58506451
    quote:
    Op maandag 5 mei 2008 11:04 schreef qu63 het volgende:

    [..]

    punt 3 is alleen uit te lezen bij @home en nog een geloof ik. Bij planet (mijn ISP) wordt het niet meegestuurd. Je hebt wel databases die dat soort info verzamelen en waar je beroep op kunt doen, sommige gratis, sommige niet.
    Ik heb gezocht naar opties voor punt 3 (@home internet) maar kan helaas niets vinden waarschijnlijk op de verkeerde woorden gezocht maar kun je me een linkje posten?
    The people who lost my respect will never get a capital letter for their name again.
    Like trump...
      dinsdag 6 mei 2008 @ 11:46:27 #243
    37634 wobbel
    Da WoBBeL King
    pi_58508915
    quote:
    Op maandag 5 mei 2008 20:30 schreef slakkie het volgende:

    [..]

    Moet het niet zijn
    [ code verwijderd ]


    Op jou manier krijg ik de volgende fout:
    quote:
    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 'LEFT JOIN SHOP_Cartcontents on SHOP_Carts.IdCart = SHOP_Cartcontents.CartId WHER' at line 1
    Dit is m'n query:

    1
    2
    3
    4
    DELETE FROM SHOP_Carts 
    LEFT JOIN SHOP_Cartcontents 
    ON SHOP_Carts.IdCart = SHOP_Cartcontents.CartId 
    WHERE SHOP_Carts.IdCart = '5'


    Ik heb de MySQL reference guide er ook al bijgezocht, maar zelfs dan lukt het me nog niet
    http://dev.mysql.com/doc/refman/5.0/en/delete.html
      dinsdag 6 mei 2008 @ 11:50:05 #244
    62215 qu63
    ..de tijd drinkt..
    pi_58509000
    quote:
    Op dinsdag 6 mei 2008 09:26 schreef Chandler het volgende:

    [..]

    Ik heb gezocht naar opties voor punt 3 (@home internet) maar kan helaas niets vinden waarschijnlijk op de verkeerde woorden gezocht maar kun je me een linkje posten?
    http://www.maxmind.com/app/city
    bijvoorbeeld, maar is wel duur
    It's Time To Shine
    [i]What would life be like without rhethorical questions?[/i]
      dinsdag 6 mei 2008 @ 11:50:52 #245
    62215 qu63
    ..de tijd drinkt..
    pi_58509019
    http://sourceforge.net/projects/geoip/ is dan wel gratis..

    verder zoeken op google naar geoip
    It's Time To Shine
    [i]What would life be like without rhethorical questions?[/i]
      dinsdag 6 mei 2008 @ 12:07:12 #246
    107951 JortK
    Immer kwaliteitsposts
    pi_58509303
    quote:
    Op dinsdag 6 mei 2008 11:46 schreef wobbel het volgende:
    Dit is m'n query:
    [ code verwijderd ]

    Ik heb de MySQL reference guide er ook al bijgezocht, maar zelfs dan lukt het me nog niet :')
    http://dev.mysql.com/doc/refman/5.0/en/delete.html
    Waarom een left join in een delete statement?

    Je kan toch gewoon dit doen:

    1
    2
    DELETE FROM SHOP_Carts 
    WHERE SHOP_Carts.IdCart = '5'


    En als je ook de content wil verwijderen:

    1
    2
    DELETE FROM SHOP_Cartscontents
    WHERE SHOP_Cartscontents.IdCart = '5'
      dinsdag 6 mei 2008 @ 12:20:23 #247
    63192 ursel
    "Het Is Hier Fantastisch!
    pi_58509580
    Misschien een knullige vraag, maar om 2 tabellen te mergen doe ik een select in een temp tabel en update ik de main tabel.

    Nu doe ik een query met SELECT * FROM table. Maar eigenlijk wil ik alle kolommen hebben exclusief kolom ncID. Aangezien er +/- 15 kolommen zijn leek het mij eigenlijk onlogisch om elke kolom in de SELECT statement te plaatsen. Is er geen praktische manier om een specifieke kolom te excluden?
      dinsdag 6 mei 2008 @ 12:28:09 #248
    107951 JortK
    Immer kwaliteitsposts
    pi_58509738
    quote:
    Op dinsdag 6 mei 2008 12:20 schreef ursel het volgende:
    Misschien een knullige vraag, maar om 2 tabellen te mergen doe ik een select in een temp tabel en update ik de main tabel.

    Nu doe ik een query met SELECT * FROM table. Maar eigenlijk wil ik alle kolommen hebben exclusief kolom ncID. Aangezien er +/- 15 kolommen zijn leek het mij eigenlijk onlogisch om elke kolom in de SELECT statement te plaatsen. Is er geen praktische manier om een specifieke kolom te excluden?
    1SELECT kolom1, kolom2, kolom3 FROM table


    En dan niet de kolom ncID ertussen zetten?
      dinsdag 6 mei 2008 @ 12:33:01 #249
    63192 ursel
    "Het Is Hier Fantastisch!
    pi_58509820
    quote:
    Op dinsdag 6 mei 2008 12:28 schreef JortK het volgende:

    [..]
    [ code verwijderd ]

    En dan niet de kolom ncID ertussen zetten?
    Goh..

    Zoals ik zei:
    quote:
    Op dinsdag 6 mei 2008 12:20 schreef ursel het volgende:
    ...

    Aangezien er +/- 15 kolommen zijn leek het mij eigenlijk onlogisch om elke kolom in de SELECT statement te plaatsen. Is er geen praktische manier om een specifieke kolom te excluden?
      dinsdag 6 mei 2008 @ 12:36:08 #250
    107951 JortK
    Immer kwaliteitsposts
      dinsdag 6 mei 2008 @ 12:45:01 #251
    37634 wobbel
    Da WoBBeL King
    pi_58510035
    quote:
    Op dinsdag 6 mei 2008 12:07 schreef JortK het volgende:

    [..]

    Waarom een left join in een delete statement?

    Je kan toch gewoon dit doen:
    [ code verwijderd ]

    En als je ook de content wil verwijderen:
    [ code verwijderd ]


    Nou omdat ik dit wil uitvoeren eigenlijk:

    DELETE FROM SHOP_Carts
    LEFT JOIN SHOP_Cartcontents
    ON SHOP_Carts.IdCart = SHOP_Cartcontents.CartId
    WHERE SHOP_Carts.Tijd < '250000'

    en daarom wilde i kze koppelen dmv ID

    [ Bericht 18% gewijzigd door wobbel op 06-05-2008 13:21:39 ]
      dinsdag 6 mei 2008 @ 13:21:35 #252
    187069 slacker_nl
    Sicko pur sang
    pi_58510846
    quote:
    Op dinsdag 6 mei 2008 11:46 schreef wobbel het volgende:

    [..]

    Op jou manier krijg ik de volgende fout:
    WHER of WHERE
    In theory there is no difference between theory and practice. In practice there is.
      dinsdag 6 mei 2008 @ 13:23:11 #253
    37634 wobbel
    Da WoBBeL King
    pi_58510876
    quote:
    Op dinsdag 6 mei 2008 13:21 schreef slacker_nl het volgende:

    [..]

    WHER of WHERE
    Zoals je kon zien had ik de goede query er ook bijgezet, aangezien een MySQL foutmelding niet de gehele query teruggeeft. Ik had gewoon WHERE dus
      dinsdag 6 mei 2008 @ 13:40:06 #254
    107951 JortK
    Immer kwaliteitsposts
    pi_58511205
    quote:
    Op dinsdag 6 mei 2008 13:23 schreef wobbel het volgende:

    [..]

    Zoals je kon zien had ik de goede query er ook bijgezet, aangezien een MySQL foutmelding niet de gehele query teruggeeft. Ik had gewoon WHERE dus ;)
    Zo dan:

    1
    2
    DELETE FROM SHOP_Carts
    WHERE SHOP_Carts.Tijd < '250000'


    1
    2
    DELETE FROM SHOP_Cartcontents
    WHERE SHOP_Cartcontents.CartID IN (SELECT CartID from SHOP_Carts WHERE SHOP_Carts.Tijd < '250000')
      dinsdag 6 mei 2008 @ 14:21:20 #255
    37634 wobbel
    Da WoBBeL King
    pi_58512095
    quote:
    Op dinsdag 6 mei 2008 13:40 schreef JortK het volgende:

    [..]

    Zo dan:
    [ code verwijderd ]


    [ code verwijderd ]


    Stomme vraag, moet ik die 2 query's apart uitvoeren of alleen de onderste?
      dinsdag 6 mei 2008 @ 14:23:38 #256
    107951 JortK
    Immer kwaliteitsposts
    pi_58512142
    quote:
    Op dinsdag 6 mei 2008 14:21 schreef wobbel het volgende:

    [..]

    Stomme vraag, moet ik die 2 query's apart uitvoeren of alleen de onderste?
    Lijkt mij allebei, de bovenste verwijderd je 'winkelwagen' de onderste je 'winkelwageninhoud'
    pi_58513942
    Wel andersom lijkt me, als je eerst die bovenste uitvoert levert de subquery in de onderste niks meer op
      dinsdag 6 mei 2008 @ 15:48:44 #258
    107951 JortK
    Immer kwaliteitsposts
    pi_58514037
    quote:
    Op dinsdag 6 mei 2008 15:44 schreef Intrepidity het volgende:
    Wel andersom lijkt me, als je eerst die bovenste uitvoert levert de subquery in de onderste niks meer op
    Goed gezien ja
    pi_58528277
    Ik kan maar niet uitvinden hoe mensen de provider titel kunnen uitlezen zoals op deze site:

    http://aruljohn.com/details.php

    verder heb ik ip 2 country gechecked maar daar kan ik alleen land, stad en landcode uitlezen middels ip ranges..

    Dus niet bovenstaande gegevens...

    -edit-
    Ik heb gepoogd de auteur van bovenstaande URL te mailen maar helaas, hij heeft nergens een contact email adres / form staan...
    The people who lost my respect will never get a capital letter for their name again.
    Like trump...
      woensdag 7 mei 2008 @ 11:38:31 #260
    159841 Dzy
    It is I
    pi_58528956
    Bovenaan z'n site in het menu staat "Contact me"

    http://aruljohn.com/contact.php

    En mocht je erachter zijn kun je het hier dan even posten?

    Vraagje: Als ik een locatie op Googlemaps heb hoe kan ik daar dan de hoogte/breedtegraag van krijgen om google maps te integreren in een site van me?
    "Reality is an illusion created by a lack of alcohol."
      woensdag 7 mei 2008 @ 11:43:33 #261
    62215 qu63
    ..de tijd drinkt..
    pi_58529085
    quote:
    Op woensdag 7 mei 2008 11:38 schreef Dzy het volgende:
    Bovenaan z'n site in het menu staat "Contact me" :)

    http://aruljohn.com/contact.php

    En mocht je erachter zijn kun je het hier dan even posten? :)

    Vraagje: Als ik een locatie op Googlemaps heb hoe kan ik daar dan de hoogte/breedtegraag van krijgen om google maps te integreren in een site van me?
    met ongeveer iets als dit:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    <?php
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
      "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"
    >
    <
    html xmlns="http://www.w3.org/1999/xhtml">
      <
    head>
        <
    meta http-equiv="content-type" content="text/html; charset=utf-8"/>
        <
    title>Google Maps JavaScript API Example</title>
         if(
    $_SERVER['SERVER_SOFTWARE'] == "Abyss/2.0.0.20-X2-Win32 AbyssLib/2.0.0.20"){$key "ABQIAAAAplnifruwGrfwpWvbEV5auhS4B2hPn9jRGCWcnfTi9eR2TxbJAxRuquOiECed3a0MS8kKy014S0rXIg";}else{$key "ABQIAAAAplnifruwGrfwpWvbEV5auhSKsMW_Q8n2eDtD9HmS6wzqCxy26xRijJuhQRwy1t661WeJIX7FqoSNPw";}echo '<script src="http://maps.google.com/maps?file=api&amp;v=2&amp;key='.$key.'" type="text/javascript"></script>'    
        
    <script type="text/javascript">
     
        var 
    map;
        var 
    gdir;
        var 
    geocoder null;
        var 
    addressMarker;
        
        function 
    locatie()
        
            {
                if (
    GBrowserIsCompatible())
                    {      
                        
    map = new GMap2(document.getElementById("map_canvas"));
                        
    map.setCenter(new GLatLng(52.2646805.161900), 17);
                        
    map.enableScrollWheelZoom();
                        
    map.addControl(new GScaleControl());
                        
    map.addControl(new GLargeMapControl());
                        
    GEvent.addListener(map"click", function(geen,test)
                            {
                                
    document.getElementById("naar").value test.toUrlValue().replace(/,/gi", ");
                            });
                    }

            }
        function 
    reken()
            {
                if (
    GBrowserIsCompatible()) {      
                   
    gdir = new GDirections(mapdocument.getElementById("directions"));
                
    GEvent.addListener(gdir"load"onGDirectionsLoad);
                
    GEvent.addListener(gdir"error"handleErrors);
                var 
    van document.getElementById("van").value;
                
    van van.replace(/CS/gi"Centraal Station")
                var 
    naar document.getElementById("naar").value
                naar 
    naar.replace(/CS/gi"Centraal Station")
                var 
    sp document.getElementById("sp").value;
                if(
    document.getElementById("ms").checked)
                    {
                        
    setDirectionsSP(spvannaarsp"nl_NL");
                    }
                else
                    {
                        
    setDirections(vannaar"nl_NL");
                    }
            }
        }
        
           
    function 
    setDirections(fromAddresstoAddresslocale)
        {
            
    gdir.load("from: " fromAddress " to: " toAddress, { "locale"locale });
        }

    function 
    setDirectionsSP(spfromAddresstoAddresssplocale)
        {
        
    gdir.load("from: " sp " to: " fromAddress " to: " toAddress " to: " sp, { "locale"locale });
        }
        
        function 
    handleErrors(){
           if (
    gdir.getStatus().code == G_GEO_UNKNOWN_ADDRESS)
             
    alert("No corresponding geographic location could be found for one of the specified addresses. This may be due to the fact that the address is relatively new, or it may be incorrect.\nError code: " gdir.getStatus().code);
           else if (
    gdir.getStatus().code == G_GEO_SERVER_ERROR)
             
    alert("A geocoding or directions request could not be successfully processed, yet the exact reason for the failure is not known.\n Error code: " gdir.getStatus().code);
           
           else if (
    gdir.getStatus().code == G_GEO_MISSING_QUERY)
             
    alert("The HTTP q parameter was either missing or had no value. For geocoder requests, this means that an empty address was specified as input. For directions requests, this means that no query was specified in the input.\n Error code: " gdir.getStatus().code);

        
    //   else if (gdir.getStatus().code == G_UNAVAILABLE_ADDRESS)  <--- Doc bug... this is either not defined, or Doc is wrong
        //     alert("The geocode for the given address or the route for the given directions query cannot be returned due to legal or contractual reasons.\n Error code: " + gdir.getStatus().code);
             
           
    else if (gdir.getStatus().code == G_GEO_BAD_KEY)
             
    alert("The given key is either invalid or does not match the domain for which it was given. \n Error code: " gdir.getStatus().code);

           else if (
    gdir.getStatus().code == G_GEO_BAD_REQUEST)
             
    alert("A directions request could not be successfully parsed.\n Error code: " gdir.getStatus().code);
            
           else 
    alert("An unknown error occurred.");
           
        }
        function 
    add()
            {
                
    document.getElementById("naar").value document.getElementById("naar").value " to:";
                
    document.getElementById("naar").focus();
            }
        function 
    onGDirectionsLoad(){ 
            var 
    afstand Math.round((gdir.getDistance().meters/1000)*10)/10;
            
    document.getElementById("reken").value afstand " km";
            var 
    sec Math.round(gdir.getDuration().seconds/60);
            
    //document.getElementById("tijd").value = sec + " minuten";
            
            
    if(sec == 60)
                {
                    
    document.getElementById("tijd").value "1 uur" sec;
                }
            else if(
    sec 60)
                {    
                    var 
    test sec/60;
                    var 
    uur Math.floor(test);
                    var 
    minuten sec - (uur 60);
                    
    document.getElementById("tijd").value uur " uur en " minuten " minuten";
                    
                }
            else
                {
                    
    document.getElementById("tijd").value sec " minuten";
                }
            
            var 
    gem Math.round(gdir.getDistance().meters/gdir.getDuration().seconds*3.6);
            
    document.getElementById("gem").value gem " km/h";
        }
        
    </script>

      </head>
      <body onload="locatie()">
        <table>
        <tr>
        <td>&nbsp;</td><td><input type="hidden" id="sp" value="701 @52.264680, 5.161900"><input type="checkbox" id="ms">Vanaf standplaats?</td><td><input type="text" id="van" value=""></td><td><input type="text" id="naar" value="" size="50"></td><td><input type="button" onclick="reken()"></td><td><input type="text" id="reken"></td><td><input type="text" id="tijd"></td><td><input type="text" id="gem"></td>
        </tr>
        <tr>
        <td>Voorbeeld:</td><td>Standplaats</td><td>Amsterdam Centraal Station</td><td>Hilversum to: Jaarbeursplein, Utrecht</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td>
        </tr>
        <tr>
        <td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td><a href="#" onclick="add()">bestemming toevoegen</a></td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td>
        </tr>
        <div id="totaal"></div>
        <div id="klant"></div>
        </table>
        <script type="text/javascript">
        //document.write(startAddress);
        </script>
        
        <div id="map_canvas" style="width: 600px; height: 400px"></div>
        <!--
        <div id="directions" style="width: 275px; height: 400px"></div>
        <div id="map_canvas" style="width: 70%; height: 480px; float:left; border: 1px solid black;"></div>
        <div id="route" style="width: 25%; height:480px; float:right; border; 1px solid black;"></div>-->
      </body>
    </html>
    ?>

    zoiets :P

    Key moet je zelf aanvragen vie de google-api site :)

    Overigens staan daar nog meer voorbeelden op :)
    It's Time To Shine
    [i]What would life be like without rhethorical questions?[/i]
      woensdag 7 mei 2008 @ 11:46:55 #262
    107951 JortK
    Immer kwaliteitsposts
    pi_58529161
    quote:
    Op woensdag 7 mei 2008 11:38 schreef Dzy het volgende:
    Bovenaan z'n site in het menu staat "Contact me"

    http://aruljohn.com/contact.php

    En mocht je erachter zijn kun je het hier dan even posten?

    Vraagje: Als ik een locatie op Googlemaps heb hoe kan ik daar dan de hoogte/breedtegraag van krijgen om google maps te integreren in een site van me?
    Check ook de site van WyriHaximus die heeft er ook aardig wat informatie opstaan.
      woensdag 7 mei 2008 @ 11:58:38 #263
    159841 Dzy
    It is I
    pi_58529445
    Key heb ik, maar het gaat erom dat ik bij maps.google.com bij een locatie de hoogte en lengtebreedte kan vinden zodat ik die kan integreren. Als ik bij die examples kijk staat er overal dit soort dingen:

    map.setCenter(new GLatLng(37.4419, -122.1419), 13);

    Daar gaat het me om, hoe bepaal ik van een bepaalde straat als ik die opzoek bij googlemaps wat de GLatLng moet zijn?
    "Reality is an illusion created by a lack of alcohol."
      woensdag 7 mei 2008 @ 12:03:22 #264
    62215 qu63
    ..de tijd drinkt..
    pi_58529567
    quote:
    Op woensdag 7 mei 2008 11:58 schreef Dzy het volgende:
    Key heb ik, maar het gaat erom dat ik bij maps.google.com bij een locatie de hoogte en lengtebreedte kan vinden zodat ik die kan integreren. Als ik bij die examples kijk staat er overal dit soort dingen:

    map.setCenter(new GLatLng(37.4419, -122.1419), 13);

    Daar gaat het me om, hoe bepaal ik van een bepaalde straat als ik die opzoek bij googlemaps wat de GLatLng moet zijn?
    als je nu naar maps.google.com gaat, een locatie opzoekt, en dan klikt op "link naar deze pagina", dan zie je in die url de coördinaten en het zoomniveau staan:

    http://maps.google.nl/maps?f=q&hl=nl&geocode=&q=Amsterdam&ie=UTF8&ll=52.373713,4.890976&spn=0.128695,0.32135&t=h&z=12&iwloc=addr
    ll zijn dus de coördinaten, en z is het zoomniveau
    It's Time To Shine
    [i]What would life be like without rhethorical questions?[/i]
      woensdag 7 mei 2008 @ 12:07:06 #265
    62215 qu63
    ..de tijd drinkt..
    pi_58529671
    It's Time To Shine
    [i]What would life be like without rhethorical questions?[/i]
      woensdag 7 mei 2008 @ 12:21:39 #266
    84926 WyriHaximus
    Release the hounds smithers!
    pi_58529995
    quote:
    Op woensdag 7 mei 2008 11:58 schreef Dzy het volgende:
    Key heb ik, maar het gaat erom dat ik bij maps.google.com bij een locatie de hoogte en lengtebreedte kan vinden zodat ik die kan integreren. Als ik bij die examples kijk staat er overal dit soort dingen:

    map.setCenter(new GLatLng(37.4419, -122.1419), 13);

    Daar gaat het me om, hoe bepaal ik van een bepaalde straat als ik die opzoek bij googlemaps wat de GLatLng moet zijn?
    Lees dit eens, dit gaat over geocoding (het omzetten van een adres naar lat/long coördinaten) http://code.google.com/ap(...)vices.html#Geocoding .
    phluphy for president!
      woensdag 7 mei 2008 @ 14:46:07 #267
    159841 Dzy
    It is I
    pi_58533126
    Dank jullie allen voor de links, ik ben er al uitgekomen

    Ik ga nu maar eens met cURL spelen om automagisch allerlei dingen van imdb te plukken en in mijn database te gooien zodat ik mooi links kan leggen tussen allerlei films in mijn collectie.
    "Reality is an illusion created by a lack of alcohol."
      woensdag 7 mei 2008 @ 15:19:38 #268
    107951 JortK
    Immer kwaliteitsposts
    pi_58533906
    quote:
    Op woensdag 7 mei 2008 14:46 schreef Dzy het volgende:
    Dank jullie allen voor de links, ik ben er al uitgekomen

    Ik ga nu maar eens met cURL spelen om automagisch allerlei dingen van imdb te plukken en in mijn database te gooien zodat ik mooi links kan leggen tussen allerlei films in mijn collectie.
    Altijd leuk
    pi_58537459
    quote:
    Op woensdag 7 mei 2008 11:38 schreef Dzy het volgende:
    Bovenaan z'n site in het menu staat "Contact me"

    http://aruljohn.com/contact.php

    En mocht je erachter zijn kun je het hier dan even posten?
    Bij deze

    Aangezien ik geen email adres kon vinden en ook zijn MSN niet overeenkomt met zijnmsn@msn.com (tenminste krijg het emailtje terug)

    Help wanted
    The people who lost my respect will never get a capital letter for their name again.
    Like trump...
      woensdag 7 mei 2008 @ 18:41:21 #270
    159841 Dzy
    It is I
    pi_58538094
    Misschien is het wel @hotmail.com, veel lui msnen daar onder. Verder kan ik je helaas niet helpen
    "Reality is an illusion created by a lack of alcohol."
      woensdag 7 mei 2008 @ 19:48:23 #271
    159841 Dzy
    It is I
    pi_58539305
    Hmm, hoe doen jullie dat met headers enzo sturen met curl? Als ik met cURL imdb probeer te openen geeft hij een 111 error, volgens google betekent dit dat hij geen connectie kan openen. Ik heb ook een paar andere pagina's geprobeerd te openen maar allen geven error 111. Dit is m'n code, ik doe toch niets fout of wel?

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <?
    $ch = curl_init(); 
    echo curl_error($ch);
    curl_setopt($ch, CURLOPT_URL, "http://www.google.com/"); //movie PI 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
    curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)");
    $output = curl_exec($ch); 
    echo curl_error($ch);
    curl_close($ch); 
    echo $output;
    ?>


    Volgens phpinfo support mn host wel cURL:

    CURL support enabled
    CURL Information libcurl/7.10.6 OpenSSL/0.9.7a ipv6 zlib/1.1.4

    Dus ik snap niet precies wat er mis is. Iemand? :D
    "Reality is an illusion created by a lack of alcohol."
      woensdag 7 mei 2008 @ 19:50:00 #272
    62215 qu63
    ..de tijd drinkt..
    pi_58539338
    zo open je google.com he. en curl is vooral om een formulier te submitten (om bijvoorbeeld automatisch op fok te kunnen posten)
    It's Time To Shine
    [i]What would life be like without rhethorical questions?[/i]
      woensdag 7 mei 2008 @ 19:54:48 #273
    107951 JortK
    Immer kwaliteitsposts
    pi_58539450
    quote:
    Op woensdag 7 mei 2008 19:48 schreef Dzy het volgende:
    Hmm, hoe doen jullie dat met headers enzo sturen met curl? Als ik met cURL imdb probeer te openen geeft hij een 111 error, volgens google betekent dit dat hij geen connectie kan openen. Ik heb ook een paar andere pagina's geprobeerd te openen maar allen geven error 111. Dit is m'n code, ik doe toch niets fout of wel?
    [ code verwijderd ]

    Volgens phpinfo support mn host wel cURL:

    CURL support enabled
    CURL Information libcurl/7.10.6 OpenSSL/0.9.7a ipv6 zlib/1.1.4

    Dus ik snap niet precies wat er mis is. Iemand?
    Waarschijnlijk moet je cookies meesturen

    Dan kun je checken met LiveHTTPHeaders
      woensdag 7 mei 2008 @ 20:16:43 #274
    159841 Dzy
    It is I
    pi_58539961
    Dat het google was, was om te checken of ik wel andere sites kon benaderen met curl. En het is onzin dat het alleen bedoeld is om formulieren te submitten, ik zie ook vaak zat dat het gebruikt wordt informatie te halen uit andere pagina's, dit vind ik ook een hele mooie toepassing, lekker film info van de site daar halen. Ik had het even wat ingekort inderdaad, ik had deze twee regels voor imdb er ook bij gezet, voor cookies:

    1
    2
    curl_setopt($ch, CURLOPT_COOKIEJAR, "cook"); 
    curl_setopt($ch, CURLOPT_COOKIEFILE, "cook");


    Dat zag ik ergens anders staan voor cookies. Als ik met LiveHTTPHeaders kijk dan zie ik voor cookies dit staan: Cookie: PREF=ID=1a2763e15df2eb83:TM=1160573487:LM=1210180097:GM=1:S=4Rst5wA_UWU39O8F

    Wat dit allemaal betekent zegt me niet zoveel, maar het zal wel o.a. de session ID hebben. Dit is het hele header block van de pagina van Harold and Kumar 2:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    http://www.imdb.com/title/tt0481536/

    GET /title/tt0481536/ HTTP/1.1
    Host: www.imdb.com
    User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.11) Gecko/20071127 Firefox/2.0.0.11
    Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
    Accept-Language: en-us,en;q=0.5
    Accept-Encoding: gzip,deflate
    Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
    Keep-Alive: 300
    Connection: keep-alive
    Cookie: cs=3uSEDutJagOs3OFX9fmfTA/+EDT6WFdifP3CJGjY9wH/yGBUL0AnYnHqV+pf+MPgb+hXYnlesCI/yFdiSd9X6n/IV1RH2N9ifdZ1YvjrR/b4nrEkL19RlX/IVyLf2BdCf+hXYn/IVyI/mBdSc=; uu=+mWv/hKNWfFsRJrmViWWKAronhA8qJ42rzudgD/b7UM/rt1DLyu9Bm+bvWN9z8lDGt7I4JyonhAPqx6wPAjdct/7vPNq3h6wfP/4lq5OeNCaLmjGaExesEwInrAYXFrUbAj7tU/afWMf6n0zLyu880877rD/2+0DT7u9AxyoPrCc6L4QO57IRtyonhB5n56YIfgKkiw8HA48qJ4QCw5+UByo2AbiRs4QPLgKkiyInhA8qJ5QfPjeID; session-id=613-0180128-2350691; session-id-time=1210266528

    HTTP/1.x 200 OK
    Date: Wed, 07 May 2008 18:14:36 GMT
    Server: Server
    Set-Cookie: uu=grgE9OCRwbH3IQaed7gfHAronhA8qJ42rzudgD/b7UM/rt1DLyu9Bm+bvWN9z8lDGt7I4JyonhAPqx6wPAjdct/7vPNq3h6wfP/4lq5OeNCaLmjGaExesEwInrAYXFrUbAj7tU/afWMf6n0zLyu880877rD/2+0DT7u9AxyoPrCc6L4QOr5JttyonhB4KoHp/KieAKpI3jA876hGZLieED69qRCypc6EvJgKkiyInhA8qJ5QfPjeID;expires=Thu, 30 Dec 2037 00:00:00 GMT;path=/;domain=.imdb.com
    Set-Cookie: cs=accfTfBlqOPm1/G+Z8Z1YQH1umv2w+17xkvd83JB8mM2w+1LYEOtW/bD2zyhpZ179fRpbVZQrlhgVQo7VsPte8DU7fP2w+1NztNle/Tdz3tx4P3vcZULPaZU64z2w+07VtOtW/bj7Xv2w+07tpOtS/;expires=Thu, 08 May 2008 07:00:00 GMT;path=/;domain=.imdb.com
    Cache-Control: private
    Content-Type: text/html
    Vary: Accept-Encoding,User-Agent
    Content-Encoding: gzip
    Content-Length: 13154
    nnCoection: close


    Het eerste block zijn de headers die FF verstuurt, het tweede zijn de headers die ik terugkrijg? Wat moet ik nu allemaal bij cURL instellen zodat cURL ook netjes de pagina terugkrijgt? :) En als daar kort commentaar bij zou kunnen komen waarom dat precies dan kan ik het de volgende keer waarschijnlijk wel zelf :)
    "Reality is an illusion created by a lack of alcohol."
      woensdag 7 mei 2008 @ 20:40:47 #275
    12880 CraZaay
    prettig gestoord
    pi_58540457
    quote:
    Op woensdag 7 mei 2008 19:50 schreef qu63 het volgende:
    en curl is vooral om een formulier te submitten (om bijvoorbeeld automatisch op fok te kunnen posten)
    Waar slaat dat nou weer op? Curl is geschikt om o.a. GET, POST, PUT en DELETE requests uit te kunnen voeren, bijvoorbeeld om een RESTful interface te gebruiken. Hoe kom je erbij dat het vooral is om een formulier te posten?
      woensdag 7 mei 2008 @ 20:42:28 #276
    62215 qu63
    ..de tijd drinkt..
    pi_58540497
    quote:
    Op woensdag 7 mei 2008 20:40 schreef CraZaay het volgende:

    [..]

    Waar slaat dat nou weer op? Curl is geschikt om GET, POST, PUT en DELETE requests uit te kunnen voeren, bijvoorbeeld om een RESTful interface te gebruiken. Hoe kom je erbij dat het vooral is om een formulier te posten?
    omdat ik het zo alleen gebruik
    It's Time To Shine
    [i]What would life be like without rhethorical questions?[/i]
      donderdag 8 mei 2008 @ 00:00:58 #277
    159841 Dzy
    It is I
    pi_58545004
    Kan iemand anders proberen IMDB te benaderen via cURL? Ik heb een joomla extension gevonden waarin ze ook met cURL imdb aanspreken en daar stond alleen extra een regeltje curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $timeout); bij, en ook daarmee deed hij het bij mij niet. Ik ben dus bang dat er bij mijn host iets niet helemaal goed zit. Dit is de volledige code die zou moeten werken:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    $ch = curl_init();
    echo curl_error($ch);
    $timeout = 5; // set to zero for no timeout
    curl_setopt ($ch, CURLOPT_URL, 'http://www.imdb.com/nowplaying/');
    curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
    $file_contents = curl_exec($ch);
    echo curl_error($ch);
    curl_close($ch);
    echo $file_contents;
    "Reality is an illusion created by a lack of alcohol."
      donderdag 8 mei 2008 @ 00:05:58 #278
    62215 qu63
    ..de tijd drinkt..
    pi_58545091
    quote:
    Op donderdag 8 mei 2008 00:00 schreef Dzy het volgende:
    Kan iemand anders proberen IMDB te benaderen via cURL? Ik heb een joomla extension gevonden waarin ze ook met cURL imdb aanspreken en daar stond alleen extra een regeltje curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $timeout); bij, en ook daarmee deed hij het bij mij niet. Ik ben dus bang dat er bij mijn host iets niet helemaal goed zit. Dit is de volledige code die zou moeten werken:
    [ code verwijderd ]
    ik krijg een
    "Fatal error: Call to undefined function curl_init() in C:\web\www\test.php on line 2"-melding
    It's Time To Shine
    [i]What would life be like without rhethorical questions?[/i]
      donderdag 8 mei 2008 @ 00:07:25 #279
    62215 qu63
    ..de tijd drinkt..
    pi_58545115
    hmz, fout zit bij mij denk ik. copy-paste vanaf php.net geeft dezelfde melding
    It's Time To Shine
    [i]What would life be like without rhethorical questions?[/i]
      donderdag 8 mei 2008 @ 00:16:23 #280
    159841 Dzy
    It is I
    pi_58545269
    Er is geen cURL geinstalleerd dan

    Edit: Maar toch bedankt
    "Reality is an illusion created by a lack of alcohol."
      donderdag 8 mei 2008 @ 00:51:25 #281
    159841 Dzy
    It is I
    pi_58545862
    Sterf, kuthost.

    Tijd om een nieuwe host te vinden.
    quote:
    Het is op onze machines niet meer mogelijk om externe URL's te 'includen' met Perl of met het PHP commando "fopen" of "curl" (allow_url_fopen). Het betreft hier uitsluitend http includes en connecties met het IRC en MSN netwerk.

    Dit is gedaan in verband met de veiligheid van de aanwezige sites op deze servers, en voorkomt dat persoonlijke informatie zoals o.a. passwords makkelijk te verkrijgen is door hackers. Daarnaast kregen wij regelmatig klachten van website beheerders dat content zonder toestemming werd overgenomen en dat er via onze server getracht werd illegale activiteiten te ontplooien gebruikmakend van een Proxy-script (Als PHProxy), om zodoende de identiteit van de surfer te verbergen.

    We verontschuldigen ons voor het onwaarschijnlijke geval dat u hinder ondervindt van deze configuratieaanpassing, echter hopen we dat u begrijpt dat deze aanpassing vrijwel uitsluitend voordelen heeft voor de beveiliging op de gehele server, en dat dit door ons ook niet per hostingpakket in te stellen is.

    Overigens zijn er wel mogelijkheden om via html externe url's te includen. U doet dat door een zgn. "iframe" op te nemen, met daarin een directe link naar de pagina die u wilt includen. Zodoende loopt de include vanaf de server van de eigenaar zelf, en laadt daarnaast uw website veel sneller. (En het scheelt u dataverbruik).

    Het openen van sockets via poort 80 is door de maatregel ook niet meer mogelijk. Wellicht kunt u gebruik maken van poort 81 of 443 voor https communicatie.
    Ze hebben gewoon een firewall aanstaan dat al het verkeer via poort 80 naar buiten tegenhoudt.
    "Reality is an illusion created by a lack of alcohol."
      donderdag 8 mei 2008 @ 01:04:17 #282
    159841 Dzy
    It is I
    pi_58546048
    Wat wel een voordeel is is dat het in ieder geval niet aan mij lag dat het fout ging Iemand nog een suggestie voor fatsoenlijke host tegen een normaal prijsje? Wat in ieder geval moet kunnen:

    - cURL ( )
    - MySQL
    - PHP 5
    - Cronjobs/tasks
    - Een beetje fatsoenlijke snelheid (hoeft niet heel erg hoog te liggen)
    "Reality is an illusion created by a lack of alcohol."
      donderdag 8 mei 2008 @ 08:39:49 #283
    12880 CraZaay
    prettig gestoord
    pi_58547774
    quote:
    Op donderdag 8 mei 2008 00:51 schreef Dzy het volgende:

    Ze hebben gewoon een firewall aanstaan dat al het verkeer via poort 80 naar buiten tegenhoudt.
    Bizar zeg. Ze gaan er vanuit dat je nooit een of andere API van een webservice wilt gebruiken?
      donderdag 8 mei 2008 @ 09:10:19 #284
    62215 qu63
    ..de tijd drinkt..
    pi_58548222
    quote:
    Op donderdag 8 mei 2008 00:16 schreef Dzy het volgende:
    Er is geen cURL geinstalleerd dan

    Edit: Maar toch bedankt
    Ik heb er uitgebreid mee geëxpirimenteerd, dus het is zeker wel geïnstalleerd
    It's Time To Shine
    [i]What would life be like without rhethorical questions?[/i]
      donderdag 8 mei 2008 @ 09:25:00 #285
    159841 Dzy
    It is I
    pi_58548488
    quote:
    Op donderdag 8 mei 2008 08:39 schreef CraZaay het volgende:

    [..]

    Bizar zeg. Ze gaan er vanuit dat je nooit een of andere API van een webservice wilt gebruiken?
    Ja. Goed, nu wilde ik ook deze host gewoon als test domein gebruiken en het heeft best mooie stats voor die 20 euro per jaar maar nu begin ik het een beetje zat te worden
    "Reality is an illusion created by a lack of alcohol."
      donderdag 8 mei 2008 @ 09:45:38 #286
    159841 Dzy
    It is I
    pi_58548880
    Call to undefined function betekent gewoon dat die functie niet bestaat, daarom ging ik er eigenlijk vanuit dat cURL niet geïnstaleerd stond
    "Reality is an illusion created by a lack of alcohol."
      donderdag 8 mei 2008 @ 12:42:26 #287
    37634 wobbel
    Da WoBBeL King
    pi_58552376
    Ik heb een script dat bijlagen verzend, maar die werkt niet helemaal goed
    De bijlagen komen in Mozilla Thunderbird wel goed binnen, alleen Gmail ziet ze als beschadigd...en sommige andere e-mail clients vreten hem ook niet

    Dit is de code:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    <?php
    /* Load main library Files */
    require_once                            ( "lib/htconfig.php" );
    require_once                            ( 
    LIB_PATH "/f_core.php" );

    $path                                    BASE_PATH "/include/upload/fck/voorkant.jpg";
    $to                                        "wobbel@gmail.com";
    $subject                                "Test";
    $body                                    "testberichtje";
    $filename                                "plaatje.jpg";

    // Open te file         
    $fp                                            = @fopen $path"r" );  
            
    // Check for errors
    if ( !$fp 
    {  

        die                                        ( 
    "Error #4" );  

    }
     
    // Grab file from server
    while ( !feof $fp ) )
    {

        
    $file_content                              .= fread $fp 1024 );  
        
    }

    // Close file
    fclose                                        $fp );

    // Encode file base 64
    $file_content                                 chunk_split base64_encode $file_content ) );  
        
    // Create unique boundary using md5
    $boundary                                     strtoupper md5 uniqid time (  ) ) ) );  
        
    // Create the headers
    $header                                     .= "MIME-version: 1.0\n";  
    $header                                     .= "Content-Type: multipart/mixed;\n";  
    $header                                     .= "\tboundary= " $boundary "\n\n";             
    $header                                     .= "This is a multi-part message in MIME format.\n\n";  
        
    // Creathe message body
    $header                                     .= "--" $boundary "\n";  
    $header                                     .= "Content-type: text/html; charset=iso-8859-1;\n";  
        
    // Adding the message to the body 
    $header                                     .= "De tekst in mijn email\n\n";  
            
    // Adding headers for the attachment
    $header                                     .= "--" $boundary "\n"
    $header                                     .= "Content-Type: application/octet-stream; name=\"" $filename "\"\n";
    $header                                     .= "Content-Transfer-Encoding: base64;\n";  
    $header                                     .= "Content-Disposition: attachment; filename=\"" $filename "\"\n\n"

    // Add the attachment to the headers
    $header                                     .= $file_content "\n\n";         
    $header                                     .= "--" $boundary "--";
            
    // Send the e-mail
    mail                                        ($to,$subject,"",$header);
    echo 
    "verzonden...";
    ?>


    BASE_PATH is gewoon goed gedefinieerd alleen de bestanden die ik binnenkrijg zijn allemaal beschadigd
    Bestandsgrootte's kloppen wel ongeveer

    [ Bericht 1% gewijzigd door wobbel op 08-05-2008 12:47:39 ]
      donderdag 8 mei 2008 @ 13:41:48 #288
    37634 wobbel
    Da WoBBeL King
    pi_58553655
    quote:
    Op dinsdag 6 mei 2008 14:23 schreef JortK het volgende:

    [..]

    Lijkt mij allebei, de bovenste verwijderd je 'winkelwagen' de onderste je 'winkelwageninhoud'
    Oke, ik heb nu dit...maar die leegt alsnog de hele tabel SHOP_Cartcontents, ongeacht de datum van SHOP_Carts.Date

    1
    2
    3
    4
    <?php
    mysql_query        
    "DELETE FROM SHOP_Cartcontents WHERE SHOP_Cartcontents.CartID IN (SELECT CartID from SHOP_Carts WHERE SHOP_Carts.Date < '1210246772')" ) or die ( mysql_error (  ) );
    mysql_query        "DELETE FROM SHOP_Carts WHERE Date < '1210246772'" ) or die ( mysql_error (  ) );
    ?>
    pi_58568790
    Ik heb pas een mooie SOAP/XML server gemaakt met NuSOAP, met een aantal bijbehorende clients. Hartstikke leuk, en het werkt ook prima ... Deze data is natuurlijk voor iedereen beschikbaar, dus nu krijg ik alleen de vraag of er ook een authorisatie mechanisme kan komen. Dus dat je eerst moet inloggen, voordat je de data krijgt.

    In NuSOAP heb ik wel de functie SetCredentials() gevonden, waarmee je dus je username en password kan zetten. Wat ik alleen niet begrijp is waartegen deze gechecked worden ... Moet ik een functie maken die de inloggegevens met de database vergelijkt, is dit een HTTP authenticatie, etc. ?

    Wie weet raad?
    pi_58568855
    quote:
    Op donderdag 8 mei 2008 12:42 schreef wobbel het volgende:
    Ik heb een script dat bijlagen verzend, maar die werkt niet helemaal goed
    De bijlagen komen in Mozilla Thunderbird wel goed binnen, alleen Gmail ziet ze als beschadigd...en sommige andere e-mail clients vreten hem ook niet

    Dit is de code:
    [ code verwijderd ]

    BASE_PATH is gewoon goed gedefinieerd alleen de bestanden die ik binnenkrijg zijn allemaal beschadigd
    Bestandsgrootte's kloppen wel ongeveer
    Is er een reden dat je zelf bijlagen wilt versturen? Anders kun je beter phpMailer gebruiken. Die kan ook bijlagen versturen en nog veel meer stoere dingen .
    pi_58573980
    quote:
    Op vrijdag 9 mei 2008 08:21 schreef Xcalibur het volgende:
    Ik heb pas een mooie SOAP/XML server gemaakt met NuSOAP, met een aantal bijbehorende clients. Hartstikke leuk, en het werkt ook prima ... Deze data is natuurlijk voor iedereen beschikbaar, dus nu krijg ik alleen de vraag of er ook een authorisatie mechanisme kan komen. Dus dat je eerst moet inloggen, voordat je de data krijgt.

    In NuSOAP heb ik wel de functie SetCredentials() gevonden, waarmee je dus je username en password kan zetten. Wat ik alleen niet begrijp is waartegen deze gechecked worden ... Moet ik een functie maken die de inloggegevens met de database vergelijkt, is dit een HTTP authenticatie, etc. ?

    Wie weet raad?
    Als ik het goed begrijp kan SOAP alleen met HTTP authenticatie overweg, de rest zal je dus in de soap-server moeten oplossen. Wat ik dus gedaan heb, en dat lijkt allemaal te werken
    pi_58625747
    kan iemand voor mij verifieren dat deze query alleen de oude gegevens verwijdert? Het is zo lullig als er belangrijke gegevens verloren gaan door mijn gepruts :')

    :P

    1
    2
    3
    4
    5
    6
    7
    <?php
    $limit 
    50000;
    $num_records $db->result('SELECT COUNT(id) FROM stat_info');
    if (
    $num_records $limit) {
       
    $db->query('DELETE FROM stat_info ORDER BY date ASC LIMIT '.($num_records-$limit));
    }
    ?>
    ..///
    pi_58625808
    quote:
    Op maandag 12 mei 2008 13:26 schreef wipes66 het volgende:
    kan iemand voor mij verifieren dat deze query alleen de oude gegevens verwijdert? Het is zo lullig als er belangrijke gegevens verloren gaan door mijn gepruts


    [ code verwijderd ]
    Volgens mij gaat de delete-query mis, omdat date een keyword is in MySQL. Daar zou je dan backtics omheen moeten zetten, dus `date`. Nog mooier is het om geen keywords als kolomnamen te gebruiken
    pi_58625956
    Nee hoor, date is geen keyword, als kolomnaam heb je geen backticks nodig. Deze query moet gewoon goed gaan. En ja, hij wist alleen oude records.
    pi_58626086
    quote:
    Op maandag 12 mei 2008 13:26 schreef wipes66 het volgende:
    kan iemand voor mij verifieren dat deze query alleen de oude gegevens verwijdert? Het is zo lullig als er belangrijke gegevens verloren gaan door mijn gepruts


    [ code verwijderd ]
    Als je DELETE even vervangt door SELECT *, dan kun je zien wat er allemaal verwijderd gaat worden.
    pi_58626202
    quote:
    Op maandag 12 mei 2008 13:40 schreef Farenji het volgende:
    Nee hoor, date is geen keyword, als kolomnaam heb je geen backticks nodig. Deze query moet gewoon goed gaan. En ja, hij wist alleen oude records.
    Het is wel een keyword. Maar voor dit specifieke geval heb je inderdaad geen backticks nodig. Dat zegt de MySQL documentatie.
      maandag 12 mei 2008 @ 14:18:33 #297
    3677 SuperRembo
    Sinds 1998
    pi_58626544
    quote:
    Op maandag 12 mei 2008 13:26 schreef wipes66 het volgende:
    kan iemand voor mij verifieren dat deze query alleen de oude gegevens verwijdert? Het is zo lullig als er belangrijke gegevens verloren gaan door mijn gepruts


    [ code verwijderd ]

    Als dit script twee maal tegelijk wordt uitgevoerd bestaat (theoretisch) de kans dat je alle records verwijderd. Waarom niet gewoon zo?
    1DELETE FROM stat_info ORDER BY date DESC LIMIT 50000, 1000000000


    [ Bericht 5% gewijzigd door SuperRembo op 12-05-2008 14:51:34 ]
    Wil iedereen die in telekinese gelooft nu mijn hand op steken?
    | Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
      maandag 12 mei 2008 @ 14:23:38 #298
    62215 qu63
    ..de tijd drinkt..
    pi_58626632
    quote:
    Op maandag 12 mei 2008 14:18 schreef SuperRembo het volgende:

    [..]

    Als dit script twee maal tegelijk wordt uitgevoerd bestaat (theoretisch) de kans dat je alle records verwijderd. Waarom niet gewoon zo?
    [ code verwijderd ]
    of als er 50001 records zijn blijft er nog maar 1 record over.
    It's Time To Shine
    [i]What would life be like without rhethorical questions?[/i]
      maandag 12 mei 2008 @ 14:52:52 #299
    3677 SuperRembo
    Sinds 1998
    pi_58627091
    quote:
    Op maandag 12 mei 2008 14:23 schreef qu63 het volgende:

    [..]

    of als er 50001 records zijn blijft er nog maar 1 record over.
    Foutje. De nieuwste 50000 moeten natuurlijk blijven staan, niet de oudste. Dus ORDER BY date DESC niet ASC.
    Wil iedereen die in telekinese gelooft nu mijn hand op steken?
    | Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
    pi_58628157
    ok ik heb het nu omgedraaid. nu selecteer hij de nieuwste eerst, maar begint pas te verwijderen bij $limit

    1
    2
    3
    4
    5
    6
    7
    <?php
    $limit 
    50000;
    $num_records $db->result('SELECT COUNT(id) FROM stat_info');
    if (
    $num_records $limit) {
            
    $db->query('DELETE FROM stat_info ORDER BY date DESC LIMIT ?,?',array($limit,$num_records));
    }
    ?>
    ..///
      maandag 12 mei 2008 @ 16:15:55 #301
    3677 SuperRembo
    Sinds 1998
    pi_58628328
    Waarom tel je eerst het totaal aantal records? Dat is overbodig, je kunt gewoon een (absurd) groot getal voor het maximaal aantal records dat er verwijderd mag worden.
    Wil iedereen die in telekinese gelooft nu mijn hand op steken?
    | Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
    abonnement Unibet Coolblue Bitvavo
    Forum Opties
    Forumhop:
    Hop naar:
    (afkorting, bv 'KLB')