FOK!forum / Digital Corner / [PHP/(My)SQL] voor dummies - Deel 49
JortKvrijdag 17 augustus 2007 @ 13:56

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

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
  • PiRANiAvrijdag 17 augustus 2007 @ 14:01
    Hollee! Teeveepee!
    Chandlervrijdag 17 augustus 2007 @ 14:12
    quote:
    Op vrijdag 17 augustus 2007 14:01 schreef PiRANiA het volgende:
    Hollee! Teeveepee!
    PiRANiAvrijdag 17 augustus 2007 @ 14:15
    Problem uit vorige topic is gesolved. Elders werkte het wel.

    Raar eigenlijk :/

    Wat moet ik installeren om de mail() goed te laten werken ??
    WyriHaximusvrijdag 17 augustus 2007 @ 14:41
    Terug Vind PHP:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    <?php
    if(str_replace(array("n","r",'http://','https://','ftp://'),'',$_SERVER['REQUEST_URI'])!=$_SERVER['REQUEST_URI'])
    {
        
    $tmp_req_uri = $_SERVER['REQUEST_URI'];
        if(
    substr($tmp_req_uri,0,7)=='http://')
        {
            
    $tmp_req_uri = substr($tmp_req_uri,7,(strlen($tmp_req_uri)-7));
        }
        elseif(
    substr($tmp_req_uri,0,8)=='https://')
        {
            
    $tmp_req_uri = substr($tmp_req_uri,8,(strlen($tmp_req_uri)-8));
        }
        elseif(
    substr($tmp_req_uri,0,6)=='ftp://')
        {
            
    $tmp_req_uri = substr($tmp_req_uri,6,(strlen($tmp_req_uri)-6));
        }
        if(
    str_replace(array("n","r",'http://','https://','ftp://'),'',$tmp_req_uri)!=$tmp_req_uri)
        {
            die(
    "You lose!");
        }
    }
    ?>
    JeRavrijdag 17 augustus 2007 @ 15:38
    Toch veel posts, deze reeks.
    Xtr3mEvrijdag 17 augustus 2007 @ 15:59
    Is het met PHP mogelijk om de dag te bepalen als je een datum (in de toekomst) hebt?

    Dus ik heb in de database een datum, die haal ik eruit en wil dan weten welke dag dat is. (ma, di, woe enz..)
    JeRavrijdag 17 augustus 2007 @ 16:02
    quote:
    Op vrijdag 17 augustus 2007 15:59 schreef Xtr3mE het volgende:
    Is het met PHP mogelijk om de dag te bepalen als je een datum (in de toekomst) hebt?

    Dus ik heb in de database een datum, die haal ik eruit en wil dan weten welke dag dat is. (ma, di, woe enz..)
    Ja, in PHP kan dat met date() of getdate() daarvoor moet je er wel een timestamp van maken.
    PiRANiAvrijdag 17 augustus 2007 @ 18:24
    quote:
    Op vrijdag 17 augustus 2007 15:59 schreef Xtr3mE het volgende:
    Is het met PHP mogelijk om de dag te bepalen als je een datum (in de toekomst) hebt?

    Dus ik heb in de database een datum, die haal ik eruit en wil dan weten welke dag dat is. (ma, di, woe enz..)
    $dag = date(w, mktime(uur,minuut,seconde,maand,dag,jaar));

    en dan uur, minuut etcetera invullen
    denBvrijdag 17 augustus 2007 @ 19:12
    Ik krijg een error op mijn gastenboek pagina. Hij kwam van een andere website, zodat we hem konden testen. Nu hebben we hem op mijn website geplaatst en krijgen we het volgende:

    Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /home/****/domains/****.nl/public_html/****/gastenboek.php:13) in /home/****/domains/****.nl/public_html/****/config.php on line 5


    Zodra we:

    // Prepare session

    if(!isset($_SESSION)) session_start();

    Verwijderen, verdwijnt de text die in te image vertificatie staat.
    En krijgen we simpel weg alleen een blank plaatje te zien.

    Iemand enige idee hoe dit op te lossen is?
    PiRANiAvrijdag 17 augustus 2007 @ 19:22
    quote:
    Op vrijdag 17 augustus 2007 19:12 schreef denB het volgende:
    Ik krijg een error op mijn gastenboek pagina. Hij kwam van een andere website, zodat we hem konden testen. Nu hebben we hem op mijn website geplaatst en krijgen we het volgende:

    Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /home/****/domains/****.nl/public_html/****/gastenboek.php:13) in /home/****/domains/****.nl/public_html/****/config.php on line 5


    Zodra we:

    // Prepare session

    if(!isset($_SESSION)) session_start();

    Verwijderen, verdwijnt de text die in te image vertificatie staat.
    En krijgen we simpel weg alleen een blank plaatje te zien.

    Iemand enige idee hoe dit op te lossen is?
    zet je session_start(); ergens in je code waar er nog geen output gegeven is, ergens bovenin dus
    PiRANiAvrijdag 17 augustus 2007 @ 19:23
    Hoe zet je btw op fok nou een php code?
    misschien handig om in de OP aan te geven? ;_)
    denBvrijdag 17 augustus 2007 @ 19:28
    quote:
    Op vrijdag 17 augustus 2007 19:22 schreef PiRANiA het volgende:

    [..]

    zet je session_start(); ergens in je code waar er nog geen output gegeven is, ergens bovenin dus
    Ik heb die sessions start ergens al bovenaan gezet, maar dat gaf weinig resultaat.
    Kan het zijn de mijn provider dit niet ondersteunt?

    Je moet ook .htacces .banlist en .entries uploaden. En zodra die er opstaan, verdwijnen ze :S
    HuHuvrijdag 17 augustus 2007 @ 19:33
    Je provider ondersteund het zeer waarschijnlijk wel, maar het staat niet op de juiste plaats in je bestand. Het moet helemaal bovenaan staan.

    Nu staat het op regel 13 in gastenboek.php, maar in het bestand config.php wordt op regel 5 al iets gedaan waardoor de sessie niet meer gestart kan worden. Je moet in gastenboek.php je session_start() gewoon helemaal bovenaan zetten.
    HuHuvrijdag 17 augustus 2007 @ 19:34
    quote:
    Op vrijdag 17 augustus 2007 19:23 schreef PiRANiA het volgende:
    Hoe zet je btw op fok nou een php code?
    misschien handig om in de OP aan te geven? ;_)
    Helemaal bovenaan staat de FAQ.
    HuHuvrijdag 17 augustus 2007 @ 19:35
    quote:
    Op vrijdag 17 augustus 2007 18:24 schreef PiRANiA het volgende:

    [..]

    $dag = date(w, mktime(uur,minuut,seconde,maand,dag,jaar));

    en dan uur, minuut etcetera invullen
    De functie [url=php.net/strtotime]strtotime()[/url] is dan nog makkelijker.
    Xcaliburvrijdag 17 augustus 2007 @ 19:38
    Nieuw deel alweer

    Heeft iemand misschien tips voor een tooltje (ofzo) voor geavanceerde image bewerkingen? Het standaard scalen en croppen lukt allemaal wel, ik doel meer op dingen als brightness, contrast, sharpen/blur enzo

    Als er nog een mooie javascript of Flash interface bij zit ben ik helemaal blij
    HuHuvrijdag 17 augustus 2007 @ 19:43
    PHPThumb is daarvoor geniaal, zeker als je ook nog ImageMagick installeert op je server.
    Xcaliburvrijdag 17 augustus 2007 @ 19:46
    Kijk, dat ziet er aardig compleet uit
    denBvrijdag 17 augustus 2007 @ 19:48
    quote:
    Op vrijdag 17 augustus 2007 19:33 schreef HuHu het volgende:
    Je provider ondersteund het zeer waarschijnlijk wel, maar het staat niet op de juiste plaats in je bestand. Het moet helemaal bovenaan staan.

    Nu staat het op regel 13 in gastenboek.php, maar in het bestand config.php wordt op regel 5 al iets gedaan waardoor de sessie niet meer gestart kan worden. Je moet in gastenboek.php je session_start() gewoon helemaal bovenaan zetten.
    uhm...

    Ik probeerde net die map te deleten met die website en gb er in. en toen kreeg ik dit:

    STATUS:> PWD skipped. Current folder: "/public_html/pors".
    COMMAND:> RMD dat
    550 dat: Directory not empty
    ERROR:> Requested action not taken (e.g., file or directory not found, no access).

    Krijg er een beetje een slapje janus van...
    Xcaliburvrijdag 17 augustus 2007 @ 19:54
    staat er geen hidden .htaccess in ofzo? Kijk eens of je een filter met ' -a ' kunt instellen of iets dergelijks
    HuHuvrijdag 17 augustus 2007 @ 19:56
    quote:
    Op vrijdag 17 augustus 2007 19:48 schreef denB het volgende:

    [..]

    uhm...

    Ik probeerde net die map te deleten met die website en gb er in. en toen kreeg ik dit:

    STATUS:> PWD skipped. Current folder: "/public_html/pors".
    COMMAND:> RMD dat
    550 dat: Directory not empty
    ERROR:> Requested action not taken (e.g., file or directory not found, no access).

    Krijg er een beetje een slapje janus van...
    Vrij duidelijk, je kunt geen lege mappen verwijderen. Dat is standaard, dus eerst de map helemaal leeghalen en dan de rest verwijderen. Een goed FTP programma kan (doet) dat ook automatisch.

    En inderdaad even controleren op verborgen bestanden. Alle bestanden waarvan de naam met een . (punt) begint zijn standaard verborgen en worden niet zomaar verwijderd.
    devvertjevrijdag 17 augustus 2007 @ 19:58
    quote:
    Op vrijdag 17 augustus 2007 19:56 schreef HuHu het volgende:

    [..]

    Vrij duidelijk, je kunt geen NIET lege mappen verwijderen. Dat is standaard, dus eerst de map helemaal leeghalen en dan de rest verwijderen. Een goed FTP programma kan (doet) dat ook automatisch.
    Precies
    HuHuvrijdag 17 augustus 2007 @ 20:00
    quote:
    Op vrijdag 17 augustus 2007 19:58 schreef devvertje het volgende:

    [..]

    Precies
    Die bijdehante kut-devvertjes altijd .
    denBvrijdag 17 augustus 2007 @ 20:13
    quote:
    Op vrijdag 17 augustus 2007 19:54 schreef Xcalibur het volgende:
    staat er geen hidden .htaccess in ofzo? Kijk eens of je een filter met ' -a ' kunt instellen of iets dergelijks
    Bedankt, dit heeft het probleem op gelost.

    Daardoor kon ik ze instellen op 777 of 666
    En toen heb ik:

    <?php session_start(); ?>
    <?php
    include ("ddgb.php");
    ?>

    Bovenaan geplaatst en nu werkt hij
    devvertjevrijdag 17 augustus 2007 @ 20:17
    quote:
    Op vrijdag 17 augustus 2007 20:00 schreef HuHu het volgende:

    [..]

    Die bijdehante kut-devvertjes altijd .
    * devvertje pakt zijn anti-skiddie beamer

    had je nog wat mannetje?
    HuHuvrijdag 17 augustus 2007 @ 20:33
    quote:
    Op vrijdag 17 augustus 2007 20:17 schreef devvertje het volgende:

    [..]

    * devvertje pakt zijn anti-skiddie beamer

    had je nog wat mannetje?
    Hey... respect hè. Ik heb namelijk wél een tagje .
    WyriHaximusvrijdag 17 augustus 2007 @ 21:10
    lol nerd fight
    Xcaliburvrijdag 17 augustus 2007 @ 21:26
    quote:
    Op vrijdag 17 augustus 2007 20:33 schreef HuHu het volgende:
    Hey... respect hè. Ik heb namelijk wél een tagje .
    wobbelvrijdag 17 augustus 2007 @ 21:37
    als eerste, als je in de buurt woont en je fixt mij dit dan krijg je van mij een kratje bier naar keuze en ik woon helaas in Hengelo

    Oke, ik heb bij deze een hele moeilijke en uitgebreide vraag...

    Ik ben bezig met een simpel intranet systeem zodat bepaalde dingen op 't werk iets simpeler lopen

    Ik wil graag een PC aan kunnen melden voor reparatie. Als er een barcode op de PC zit kan ik die gewoon scannen, anders meld ik hem gewoon aan met de gegevens van de klant op dat moment.

    Stap 1: Ik kies of ik een barcode heb of niet



    Stap 2: Ik krijg een barcode veld te zien waar ik de barcode in kan gooien



    Stap 3: Ik vul de barcode in en die zoekt ie realtime op of ie bestaat



    Oke, nu komt het leuke...

    Stap 1 en 2 heb ik al voor elkaar, en stap 3 nog maar deels

    Ik krijg het namelijk niet voor elkaar met AJAX extra velden te krijgen met daarin de naam van de klant, telefoonnummer en wachtwoord van de PC....
    Het lukt me nog wel om wat gegevens op te halen over de PC maar ik kan er geen extra velden bijkrijgen...ik kan alleen het onderstaande voor elkaar krijgen:



    Hoe ga ik dit oplossen?

    Hier de pagina: http://www.dumpzooi.nl/intranet/index.html (Ow, mijn zeer slechte javascript werkt alleen in IE7 )
    Hier de ajax_check.php source: http://www.dumpzooi.nl/intranet/ajax_check.phps (dit is gewoon om te testen, dan heb ik zolang nog geen SQL nodig )

    (en volgensmij gebruik ik ajax op de compleet verkeerde manier )

    [ Bericht 2% gewijzigd door wobbel op 17-08-2007 21:46:08 ]
    JeRazaterdag 18 augustus 2007 @ 00:05
    @wobbel

    Is dat niet gewoon een javascriptvraag? Lijkt me een kwestie van DOM manipulation
    wobbelzaterdag 18 augustus 2007 @ 10:12
    quote:
    Op zaterdag 18 augustus 2007 00:05 schreef JeRa het volgende:
    @wobbel

    Is dat niet gewoon een javascriptvraag? Lijkt me een kwestie van DOM manipulation
    Ik kan nergens een hele simpele en goede JS tuto vinden
    devvertjezaterdag 18 augustus 2007 @ 10:14
    www.google.com
    wobbelzaterdag 18 augustus 2007 @ 11:16
    quote:
    Op zaterdag 18 augustus 2007 10:14 schreef devvertje het volgende:
    www.google.com
    als ik iets niet kan vinden, heb ik al met google gezocht hoor...en niet met ilse
    Farenjizaterdag 18 augustus 2007 @ 11:49
    quote:
    Op zaterdag 18 augustus 2007 10:12 schreef wobbel het volgende:

    [..]

    Ik kan nergens een hele simpele en goede JS tuto vinden
    Dit is idd gewoon DOM en heeft niks met PHP noch met AJAX te maken. Google eens op createElement, setAttribute en appendChild. W3Schools heeft er ook goede tutorials over.
    Xtr3mEzaterdag 18 augustus 2007 @ 12:52
    quote:
    Op vrijdag 17 augustus 2007 19:35 schreef HuHu het volgende:

    [..]

    De functie [url=php.net/strtotime]strtotime()[/url] is dan nog makkelijker.
    thx, dat werkt voor mij
    wobbelzondag 19 augustus 2007 @ 19:48
    quote:
    Op zaterdag 18 augustus 2007 11:49 schreef Farenji het volgende:

    [..]

    Dit is idd gewoon DOM en heeft niks met PHP noch met AJAX te maken. Google eens op createElement, setAttribute en appendChild. W3Schools heeft er ook goede tutorials over.
    dankje, ga ik eens ff thuisstudie plegen
    wobbelzondag 19 augustus 2007 @ 20:27
    Ik gebruik het volgende PHP, HTML en JS script:

    Javascript 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
    var xmlhttp=false;
    /*@cc_on @*/
    /*@if (@_jscript_version >= 5)
    // JScript gives us Conditional compilation, we can cope with old IE versions.
    // and security blocked creation of the objects.
     try {
      xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
     } catch (e) {
      try {
       xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
      } catch (E) {
       xmlhttp = false;
      }
     }
    @end @*/
    if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
      xmlhttp = new XMLHttpRequest();
    }
    function BarcodeCheck(value)
    {
       xmlhttp.open("GET", "ajax_check.php?request=barcodecheck&barcode="+value,true);//method, target, async (set always true!)
       
       xmlhttp.onreadystatechange=function() {
          if (xmlhttp.readyState==4) {
             document.getElementById('BarcodeGeldigheid').innerHTML = xmlhttp.responseText;
          }
       }
       
       xmlhttp.send(null);
    }


    die ik op deze manier aanroep:
    1<input type="text" name="BarcodeInputVeld" id="BarcodeInputVeld" onBlur="BarcodeCheck(this.value)" />



    vervolgens krijg ik van ajax_check.php een waarde terug die ik met <span id="BarcodeGeldigheid"> </span> bekijk...

    Nu komt het probleem, ajax check.php poept het volgende uit richting de HTML pagina:
    1
    2
    <br /><font color="#00c600"><strong>F. van Gaalen (Sempron 2800+)</strong></font>
    <script language="javascript">insRow()</script>


    maar die code wordt niet uitgevoerd, want alert('hoi'); voert ie ook niet uit...whats the problem hiero? de tekst F. van Gaalen (Sempron 2800+) geeft ie wel netjes weer...

    (en volgensmij werk ik heel erg verkeerd met AJAX, maar dan verbeter me maar (of geen tips enzo)
    JeRazondag 19 augustus 2007 @ 20:32
    Volgens mij had je mijn hint nog niet echt begrepen

    [Javascript] voor dummies (deel 6)
    wobbelzondag 19 augustus 2007 @ 20:39
    quote:
    Op zondag 19 augustus 2007 20:32 schreef JeRa het volgende:
    Volgens mij had je mijn hint nog niet echt begrepen

    [Javascript] voor dummies (deel 6)
    rofl! wist niet dat dat topic bestond
    Xtr3mEmaandag 20 augustus 2007 @ 11:14
    Ik heb een probleem met het ophalen van de laatste ID in de tabel. Het veld ID is autonummering en is PK.

    Als ik met deze code dat doe

    1
    2
    3
    4
    5
    6
    <?php
       $query 
    "SELECT MAX(ID) AS last_id FROM bestelling";
       
    $result mysql_query($query);
       
    $result mysql_fetch_array($result);
       
    $laatste_id $result[last_id];
    ?>


    dan krijg ik altijd op een of ander manier het een na laatste ID

    Nu zal je zeggen doe er dan +1 erachter..
    maar dat gaat niet omdat het kan voorkomen dat er records worden verwijderd waardoor je na ID 40 bijv 46 krijgt als volgende record.

    iemand een idee?


    wat ik eigenlijk met deze code wil doen is het laatste toegevogde record uit de tabel halen, dit leek mij een makkelijke oplossing. of is er een andere manier om dit te doen ?>
    JortKmaandag 20 augustus 2007 @ 11:23
    quote:
    Op maandag 20 augustus 2007 11:14 schreef Xtr3mE het volgende:
    Ik heb een probleem met het ophalen van de laatste ID in de tabel. Het veld ID is autonummering en is PK.

    Als ik met deze code dat doe


    [ code verwijderd ]


    dan krijg ik altijd op een of ander manier het een na laatste ID

    Nu zal je zeggen doe er dan +1 erachter..
    maar dat gaat niet omdat het kan voorkomen dat er records worden verwijderd waardoor je na ID 40 bijv 46 krijgt als volgende record.

    iemand een idee?


    wat ik eigenlijk met deze code wil doen is het laatste toegevogde record uit de tabel halen, dit leek mij een makkelijke oplossing. of is er een andere manier om dit te doen ?>
    1
    2
    3
    <?php
    SELECT ID 
    AS last_id FROM bestelling ORDER BY ID DESC LIMIT 0,1
    ?>


    Beetje omslachtig maar in die richting misschien?
    Xtr3mEmaandag 20 augustus 2007 @ 11:28
    nog steeds hetzelfde verhaal..
    JortKmaandag 20 augustus 2007 @ 11:36
    quote:
    Op maandag 20 augustus 2007 11:28 schreef Xtr3mE het volgende:
    nog steeds hetzelfde verhaal..
    Is je veld wel van het datatype int?
    Xtr3mEmaandag 20 augustus 2007 @ 11:44
    ja dat is het int en auto_increment
    Chandlermaandag 20 augustus 2007 @ 12:00
    quote:
    Op maandag 20 augustus 2007 11:28 schreef Xtr3mE het volgende:
    nog steeds hetzelfde verhaal..
    Lijkt mij zeer onwaarschijnlijk
    Xtr3mEmaandag 20 augustus 2007 @ 12:07
    en toch is het zo..

    nu heb ik het volgende gedaan:

    de auto_increment uitgedaan en alleen INT gelaten

    in de andere PHP pagina waar het dus in de tabel opgeslagen wordt heb ik zelf een auto_increment stukje geschreven met o.a. die code waarbij je de laatste ID ophaalt en er 1 bij optelt. dit werkt dus perfect!
    ik zie in de tabel dat het nieuwe record keurig een opeenvolgende ID heeft gekregen.

    maar op een of andere manier wil het op dus niet lukken op die andere pagina waar ik het weer probeer (laatste ID ophalen) raar raar raar
    Xtr3mEmaandag 20 augustus 2007 @ 12:25
    probleem gevonden

    om een lang verhaal kort te maken:

    op de 1e pagina waar alles dus in de database wordt opgeslagen staat vóór de code waarin alles in de database wordt ingepropt een include naar die 2e pagina dus waar hij uiteraard de laatste ID niet kan vinden omdat deze nog niet is ingevoerd..

    (dit krijg je dus als je bezig bent met andermans werk en het niet logisch is ingedeeld)
    markiemarkmaandag 20 augustus 2007 @ 13:04
    Ik ben een inlog systeem aan het maken met php voor een systeem waarmee gebruikerers op een veilige manier kunnen inloggen. Nu wil ik de strings die in de mysql query worden geladen beveiligen. Welke php functies kan ik hier het beste voor gebruiken? ik weet iig strip_tags()..
    Kan ik ook iets met de crypt() functie om extra te beveiligen?
    WyriHaximusmaandag 20 augustus 2007 @ 13:08
    quote:
    Op maandag 20 augustus 2007 13:04 schreef markiemark het volgende:
    Ik ben een inlog systeem aan het maken met php voor een systeem waarmee gebruikerers op een veilige manier kunnen inloggen. Nu wil ik de strings die in de mysql query worden geladen beveiligen. Welke php functies kan ik hier het beste voor gebruiken? ik weet iig strip_tags()..
    Kan ik ook iets met de crypt() functie om extra te beveiligen?
    http://php.net/addslashes
    markiemarkmaandag 20 augustus 2007 @ 13:36
    quote:
    Op maandag 20 augustus 2007 13:08 schreef WyriHaximus het volgende:

    [..]

    http://php.net/addslashes
    is dat alles? is het daarmee veilig?
    Qunixmaandag 20 augustus 2007 @ 14:03
    Ik heb een formulier en ik wil een voorbeeld zien voordat het gesubmit wordt via een button. Een voorbeeld verschijnt in een popup... Alle inhoud komt alleen niet aan in de popup. Wat doe ik fout?

    Popup:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <?php
        $titel 
    $_POST['titel'];
        
    $content $_POST['content'];
        
        <
    div id="preview">
            <
    div id="titel"><h2>= $titel; </h2></div>
            <
    div id="content"><p>= $content; </p></div>
        </
    div>
    ?>


    formulier
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <?php
            
    echo "<form action="" . $_SERVER['PHP_SELF'] . "?admin=paginabeheer&amp;actie=nieuw_uitvoeren&amp;pagina_id=$pagina_id" method="post">n";
            echo 
    "<input maxlength="50" name="titel" type="text" /> - Pagina titel<br />n";
            echo 
    "<textarea name="content" style="width:300px;" rows="15"></textarea><br />n";
            echo 
    "<input type="hidden" name="admin" value="paginabeheer" />n";
            echo 
    "<input type="hidden" name="actie" value="nieuw_uitvoeren" />n";
            echo 
    "<input type="button" onclick="javascript:popup('preview.php');" value="Voorbeeld" />&nbsp;<input name="submit" type="submit" value="Pagina maken" /><br />n";
            echo 
    "</form>n";
    ?>


    Bvd :)
    Geqxonmaandag 20 augustus 2007 @ 14:08
    1
    2
    3
    4
    5
    6
    7
    8
    <?php
    $query 
    "
    INSERT INTO `fok_posts` (`UserID`,`TopicID`,`Message`) 
    VALUES (22942,1064831,'TVP') 
    "
    ;

    mysql_query($query);
    ?>
    unox_worstmaandag 20 augustus 2007 @ 14:11
    quote:
    Op maandag 20 augustus 2007 14:03 schreef Qunix het volgende:
    Ik heb een formulier en ik wil een voorbeeld zien voordat het gesubmit wordt via een button. Een voorbeeld verschijnt in een popup... Alle inhoud komt alleen niet aan in de popup. Wat doe ik fout?

    Popup:
    [ code verwijderd ]

    formulier
    [ code verwijderd ]

    Bvd
    Omdat je via een javascript je preview pagina oproept zijn de gegevens uit het formulier nog niet gesubmit en dus nog niet op te roepen uit de $_POST array.
    Ik denk dat dit met een javascript wel te doen is.
    Qunixmaandag 20 augustus 2007 @ 14:12
    quote:
    Op maandag 20 augustus 2007 14:11 schreef unox_worst het volgende:

    [..]

    Omdat je via een javascript je preview pagina oproept zijn de gegevens uit het formulier nog niet gesubmit en dus nog niet op te roepen uit de $_POST array.
    Ik denk dat dit met een javascript wel te doen is.
    Hmm...

    Ik ben niet geweldig met JavaScript.
    unox_worstmaandag 20 augustus 2007 @ 14:22
    quote:
    Op maandag 20 augustus 2007 14:12 schreef Qunix het volgende:

    [..]

    Hmm...

    Ik ben niet geweldig met JavaScript.
    Hier misschien, en anders google of het javascript topic
    Qunixmaandag 20 augustus 2007 @ 15:15
    quote:
    Op maandag 20 augustus 2007 14:22 schreef unox_worst het volgende:

    [..]

    Hier misschien, en anders google of het javascript topic
    thanks
    autocuemaandag 20 augustus 2007 @ 15:23
    quote:
    Op maandag 20 augustus 2007 13:04 schreef markiemark het volgende:
    Ik ben een inlog systeem aan het maken met php voor een systeem waarmee gebruikerers op een veilige manier kunnen inloggen. Nu wil ik de strings die in de mysql query worden geladen beveiligen. Welke php functies kan ik hier het beste voor gebruiken? ik weet iig strip_tags()..
    Kan ik ook iets met de crypt() functie om extra te beveiligen?
    Wil je gegevens van de gebruikers beveiligen of wil je het systeem beveiligen van de gebruiker? In elk geval is het een must er voor te zorgen dat je query wordt uitgevoerd zoals jouw bedoeling is en dat er dus geen extra, mogelijk schadelijke SQL wordt toegevoegd. Hoewel addslashes al genoemd was zou ik toch gaan voor mysql_real_escape_string bij het gebruik van externe data binnen queries, hoe knullig de naam van die functie ook mag zijn .
    super-muffinmaandag 20 augustus 2007 @ 17:45
    quote:
    Op maandag 20 augustus 2007 14:08 schreef Geqxon het volgende:

    [ code verwijderd ]
    Geen fouten afhandeling of iets dergelijks? Nog niet eens een die(); Erg slecht.
    Geqxonmaandag 20 augustus 2007 @ 19:41
    quote:
    Op maandag 20 augustus 2007 17:45 schreef super-muffin het volgende:

    [..]

    Geen fouten afhandeling of iets dergelijks? Nog niet eens een die(); Erg slecht.
    Echte mannen gaan er vanuit dat hun scripts werken.
    w3bm4st3rmaandag 20 augustus 2007 @ 20:42
    quote:
    Op maandag 20 augustus 2007 14:03 schreef Qunix het volgende:
    Ik heb een formulier en ik wil een voorbeeld zien voordat het gesubmit wordt via een button. Een voorbeeld verschijnt in een popup... Alle inhoud komt alleen niet aan in de popup. Wat doe ik fout?

    Popup:
    [ code verwijderd ]

    formulier
    [ code verwijderd ]

    Bvd :)
    Er zijn een aantal dingen die niet kloppen (geeft je PHP trouwens geen foutmelding :? )
    De volgende code zal allicht beter werken, je kunt html niet zomaar tussen PHP tags zetten zonder echo of print oid te gebruiken.

    Popup:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <?php
        $titel
    = $_POST['titel'];
        
    $content = $_POST['content'];
        
        echo
    '<div id="preview">';
        echo
    '    <div id="titel"><h2>=' . $titel; . ' </h2></div>';
        echo
    '    <div id="content"><p>=' . $content; . '</p></div>';
        echo
    '</div>';
    ?>


    Het andere gedeelte code moet ook aangepast worden, je gebruikt hetzelfde aanhalingsteken voor html en PHP.

    Formulier:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <?php
        
    echo '<form action="' . $_SERVER['PHP_SELF'] . '?admin=paginabeheer&amp;actie=nieuw_uitvoeren&amp;pagina_id=$pagina_id" method="post">';
        echo
    '<input maxlength="50" name="titel" type="text" /> - Pagina titel<br />';
        echo
    '<textarea name="content" style="width:300px;" rows="15"></textarea><br />';
        echo
    '<input type="hidden" name="admin" value="paginabeheer" />';
        echo
    '<input type="hidden" name="actie" value="nieuw_uitvoeren" />';
        echo
    '<input type="button" onclick="javascript:popup(\'preview.php\');" value="Voorbeeld" />&nbsp;<input name="submit" type="submit" value="Pagina maken" /><br />';
        echo
    '</form>';
    ?>


    Ik neem aan dat je met de 'n' aan het einde van elke regel een 'n' bedoelt?
    w3bm4st3rmaandag 20 augustus 2007 @ 20:46
    Ik neem aan dat je met de 'n' aan het einde van elke regel een '\n' bedoelt?

    (stripslashes() vindt \n niet leuk (met één slash))
    JortKmaandag 20 augustus 2007 @ 21:11
    quote:
    Op maandag 20 augustus 2007 19:41 schreef Geqxon het volgende:

    [..]

    Echte mannen gaan er vanuit dat hun scripts werken.
    HuHumaandag 20 augustus 2007 @ 21:16
    quote:
    Op maandag 20 augustus 2007 20:46 schreef w3bm4st3r het volgende:
    Ik neem aan dat je met de 'n' aan het einde van elke regel een '\n' bedoelt?

    (stripslashes() vindt \n niet leuk (met één slash))
    FOK! doet af en toe rare dingen met backslashes, dus die kunnen verdwijnen.
    Qunixmaandag 20 augustus 2007 @ 21:33
    quote:
    Op maandag 20 augustus 2007 20:42 schreef w3bm4st3r het volgende:

    [..]

    Er zijn een aantal dingen die niet kloppen (geeft je PHP trouwens geen foutmelding )
    De volgende code zal allicht beter werken, je kunt html niet zomaar tussen PHP tags zetten zonder echo of print oid te gebruiken.

    Popup:

    [ code verwijderd ]


    Het andere gedeelte code moet ook aangepast worden, je gebruikt hetzelfde aanhalingsteken voor html en PHP.

    Formulier:

    [ code verwijderd ]


    Ik neem aan dat je met de 'n' aan het einde van elke regel een 'n' bedoelt?
    quote:
    Op maandag 20 augustus 2007 21:16 schreef HuHu het volgende:

    [..]

    FOK! doet af en toe rare dingen met backslashes, dus die kunnen verdwijnen.
    Inderdaad. Verder is mijn code goed hoor
    De php ubb tag is niet helemaal correct.

    Voorbeeld in de popup:
    <div id="titel"><h2>= $titel; </h2></div>

    Is dus:
    <div id="titel"><h2><?= $titel; ?></h2></div>
    hornagedinsdag 21 augustus 2007 @ 11:33
    Mensen,
    Hier ff probleempje. Ik wil rtf files inlezen met php en dan alleen de plain tekst eruit halen. Ik kan wel veel dingen vinden over rtf en php, maar die zijn vooral gericht op het genereren van rtf bestanden met php.

    Weet iemand een site of class die de plaintext uit een rtf kan inlezen met php?
    unox_worstdinsdag 21 augustus 2007 @ 11:47
    quote:
    Op dinsdag 21 augustus 2007 11:33 schreef hornage het volgende:
    Mensen,
    Hier ff probleempje. Ik wil rtf files inlezen met php en dan alleen de plain tekst eruit halen. Ik kan wel veel dingen vinden over rtf en php, maar die zijn vooral gericht op het genereren van rtf bestanden met php.

    Weet iemand een site of class die de plaintext uit een rtf kan inlezen met php?
    1e pagina van google resultaten.
    JortKdinsdag 21 augustus 2007 @ 11:56
    Wat gebruiken jullie trouwens bij je projecten om je bugs en todo zaken bij te houden?

    Ik merk aan mezelf dat ik hier namelijk nogal moeite mee heb
    Geqxondinsdag 21 augustus 2007 @ 12:08
    quote:
    Op dinsdag 21 augustus 2007 11:56 schreef JortK het volgende:
    Wat gebruiken jullie trouwens bij je projecten om je bugs en todo zaken bij te houden?

    Ik merk aan mezelf dat ik hier namelijk nogal moeite mee heb
    Unsorted-list. In Word.
    Xtr3mEdinsdag 21 augustus 2007 @ 12:15
    Is het mogelijk met PHP om een pagina af te drukken waarbij alles al vooringesteld is zodra je op de print knop/link drukt en dus gelijk gaat printen (op de standaard printer).

    Van belang is dat de pagina liggend is en er géén kop en voettexten zijn..
    dokadinsdag 21 augustus 2007 @ 12:16
    quote:
    Op dinsdag 21 augustus 2007 11:56 schreef JortK het volgende:
    Wat gebruiken jullie trouwens bij je projecten om je bugs en todo zaken bij te houden?

    Ik merk aan mezelf dat ik hier namelijk nogal moeite mee heb
    Bugzilla

    Nee, geintje Ik gebruik een wiki.
    dokadinsdag 21 augustus 2007 @ 12:17
    quote:
    Op dinsdag 21 augustus 2007 11:56 schreef JortK het volgende:
    Wat gebruiken jullie trouwens bij je projecten om je bugs en todo zaken bij te houden?

    Ik merk aan mezelf dat ik hier namelijk nogal moeite mee heb
    Bugzilla

    Nee, geintje Ik gebruik een wiki.
    Geqxondinsdag 21 augustus 2007 @ 12:17
    quote:
    Op dinsdag 21 augustus 2007 12:15 schreef Xtr3mE het volgende:
    Is het mogelijk met PHP om een pagina af te drukken waarbij alles al vooringesteld is zodra je op de print knop/link drukt en dus gelijk gaat printen (op de standaard printer).

    Van belang is dat de pagina liggend is en er géén kop en voettexten zijn..
    Dan kan ik je een PDF-class aanraden.
    JortKdinsdag 21 augustus 2007 @ 12:19
    Is mantis iets?
    Xtr3mEdinsdag 21 augustus 2007 @ 12:24
    quote:
    Op dinsdag 21 augustus 2007 12:17 schreef Geqxon het volgende:

    [..]

    Dan kan ik je een PDF-class aanraden.
    ik neem aan dat die class een PDF genereerd..? Maar als ik een PDF wil afdrukken dan moet je alsnog instellingen e.d. opgeven toch? Of zit ik totaal verkeerd?
    JortKdinsdag 21 augustus 2007 @ 12:29
    quote:
    Op dinsdag 21 augustus 2007 12:24 schreef Xtr3mE het volgende:

    [..]

    ik neem aan dat die class een PDF genereerd..? Maar als ik een PDF wil afdrukken dan moet je alsnog instellingen e.d. opgeven toch? Of zit ik totaal verkeerd?
    Je kunt toch ook een stel standaard instellingen meegeven aan een PDF printer
    hornagedinsdag 21 augustus 2007 @ 12:32
    quote:
    Niet dat ik niet dankbaar ben, maar waar zie jij op jouw gegeven link code of een class staan waarmee je plaintext uit een rtf kan halen?
    unox_worstdinsdag 21 augustus 2007 @ 12:41
    quote:
    Op dinsdag 21 augustus 2007 12:32 schreef hornage het volgende:

    [..]

    Niet dat ik niet dankbaar ben, maar waar zie jij op jouw gegeven link code of een class staan waarmee je plaintext uit een rtf kan halen?
    Er staat idd geen class, maar met de informatie op die pagina kun je wel het een en ander met rtf documenten doen.

    1
    2
    3
    4
    5
    {rtf1
    b [MESSAGE] b0par
    b [MESSAGE] b0par
    b [MESSAGE] b0par
    }


    Dit is bijvoorbeeld een stukje rtf document, je hoeft zelf alleen maar een functie te maken die alle rtf codes eruit haalt. Die kant zou ik iig opzoeken, maar als iemand anders een beter idee heeft...
    Xcaliburdinsdag 21 augustus 2007 @ 13:50
    quote:
    Op dinsdag 21 augustus 2007 12:15 schreef Xtr3mE het volgende:
    Is het mogelijk met PHP om een pagina af te drukken waarbij alles al vooringesteld is zodra je op de print knop/link drukt en dus gelijk gaat printen (op de standaard printer).

    Van belang is dat de pagina liggend is en er géén kop en voettexten zijn..
    Iets simpels als een liggende pagina instellen is in je browser niet mogelijk, dit wordt domweg niet ondersteunt
    WyriHaximusdinsdag 21 augustus 2007 @ 13:52
    quote:
    Op dinsdag 21 augustus 2007 13:50 schreef Xcalibur het volgende:

    [..]

    Iets simpels als een liggende pagina instellen is in je browser niet mogelijk, dit wordt domweg niet ondersteunt
    Precies, zodra CSS3 word ondersteund is het mogelijk....
    Geqxonwoensdag 22 augustus 2007 @ 10:08
    Aangezien ik hier al langer mee vecht:

    1
    2
    3
    4
    5
    6
    <?php
    SELECT
    (SELECT COUNT(*) FROM posts WHERE UserID = u.ID) AS Postcount,
    (
    u.Regdate / Postcount) AS AvgPostcount
    FROM Users
    AS U
    ?>


    Dit werkt dus niet. Zodra ik de Regdate door het Postcount deel, weet hij spontaan niet meer wat Postcount ook alweer deed. Iets zegt mij dat dit heeft te maken met de volgorde van afhandelen die MySQL gebruikt, maar heeft iemand tips hoe ik "Postcount" in mijn verdere query kan herbruiken, zonder de subquery telkens te moeten gebruiken?
    WyriHaximuswoensdag 22 augustus 2007 @ 10:12
    quote:
    Op woensdag 22 augustus 2007 10:08 schreef Geqxon het volgende:
    Aangezien ik hier al langer mee vecht:
    [ code verwijderd ]

    Dit werkt dus niet. Zodra ik de Regdate door het Postcount deel, weet hij spontaan niet meer wat Postcount ook alweer deed. Iets zegt mij dat dit heeft te maken met de volgorde van afhandelen die MySQL gebruikt, maar heeft iemand tips hoe ik "Postcount" in mijn verdere query kan herbruiken, zonder de subquery telkens te moeten gebruiken?
    Je users een post count veld geven en die updaten als er iets met zijn/haar posts veranderd? En dan met een join de postcount daar uit trekken?
    Geqxonwoensdag 22 augustus 2007 @ 10:27
    In dit geval een optie (al heb ik liever geen berekende data in mijn tabel).... maar dit is slechts een voorbeeld. Ik zoek dus een manier om een zojuist berekend veld in een ander deel van mijn query te gebruiken. Kan ik hiervoor een variabele oid gebruiken?
    WyriHaximuswoensdag 22 augustus 2007 @ 10:37
    quote:
    Op woensdag 22 augustus 2007 10:27 schreef Geqxon het volgende:
    In dit geval een optie (al heb ik liever geen berekende data in mijn tabel).... maar dit is slechts een voorbeeld. Ik zoek dus een manier om een zojuist berekend veld in een ander deel van mijn query te gebruiken. Kan ik hiervoor een variabele oid gebruiken?
    Ja lijkt mij wel, misschien dat JortK het weet die is een stuk beter met SQL .
    JortKwoensdag 22 augustus 2007 @ 10:54
    Probeer eens zoiets:

    1
    2
    3
    4
    5
    <?php
    SELECT 
    (u.Regdate a.postcount) AS AvgPostcount 
    FROM Users u

    (
    SELECT COUNT(*) postcount FROM posts WHERE UserID u.IDa
    ?>
    Geqxonwoensdag 22 augustus 2007 @ 11:18
    Om een beter geschikt voorbeeld te pakken:

    1
    2
    3
    4
    5
    <?php
    SELECT 
    (c) AS result_one
    (result_one d) AS result_two
    ?>


    In dit geval zal hij zeggen dat er geen colum genaamd 'result_one' bestaat, en zal ik het dus op moeten lossen als:

    1
    2
    3
    4
    5
    <?php
    SELECT 
    (c) AS result_one
    ((c) * d) AS result_two
    ?>


    Nu is dit een klein voorbeeld, maar dit word erg snelzeer lelijk..

    Ps: Jort, idee nummer twee waar ik het gister over had is bijna klaar. Ik stuur je nog wel een PM met de verdere query's / html-output
    JortKwoensdag 22 augustus 2007 @ 11:26
    quote:
    Op woensdag 22 augustus 2007 11:18 schreef Geqxon het volgende:
    Om een beter geschikt voorbeeld te pakken:


    [ code verwijderd ]


    In dit geval zal hij zeggen dat er geen colum genaamd 'result_one' bestaat, en zal ik het dus op moeten lossen als:


    [ code verwijderd ]


    Nu is dit een klein voorbeeld, maar dit word erg snelzeer lelijk..

    Ps: Jort, idee nummer twee waar ik het gister over had is bijna klaar. Ik stuur je nog wel een PM met de verdere query's / html-output
    Maar waarom als je velden meerdere keren wil gebruiken die je zelf aanmaakt, zet je die subquery niet in je FROM, zodat je hem in je hele query als tabel kunt gebruiken?
    Geqxonwoensdag 22 augustus 2007 @ 11:46
    quote:
    Op woensdag 22 augustus 2007 11:26 schreef JortK het volgende:

    [..]

    Maar waarom als je velden meerdere keren wil gebruiken die je zelf aanmaakt, zet je die subquery niet in je FROM, zodat je hem in je hele query als tabel kunt gebruiken?
    Subquery? Excuse me for my stupidity, maar nu volg ik het niet meer helemaal.

    Ps:
    SPOILER
    Op 22-08-2007 09:32:35 (bij 846 keys) word je door User4 voorbij gestreefd, waarna hij plek 1 afneemt.
    Op 22-08-2007 10:44:52 (bij 1626 keys) word je door User1 voorbij gestreefd, waarna hij plek 2 afneemt.
    Op 22-08-2007 10:48:31 (bij 1666 keys) word je door User6 voorbij gestreefd, waarna hij plek 3 afneemt.
    Op 22-08-2007 11:06:23 (bij 1859 keys) word je door User2 voorbij gestreefd, waarna hij plek 4 afneemt.
    Op 22-08-2007 13:52:15 (bij 3650 keys) streef je User5 met voorbij, waardoor je op plek 4 komt.
    Werkt!
    JortKwoensdag 22 augustus 2007 @ 11:59
    quote:
    Op woensdag 22 augustus 2007 11:46 schreef Geqxon het volgende:

    [..]

    Subquery? Excuse me for my stupidity, maar nu volg ik het niet meer helemaal.

    Ps:
    SPOILER
    Op 22-08-2007 09:32:35 (bij 846 keys) word je door User4 voorbij gestreefd, waarna hij plek 1 afneemt.
    Op 22-08-2007 10:44:52 (bij 1626 keys) word je door User1 voorbij gestreefd, waarna hij plek 2 afneemt.
    Op 22-08-2007 10:48:31 (bij 1666 keys) word je door User6 voorbij gestreefd, waarna hij plek 3 afneemt.
    Op 22-08-2007 11:06:23 (bij 1859 keys) word je door User2 voorbij gestreefd, waarna hij plek 4 afneemt.
    Op 22-08-2007 13:52:15 (bij 3650 keys) streef je User5 met voorbij, waardoor je op plek 4 komt.
    Werkt!
    Waar blijft de PM dan
    Dzywoensdag 22 augustus 2007 @ 21:44
    Ik heb een vraagje, ik heb nu een werkend login script, met een remember functie met cookies en zonder met alleen sessions, en dat werkt allemaal prima maar er is iets mis met de logout functie, hij verwijdert namelijk de cookies niet..

    hier is de logout code:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    session_start();
    setcookie("cookname", "", time()-70*60*24*100, "/");
    setcookie("cookpass", "", time()-70*60*24*100, "/");
    if(isset($_SESSION['username']) || isset($_SESSION['password'])){
       unset($_SESSION['username']);
       unset($_SESSION['password']);
       $_SESSION = array();
       session_destroy();
    }


    Wat doe ik verkeerd? Als ik de remember functie niet gebruik (dus alleen de sessies) wil hij wel gewoon uitloggen.
    Dzywoensdag 22 augustus 2007 @ 21:54
    Oh en nog een vraagje, hoe zorg ik dat bepaalde pagina's altijd refreshen en niet uit het cache laden?
    Geqxonwoensdag 22 augustus 2007 @ 21:55
    quote:
    Op woensdag 22 augustus 2007 21:54 schreef Dzy het volgende:
    Oh en nog een vraagje, hoe zorg ik dat bepaalde pagina's altijd refreshen en niet uit het cache laden? :)
    1
    2
    3
    4
    <?php
    header
    ("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1
    header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); // Date in the past
    ?>
    HuHuwoensdag 22 augustus 2007 @ 22:09
    quote:
    Op woensdag 22 augustus 2007 21:44 schreef Dzy het volgende:
    Ik heb een vraagje, ik heb nu een werkend login script, met een remember functie met cookies en zonder met alleen sessions, en dat werkt allemaal prima maar er is iets mis met de logout functie, hij verwijdert namelijk de cookies niet..

    hier is de logout code:
    [ code verwijderd ]

    Wat doe ik verkeerd? Als ik de remember functie niet gebruik (dus alleen de sessies) wil hij wel gewoon uitloggen.
    Volgens mij worden sessie-cookies verwijderd zodra de browser wordt afgesloten. Of doe je dat ook?
    Xcaliburwoensdag 22 augustus 2007 @ 22:09
    quote:
    Op woensdag 22 augustus 2007 21:44 schreef Dzy het volgende:
    Ik heb een vraagje, ik heb nu een werkend login script, met een remember functie met cookies en zonder met alleen sessions, en dat werkt allemaal prima maar er is iets mis met de logout functie, hij verwijdert namelijk de cookies niet..

    hier is de logout code:
    [ code verwijderd ]

    Wat doe ik verkeerd? Als ik de remember functie niet gebruik (dus alleen de sessies) wil hij wel gewoon uitloggen.
    Heeft je cookie dezelfde tijdsduur als de originele?
    Het wachtwoord in een cookie opslaan lijkt me ook niet ideaal btw
    Dzywoensdag 22 augustus 2007 @ 22:18
    @ Gexcon bedankt

    @ Huhu, het gaat niet om de sessie cookies, dat werkt prima, het gaat om de "Remember" cookies, dus als je niet uit wil loggen als je de browser sluit. Dat werkt ook, maar als ik nu het logout script gebruik om toch uit te willen loggen werkt dit niet.

    @Xcalibur

    Hij maakt ze zo:
    1
    2
          setcookie("cookname", $_SESSION['username'], time()+60*60*24*100, "/");
          setcookie("cookpass", $_SESSION['password'], time()+60*60*24*100, "/");


    Overigens is het password in de cookies (beide sessie en gewone) een md5 hash van het password.
    Xcaliburwoensdag 22 augustus 2007 @ 22:44
    dat lijkt goed ... output je ook content op die pagina, of redirect je hem gelijk na het uitloggen?

    Wat betreft dat wachtwoord: kennelijk kan het script inloggen met die md5 hash, dus dan zou ik het ook moeten kunnen met die hash... hoewel ik het feitelijke wachtwoord niet weet, is het principe hetzelfde...
    Dzywoensdag 22 augustus 2007 @ 22:49
    ik heb nu nog geen content op die pagina, maar dat maakt ook niet echt uit, waar het om gaat is dat hij de cookies dus gewoon niet aanpast. De sessies wel. Bij inloggen maakt hij de cookies wel aan, bij uitloggen past hij ze niet aan (verwijderen door de time naar vroeger te zetten) terwijl het in principe hetzelfde commando is.. dat snap ik dus ook niet zo goed, waar zou dat aan kunnen liggen?
    Xcaliburdonderdag 23 augustus 2007 @ 08:03
    Volgens mij moet je bij het zetten van een cookie altijd content outputten naar de browser, omdat hij em anders niet zet. Ik vermoed dat het bij het weghalen hetzelfde is .... dus vandaar mijn vraag
    Xcaliburdonderdag 23 augustus 2007 @ 08:07
    Even een theoretisch vraagje voor de afwisseling

    Ik ben bezig met het ontwikkelen van een inschrijfsysteem, waarbij ik van iedere inschrijving moet weten hoe ver deze is. De deelnemer moet in een aantal stappen informatie invoeren, de inschrijving wordt al dan niet goedgekeurd, en daarna ontvangt de deelnemer een aantal keer informatie van de organisatie.

    Waar ik mee zit is de manier waarop ik dit bij ga houden. Volgens mij heb ik twee opties:
    - Veld 'voortgang', numeriek, waarbij ik iedere stap een nummer geef, en deze steeds met 1 ophoog.
    - Aparte velden voor iedere stap, enum, waarbij ik iedere stap true of false geef.

    Voordeel van 1 veld is dat je direct kunt zien waar je bent, nadeel is dat je later geen stap kunt toevoegen, of de volgorde veranderen zonder een hoop gedoe en aanpassingen.
    Voordeel van aparte velden is dat je extra stappen kunt toevoegen zonder problemen, maar dat je een x-aantal velden moet gaan checken om te weten bij welke stap de deelnemer is.

    Suggesties?
    WyriHaximusdonderdag 23 augustus 2007 @ 08:08
    quote:
    Op donderdag 23 augustus 2007 08:03 schreef Xcalibur het volgende:
    Volgens mij moet je bij het zetten van een cookie altijd content outputten naar de browser, omdat hij em anders niet zet. Ik vermoed dat het bij het weghalen hetzelfde is .... dus vandaar mijn vraag
    Een cookie setten en dan een header location: werkt ook prima dan word je cookie ook gezet .
    WyriHaximusdonderdag 23 augustus 2007 @ 08:11
    quote:
    Op donderdag 23 augustus 2007 08:07 schreef Xcalibur het volgende:
    Even een theoretisch vraagje voor de afwisseling

    Ik ben bezig met het ontwikkelen van een inschrijfsysteem, waarbij ik van iedere inschrijving moet weten hoe ver deze is. De deelnemer moet in een aantal stappen informatie invoeren, de inschrijving wordt al dan niet goedgekeurd, en daarna ontvangt de deelnemer een aantal keer informatie van de organisatie.

    Waar ik mee zit is de manier waarop ik dit bij ga houden. Volgens mij heb ik twee opties:
    - Veld 'voortgang', numeriek, waarbij ik iedere stap een nummer geef, en deze steeds met 1 ophoog.
    - Aparte velden voor iedere stap, enum, waarbij ik iedere stap true of false geef.

    Voordeel van 1 veld is dat je direct kunt zien waar je bent, nadeel is dat je later geen stap kunt toevoegen, of de volgorde veranderen zonder een hoop gedoe en aanpassingen.
    Voordeel van aparte velden is dat je extra stappen kunt toevoegen zonder problemen, maar dat je een x-aantal velden moet gaan checken om te weten bij welke stap de deelnemer is.

    Suggesties?
    3e optie je maakt een tabel met stappen, een tabel met users en een tabel waarom je een user_id en een step_id invoegt voor iedere stap die een user heeft gedaan. Voordeel hier van is dat je heel makkelijk nieuwe stappen kan toevoegen. Nadeel is dat je queries wat ingewikkelder worden .
    WyriHaximusdonderdag 23 augustus 2007 @ 08:13
    quote:
    Op maandag 20 augustus 2007 13:36 schreef markiemark het volgende:

    [..]

    is dat alles? is het daarmee veilig?
    Daarmee voorkom je SQL injections tot op zekere hoogte . (Sorry maar had je reactie nog niet eerder gezien .)
    unox_worstdonderdag 23 augustus 2007 @ 08:44
    quote:
    Op donderdag 23 augustus 2007 08:11 schreef WyriHaximus het volgende:

    [..]

    3e optie je maakt een tabel met stappen, een tabel met users en een tabel waarom je een user_id en een step_id invoegt voor iedere stap die een user heeft gedaan. Voordeel hier van is dat je heel makkelijk nieuwe stappen kan toevoegen. Nadeel is dat je queries wat ingewikkelder worden .
    Beste keuze Dan hou je alles ook nog lekker beheerbaar.
    Geqxondonderdag 23 augustus 2007 @ 09:23
    quote:
    Op donderdag 23 augustus 2007 08:11 schreef WyriHaximus het volgende:

    [..]

    3e optie je maakt een tabel met stappen, een tabel met users en een tabel waarom je een user_id en een step_id invoegt voor iedere stap die een user heeft gedaan. Voordeel hier van is dat je heel makkelijk nieuwe stappen kan toevoegen. Nadeel is dat je queries wat ingewikkelder worden .
    Het voordeel is ook dat je exact kunt zien wie er op welk tijdstip een bepaalde stap deed. Klinkt control-freakish, maar zelf plak ik aan elke nuttige tabel een DateAdded en DateUpdated veld.
    Dzydonderdag 23 augustus 2007 @ 09:29
    Ehh...

    ik heb me niet helemaal goed ingelezen over cookies geloof ik, lees net dat die moeten worden gemaakt voor enige output.

    En dat wist ik stiekem ook wel maar ik dacht er gewoon niet over na

    Nouja, dan maar even snel ombouwen

    EDIT: Hij doet het nu, hoe dom van me

    [ Bericht 42% gewijzigd door Dzy op 23-08-2007 09:45:09 ]
    Xcaliburdonderdag 23 augustus 2007 @ 10:05
    quote:
    Op donderdag 23 augustus 2007 09:23 schreef Geqxon het volgende:
    Het voordeel is ook dat je exact kunt zien wie er op welk tijdstip een bepaalde stap deed. Klinkt control-freakish, maar zelf plak ik aan elke nuttige tabel een DateAdded en DateUpdated veld.
    De derde optie is helemaal niet zo'n slecht idee idd

    Ik plak trouwens ook altijd standaard datumvelden in zowat al m'n tabellen, je zal het maar een keer willen weten
    Ik wil sowieso een soort log / historie kunnen genereren, maar daar ben ik ook nog niet uit of ik dat nou uit een hele zooi tabellen ga plukken, of het gewoon apart in een logtabel ga opslaan
    Xcaliburdonderdag 23 augustus 2007 @ 23:09
    Verder niemand meer wat te roepen hierover?
    Xtr3mEvrijdag 24 augustus 2007 @ 14:59
    een snel vraagje:

    waarom kan ik met deze SQL query niet meer dan 1 resultaat uitlezen uit de tabel:

    1
    2
    3
    4
    5
    6
    <?php
      
    if ($zoek_klantnummer != "") {
      
    $query "SELECT * FROM reservering WHERE Klantnummer = '$zoek_klantnummer'";
      
    $result mysql_query($query)
           or die (
    "Kan opdracht niet uitvoeren");
    ?>


    Er zijn nu 2 records in de tabel (in de toekomst komen hier wel meer bij) die hetzelfde klantnummer hebben.

    Als uitvoer krijg ik altijd maar 1 te zien en terwijl ik die in de SQL van bijv. phpMyAdmin doe dan krijg ik ze wel alle 2...
    JortKvrijdag 24 augustus 2007 @ 15:01
    quote:
    Op vrijdag 24 augustus 2007 14:59 schreef Xtr3mE het volgende:
    een snel vraagje:

    waarom kan ik met deze SQL query niet meer dan 1 resultaat uitlezen uit de tabel:


    [ code verwijderd ]


    Er zijn nu 2 records in de tabel (in de toekomst komen hier wel meer bij) die hetzelfde klantnummer hebben.

    Als uitvoer krijg ik altijd maar 1 te zien en terwijl ik die in de SQL van bijv. phpMyAdmin doe dan krijg ik ze wel alle 2...
    Dan doe je iets fout met het fetchen van je query
    Xtr3mEvrijdag 24 augustus 2007 @ 15:03
    oke hier dan de rest van 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
    <?php
      
    echo "<table width="80%" cellpadding="0" cellspacing="2">";
      echo 
    "<tr><td colspan='200'></td></tr>";
            echo 
    "<tr>
                <td><strong>Reserveringsnummer</strong></td>
                <td><strong>Klantnummer</strong></td>
                <td><strong>Klantnaam</strong></td>
                <td><strong>Huurdatum</strong></td>
                <td><strong>tot</strong></td>
                <tr><td colspan='40'><hr></td></tr>"
    ;
                
      while (@
    $row mysql_fetch_array($result))
      
       {

        
    extract($row);

    ...


        echo 
    "<tr>
                <td><a href='wijzigen.php?reserveringsnummer=" 
    urlencode($Reserveringsnummer) ."'>$Reserveringsnummer</a></td>
                <td>$Klantnummer</td>
                <td>$Klantnaam</td>
                <td>$Datum_begin</td>
                <td>$Datum_eind</td>
                <td>$Postcode</td>
                <td>$Plaats</td>
                </tr>n"
    ;
      }
      echo 
    "</table>n";
        
    $gevonden "";
        if (
    $Klantnummer == "") {
        
    $gevonden "Geen reserveringen gevonden die aan de zoekcriteria voldoen";
        } 
    }
    ?>
    JortKvrijdag 24 augustus 2007 @ 15:13
    quote:
    Op vrijdag 24 augustus 2007 15:03 schreef Xtr3mE het volgende:
    oke hier dan de rest van de code:


    [ code verwijderd ]
    Probeer dit eens

    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
    <?php
      
    echo "<table width="80%" cellpadding="0" cellspacing="2">";
      echo 
    "<tr><td colspan='200'></td></tr>";
            echo 
    "<tr>
                <td><strong>Reserveringsnummer</strong></td>
                <td><strong>Klantnummer</strong></td>
                <td><strong>Klantnaam</strong></td>
                <td><strong>Huurdatum</strong></td>
                <td><strong>tot</strong></td>
                <tr><td colspan='40'><hr></td></tr>"
    ;
                
      while (
    $row mysql_fetch_assoc($result))
      
       {

        
    extract($row);

    ...


        echo 
    "<tr>
                <td><a href='wijzigen.php?reserveringsnummer=" 
    urlencode($row['Reserveringsnummer']) ."'>$row['Reserveringsnummer']</a></td>
                <td>$row['Klantnummer']</td>
                <td>$row['Klantnaam']</td>
                <td>$row['Datum_begin']</td>
                <td>$row['Datum_eind']</td>
                <td>$row['Postcode']</td>
                <td>$row['Plaats']</td>
                </tr>n"
    ;
      }
      echo 
    "</table>n";
        
    $gevonden "";
        if (
    $Klantnummer == "") {
        
    $gevonden "Geen reserveringen gevonden die aan de zoekcriteria voldoen";
        } 
    }
    ?>


    En wanneer die meldingen geeft over ongeldige velden even tussen de [] de juiste kolomnaam neerzetten ;)
    Xtr3mEvrijdag 24 augustus 2007 @ 15:26
    ik heb het probleem gevonden..

    aan mijn bovenstaande code die ik gepost heb is niks mis maar op de plek van de .....

    staat er dit ook:

    1
    2
    3
    4
    5
    6
    7
    <?php
        
    //klantnaam uit andere tabel halen 
           
    $query "SELECT Klantnaam FROM klant WHERE Klantnummer = '$Klantnummer'";
          
    $result mysql_query($query)
           or die (
    "Kan opdracht niet uitvoeren");
        
    $Klantnaam mysql_result($result0"Klantnaam");  
    ?>


    dit om de klantnaam op te vragen uit een andere tabel. Als ik dit weghaal dan krijg ik wel 2 resultaten weer.

    Maar ik moet de klant naam ook wel hebben. Ik heb ook geprobeerd om dat sukje boven de " extract($row);" te plakken maar dat helpt ook niet.
    Xtr3mEvrijdag 24 augustus 2007 @ 15:58
    dus.. hoe kan ik én de klantnaam ophalen én meerdere zoekresultaten krijgen? anyone??
    Geqxonvrijdag 24 augustus 2007 @ 16:31
    1
    2
    3
    <?php
    SELECT 
    FROM reserveringklant WHERE Klantnummer '$zoek_klantnummer'
    ?>


    :)
    Xtr3mEvrijdag 24 augustus 2007 @ 16:53
    nee dat werkt niet..

    #1052 - Column 'Klantnummer' in where clause is ambiguous

    maar zowieso ging mij op het ophalen van de klantnaam uit de klant tabel in combinatie met meerdere resulaten krijgen. Het laatste gedeelte werkt dus wel..

    -edit-

    Ik heb het al opgelost op een andere manier..

    het sukje waarin de klantnaam wordt opgehaald uit de andere tabel heb ik helemaal boven neergezet (boven waar de while begint aangezien de klantnummer toch niet zal verschillen. Nu werkt alles perfect.



    [ Bericht 29% gewijzigd door Xtr3mE op 24-08-2007 16:59:02 ]
    wonderervrijdag 24 augustus 2007 @ 20:26
    Ik heb even wat moeite met een query.

    Ik heb een n op n tabel met tags en een tabel met artikelen. Nu wil ik met een select query de artikelen uit de artikel-tabel selecteren die een bepaalde tag hebben.

    iets als "select from artikelen where ID = (select from tags where tag=".$tag.")" of zo. Maar ik weet daar dus niet de juiste syntax voor (is dit waar je eventueel join zou gebruiken?).
    Farenjivrijdag 24 augustus 2007 @ 21:01
    select * from artikelen a inner join tags t on a.ID = t.artikelID where a.ID = ? and t.tag = ?

    oid
    -Orion-vrijdag 24 augustus 2007 @ 22:48
    Ik ben bezig met een forum, en heb een tabel 'topics' met de volgende velden:
    "topic_id, topic_titel, forum_id, user_id, topic_views, topic_status, topic_type, last_post"
    last_post geeft het id weer van de laatste post, waarvan hij dan weer het userid en tijd ophaalt. Maar ik heb dan 2x een user_id, van de topicstarter, en van de last_post.
    Hoe kan ik het oplossen dat ik beide kan krijgen met 1 query!?
    wonderervrijdag 24 augustus 2007 @ 22:51
    quote:
    Op vrijdag 24 augustus 2007 21:01 schreef Farenji het volgende:
    select * from artikelen a inner join tags t on a.ID = t.artikelID where a.ID = ? and t.tag = ?

    oid
    Dat werkt, dank je wel.
    Tiemiezaterdag 25 augustus 2007 @ 14:31
    quote:
    Op vrijdag 24 augustus 2007 22:48 schreef -Orion- het volgende:
    Ik ben bezig met een forum, en heb een tabel 'topics' met de volgende velden:
    "topic_id, topic_titel, forum_id, user_id, topic_views, topic_status, topic_type, last_post"
    last_post geeft het id weer van de laatste post, waarvan hij dan weer het userid en tijd ophaalt. Maar ik heb dan 2x een user_id, van de topicstarter, en van de last_post.
    Hoe kan ik het oplossen dat ik beide kan krijgen met 1 query!?
    joins;

    SELECT t.topic_id, t.topic_titel, ts.username As topic_starter, lp.username As last_post
    FROM tbl_topics t
    INNER JOIN tbl_users ts ON (t.user_id = ts.user_id)
    INNER JOIN tbl_users lp ON (t.last_post = lp.user_id)
    Scripthazondag 26 augustus 2007 @ 15:31
    Ik ben begonnen met het MVC idee, met het Zend Framework nu. Ik snap views en controllers nu wel zo'n beetje, maar models niet echt. Heb wat tutorials gevolgd, maar die zijn niet volledig, of verouderd.
    Kan iemand models uitleggen? of een tut misschien?
    qu63zondag 26 augustus 2007 @ 16:42
    ah hier!

    Hoi!

    meteen een vraagje,

    je kan met MySQL ook met IF/ELSE/WHEN enzo werken, dus ik ga dat leuk proberen, alleen nu werkt het dus niet...

    Ik heb 3 rijen, 1) ID 2) mms_ID 3) IP
    nu is het de bedoeling dat ik controleer of het IP-adres al in de database staat, en zo niet, deze toevoegd.
    Ik kan dat wel doen dmv php en mysql (dus uit de database halen, controleren, en dan er weer in), maar dit leek me sneller. Iemand tips over hoe ik het moet doen
    Xcaliburzondag 26 augustus 2007 @ 16:49
    kan je dat niet gewoon met een REPLACE doen, ipv INSERT?
    autocuezondag 26 augustus 2007 @ 17:00
    quote:
    Op zondag 26 augustus 2007 16:42 schreef qu63 het volgende:
    ah hier!

    Hoi!

    meteen een vraagje,

    je kan met MySQL ook met IF/ELSE/WHEN enzo werken, dus ik ga dat leuk proberen, alleen nu werkt het dus niet...

    Ik heb 3 rijen, 1) ID 2) mms_ID 3) IP
    nu is het de bedoeling dat ik controleer of het IP-adres al in de database staat, en zo niet, deze toevoegd.
    Ik kan dat wel doen dmv php en mysql (dus uit de database halen, controleren, en dan er weer in), maar dit leek me sneller. Iemand tips over hoe ik het moet doen
    MySQL heeft ook een en enorm handige ON DUPLICATE functionaliteit, misschien biedt dat wat je nodig hebt .
    wobbelzondag 26 augustus 2007 @ 17:00
    Mmm...

    1
    2
    3
    <?php
    header
    ("HTTP/1.0 404 Not Found");
    ?>


    dit geeft mij in IE7 netjes een 404, maar in firefox niet (ik krijg gewoon een blanke pagina

    Ook onderstaande geeft in IE7 netjes 404, maar in FF wederom blanco pagina...

    1
    2
    3
    4
    <?php
    header
    ("HTTP/1.0 404 Not Found");
    header("Status: 404 Not Found");
    ?>
    qu63zondag 26 augustus 2007 @ 17:00
    quote:
    Op zondag 26 augustus 2007 16:49 schreef Xcalibur het volgende:
    kan je dat niet gewoon met een REPLACE doen, ipv INSERT?
    je bedoelt dus:

    REPLACE INTO IP VALUES($ipadres)

    qu63zondag 26 augustus 2007 @ 17:04
    optie 1)
    ipadres staat al in de database
    - ja? door naar 2
    - nee? 1.2

    optie 1.2)
    ipadres toevoegen aan database met mms_ID
    stop.

    optie 2) ook bij zelfde mss_ID?
    - ja? stoppen
    - nee? nieuwe invoegen
    Xcaliburzondag 26 augustus 2007 @ 17:10
    quote:
    Op zondag 26 augustus 2007 17:00 schreef qu63 het volgende:

    REPLACE INTO IP VALUES($ipadres)

    Komt het wel op neer ja
    http://dev.mysql.com/doc/refman/4.1/en/replace.html
    quote:
    REPLACE works exactly like INSERT, except that if an old row in the table has the same value as a new row for a PRIMARY KEY or a UNIQUE index, the old row is deleted before the new row is inserted.
    Moet je alleen je IP-adres uniek maken, maar dat is net het punt volgens mij
    Farenjizondag 26 augustus 2007 @ 17:10
    In mysql kun je indexes toevoegen en daarmee kun je ook zeggen dat bijv de combinatie van ipadres en mms_ID uniek moet zijn. Als je met een insert dan een niet unieke combi probeert in te voegen dan krijg je een foutmelding. Met replace ipv insert wordt eerst het bestaande record gewist voordat de nieuwe wordt ingevoerd.
    wobbelzondag 26 augustus 2007 @ 17:50
    Waarom levert het voglende script een plaatje op met kut brakke kwaliteit?

    1
    2
    3
    4
    5
    6
    <?php
    header                                                
    ("content-type: image/jpeg");
    $signature                                            = imagecreatefromjpeg ( "np_1.jpg" );
    imagejpeg                                            ( $signature, "", 100 );
    imagedestroy                                        ( $signature );
    ?>
    ralfiezondag 26 augustus 2007 @ 20:06
    ben een beetje aan het experimenteren met htaccess en mod_rewrite, maar kom even ergens niet uit

    ik heb de volgende url

    http://localhost/index.php?page=news&wat=anders

    dit wil ik omzetten naar

    http://localhost/index/news/anders

    lukt me op zich wel met:

    1
    2
    RewriteEngine on
    RewriteRule index/([^/]*)/(.*)$ /index.php?page=$1&wat=$2

    Maar wanneer ik dat doe werken alle relatieve links op die pagina (plaatjes, css, etc) niet meer. (gaat om links als 'css/base.css' en 'img/test.jpg' op die pagina) Kan dit in htaccess gefixed worden zonder al die relatieve links te moeten aanpassen? Zie ik iets doms over het hoofd?
    wobbelzondag 26 augustus 2007 @ 23:30
    je kan een base tag gebruiken

    <base href="http://forum.fok.nl/" />

    bijv.... alleen dat werkt niet altijd lekker (ik gebruik zelf ook index.php/nieuws/35) dus ik heb overal en altijd het volledig pad staan (dmv een #variable aangezien ik een template parser gebruik)
    Swetseneggermaandag 27 augustus 2007 @ 12:37
    Hoe kan ik mssql fouten onderdrukken in php?
    WyriHaximusmaandag 27 augustus 2007 @ 12:48
    quote:
    Op maandag 27 augustus 2007 12:37 schreef Swetsenegger het volgende:
    Hoe kan ik mssql fouten onderdrukken in php?
    1@mssqlfunction
    ?
    WyriHaximusmaandag 27 augustus 2007 @ 12:50
    quote:
    Op zondag 26 augustus 2007 23:30 schreef wobbel het volgende:
    je kan een base tag gebruiken

    <base href="http://forum.fok.nl/" />

    bijv.... alleen dat werkt niet altijd lekker (ik gebruik zelf ook index.php/nieuws/35) dus ik heb overal en altijd het volledig pad staan (dmv een #variable aangezien ik een template parser gebruik)
    Idd je moet wel goed opletten als je het gebruikt aangezien o.a. IE (met JS vooral) debiel is en veel bots ook (die snappen de tag helamaal niet) (let wel op dat de bots waar hem om gaat (google, yahoo, MS etc) geen problemen hebben, het gaat vooral om hack/spam etc bots).
    Swetseneggermaandag 27 augustus 2007 @ 12:51
    quote:
    Op maandag 27 augustus 2007 12:48 schreef WyriHaximus het volgende:

    [..]
    [ code verwijderd ]

    ?
    ik weet niet of dat werkt Kan helaas lastig testen in een live MSSQL database.
    WyriHaximusmaandag 27 augustus 2007 @ 12:53
    quote:
    Op maandag 27 augustus 2007 12:51 schreef Swetsenegger het volgende:

    [..]

    ik weet niet of dat werkt Kan helaas lastig testen in een live MSSQL database.
    Ja dat word lastig. Kan je geen test database regelen dan?
    Swetseneggermaandag 27 augustus 2007 @ 13:02
    quote:
    Op maandag 27 augustus 2007 12:53 schreef WyriHaximus het volgende:

    [..]

    Ja dat word lastig. Kan je geen test database regelen dan?
    Niet op korte termijn.
    WyriHaximusmaandag 27 augustus 2007 @ 13:03
    quote:
    Op maandag 27 augustus 2007 13:02 schreef Swetsenegger het volgende:

    [..]

    Niet op korte termijn.
    Meh dat is ruk. Ook niet stiekum lokaal?
    Dreammastermaandag 27 augustus 2007 @ 13:19
    quote:
    Op zondag 26 augustus 2007 20:06 schreef ralfie het volgende:
    ben een beetje aan het experimenteren met htaccess en mod_rewrite, maar kom even ergens niet uit

    ik heb de volgende url

    http://localhost/index.php?page=news&wat=anders

    dit wil ik omzetten naar

    http://localhost/index/news/anders

    lukt me op zich wel met:
    [ code verwijderd ]

    Maar wanneer ik dat doe werken alle relatieve links op die pagina (plaatjes, css, etc) niet meer. (gaat om links als 'css/base.css' en 'img/test.jpg' op die pagina) Kan dit in htaccess gefixed worden zonder al die relatieve links te moeten aanpassen? Zie ik iets doms over het hoofd?
    probeer dit eens....
    1
    2
    rewriteEngine On
    RewriteBase /


    verder escape ik de slashes meestal.. is in principe niet nodig.. maar toch

    [ Bericht 4% gewijzigd door Dreammaster op 27-08-2007 13:25:16 ]
    JeRamaandag 27 augustus 2007 @ 13:31
    quote:
    Op maandag 27 augustus 2007 12:51 schreef Swetsenegger het volgende:

    [..]

    ik weet niet of dat werkt Kan helaas lastig testen in een live MSSQL database.
    Een @-teken voor een functie onderdrukt alle foutmeldingen tot en met het niveau van een warning; daarboven (zoals fatal errors) komen er gewoon door. Het is verder niet zo dat het @-teken de functionaliteit van je script aanpast, dus je kunt het gewoon proberen (alhoewel het dus in een liveomgeving niet echt wenselijk is).
    GVRuudmaandag 27 augustus 2007 @ 14:56
    quote:
    Op zondag 26 augustus 2007 17:50 schreef wobbel het volgende:
    Waarom levert het voglende script een plaatje op met kut brakke kwaliteit?
    [ code verwijderd ]
    Ik heb met 100 als kwaliteit ook wel eens rare problemen gehad. Vervangen door 99 deed de trick.
    Swetseneggerdinsdag 28 augustus 2007 @ 11:54
    quote:
    Op maandag 27 augustus 2007 13:31 schreef JeRa het volgende:

    [..]

    Een @-teken voor een functie onderdrukt alle foutmeldingen tot en met het niveau van een warning; daarboven (zoals fatal errors) komen er gewoon door. Het is verder niet zo dat het @-teken de functionaliteit van je script aanpast, dus je kunt het gewoon proberen (alhoewel het dus in een liveomgeving niet echt wenselijk is).
    Ik ga het gewoon proberen. Het is toch een database die alleen ikzelf gebruik

    Andere vraag. Kan ik in een whilelus van mijn query results eenvoudig kijken wat de resultaten zijn in de volgende loop?
    JeRadinsdag 28 augustus 2007 @ 17:11
    quote:
    Op dinsdag 28 augustus 2007 11:54 schreef Swetsenegger het volgende:

    [..]

    Andere vraag. Kan ik in een whilelus van mijn query results eenvoudig kijken wat de resultaten zijn in de volgende loop?
    Je kunt het beter anders benaderen; je kunt de result set van je eerste query cachen (opslaan in een array bijvoorbeeld) en die bij het verwerken van de result set van je tweede query benaderen
    Swetseneggerdinsdag 28 augustus 2007 @ 18:09
    quote:
    Op dinsdag 28 augustus 2007 17:11 schreef JeRa het volgende:

    [..]

    Je kunt het beter anders benaderen; je kunt de result set van je eerste query cachen (opslaan in een array bijvoorbeeld) en die bij het verwerken van de result set van je tweede query benaderen
    Nee, het gat niet om een 2e query.
    De resultaten van een query worden in een while lus uitgelezen, record voor record.
    En als die whilelus nu bij record 11 is, wil eigenlijk weten wat er in record 12 staat.

    Dit ivm presentatie.
    Geqxondinsdag 28 augustus 2007 @ 18:24
    quote:
    Op dinsdag 28 augustus 2007 18:09 schreef Swetsenegger het volgende:

    [..]

    Nee, het gat niet om een 2e query.
    De resultaten van een query worden in een while lus uitgelezen, record voor record.
    En als die whilelus nu bij record 11 is, wil eigenlijk weten wat er in record 12 staat.

    Dit ivm presentatie.
    Misschien denk ik iets te simpel, maar toch een poging:

    -Alles in een numeric array
    -Met een "for ( $i = 0, $i < sizeof($array), $i ++) " alles uitlezen
    -$array[$i + 1] voor de volgende rij.

    ?
    Swetseneggerdinsdag 28 augustus 2007 @ 18:32
    quote:
    Op dinsdag 28 augustus 2007 18:24 schreef Geqxon het volgende:

    [..]

    Misschien denk ik iets te simpel, maar toch een poging:

    -Alles in een numeric array
    -Met een "for ( $i = 0, $i < sizeof($array), $i ++) " alles uitlezen
    -$array[$i + 1] voor de volgende rij.

    ?
    Mjah, zou kunnen werken inderdaad, maar ik vind 'm niet chique
    Ik ga nog even nadenken of ik het niet gewoon anders moet benaderen.
    Xcaliburdinsdag 28 augustus 2007 @ 18:54
    Volgens mij is het een stuk eenvoudiger om iets met het vorige record te vergelijken (of wat je d'r dan ook mee gaat doen) dan met het volgende .... simpelweg omdat je nog niet bij die informatie bent...

    Tenzij je het eerst in een andere array zet, zoals Geqxon zegt, maar ja
    Geqxondinsdag 28 augustus 2007 @ 18:55
    Of je pakt telkens de data van het vorige record, en gooit daarna je records om.
    Farenjidinsdag 28 augustus 2007 @ 19:50
    Zoiets gewoon toch?
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    var $counter = 0;
    while (var $ref = mysql_fetch_assoc($result)) {
       var $veld1 = $ref["veld1"]
       // etc
       if ($counter == 11) {
          var $ref2 = mysql_fetchrow($result);
          var $veld1 = $ref2["veld1"]
          // etc
       }
    }
    Farenjidinsdag 28 augustus 2007 @ 19:51
    Als je daarna nog verder wil loopen moet je er rekening houden dat de pointer wel is opgeschoven, die kun je evt terugzetten met mysql_field_seek.
    autocuedonderdag 30 augustus 2007 @ 00:43
    quote:
    Op dinsdag 28 augustus 2007 18:09 schreef Swetsenegger het volgende:

    [..]

    Nee, het gat niet om een 2e query.
    De resultaten van een query worden in een while lus uitgelezen, record voor record.
    En als die whilelus nu bij record 11 is, wil eigenlijk weten wat er in record 12 staat.

    Dit ivm presentatie.
    Goed idee om alles in één keer mee te nemen. Werkt zoiets als het volgende voor je?

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    // verkrijg een geldig result
    $resultSet = ...

    // definieer de eerste rij
    $row = mysql_fetch_assoc($resultSet);
    // zolang de meest recent gelezen rij geldig is
    while($row) {
         // haal de volgende rij op
         $nextRow = mysql_fetch_assoc($resultSet);

         // als $nextRow niet false is, is $row niet de laatste rij
         if($nextRow) {
             // vergelijk $row tegen $nextRow
         } else {
             // doe eventueel iets leuks met $row als laatste rij
         }

         // zet de huidige rij op de volgende rij om de loop compleet te maken
         $row = $nextRow;
    }
    BunnyHunterdonderdag 30 augustus 2007 @ 13:14
    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
    $result = mysql_query("SELECT * FROM teller");
    $ii = 0;
    while($row = mysql_fetch_array($result)){ 

       $url() = split("/", $row("referer"));
       $site = $url(1) . $url(2) . $url(3) . $url(4);

       $i = 1 ;
       $getelt = 0 ;

    while($i<=&ii){
       if ($siteteller($i,0) = $site){ $siteteller($i,1) = $siteteller($i,1) + 1;}
       $getelt = 1;
       $i = $i + 1;
    }

    if ($getelt = 0){ 
       $ii = $ii + 1;
       $siteteller($ii,0) = $site;
       $siteteller($ii,1) = 1;
       }
    }

    $i = 1 
    while ($i <= $ii){
    echo $siteteller($i,0);
    echo $siteteller($i,1);
    }


    de foutcode:
    Parse error: syntax error, unexpected T_WHILE in /home/sites/site3850/web/bestanden/sites.php on line 35

    in dit geval line 3

    wat moet de code doen::
    Ik split een url string, die ik weer aan elkaar koppel tot ik aleen een domein string over hou, daarna controleer ik of de string al eens eerder is voorgekomen en als dat niet zo is maak ik een nieuwe teller aan.

    ik ben gewend om ASP of VB te programeren, en ik word een beetje gek van PHP om eerlijk te zijn
    Geqxondonderdag 30 augustus 2007 @ 13:27
    Hij verwacht simpelweg geen while lus. Toevallig een accolade vergeten? Een punt-komma?
    unox_worstdonderdag 30 augustus 2007 @ 13:30
    Regel 24 mis je een punt-komma, voor de rest zie ik in dit stukje code geen fouten.

    Edit:
    Je mist helemaal onderaan idd een accolade.
    Dreammasterdonderdag 30 augustus 2007 @ 13:30
    quote:
    Op donderdag 30 augustus 2007 13:14 schreef BunnyHunter het volgende:

    [ code verwijderd ]

    de foutcode:
    Parse error: syntax error, unexpected T_WHILE in /home/sites/site3850/web/bestanden/sites.php on line 35

    in dit geval line 3

    wat moet de code doen::
    Ik split een url string, die ik weer aan elkaar koppel tot ik aleen een domein string over hou, daarna controleer ik of de string al eens eerder is voorgekomen en als dat niet zo is maak ik een nieuwe teller aan.

    ik ben gewend om ASP of VB te programeren, en ik word een beetje gek van PHP om eerlijk te zijn
    line 25 denk ik.... geen puntkomma op line 24

    edit: en op regel 11 een & ipv $
    unox_worstdonderdag 30 augustus 2007 @ 13:36
    Die if statement of regel 12 klopt volgens mij ook niet helemaal, zal straks is kijken wat ook alweer precies de bedoeling was enzo.
    Dreammasterdonderdag 30 augustus 2007 @ 13:36
    quote:
    Op donderdag 30 augustus 2007 13:30 schreef unox_worst het volgende:
    Regel 24 mis je een punt-komma, voor de rest zie ik in dit stukje code geen fouten.

    Edit:
    Je mist helemaal onderaan idd een accolade.
    Voor zover ik kan zien staan de accolades goed, alleen een beetje onoverzichtelijk
    Dreammasterdonderdag 30 augustus 2007 @ 13:38
    quote:
    Op donderdag 30 augustus 2007 13:36 schreef unox_worst het volgende:
    Die if statement of regel 12 klopt volgens mij ook niet helemaal, zal straks is kijken wat ook alweer precies de bedoeling was enzo.
    Daar moet == staan ipv =
    nu is de vergelijking altijd true en heeft dus geen nut

    [ Bericht 22% gewijzigd door Dreammaster op 30-08-2007 13:52:57 (verkeerde quote) ]
    Dreammasterdonderdag 30 augustus 2007 @ 13:41
    en de laatste while loop is infinite
    Geqxondonderdag 30 augustus 2007 @ 13:49
    quote:
    Op donderdag 30 augustus 2007 13:36 schreef Dreammaster het volgende:

    [..]

    Voor zover ik kan zien staan de accolades goed, alleen een beetje onoverzichtelijk
    Bevestigd, vijf openingsaccolades en vijf sluitingsaccolades.
    markiemarkdonderdag 30 augustus 2007 @ 15:47
    Even een heel simpel vraagje... Hoeveel rijen kan een MySQL tabel maximaal aan, wat is aan te raden om als maximum te houden?
    Of is het afhankelijk van de grootte van de schijf in de server en de prestaties die deze kan leveren?
    unox_worstdonderdag 30 augustus 2007 @ 15:48
    quote:
    Op donderdag 30 augustus 2007 15:47 schreef markiemark het volgende:
    Even een heel simpel vraagje... Hoeveel rijen kan een MySQL tabel maximaal aan, wat is aan te raden om als maximum te houden?
    Of is het afhankelijk van de grootte van de schijf in de server en de prestaties die deze kan leveren?
    Ik heb hier een groot deel van de kvk-database geïmporteerd, dat waren 780.000 records ongeveer.
    Geqxondonderdag 30 augustus 2007 @ 15:49
    quote:
    Op donderdag 30 augustus 2007 15:47 schreef markiemark het volgende:
    Even een heel simpel vraagje... Hoeveel rijen kan een MySQL tabel maximaal aan, wat is aan te raden om als maximum te houden?
    Of is het afhankelijk van de grootte van de schijf in de server en de prestaties die deze kan leveren?
    http://dev.mysql.com/doc/refman/5.0/en/features.html
    quote:
    Handles large databases. We use MySQL Server with databases that contain 50 million records. We also know of users who use MySQL Server with 60,000 tables and about 5,000,000,000 rows.
    markiemarkdonderdag 30 augustus 2007 @ 15:52
    In principe kan ik er dus echt wel best wat in kwijt.. hehe
    Het gaat mij om de opslag van tijden met daarbij behorende info, een soort logboek. Er komen waarschijnlijk best wel grote aantallen records in de tabel 'log' te staan. Is het verstandig om na bijv. 1 miljoen (ik noem maar een aantal..) records de data te kopieren naar een andere tabel? Of naar een andere database eventueel?
    BunnyHunterdonderdag 30 augustus 2007 @ 15:59
    quote:
    Op donderdag 30 augustus 2007 13:41 schreef Dreammaster het volgende:
    en de laatste while loop is infinite
    Ja klopt maar dat zijn foutjes waar ik achterkom met testen normaal.

    ik zal even alles gaan aanpassen en die == voor vergelijking vergeet ik altijd omdat dit in andere talen niet zo is.

    iig. bedankt
    Catch22-donderdag 30 augustus 2007 @ 16:00
    quote:
    met 60.000 tabellen moet je je database echt eens op orde brengen
    Geqxondonderdag 30 augustus 2007 @ 16:09
    quote:
    Op donderdag 30 augustus 2007 16:00 schreef Catch22- het volgende:

    [..]

    met 60.000 tabellen moet je je database echt eens op orde brengen
    Hetzelfde met 3500 kolommen op een tabel.
    BunnyHunterdonderdag 30 augustus 2007 @ 16:40
    Ik heb dus alle fouten die aangegeven waren eruit gehaalt maar hij geeft me dus nu de foutmelding

    Parse error: syntax error, unexpected '=' in /home/sites/site3850/web/bestanden/sites.php on line 45

    dat is bij dit stukje code op 14 in dit bericht
    $siteteller($i,1) = $siteteller($i,1) + 1;

    ik denk zelf dat hij het niet ziet als een integer, ik kan het aleen niet testen omdat ik zo snel geen convert functie vind daarvoor.

    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
    $result = mysql_query("SELECT * FROM teller");

    $ii = 0;
    while($row = mysql_fetch_array($result)){ 

       $url = split("/", $row("referer"));
       $site = $url(1) . $url(2) . $url(3) . $url(4);

       $i = 1 ;
       $getelt = 0 ;

    while($i<=$ii){
       if ($siteteller($i,0) == $site){ 
       $siteteller($i,1) = $siteteller($i,1) + 1;
       $getelt = 1;
       }
       $i = $i + 1;
       
    }

    if ($getelt = 0){ 
       $ii = $ii + 1;
       $siteteller($ii,0) = $site;
       $siteteller($ii,1) = 1;
       }
    }

    $i = 1;
    while ($i <= $ii){
    echo $siteteller($i,0);
    echo $siteteller($i,1);
    $i = $i + 1;
    }
    Farenjidonderdag 30 augustus 2007 @ 17:28
    quote:
    Op donderdag 30 augustus 2007 15:52 schreef markiemark het volgende:
    In principe kan ik er dus echt wel best wat in kwijt.. hehe
    Het gaat mij om de opslag van tijden met daarbij behorende info, een soort logboek. Er komen waarschijnlijk best wel grote aantallen records in de tabel 'log' te staan. Is het verstandig om na bijv. 1 miljoen (ik noem maar een aantal..) records de data te kopieren naar een andere tabel? Of naar een andere database eventueel?
    Ik denk dat dat meer problemen geeft dan het oplost omdat die data dan niet meer toegankelijk is. Ik werk met databases waar soms tabellen met miljoenen records in zitten, en dat is goed te doen. Alleen doorzoeken kan lang duren, afhankelijk wat je zoekt; tabellen met miljoenen rows met elkaar joinen, daar staat ie meestal wel even op te stampen. Je kan de tijd verkorten door goed db ontwerp en slim van mysql indices gebruik te maken maar voor de applicaties waar ik mee werk is dat nog niet genoeg. De oplossing die gebruikt wordt is het maken van een aparte index tabel, een zgn datamart, waar je de data bijelkaar zet die je snel boven water wil toveren. Die moet je dan wel bijv elke dag opnieuw genereren.
    SuperRembodonderdag 30 augustus 2007 @ 18:34
    quote:
    Op donderdag 30 augustus 2007 16:40 schreef BunnyHunter het volgende:
    Ik heb dus alle fouten die aangegeven waren eruit gehaalt maar hij geeft me dus nu de foutmelding

    Parse error: syntax error, unexpected '=' in /home/sites/site3850/web/bestanden/sites.php on line 45

    dat is bij dit stukje code op 14 in dit bericht
    $siteteller($i,1) = $siteteller($i,1) + 1;

    ik denk zelf dat hij het niet ziet als een integer, ik kan het aleen niet testen omdat ik zo snel geen convert functie vind daarvoor.
    [ code verwijderd ]
    Dit ziet er uit als een slechte poging om een asp scriptje om te zetten naar php.
    Of leer php òf zoek een andere hobby.
    BunnyHunterdonderdag 30 augustus 2007 @ 18:43
    quote:
    Op donderdag 30 augustus 2007 18:34 schreef SuperRembo het volgende:

    [..]

    Dit ziet er uit als een slechte poging om een asp scriptje om te zetten naar php.
    Of leer php òf zoek een andere hobby.
    daar ben ik dus mee bezig.. dus als je me vertelt wat ik fout doe anders
    SuperRembodonderdag 30 augustus 2007 @ 19:17
    quote:
    Op donderdag 30 augustus 2007 18:43 schreef BunnyHunter het volgende:
    daar ben ik dus mee bezig.. dus als je me vertelt wat ik fout doe anders
    Begin eens bij w3schools.com. De fouten die hier in zitten zijn echt te basic om uit te leggen.
    BunnyHunterdonderdag 30 augustus 2007 @ 19:53
    quote:
    Op donderdag 30 augustus 2007 19:17 schreef SuperRembo het volgende:

    [..]

    Begin eens bij w3schools.com. De fouten die hier in zitten zijn echt te basic om uit te leggen.
    ik zoek alles op op w3schools maargoed ik kloot wel wat verder aan
    SuperRembodonderdag 30 augustus 2007 @ 21:19
    Het grootste probleem is dat $siteteller een array van array's zou moeten zijn. Voor php ziet $siteteller($i,1) er uit als functie aanroep, niet als element in een array. En daar kan je geen waarde aan toe kennen met $siteteller($i,1) = 1, vandaar de syntax error "unexpected '=' ".
    BunnyHunterdonderdag 30 augustus 2007 @ 21:52
    quote:
    Op donderdag 30 augustus 2007 21:19 schreef SuperRembo het volgende:
    Het grootste probleem is dat $siteteller een array van array's zou moeten zijn. Voor php ziet $siteteller($i,1) er uit als functie aanroep, niet als element in een array. En daar kan je geen waarde aan toe kennen met $siteteller($i,1) = 1, vandaar de syntax error "unexpected '=' ".
    ja kijk daar had ik het net dus over met iemand in de kantine.. ik dacht dus dat die array's gewoon net zo werkte als in asp en etc. maar hij werkt dus zoals de session array variabalen werken bij asp.

    dom dom, hartelijk dank (al snap ik niet waarom ze het zo lastig maken)
    Dzydonderdag 30 augustus 2007 @ 22:13
    Ik heb even een vraagje over mijn database design. Ik heb de hele applicatie al in elkaar zitten maar ik vroeg me af of ik de databases wel slim in elkaar gezet heb.

    Even een korte beschrijving van de applicatie:

    Het is voor distributie van kerstpakketten bij bedrijven waar de werknemers dan kunnen kiezen welk kerstpakket ze willen. Een bedrijf kan zich bij de opdrachtgever van de applicatie aanmelden en kiezen hoeveel van elk kerstpakket ze willen. Stel ze hebben 800 werknemers en ze willen 100 van pakket 1, 200 van pakket 2 en 500 van pakket 3. Dan krijgen ze een lijst met 800 usernames met passwords. Elke werknemer krijgt er hier 1 van, waarmee ze kunnen inloggen en dan kunnen ze uit een van de pakketten die is geselecteerd kiezen, behalve als er al X werknemers die hebben gekozen en er maar X van die pakketten waren gekozen door het bedrijf. Dan vult de werknemer zijn gegevens in en dan is het voor de werknemer klaar. Op een bepaalde datum sluit het voor dat bedrijf en worden alle pakketten verzonden.

    Hier zijn de 3 tabellen die ik gebruik:

    BedrijvenTabel: Heeft ID, de naam van het bedrijf, de prefix voor de usernames, het aantal werknemers, nog wat willekeurige opties, en het belangrijkste: Voor elk pakket 2 kolommen met het aantal vanaf het begin en hoeveel er nog over zijn. Elke keer als er een kerstpakket wordt toegevoegd worden er dus twee extra kolommen toegevoegd en weer verwijderd als het pakket wordt verwijderd.

    PakkettenTabel: Heeft ID, naam en beschrijving van het pakket, prijs, url naar plaatje etc.

    UserTabel: Heeft ID, bedrijfsID voor bij welk bedrijf hij hoort, username en password, gegevens (die dus worden ingevuld nadat hij zich heeft aangemeld) en welk pakket er uiteindelijk is gekozen.

    Nu vroeg ik me dus af of ik met het pakketten toevoegen/verwijderen het niet anders had op kunnen lossen dan kolommen toevoegen en verwijderen. Zijn hier andere constructies voor mogelijk? Of heb ik het zo prima opgelost (vind ik wel, alleen heb ik het gevoel dat het overzichtelijker kan)
    BunnyHunterdonderdag 30 augustus 2007 @ 22:21
    maak een tabel met..

    Bedrijf ( ID, ... rest van info )
    Kerstpakketten( ID , pakket info)

    BedrijfPakket ( ID , BedrijfID, KerspakkerID, Limiet)

    User(ID, info)
    Bestelt(ID, UserID, PakketID)

    wat ik dus doe, ik geef bedrijf en kerspakket een eigen tabel.. in een nieuwe tabel koppel ik bedrijf en kerstpakketten aan elkaar en zet ik daar het limiet aan vast. scheelt velden in je tabel en voorkomt redundantie.

    daarna koppel ik user aan een pakket id (als hij een pakket bestelt) ..

    door het aantal pakketID te tellen in bestelt weet ik of ik een limiet bereik in bedrijfpakket

    om redundantie te verkomen.. kun je uit de bestelt tabel opmaken of iets al op is of niet op het moment dat je de pagina opent waar je pakketten kunt kiezen .. (count pakketID in bestelt < limiet in bedrijfpakket dan laat keuze optie zien)


    indien je dit vaker moet doen is het goed als je de theorie eens leert (welke best nog wel pittig kan zijn voor een leek) .. en deze site is niet echt geweldig volgens mij .. even verder googlen.

    daarnaast heb ik elke tabel een ID gegeven als primaire sleutel.. dit is eigenlijk niet nodig

    hier bijvoorbeeld:
    BedrijfPakket ( ID , BedrijfID, KerspakkerID, Limiet)

    is BedrijfID en KerspakketID samen ook goed als primaire sleutel (die combinatie komt immers maar 1 keer voor) hierbij ga ik er wel vanuit dat de database geleegt word als alles geleverd is en volgend jaar opnieuw begonnen word. Aangezien je anders dubbele waarden krijgt en je met programeren problemen krijgt. Is dit niet moet je ook nog jaartallen of datums gaan verwerken in je database.

    het is nu een beetje een rommel verhaal geworden maar het mag dus duidelijk zijn dat je goed moet nadenken voordat je ook maar begint aan het aanmaken van een database

    [ Bericht 21% gewijzigd door BunnyHunter op 30-08-2007 22:31:06 ]
    PiRANiAvrijdag 31 augustus 2007 @ 12:35
    Zit er een maximum aan data dat fopen opent?

    Als ik namelijk http://msn.com/ wil fopenen, krijg ik alleen maar dit terug:
    quote:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xml:lang="en-us" lang="en-us" xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><meta http-equiv="pics-label" content="(pics-1.1 "http://www.icra.org/ratingsv02.html" l gen true for "http://www.msn.com" r (cz 1 lz 1 nz 1 oz 1 vz 1) gen true for "http://msn.com" r (cz 1 lz 1 nz 1 oz 1 vz 1) gen true for "http://stb.msn.com" r (cz 1 lz 1 nz 1 oz 1 vz 1) gen true for "http://stc.msn.com" r (cz 1 lz 1 nz 1 oz 1 vz 1) gen true for "http://stj.msn.com" r (cz 1 lz 1 nz 1 oz 1 vz 1) "http://www.rsac.org/ratingsv01.html" l gen true for "http://www.msn.com" r (n 0 s 0 v 0 l 0)gen true for "http://msn.com" r (n 0 s 0 v 0 l 0)gen true for "http://stb.msn.com" r (n 0 s 0 v 0 l 0) gen true for "http://stc.msn.com" r (n 0 s 0 v 0 l 0) gen true for "http://stj.msn.com" r (n 0 s 0 v 0 l 0))" /><link rel="SHORTCUT ICON" href="http://hp.msn.com/global/c/hpv10/favicon.ico" type="image/x-icon" /><meta name="ROBOTS" content="NOODP" /><link rel="search" type="application/opensearchdescription+xml" title="Live Search" href="http://www.live.com/live/search/search.xml" /><meta name="description" content="MSN's all-in-one Internet portal, the home of Hotmail, MSN Messenger, MSNBC News, Fox Sports, Slate Magazine and more information you care about" /><title>MSN.com</title><style type="text/css">@import url("http://stc.msn.com/br/hp/en-us/css/31/ushpw.css");@import url("http://stc.msn.com/br/hp/en-us/css/31/ovrN.css");</style><!--[if IE]><style type="text/css">@import url("http://stc.msn.com/br/
    alleen het begin van het bestand dus... Hoe kan ik dit verhelpen?

    [ Bericht 96% gewijzigd door PiRANiA op 31-08-2007 12:44:00 ]
    Geqxonvrijdag 31 augustus 2007 @ 12:57
    Door het aantal bytes te verhogen. Wat is je huidige sourcecode?
    PiRANiAvrijdag 31 augustus 2007 @ 13:27
    $handle = fopen ($row['href'], "r"); #Open pagina
    $datavar="ERROR";
    $datavar = fread ($handle, 8192);
    if($datavar=="ERROR"){ #Er is niks opgehaald: break
    mysql_query("DELETE FROM `ahref` WHERE `href`='".$row['href']."' ");
    break;
    }
    PiRANiAvrijdag 31 augustus 2007 @ 13:39
    quote:
    Op vrijdag 31 augustus 2007 13:27 schreef PiRANiA het volgende:
    $handle = fopen ($row['href'], "r"); #Open pagina
    $datavar="ERROR";
    $datavar = fread ($handle, 8192);
    if($datavar=="ERROR"){ #Er is niks opgehaald: break
    mysql_query("DELETE FROM `ahref` WHERE `href`='".$row['href']."' ");
    break;
    }
    de 8192 veranderen zeker...

    ga ik proberen.

    ik had dit stukje gekopieerd en niet gekeken wat het deed. Jou tip heeft me geholpen (denk ik )
    Tiemievrijdag 31 augustus 2007 @ 13:49
    Je kan ook steeds 8192 bytes ophalen in een while loop
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <?php
    // http://php.net/fread
    $handle fopen("http://www.example.com/""rb");
    $contents '';
    while (!
    feof($handle)) {
      
    $contents .= fread($handle8192);
    }
    fclose($handle);
    ?>


    of file_get_contents kunnen gebruiken.
    PiRANiAvrijdag 31 augustus 2007 @ 13:52
    Is er ook een maximum?
    Farenjivrijdag 31 augustus 2007 @ 20:24
    uit de php documentatie:

    1]$contents = fread($handle, filesize($filename));
    SuperRembovrijdag 31 augustus 2007 @ 20:34
    quote:
    Op vrijdag 31 augustus 2007 20:24 schreef Farenji het volgende:
    uit de php documentatie:
    [ code verwijderd ]
    Alleen is de filesize een beetje lastig bij een webpagina
    Geqxonvrijdag 31 augustus 2007 @ 21:10
    quote:
    Op vrijdag 31 augustus 2007 20:34 schreef SuperRembo het volgende:

    [..]

    Alleen is de filesize een beetje lastig bij een webpagina
    Allicht de "Content-length" uit de HTTP-headers halen?
    Chivuzondag 2 september 2007 @ 13:19
    Ik wil via een formulier meerdere files (1 tot in de praktijk 10) uploaden. Met kleine bestanden gaat dit prima. Met een 10-tal 'grote' bestanden (foto's uit een digitale camera, 1 a 2mb per stuk) duurt dit waarschijnlijk te lang en krijg ik na een (beperkt aantal? 15-20) seconden de originele uploadpagina weer te zien. De $_POST wordt dus niet meegegeven, anders kreeg ik de resultatenpagina te zien.

    Nu heb ik me rot gezocht op GoT of het mogelijk is om tussen elke uploadactie de pagina te refreshen.

    1. Upload formulier met 10 input type=file elementen
    2. Upload $_FILES[0]
    3. Refresh
    4. Upload $_FILES[1]
    5. Refresh
    6. Upload $_FILES[2]
    7. Refresh
    8. Upload $_FILES[3]
    9. etc. etc.
    10. Klaar, toon de resultatenpagina

    Hiervoor moeten de $_POST en $_FILES variabelen dus keer op keer doorgegeven worden bij de refresh, inclusief een teller-variabele om telkens de volgende $_FILES[$teller] af te lopen.

    Is dit mogelijk en hoe doe ik dit precies? Ik wil liever niet afhankelijk zijn van php.ini settings, zodat onafhankelijk van de server de website gewoon werkt met de standaard PHP instellingen.
    markiemarkmaandag 3 september 2007 @ 14:16
    Ik ben een inlog siteje aan het maken, waar je ook kunt uitloggen hehe logisch.. Nu wil ik er voor zorgen dat mijn cookies en sessies vernietigd worden. In IE werkt het wel, in Firefox niet. Heb de volgende code:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <?php // gebruikersinformatie uit cache verwijderen
    // sessies vernietigen
    session_start();
    session_destroy();
    session_unset();

    // cookies verwijderen
    setcookie("email", "", 0);
    setcookie("password", "", 0);

    header("Location: ../index.php");
    ?>


    Doe ik iets verkeerds?
    Catch22-maandag 3 september 2007 @ 14:40
    je moet het absoluten pad in je header location zetten. Firefox doet blijkbaar wat lastiger als hij geen base_href meekrijgt
    quote:
    Op zondag 2 september 2007 13:19 schreef Chivu het volgende:
    Ik wil via een formulier meerdere files (1 tot in de praktijk 10) uploaden. Met kleine bestanden gaat dit prima. Met een 10-tal 'grote' bestanden (foto's uit een digitale camera, 1 a 2mb per stuk) duurt dit waarschijnlijk te lang en krijg ik na een (beperkt aantal? 15-20) seconden de originele uploadpagina weer te zien. De $_POST wordt dus niet meegegeven, anders kreeg ik de resultatenpagina te zien.

    Nu heb ik me rot gezocht op GoT of het mogelijk is om tussen elke uploadactie de pagina te refreshen.

    1. Upload formulier met 10 input type=file elementen
    2. Upload $_FILES[0]
    3. Refresh
    4. Upload $_FILES[1]
    5. Refresh
    6. Upload $_FILES[2]
    7. Refresh
    8. Upload $_FILES[3]
    9. etc. etc.
    10. Klaar, toon de resultatenpagina

    Hiervoor moeten de $_POST en $_FILES variabelen dus keer op keer doorgegeven worden bij de refresh, inclusief een teller-variabele om telkens de volgende $_FILES[$teller] af te lopen.

    Is dit mogelijk en hoe doe ik dit precies? Ik wil liever niet afhankelijk zijn van php.ini settings, zodat onafhankelijk van de server de website gewoon werkt met de standaard PHP instellingen.
    Je zal altijd met een beperkte timeout te maken houden en files van een paar mb duren gewoon lang om te uploaden, dus krijg je met de timeout van doen, als je refreshed ben je je post data kwijt...
    Dreammastermaandag 3 september 2007 @ 14:57
    quote:
    Op zondag 2 september 2007 13:19 schreef Chivu het volgende:
    Ik wil via een formulier meerdere files (1 tot in de praktijk 10) uploaden. Met kleine bestanden gaat dit prima. Met een 10-tal 'grote' bestanden (foto's uit een digitale camera, 1 a 2mb per stuk) duurt dit waarschijnlijk te lang en krijg ik na een (beperkt aantal? 15-20) seconden de originele uploadpagina weer te zien. De $_POST wordt dus niet meegegeven, anders kreeg ik de resultatenpagina te zien.

    Nu heb ik me rot gezocht op GoT of het mogelijk is om tussen elke uploadactie de pagina te refreshen.

    1. Upload formulier met 10 input type=file elementen
    2. Upload $_FILES[0]
    3. Refresh
    4. Upload $_FILES[1]
    5. Refresh
    6. Upload $_FILES[2]
    7. Refresh
    8. Upload $_FILES[3]
    9. etc. etc.
    10. Klaar, toon de resultatenpagina

    Hiervoor moeten de $_POST en $_FILES variabelen dus keer op keer doorgegeven worden bij de refresh, inclusief een teller-variabele om telkens de volgende $_FILES[$teller] af te lopen.

    Is dit mogelijk en hoe doe ik dit precies? Ik wil liever niet afhankelijk zijn van php.ini settings, zodat onafhankelijk van de server de website gewoon werkt met de standaard PHP instellingen.
    je kunt ook gewoon de max_execution_time omhoog gooien
    1
    2
    3
    <?php
    ini_set
    ('max_execution_time'120);
    ?>
    devvertjemaandag 3 september 2007 @ 14:58
    Kan je dat ook niet in .htaccess aangeven............ ?
    Catch22-maandag 3 september 2007 @ 15:22
    Nee
    wiki
    quote:
    htaccess (hypertext access) is the default name of Apache's directory-level configuration file. It provides the ability to customize configuration for requests to the particular directory.

    .htaccess files are commonly used for:

    * Authorization, authentication: .htaccess files are often used to specify the security restrictions for the particular directory, hence the filename "access". The .htaccess file is often accompanied by an .htpasswd file which stores valid usernames and their passwords.
    * Customized error responses: Changing the page that is shown when a server-side error occurs, for example HTTP 404 Not Found.
    * Rewriting URLs: Various server-side PHP scripts use .htaccess to rewrite "ugly" URLs to shorter and prettier ones.
    dat is echt een instelling in je php zelf
    JeRamaandag 3 september 2007 @ 15:24
    Je kunt met .htaccess weldegelijk instellingen aanpassen. Let ook op de woorden 'are commonly used for'.
    Catch22-maandag 3 september 2007 @ 15:27
    het hoort niet, als het al gaat werken.

    wat is het probleem? Je kan toch gewoon die ini_set toepassen. Bij sommige hosts kun je de htaccess niet aanpassen, of is die er simpelweg niet (bij het geval IIS hosting )
    Chivumaandag 3 september 2007 @ 15:36
    quote:
    Op maandag 3 september 2007 14:40 schreef Catch22- het volgende:
    Je zal altijd met een beperkte timeout te maken houden en files van een paar mb duren gewoon lang om te uploaden, dus krijg je met de timeout van doen, als je refreshed ben je je post data kwijt...
    Dat dacht ik al. Ik hou het maar gewoon op een check dat bestanden van meer dan 2mb niet geupload mogen worden. Ik gebruik liever niet iets als JUpload vanwege overige bewerkingen die daarna nog met de plaatjes uitgevoerd moeten worden, dus dan wordt het maar gewoon maximaal 3-5 plaatjes uploaden. Daar moet wel genoeg tijd voor zijn, en dan maar met die ini-set Bedankt.
    Dreammastermaandag 3 september 2007 @ 15:58
    quote:
    Op maandag 3 september 2007 15:36 schreef Chivu het volgende:

    [..]

    Dat dacht ik al. Ik hou het maar gewoon op een check dat bestanden van meer dan 2mb niet geupload mogen worden. Ik gebruik liever niet iets als JUpload vanwege overige bewerkingen die daarna nog met de plaatjes uitgevoerd moeten worden, dus dan wordt het maar gewoon maximaal 3-5 plaatjes uploaden. Daar moet wel genoeg tijd voor zijn, en dan maar met die ini-set Bedankt.
    wellicht handig om het via ajax te doen om te voorkomen dat de gebruiker de pagina gaat refreshen omdat het hem te lang duurt
    Chivumaandag 3 september 2007 @ 16:06
    Ik vind Ajax heel lief, maar ik heb me nog niet in AJAX verdiept. Bovendien moet een gedisabled uploadknopje en een animatie+melding genoeg zijn om mensen te laten wachten.
    Dreammastermaandag 3 september 2007 @ 16:49
    quote:
    Op maandag 3 september 2007 16:06 schreef Chivu het volgende:
    Ik vind Ajax heel lief, maar ik heb me nog niet in AJAX verdiept. Bovendien moet een gedisabled uploadknopje en een animatie+melding genoeg zijn om mensen te laten wachten.
    AJAX heb je binnen 5 minuten geleerd. Maar in principe heb je wel gelijk natuurlijk.
    markiemarkmaandag 3 september 2007 @ 16:53
    quote:
    Op maandag 3 september 2007 16:49 schreef Dreammaster het volgende:

    [..]

    AJAX heb je binnen 5 minuten geleerd. Maar in principe heb je wel gelijk natuurlijk.
    kun je het binnen 5 min typen leren? zo ja, dan zou ik zeggen.. succes!
    HuHumaandag 3 september 2007 @ 18:34
    quote:
    Op maandag 3 september 2007 14:40 schreef Catch22- het volgende:
    je moet het absoluten pad in je header location zetten. Firefox doet blijkbaar wat lastiger als hij geen base_href meekrijgt
    [..]

    Je zal altijd met een beperkte timeout te maken houden en files van een paar mb duren gewoon lang om te uploaden, dus krijg je met de timeout van doen, als je refreshed ben je je post data kwijt...
    De timeout geldt niet voor file uploads. Zolang er nog een upload loopt naar de server, telt de max_execution_time van PHP nog niet af.
    quote:
    The maximum execution time is not affected by system calls, stream operations etc. Please see the set_time_limit() function for more details.

    You can not change this setting with ini_set() when running in safe mode. The only workaround is to turn off safe mode or by changing the time limit in the php.ini.

    Your web server can have other timeouts. E.g. Apache has Timeout directive, IIS has CGI timeout function, both default to 300 seconds. See the web server documentation for meaning of it.
    Als er toch een time-out op treedt, is dat waarschijnlijk een time-out vanuit de webserver en niet vanuit PHP.
    Farenjimaandag 3 september 2007 @ 19:05
    quote:
    Op maandag 3 september 2007 16:49 schreef Dreammaster het volgende:

    [..]

    AJAX heb je binnen 5 minuten geleerd. Maar in principe heb je wel gelijk natuurlijk.
    Ah, je hebt er verstand van, dat zie ik al

    Met AJAX kun je niet eens fileuploads doen.... dat moet via een iframe.
    JeRamaandag 3 september 2007 @ 19:32
    quote:
    Op maandag 3 september 2007 15:27 schreef Catch22- het volgende:
    het hoort niet, als het al gaat werken.
    Hoezo 'het hoort niet'? Imho een prima toepassing van .htaccess om de webserver een module te configureren voor de bestanden in die map en alle submappen.
    PiRANiAdinsdag 4 september 2007 @ 14:03
    Ik heb een vraagje.
    Hoe haalt hyves (en anders websites) je adresboek van je mailaccount af?
    Logt de server in op gmail, opent dan 'contacts' en haalt dan alles er af?

    Of doen ze dat anders?
    Ik wil het wel weten, want het lijkt me handig voor mijn site
    GVRuuddinsdag 4 september 2007 @ 14:48
    quote:
    Op dinsdag 4 september 2007 14:03 schreef PiRANiA het volgende:
    Ik heb een vraagje.
    Hoe haalt hyves (en anders websites) je adresboek van je mailaccount af?
    Logt de server in op gmail, opent dan 'contacts' en haalt dan alles er af?

    Of doen ze dat anders?
    Ik wil het wel weten, want het lijkt me handig voor mijn site
    Google op 'gmail api'. Er lijken verschillende libraries te zijn waarmee je gmail-functionaliteit kunt gebruiken. Verder geen ervaring mee eigenlijk.
    PiRANiAdinsdag 4 september 2007 @ 15:40
    quote:
    Op dinsdag 4 september 2007 14:48 schreef GVRuud het volgende:

    [..]

    Google op 'gmail api'. Er lijken verschillende libraries te zijn waarmee je gmail-functionaliteit kunt gebruiken. Verder geen ervaring mee eigenlijk.
    Ook voor php?
    En hoe zit het met andere mailsystemen?
    WyriHaximusdinsdag 4 september 2007 @ 15:52
    quote:
    Op dinsdag 4 september 2007 14:03 schreef PiRANiA het volgende:
    Ik heb een vraagje.
    Hoe haalt hyves (en anders websites) je adresboek van je mailaccount af?
    Logt de server in op gmail, opent dan 'contacts' en haalt dan alles er af?

    Of doen ze dat anders?
    Ik wil het wel weten, want het lijkt me handig voor mijn site
    Heh moet je je username en password opgeven zeker?
    PiRANiAdinsdag 4 september 2007 @ 15:56
    quote:
    Op dinsdag 4 september 2007 15:52 schreef WyriHaximus het volgende:

    [..]

    Heh moet je je username en password opgeven zeker?
    ja inderdaad. Maar wat gebeurt er dan?
    Wordt gmail geopend?
    unox_worstwoensdag 5 september 2007 @ 09:06
    quote:
    Op dinsdag 4 september 2007 15:56 schreef PiRANiA het volgende:

    [..]

    ja inderdaad. Maar wat gebeurt er dan?
    Wordt gmail geopend?
    Nee er wordt gebruik gemaakt van een API van google, die is als het goed is wel ergens te downloaden denk ik. Alles wat je met gmail wil doen kun je dan via die API doen.
    WyriHaximuswoensdag 5 september 2007 @ 09:20
    quote:
    Op dinsdag 4 september 2007 15:56 schreef PiRANiA het volgende:

    [..]

    ja inderdaad. Maar wat gebeurt er dan?
    Wordt gmail geopend?
    Ja zo of via een API gebeurt dat meestal .
    quote:
    Op woensdag 5 september 2007 09:06 schreef unox_worst het volgende:

    [..]

    Nee er wordt gebruik gemaakt van een API van google, die is als het goed is wel ergens te downloaden denk ik. Alles wat je met gmail wil doen kun je dan via die API doen.
    Zolang er maar niet mee gespammed word. Want dat soort mensen zouden ze achter een motor aan over de snelweg moeten slepen
    GVRuudwoensdag 5 september 2007 @ 09:38
    quote:
    Op dinsdag 4 september 2007 15:40 schreef PiRANiA het volgende:

    [..]

    Ook voor php?
    En hoe zit het met andere mailsystemen?
    Ook voor PHP: http://sourceforge.net/projects/gmail-lite/

    Neem aan dat er voor een boel andere mailaanbieders ook wel zoiets zal zijn...
    JortKwoensdag 5 september 2007 @ 09:55
    quote:
    Op woensdag 5 september 2007 09:38 schreef GVRuud het volgende:

    [..]

    Ook voor PHP: http://sourceforge.net/projects/gmail-lite/

    Neem aan dat er voor een boel andere mailaanbieders ook wel zoiets zal zijn...
    Aan de screenshots te zien bijvoorbeeld handig voor op een PDA ofzo
    WyriHaximuswoensdag 5 september 2007 @ 13:55
    quote:
    Op woensdag 5 september 2007 09:55 schreef JortK het volgende:

    [..]

    Aan de screenshots te zien bijvoorbeeld handig voor op een PDA ofzo
    Zeker tof. Alleen het jammere aan de POP3 support van Gmail is dat ze niet de read/delete acties die je op je pop uitvoerd ook op je gmail door voeren .
    JeRawoensdag 5 september 2007 @ 14:14
    quote:
    Op woensdag 5 september 2007 13:55 schreef WyriHaximus het volgende:

    [..]

    Zeker tof. Alleen het jammere aan de POP3 support van Gmail is dat ze niet de read/delete acties die je op je pop uitvoerd ook op je gmail door voeren .
    Ehm, POP3 hoort dat ook niet te doen. Bedoel je niet IMAP?
    WyriHaximuswoensdag 5 september 2007 @ 14:17
    quote:
    Op woensdag 5 september 2007 14:14 schreef JeRa het volgende:

    [..]

    Ehm, POP3 hoort dat ook niet te doen. Bedoel je niet IMAP?
    Dat ondersteund Gmail niet .
    Chivuwoensdag 5 september 2007 @ 15:40
    Misschien een retorische vraag, maar 'beveiligen' jullie elk invoerveld op een pagina met strip_tags, htmlspecialchars etc? En zijn er nog andere obvious zaken waar ik op moet letten?
    WyriHaximuswoensdag 5 september 2007 @ 15:46
    quote:
    Op woensdag 5 september 2007 15:40 schreef Chivu het volgende:
    Misschien een retorische vraag, maar 'beveiligen' jullie elk invoerveld op een pagina met strip_tags, htmlspecialchars etc? En zijn er nog andere obvious zaken waar ik op moet letten?
    Ja . Maar ook met XSS scans om dat soort mensen gelijk te bannen. Of intval is ook handig voor nummers . Ow addlsashes voor SQL (en het liefst die de database libs leveren).
    PiRANiAwoensdag 5 september 2007 @ 15:58
    quote:
    Op woensdag 5 september 2007 15:46 schreef WyriHaximus het volgende:

    [..]

    Ja . Maar ook met XSS scans om dat soort mensen gelijk te bannen. Of intval is ook handig voor nummers . Ow addlsashes voor SQL (en het liefst die de database libs leveren).
    voor sql doe ik
    mysql_real_escape (dacht ik)...
    WyriHaximuswoensdag 5 september 2007 @ 15:59
    quote:
    Op woensdag 5 september 2007 15:58 schreef PiRANiA het volgende:

    [..]

    voor sql doe ik
    mysql_real_escape (dacht ik)...
    Dat is die van MySQL ja postgre laat het toe het via een sprintf meganisme te werken voor variables .
    SuperRembowoensdag 5 september 2007 @ 18:34
    quote:
    Op woensdag 5 september 2007 15:59 schreef WyriHaximus het volgende:

    [..]

    Dat is die van MySQL ja postgre laat het toe het via een sprintf meganisme te werken voor variables .
    Hoe bedoel je dat, sprintf op zich voorkomt geen sql-injectie?
    JeRawoensdag 5 september 2007 @ 18:48
    quote:
    Op woensdag 5 september 2007 18:34 schreef SuperRembo het volgende:

    [..]

    Hoe bedoel je dat, sprintf op zich voorkomt geen sql-injectie?
    1
    2
    3
    4
    <?php
    $input 
    '13 OR 1 OR 13';
    $query sprintf('SELECT %d'$input);
    ?>

    Op zich wel dus. Desalniettemin is het een beter idee om alle input te checken of naar een type te forceren, of gewoon prepared statements te gebruiken.
    Geqxonwoensdag 5 september 2007 @ 18:53
    quote:
    Op woensdag 5 september 2007 18:48 schreef JeRa het volgende:

    [..]
    [ code verwijderd ]

    Op zich wel dus. Desalniettemin is het een beter idee om alle input te checken of naar een type te forceren, of gewoon prepared statements te gebruiken.
    Dit doet sprintf toch niet anders dan een doodgewone string met "..." . $var . "..." ?
    Dzywoensdag 5 september 2007 @ 18:57
    Jawel want je kunt er bepaalde variabele types mee forceren. Overigens kun je alsnog beter er mysql_real_escape_string() bij gebruiken.
    JeRawoensdag 5 september 2007 @ 19:00
    quote:
    Op woensdag 5 september 2007 18:53 schreef Geqxon het volgende:

    [..]

    Dit doet sprintf toch niet anders dan een doodgewone string met "..." . $var . "..." ?
    Als er %s stond wel. Nu staat er %d.
    Geqxonwoensdag 5 september 2007 @ 19:03
    Jullie zijn correct. Al kan het wel met "..." . (int / float) $var . "...", dit is een stuk netter.
    WyriHaximuswoensdag 5 september 2007 @ 19:06
    Doelde eingelijk hier op: http://www.php.net/manual/en/function.pg-send-prepare.php afaik worden de vars daar ook netjes automatish voor je geescaped enzo .
    Farenjiwoensdag 5 september 2007 @ 20:12
    quote:
    Op woensdag 5 september 2007 19:06 schreef WyriHaximus het volgende:
    Doelde eingelijk hier op: http://www.php.net/manual/en/function.pg-send-prepare.php afaik worden de vars daar ook netjes automatish voor je geescaped enzo :).
    Ja, dat is afgekeken van perl, daar werk je eigenlijk altijd met placeholders waar values automatisch ge-escaped en gequote worden. Daardoor wordt iets als dit volkomen veilig, geen sql injection meer mogelijk:

    1
    2
    3
    4
    my $ID = $cgi->param('ID');
    my $dbh = DBH->connect;
    my $sth = $dbh->prepare("select * from blaat where ID = ?");
    $sth->execute($ID) or die $sth->errstr;
    markiemarkwoensdag 5 september 2007 @ 20:23
    vraagje over variabelen in functies.. Ik heb een functie gemaakt die moet gaan controleren of een variabele is ingesteld BUITEN de functie.. heb nu dus dit:
    1
    2
    3
    4
    5
    6
    7
    function getFormValue($veld){
       if (isset($object)){
          echo $object->$veld;
       }else{
          echo "hallo";
       }
    }

    Het gaat dus op de variabele $object. deze is soms ingesteld, afhankelijk van de aanroep van de pagina..

    Iemand een idee hoe ik kan deze variabele kan controleren?
    markiemarkwoensdag 5 september 2007 @ 20:50
    well, hell forget about that...

    1
    2
    3
    4
    5
    6
    7
    8
    function getFormValue($veld, $object){
       if ($object != "empty"){
          return $object->$veld;
       }else{
          $empty_value = "";
          return $empty_value;
       }
    }
    WyriHaximuswoensdag 5 september 2007 @ 20:59
    Zoiets?
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    <?php
    function getFormValue($veld, &$object)
    {
        if(
    $object)
        {
            if(isset(
    $object->$value))
            {
                return 
    $object->$value;
            }
            else
            {
                return 
    false;
            }
        }
        else
        {
            return 
    false;
        }
    }
    ?>
    h.henkiewoensdag 5 september 2007 @ 22:21
    Hoi,
    Ik ben eens wat structuur aan aanbrengen in mijn chaotisch veel gebruikte linkjes. Op deze pagina wil ik ook de status van mijn eigen ftp server en sqlserver. En de mailserver van mijn domein hebben. Als voorbeeld klik. Dit is dan ook wat ik in mijn gedachte heb als uitvoer.
    Kan iemand me op weg helpen hier mee. Oh ja ik gebruik php 5.0.4
    markiemarkwoensdag 5 september 2007 @ 22:25
    quote:
    Op woensdag 5 september 2007 20:59 schreef WyriHaximus het volgende:
    Zoiets?
    [ code verwijderd ]
    De variabele moet een value hebben, vandaar dat ik het zo (op mijn manier) heb gedaan.. Het gaat namelijk om value="" variabelen in een formulier..

    Ik wil hetzelfde formulier gebruiken voor zowel het toevoegen als het wijzigen van personen.
    Het werkt nu! Maar bedankt voor je mee denken!
    markiemarkwoensdag 5 september 2007 @ 22:27
    quote:
    Op woensdag 5 september 2007 22:21 schreef h.henkie het volgende:
    Hoi,
    Ik ben eens wat structuur aan aanbrengen in mijn chaotisch veel gebruikte linkjes. Op deze pagina wil ik ook de status van mijn eigen ftp server en sqlserver. En de mailserver van mijn domein hebben. Als voorbeeld klik. Dit is dan ook wat ik in mijn gedachte heb als uitvoer.
    Kan iemand me op weg helpen hier mee. Oh ja ik gebruik php 5.0.4
    Er zijn scriptjes voor.. Ik heb op google gezocht naar php ping script, daar vond ik dit:

    http://www.phphulp.nl/php/scripts/7/216/
    h.henkiewoensdag 5 september 2007 @ 23:29
    quote:
    Op woensdag 5 september 2007 22:27 schreef markiemark het volgende:

    [..]

    Er zijn scriptjes voor.. Ik heb op google gezocht naar php ping script, daar vond ik dit:

    http://www.phphulp.nl/php/scripts/7/216/
    Dank hier voor

    Oke ik heb even doorgezocht en wat aan de broncode verbouwd. Uiteindelijk kwam ik op dit uit:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <?php
    $ip 
    "xxx.xxx.xxx.xxx"// domein
    $poort "xx"// poort
    $fp = @fsockopen($ip$poort ,$errno,$errstr20);
    if (!
    $fp)
    {
      echo 
    '<img src="im/Red.gif" alt="2" width="10" height="10" border="0" />';
    }
    else
    {
      echo 
    '<img src="im/Green.gif" alt="4" width="10" height="10" border="0" />';
    }
    ?>


    Ik ga later een experimenteren met de poorten. Ik heb dit getest met mijn ftp server. Het valt op de als de ftp server offline is, dat het lang duurt voordat er resultaat is.
    WyriHaximusdonderdag 6 september 2007 @ 08:23
    quote:
    Op woensdag 5 september 2007 23:29 schreef h.henkie het volgende:

    [..]

    Dank hier voor

    Oke ik heb even doorgezocht en wat aan de broncode verbouwd. Uiteindelijk kwam ik op dit uit:
    [ code verwijderd ]

    Ik ga later een experimenteren met de poorten. Ik heb dit getest met mijn ftp server. Het valt op de als de ftp server offline is, dat het lang duurt voordat er resultaat is.
    20 sec zeker .
    Dzydonderdag 6 september 2007 @ 09:00
    Haha inderdaad, ik zou die laatste parameter van fsockopen even op 1 of 2 zetten
    markiemarkdonderdag 6 september 2007 @ 09:02
    quote:
    Op donderdag 6 september 2007 08:23 schreef WyriHaximus het volgende:

    [..]

    20 sec zeker .
    lol
    WyriHaximusdonderdag 6 september 2007 @ 09:28
    quote:
    Op donderdag 6 september 2007 09:02 schreef markiemark het volgende:

    [..]

    lol
    Ja ligt een beetje erg voor de hand .
    WyriHaximusdonderdag 6 september 2007 @ 09:28
    quote:
    Op donderdag 6 september 2007 09:00 schreef Dzy het volgende:
    Haha inderdaad, ik zou die laatste parameter van fsockopen even op 1 of 2 zetten
    Ik zou er 5 van maken . Dan geef je dat ding nog een beetje de kans op te reageren . Plus dat het niet uber lang duurt .
    Dzydonderdag 6 september 2007 @ 10:07
    Als je hem op 2 zet heeft hij toch meer dan genoeg tijd om te reageren? Kan me niet voorstellen dat je na meer dan 2 minuten alsnog een response krijgt. En je bent in die tussentijd wel aan het wachten met de pagina laden. Misschien kan je oplossen via AJAX? (weet daar weinig vanaf) Bv dat je alle lampjes op oranje zet, voor elk een los scriptje laat draaien en zodra je weet of het is gelukt of niet hem omzet naar groen/rood?
    markiemarkdonderdag 6 september 2007 @ 10:23
    quote:
    Op donderdag 6 september 2007 10:07 schreef Dzy het volgende:
    Als je hem op 2 zet heeft hij toch meer dan genoeg tijd om te reageren? Kan me niet voorstellen dat je na meer dan 2 minuten alsnog een response krijgt. En je bent in die tussentijd wel aan het wachten met de pagina laden. Misschien kan je oplossen via AJAX? (weet daar weinig vanaf) Bv dat je alle lampjes op oranje zet, voor elk een los scriptje laat draaien en zodra je weet of het is gelukt of niet hem omzet naar groen/rood?
    minuten?
    Dzydonderdag 6 september 2007 @ 10:46
    Eh. Nog niet helemaal wakker :$ Sla die post maar gewoon over 5 sec is inderdaad wel ok
    WyriHaximusdonderdag 6 september 2007 @ 10:51
    quote:
    Op donderdag 6 september 2007 10:07 schreef Dzy het volgende:
    Als je hem op 2 zet heeft hij toch meer dan genoeg tijd om te reageren? Kan me niet voorstellen dat je na meer dan 2 minuten alsnog een response krijgt. En je bent in die tussentijd wel aan het wachten met de pagina laden. Misschien kan je oplossen via AJAX? (weet daar weinig vanaf) Bv dat je alle lampjes op oranje zet, voor elk een los scriptje laat draaien en zodra je weet of het is gelukt of niet hem omzet naar groen/rood?
    quote:
    Op donderdag 6 september 2007 10:23 schreef markiemark het volgende:

    [..]

    minuten?
    quote:
    Op donderdag 6 september 2007 10:46 schreef Dzy het volgende:
    Eh. Nog niet helemaal wakker :$ Sla die post maar gewoon over 5 sec is inderdaad wel ok


    * WyriHaximus geeft Dzy een grote mok koffie (of je moet wat anders willen)
    Dzydonderdag 6 september 2007 @ 11:07
    Koffie is wel prima, net zelf ook maar gezet Maar 5 seconden is dus wel goed. Stel nou dat een ftp server zo sloom was dat hij pas na 2 minuten zou reageren, zou die oplossing met ajax dan mogelijk zijn? Hoe zou dat precies in z'n werk gaan dan? Los scriptje voor elke server en dan zodra hij antwoord heeft de image veranderen? Ik probeer AJAX een beetje te begrijpen.
    WyriHaximusdonderdag 6 september 2007 @ 11:13
    quote:
    Op donderdag 6 september 2007 11:07 schreef Dzy het volgende:
    Koffie is wel prima, net zelf ook maar gezet :P Maar 5 seconden is dus wel goed. Stel nou dat een ftp server zo sloom was dat hij pas na 2 minuten zou reageren, zou die oplossing met ajax dan mogelijk zijn? Hoe zou dat precies in z'n werk gaan dan? Los scriptje voor elke server en dan zodra hij antwoord heeft de image veranderen? Ik probeer AJAX een beetje te begrijpen.
    Waarom zou je voor AJAX gaan als je dat ook met een plaatje kan doen? Scheelt je een nutteloze request naar de server toe ;). Plus dat je pagina er al is en niet op de andere server hoeft te wachten :Y .
    HTML
    1<img src="image.php" />

    image.php
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <?php
    header
    ('Content-type: image/jpeg');
    if(
    $serveronline)
    {
        die(
    file_get_contents('online.jpeg'));
    }
    else
    {
        die(
    file_get_contents('offline.jpeg'));
    }
    ?>

    Je snap het idee neem ik aan wel ;).
    Dzydonderdag 6 september 2007 @ 11:18
    Ah, dat is wel een mooie oplossing ja. Wist niet dat dat zo kon. Maar is het zo niet zo dat hij de latere images pas gaat laden als hij alle info binnen heeft? Of stuurt hij de request van alle images tegelijk? Of is dat browser dependant?
    WyriHaximusdonderdag 6 september 2007 @ 11:26
    quote:
    Op donderdag 6 september 2007 11:18 schreef Dzy het volgende:
    Ah, dat is wel een mooie oplossing ja. Wist niet dat dat zo kon. Maar is het zo niet zo dat hij de latere images pas gaat laden als hij alle info binnen heeft? Of stuurt hij de request van alle images tegelijk? Of is dat browser dependant?
    Browser dependant maar dat gaat rap genoeg om er bijna niks van te merken .
    GVRuuddonderdag 6 september 2007 @ 11:31
    quote:
    Op woensdag 5 september 2007 15:40 schreef Chivu het volgende:
    Misschien een retorische vraag, maar 'beveiligen' jullie elk invoerveld op een pagina met strip_tags, htmlspecialchars etc? En zijn er nog andere obvious zaken waar ik op moet letten?
    Ik heb de invoer graag zoals door de gebruiker ingevoerd in de database. Pas wanneer ik de waarde ga afbeelden gooi ik er htmlspecialchars() of welke functie dan ook overheen. Voordat ik het in de database opsla, substr ik de invoer wel, zodat deze niet groter dan de veldlengte in de database is. Eventuele getalinvoer wordt met een intval() omgezet. En verder wordt de waarde natuurlijk geescaped, zodat de query niet in de soup loopt.
    Dzydonderdag 6 september 2007 @ 11:36
    quote:
    Op donderdag 6 september 2007 11:26 schreef WyriHaximus het volgende:

    [..]

    Browser dependant maar dat gaat rap genoeg om er bijna niks van te merken .
    Maar is het dan niet zo dat als je een server park van 500 servers laat zien waarvan er zeg 40 offline zijn, hij dan bij elke offline server weer 5 seconden (niet minuten!) wacht en daarna pas de volgende image gaat laden?
    colourAggadonderdag 6 september 2007 @ 13:46
    quote:
    Op donderdag 6 september 2007 11:36 schreef Dzy het volgende:

    [..]

    Maar is het dan niet zo dat als je een server park van 500 servers laat zien waarvan er zeg 40 offline zijn, hij dan bij elke offline server weer 5 seconden (niet minuten!) wacht en daarna pas de volgende image gaat laden?
    Ja dat klopt, maar over het algemeen behoren die servers binnen een enkele seconde te reageren. Mocht je 500 servers gaan uitzoeken dan zal dat dus ook met een timeout van een seconde je 500 secondes kosten. Je kan de timeout natuurlijk nog krapper gaan nemen. Wat je eventueel ook nog zou kunnen doen is de servers in een array stoppen, en als ze binnen een bepaalde tijd niet reageren te verschuiven naar later in de array of een andere array om op het einde de trage servers nog eens te checken.

    Je kan natuurlijk flush() gebruiken om je output buffers te flushen zodat je output hebt terwijl het script draait (anders geeft hij pas na alle servers langslopen je output door).

    Het is makkelijker om een script te gaan maken en dit in een cronjob op te nemen om op vaste intervallen dit script al je servers te laten pollen en dit weg te schrijven naar een database/bestand. Zodat als je de site bezoekt je gewoon de meest recente informatie direct te zien krijgt. Mocht je dan handmatig willen verversen dan kan dat.
    WyriHaximusdonderdag 6 september 2007 @ 13:59
    quote:
    Op donderdag 6 september 2007 13:46 schreef colourAgga het volgende:

    [..]

    Ja dat klopt, maar over het algemeen behoren die servers binnen een enkele seconde te reageren. Mocht je 500 servers gaan uitzoeken dan zal dat dus ook met een timeout van een seconde je 500 secondes kosten. Je kan de timeout natuurlijk nog krapper gaan nemen. Wat je eventueel ook nog zou kunnen doen is de servers in een array stoppen, en als ze binnen een bepaalde tijd niet reageren te verschuiven naar later in de array of een andere array om op het einde de trage servers nog eens te checken.

    Je kan natuurlijk flush() gebruiken om je output buffers te flushen zodat je output hebt terwijl het script draait (anders geeft hij pas na alle servers langslopen je output door).

    Het is makkelijker om een script te gaan maken en dit in een cronjob op te nemen om op vaste intervallen dit script al je servers te laten pollen en dit weg te schrijven naar een database/bestand. Zodat als je de site bezoekt je gewoon de meest recente informatie direct te zien krijgt. Mocht je dan handmatig willen verversen dan kan dat.
    Wou het net zeggen ja .
    h.henkiedonderdag 6 september 2007 @ 16:10
    quote:
    Op donderdag 6 september 2007 08:23 schreef WyriHaximus het volgende:

    [..]

    20 sec zeker .
    Ja dat was een in koppertje . Ik zag het later staan, en inmmiddels al op 3 gezet.
    colourAggadonderdag 6 september 2007 @ 16:59
    quote:
    Op donderdag 6 september 2007 16:10 schreef h.henkie het volgende:

    [..]

    Ja dat was een in koppertje . Ik zag het later staan, en inmmiddels al op 3 gezet.
    Ook al aande lange kant, bij mij gaan servers als ze niet binnen 500 ms (0.5 seconde) niet reageren al in het 'slow reply' bakje en als ze er langer dan 1000 ms (1 seconde) over doen is het over en sluiten Natuurlijk volledig te configureren.

    Hangt er natuurlijk vanaf vanaf waar je de servers controleert
    markiemarkdonderdag 6 september 2007 @ 20:28
    ik heb in php een timestamp gemaakt. kijk:
    1$start = mktime("17", "45", "00","09","12","2007");


    welk datatype moet ik gebruiken in mysql om dit op te slaan?
    Farenjidonderdag 6 september 2007 @ 21:14
    quote:
    Op donderdag 6 september 2007 20:28 schreef markiemark het volgende:
    ik heb in php een timestamp gemaakt. kijk:
    [ code verwijderd ]

    welk datatype moet ik gebruiken in mysql om dit op te slaan?
    Timestamp lijkt me op zich geen geheel onlogische keuze.
    wondererdonderdag 6 september 2007 @ 21:17
    quote:
    Op donderdag 6 september 2007 21:14 schreef Farenji het volgende:

    [..]

    Timestamp lijkt me op zich geen geheel onlogische keuze.
    Maar die slaat de datum in xxxx-xx-xx formaat op. Dan heb je toch niks meer aan de timestamp?
    colourAggadonderdag 6 september 2007 @ 21:24
    quote:
    Op donderdag 6 september 2007 20:28 schreef markiemark het volgende:
    ik heb in php een timestamp gemaakt. kijk:
    [ code verwijderd ]

    welk datatype moet ik gebruiken in mysql om dit op te slaan?
    int(11)
    super-muffindonderdag 6 september 2007 @ 21:27
    quote:
    Op donderdag 6 september 2007 21:17 schreef wonderer het volgende:

    [..]

    Maar die slaat de datum in xxxx-xx-xx formaat op. Dan heb je toch niks meer aan de timestamp?
    dat is datetime geloof ik.
    wondererdonderdag 6 september 2007 @ 21:28
    quote:
    Op donderdag 6 september 2007 21:27 schreef super-muffin het volgende:

    [..]

    dat is datetime geloof ik.
    Timestamp ook. Die fout maakte ik namelijk zelf ook Ik heb er nu een bigint van gemaakt (omdat ik te lui was om uit te rekenen wat het maximale aantal byte was van een timestamp).
    Farenjidonderdag 6 september 2007 @ 21:35
    quote:
    Op donderdag 6 september 2007 21:17 schreef wonderer het volgende:

    [..]

    Maar die slaat de datum in xxxx-xx-xx formaat op. Dan heb je toch niks meer aan de timestamp?
    Intern wordt ie als timestamp opgeslagen, itt tot een datetime. Een timestamp wordt als een datum weergegeven maar je kan er gewoon mee rekenen zoals je met timestamps kan.
    markiemarkvrijdag 7 september 2007 @ 13:54
    int kan natuurlijk ook geen kwaad... toch?
    colourAggavrijdag 7 september 2007 @ 14:42
    Je kan inderdaad zoals ik eerder al zei net zo goed (of beter) een int(11) gebruiken. Daar sla je dan je time() in op. Dat is handiger dan DATE, DATETIME en TIMESTAMP aangezien je meer met de tijden kan doen. TIMESTAMP kun je beter niet gebruiken omdat de resultaten nogal verschillen tussen verschillende MySQL versies en de modi waarin een MySQL server draait Zie ook de MySQL Manual.
    PiRANiAzaterdag 8 september 2007 @ 09:37
    quote:
    Op vrijdag 7 september 2007 14:42 schreef colourAgga het volgende:
    Je kan inderdaad zoals ik eerder al zei net zo goed (of beter) een int(11) gebruiken. Daar sla je dan je time() in op. Dat is handiger dan DATE, DATETIME en TIMESTAMP aangezien je meer met de tijden kan doen. TIMESTAMP kun je beter niet gebruiken omdat de resultaten nogal verschillen tussen verschillende MySQL versies en de modi waarin een MySQL server draait Zie ook de MySQL Manual.
    of je zet een now() in je datetime en haat het terug met strtotime
    colourAggazaterdag 8 september 2007 @ 12:50
    quote:
    Op zaterdag 8 september 2007 09:37 schreef PiRANiA het volgende:

    [..]

    of je zet een now() in je datetime en haat het terug met strtotime
    Of je doet gewoon opslaan als integer en dan ben je die extra handelingen kwijt
    Scripthazaterdag 8 september 2007 @ 14:44
    Ik wil met php een schema maken, om bijv. een tagcloud uit te tekenen.
    Niet het schema zelf als plaatje, maar een file waarin je dan de coordinaten opgeeft van 1 object, en waarin je de lijnen opgeeft, en dan een ander programma waarmee je het eigenlijke plaatje genereert.

    Beetje als Jera's grafiek-ding (gok ik) maar dan anders .

    Is hier iets handigs voor?
    WyriHaximuszaterdag 8 september 2007 @ 15:11
    Ow voor de gene die het leuk vinden om met AJAX te kloten is dit wel een leuke om in AJAX uit te bouwen , Zelf ook gedaan en het resultaat is erg gaaf !: http://komodomedia.com/bl(...)s-star-rating-redux/
    The_Terminatorzaterdag 8 september 2007 @ 23:34
    Weet iemand toevallig hoe ik de topics hier op Fok uit een bepaald sub-forum kan rippen? Dus topic naam en ID in een array.

    Ik ben al met preg_match_all aan het vogelen geweest maar weet niet welke pattern ik moet gebruiken om de topics te rippen. Het ophalen van de data gaat dmv het donwloaden van de index van een forum naar een txt bestand, vervolgens lees ik dit betand en plaats het in een string. De string bevat dus de gehele HTML waar de pagina uit bestaat.

    Wat ik wil rippen is het volgende:
    1topic(839150,'Klaagbaak: De FAQ en de regeltjes!','faql.gif',4,'flugeltje',68625,1,58873,'0','0','03-01-2007 19:45 - Janetje',44982641,1167849909,1144006675,50,1);


    En bovenstaande dus voor alle topics in het KLB subforum onderverdeeld in een array.
    WyriHaximuszaterdag 8 september 2007 @ 23:51
    quote:
    Op zaterdag 8 september 2007 23:34 schreef The_Terminator het volgende:
    Weet iemand toevallig hoe ik de topics hier op Fok uit een bepaald sub-forum kan rippen? Dus topic naam en ID in een array.

    Ik ben al met preg_match_all aan het vogelen geweest maar weet niet welke pattern ik moet gebruiken om de topics te rippen. Het ophalen van de data gaat dmv het donwloaden van de index van een forum naar een txt bestand, vervolgens lees ik dit betand en plaats het in een string. De string bevat dus de gehele HTML waar de pagina uit bestaat.

    Wat ik wil rippen is het volgende:
    [ code verwijderd ]

    En bovenstaande dus voor alle topics in het KLB subforum onderverdeeld in een array.
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <?php
            $forum_html 
    file_get_contents('http://forum.fok.nl/forum/' $forum_id);
            
    $ex explode('topic(',$forum_html);
            unset(
    $ex[0],$ex[(count($ex)-1)]);
            foreach(
    $ex as $key => $value)
            {
                
    $ex2 explode(',',$value);
                
    $topic_list[$row['forum']][intval($ex2[0])] = $ex2[1];
            }
    ?>

    Enjoy ($forum_id moet het forum id zijn van het subforum wat je wilt uilezen .)
    The_Terminatorzaterdag 8 september 2007 @ 23:56
    quote:
    Op zaterdag 8 september 2007 23:51 schreef WyriHaximus het volgende:

    [..]
    [ code verwijderd ]

    Enjoy ($forum_id moet het forum id zijn van het subforum wat je wilt uilezen .)
    Werkt perfect, thanks
    WyriHaximuszondag 9 september 2007 @ 00:09
    quote:
    Op zaterdag 8 september 2007 23:56 schreef The_Terminator het volgende:

    [..]

    Werkt perfect, thanks
    No problemo
    SuperRembozondag 9 september 2007 @ 00:17
    quote:
    Op zaterdag 8 september 2007 23:56 schreef The_Terminator het volgende:
    Werkt perfect, thanks
    Niet perfect, want hij split bijvoorbeeld ook op komma's die in strings (de topic titel) voorkomen
    The_Terminatorzondag 9 september 2007 @ 00:19
    quote:
    Op zondag 9 september 2007 00:17 schreef SuperRembo het volgende:

    [..]

    Niet perfect, want hij split bijvoorbeeld ook op komma's die in strings (de topic titel) voorkomen
    Mwoh, dat kan ik wel aanpassen. De basis is er in iedergeval
    #ANONIEMzondag 9 september 2007 @ 00:55
    Ai, ik heb dat ook eens gedaan. Het was een enorm gepuzzel om de juiste reguliere expressie te vinden, maar uiteindelijk toch gelukt:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    <?php
    function customexplode($invoer$max){
            
    $uitnr=0;
            
    $startpos=0;
            do {
                    
    preg_match('/[^\',][^,\']*|\'([^\'\\\\]|\\\\[\s\S])*\'/'substr($invoer,
                    
    $startpos), $matchesPREG_OFFSET_CAPTURE);
                    if (
    count($matches)>0) {
                            
    $t $matches[0][0];
                            if (
    substr($t,0,1)=="'"$t=substr($t,1,strlen($t)-2);
                            
    $uitvoer[$uitnr]=$t;
                            
    $startpos += $matches[0][1] + strlen($matches[0][0]);
                            
    $uitnr++;
                    }
            } while ((
    count($matches)>0) && ($uitnr <= $max));
            return 
    $uitvoer;
    }
    ?>

    Als je het 'topic(' aan het begin, en ');' aan het einde, al eraf hebt gehakt, en je dus zoiets overhoudt:

    1,10,4372847328,8239,'Igen',32198,'Slecht \'topic\', enzo',0

    dan kun je deze functie gebruiken om de eerste $max velden op te vragen.

    Werkt perfect voor Fok!Silver, voor de topic-list en voor de topics zelf.

    [ Bericht 5% gewijzigd door #ANONIEM op 09-09-2007 01:03:40 (backslashes == ellende) ]
    WyriHaximuszondag 9 september 2007 @ 10:25
    quote:
    Op zondag 9 september 2007 00:17 schreef SuperRembo het volgende:

    [..]

    Niet perfect, want hij split bijvoorbeeld ook op komma's die in strings (de topic titel) voorkomen
    Daar zeg je idd wat . De regex dinges hierboven verhelpt dat wel .
    SuperRembozondag 9 september 2007 @ 11:05
    quote:
    Op zondag 9 september 2007 10:25 schreef WyriHaximus het volgende:
    Daar zeg je idd wat . De regex dinges hierboven verhelpt dat wel .
    Je zou ook de php eval() kunnen gebruiken, dat scheelt een boel gekloot met regexps.
    WyriHaximuszondag 9 september 2007 @ 11:11
    quote:
    Op zondag 9 september 2007 11:05 schreef SuperRembo het volgende:

    [..]

    Je zou ook de php eval() kunnen gebruiken, dat scheelt een boel gekloot met regexps.
    (Wow iemand die eval() suggereerd , normaal word je afgeschoten als je er al over begint .) Is ook een mogelijkheid. Waarom niet gelijk een API in het forum zelf, dat zou nog makkelijker worden .
    SuperRembozondag 9 september 2007 @ 11:29
    quote:
    Op zondag 9 september 2007 00:55 schreef Igen het volgende:
    Ai, ik heb dat ook eens gedaan. Het was een enorm gepuzzel om de juiste reguliere expressie te vinden, maar uiteindelijk toch gelukt:
    [ code verwijderd ]
    Ik denk dat preg_match_all met #\d+|'(\'|[^'])*?'# genoeg moet zijn voor een lijst van getallen en strings. (niet getest)
    [edit]gestest en werkt niet goed

    [ Bericht 4% gewijzigd door SuperRembo op 09-09-2007 11:37:53 ]
    #ANONIEMzondag 9 september 2007 @ 11:32
    Gaat dat niet fout als \\' in een string voorkomt?

    Ik heb heus wel nagedacht over mijn regexp hoor!

    [ Bericht 59% gewijzigd door #ANONIEM op 09-09-2007 11:34:16 ]
    SuperRembozondag 9 september 2007 @ 11:47
    quote:
    Op zondag 9 september 2007 11:32 schreef Igen het volgende:
    Gaat dat niet fout als \\' in een string voorkomt?

    Ik heb heus wel nagedacht over mijn regexp hoor!
    Er zitten wel wat rare dingen in je regexp. [\s\S] (whitespace of non-whitespace) dat is toch gewoon elk willekeurig teken? [^',][^,']* is hetzelfde als [^',]+. Je regexp zou beter leesbaar zijn als je voor de regexp zelf dubbele quotes zou gebruiken, dan hoef je de enkele quotes in de regexp niet te escapen.
    #ANONIEMzondag 9 september 2007 @ 11:58
    Klopt allemaal als een bus.
    Ik wist dat hij niet de schoonheidsprijs verdient. Het was de eerste keer dat ik een reguliere expressie moest gebruiken. Bedankt voor je uitleg wat beter kan!

    [ Bericht 2% gewijzigd door #ANONIEM op 09-09-2007 11:59:16 ]
    The_Terminatorzondag 9 september 2007 @ 13:09
    quote:
    Op zondag 9 september 2007 00:55 schreef Igen het volgende:
    Ai, ik heb dat ook eens gedaan. Het was een enorm gepuzzel om de juiste reguliere expressie te vinden, maar uiteindelijk toch gelukt:
    [ code verwijderd ]

    Als je het 'topic(' aan het begin, en ');' aan het einde, al eraf hebt gehakt, en je dus zoiets overhoudt:

    1,10,4372847328,8239,'Igen',32198,'Slecht \'topic\', enzo',0

    dan kun je deze functie gebruiken om de eerste $max velden op te vragen.

    Werkt perfect voor Fok!Silver, voor de topic-list en voor de topics zelf. :)
    Ik had het al op een andere manier opgelost:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <?php
        $forum_html
    = file_get_contents('http://forum.fok.nl/forum/5');
        
    $ex = explode('topic(',$forum_html);
        unset(
    $ex[0],$ex[(count($ex)-1)]);
        foreach(
    $ex as $key => $value)
        {
            
    $ex2 = explode(",'",$value);
            
            echo
    stripslashes(rtrim($ex2[1], "'")) . "<br>";
            
            
    $topic_list[$row['forum']][intval($ex2[0])] = $ex2[1];
        }
    ?>


    Dit levert de output die ik nodig heb.
    #ANONIEMzondag 9 september 2007 @ 13:28
    Niet helemaal correct. Als een TopicTitel een , op het einde heeft dan wordt die ook afgehakt.
    JeRazondag 9 september 2007 @ 13:29
    Ik snap niet zo waar het probleem in zit bij het matchen van die topics. Voor zover ik zie is er maar één string in elke regel die mogelijk een apostrofe kan bevatten, dus als je een regular expression schrijft die netjes de hele regel matcht (van begin tot eind!) moet je toch wel iets bizars verzinnen wil dat fout gaan
    #ANONIEMzondag 9 september 2007 @ 13:47
    Mijn programma heeft al meer dan 550.000 topics probleemloos verwerkt, dus mijn code werkt prima.

    Voor het verwerken van de posts in een topic werkt het niet zo fijn. Als de berichttekst heel erg lang is, bijvoorbeeld als iemand een hele mooie OP heeft gemaakt, dan verslikt preg_match zich en crasht PHP.

    Vandaar ook de $max parameter.
    JeRazondag 9 september 2007 @ 14:03
    Die van mij meer dan een miljoen topics en 50 miljoen posts, dus ik weet echt wel waar ik het over heb hoor. Punt is dat het niet gaat om wie de langste heeft, maar over hoe je over een probleem denkt ik vraag me dan ook af waarom er zo gezeken wordt op een mogelijke apostrofe en het splitten op komma's terwijl je simpelweg een preg_match_all() kunt gebruiken om zo elke regel van begin tot eind (^ ... $) te matchen, zonder problemen
    #ANONIEMzondag 9 september 2007 @ 14:20
    Ik geloof heel graag dat jij weet waar je het over hebt.

    Om het bestand in regels op te delen kun je toch ook gewoon file() gebruiken, in plaats van file_get_contents() ?
    Maar dan moet je nog steeds iets met elke regel doen, en daarvoor moet je die toch echt bij de juiste komma's in stukken hakken. Of begrijp ik je nu helemaal verkeerd?
    JeRazondag 9 september 2007 @ 14:26
    quote:
    Op zondag 9 september 2007 14:20 schreef Igen het volgende:
    Om het bestand in regels op te delen kun je toch ook gewoon file() gebruiken, in plaats van file_get_contents() ?
    Maar dan moet je nog steeds iets met elke regel doen, en daarvoor moet je die toch echt bij de juiste komma's in stukken hakken. Of begrijp ik je nu helemaal verkeerd?
    Nee, ik bedoel te zeggen dat je met een regular expression helemáál niet moeilijk hoeft te doen om een topicregel te matchen, omdat er maar één waarde in topic() een apostrofe kan bevatten. Je matcht dan het stuk waar de regels in voorkomen met preg_match_all() met een regex als deze:

    ^topic\((\d+),(\d+),.......,(\d+),'(.*)',(\d+),....\);$

    Et voila, je krijgt een associatieve array met daarin alle topics en hun eigenschappen. Geen gedoe met aparte regels en geen gedoe met komma's of apostrofes.
    #ANONIEMzondag 9 september 2007 @ 14:52
    Ach so. Da's inderdaad heel lekker simpel.

    Om posts in een topic te verwerken is het alleen niet geschikt, want de signature kan ook een apostrof bevatten. Maar goed, zolang preg_match soms crasht bij hele lange strings, werkt mijn methode net zo slecht, en als het toch alleen om topic-lists gaat is een simpele methode natuurlijk altijd beter.

    [ Bericht 11% gewijzigd door #ANONIEM op 09-09-2007 14:53:10 ]
    PiRANiAzondag 9 september 2007 @ 19:24
    JeRa, dat heb je waarschijnlijk op een server draaien.
    Hoe pak je dat aan? Heb je het op een lokale server?
    En hoe zorg je dat het script blijft draaien en niet aangeroepen hoeft te worden door een browser?
    JeRazondag 9 september 2007 @ 19:28
    quote:
    Op zondag 9 september 2007 19:24 schreef PiRANiA het volgende:
    JeRa, dat heb je waarschijnlijk op een server draaien.
    Hoe pak je dat aan? Heb je het op een lokale server?
    Een dedicated databaseserver en een parttime crawler die afhankelijk van de situatie bij mij thuis of in Amsterdam op het datacentrum draait (op 2 verschillende machines, dat wel).
    quote:
    En hoe zorg je dat het script blijft draaien en niet aangeroepen hoeft te worden door een browser?
    Met een crontab.
    Xcaliburzondag 9 september 2007 @ 19:31
    Wat doen jullie verder met die scripts btw?
    #ANONIEMzondag 9 september 2007 @ 19:32
    Je kunt PHP gewoon van de commandoregel starten.

    Windows:
    C:> php mijnscript.php

    UNIX:
    $ php mijnscript.php

    Onder UNIX heb je het programma 'cron'. Daarmee kun je het script dan op gestelde tijden laten uitvoeren. De uitvoer wordt dan per e-mail opgestuurd.
    JeRazondag 9 september 2007 @ 19:34
    quote:
    Op zondag 9 september 2007 19:31 schreef Xcalibur het volgende:
    Wat doen jullie verder met die scripts btw?
    Ik heb een jaar of wat geleden een framework geschreven om heel FOK! te indexeren, in eerste instantie voor een uitgebreide zoekmachine (die niet in gebruik werd genomen vanwege de nieuwe zoeken.fok.nl van Roönaän) en vervolgens voor de statistieken en andere willekeurige dingen

    Echter vind ik wel dat het gebruik ontzettend ingeperkt dient te worden ten behoeve van de databaseload. Er zijn naast mij meer mensen bezig met het indexeren, en ik was ook niet de eerste. Ik doe er zelf al alles aan om de load zo veel mogelijk te verspreiden en te concentreren op de minst drukke momenten op het forum, maar het is eigenlijk onzinnig dat er 20 man alle subfora en topics binnen trekken.
    Xcaliburzondag 9 september 2007 @ 19:41
    Ah ok ...

    Dat indexeren door x-aantal man is wel suf idd, kan FOK dat soort verkeer niet blocken dan?
    JeRazondag 9 september 2007 @ 19:44
    quote:
    Op zondag 9 september 2007 19:41 schreef Xcalibur het volgende:
    Ah ok ...

    Dat indexeren door x-aantal man is wel suf idd, kan FOK dat soort verkeer niet blocken dan?
    Dat blocken is wat lastiger omdat mijn crawler zich bijvoorbeeld niet veel anders voordoet dan de gemiddelde niet-ingelogde bezoeker (ik stuur wat minder headers mee om zo het aantal packets mogelijk te verminderen). Ze zouden dan geen onderscheid moeten maken tussen een crawler en een bezoeker die als een gek topics aan het doorspitten is

    Maar wat dat betreft zou er gewoon een dedicated server bij FOK! zelf geregeld moeten kunnen worden voor alle statistieken en zoekfunctionaliteit, en iemand die zin heeft dat ding softwarematig te onderhouden.
    markiemarkmaandag 10 september 2007 @ 12:01
    Over crons.. Kan ik die dmv een php script aanmaken? En kan ik deze ook zo instellen dat ze eenmalig draaien?
    JortKmaandag 10 september 2007 @ 12:03
    quote:
    Op maandag 10 september 2007 12:01 schreef markiemark het volgende:
    Over crons.. Kan ik die dmv een php script aanmaken? En kan ik deze ook zo instellen dat ze eenmalig draaien?
    Volgens mij zitten die tools meestal gewoon bij je hosting pakket
    PiRANiAmaandag 10 september 2007 @ 12:49
    over dat blocken, je zou natuurlijk maximaal 100 paginaopvragingen per minuut in kunnen stellen oid...
    #ANONIEMmaandag 10 september 2007 @ 13:06
    Wordt lastig. Anonieme gebruikers zijn alleen te traceren met hun IP-adres, dus dan moet je voor elk IP-adres gaan bijhouden wanneer hoeveel pagina's zijn opgevraagd, en daarmee belast je de database ook weer. Bovendien heb je nog het probleem dat mensen die dezelfde proxy-server gebruiken allemaal hetzelfde IP-adres lijken te hebben, dacht ik.

    En sowieso, 100 aanvragen per minuut!?
    Daar kom ik niet eens in de buurt. Je zou 10 aanvragen per minuut kunnen zeggen. Maar dan krijg je weer dat mensen onterecht geblokkeerd worden omdat ze achter een proxy-server zitten, of omdat ze in Firefox ineens al hun actieve topics in een nieuwe tab openen.

    [ Bericht 13% gewijzigd door #ANONIEM op 10-09-2007 13:08:02 ]
    WyriHaximusmaandag 10 september 2007 @ 13:18
    quote:
    Op maandag 10 september 2007 13:06 schreef Igen het volgende:
    Wordt lastig. Anonieme gebruikers zijn alleen te traceren met hun IP-adres, dus dan moet je voor elk IP-adres gaan bijhouden wanneer hoeveel pagina's zijn opgevraagd, en daarmee belast je de database ook weer. Bovendien heb je nog het probleem dat mensen die dezelfde proxy-server gebruiken allemaal hetzelfde IP-adres lijken te hebben, dacht ik.

    En sowieso, 100 aanvragen per minuut!?
    Daar kom ik niet eens in de buurt. Je zou 10 aanvragen per minuut kunnen zeggen. Maar dan krijg je weer dat mensen onterecht geblokkeerd worden omdat ze achter een proxy-server zitten, of omdat ze in Firefox ineens al hun actieve topics in een nieuwe tab openen.
    Zelf zie ik geen probleem in een proxy blokkeren. Als die misbruikt word ga ik mijn site daar niet voor openstellen. Mochten users die ook achter die proxy daar problemen mee hebben dan gaan ze maar bij de eigenaar van die proxy klagen . Het handje vol bezoekers wat ik daar mee uitsluit neem ik wel voor lief .
    #ANONIEMmaandag 10 september 2007 @ 13:33
    Nee, het gaat niet om het misbruiken van een proxy, maar om het gebruiken van een proxy. Als toevallig 10 mensen achter dezelfde proxy binnen dezelfde minuut een pagina op FOK! opvragen, wat me niet zo heel uitzonderlijk lijkt, moet dan die proxy worden geblokkeerd? Geeneen van die mensen heeft toch iets misdaan?

    Bovendien doet zo'n indexeer-programma in principe minder dan 1000 aanvragen per dag, dat is één pagina per 1,5 minuut.

    [ Bericht 12% gewijzigd door #ANONIEM op 10-09-2007 13:40:37 ]