FOK!forum / Digital Corner / [PHP/(My)SQL] voor dummies - Deel 34
guitaristzondag 22 oktober 2006 @ 15:10

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

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
  • Siegfriedzondag 22 oktober 2006 @ 15:14
    TVP
    qu63zondag 22 oktober 2006 @ 15:18
    [PHP/(My)SQL] voor dummies - Deel 34 oeps
    freisszondag 22 oktober 2006 @ 15:21
    TVP
    the_disheaverzondag 22 oktober 2006 @ 15:23
    deze is eerder.

    Wat van foutmelding geeft ie?
    the_disheaverzondag 22 oktober 2006 @ 15:36
    quote:
    Op zondag 22 oktober 2006 13:51 schreef ralfie het volgende:
    Als je de e modifier gebruikt ($pattern[0]='$blablabla$e') kun je van replacement een php statement maken, zoals
    [ code verwijderd ]
    dank, maar ik krijg hem niet werkend.

    enkel syntax error's...

    1$tmp = preg_replace($patterns,"(isset($4)?'blaat':'blaat')",$content);
    the_jasperzondag 22 oktober 2006 @ 15:37
    sl error: incorrect table definition there can be only one auto column and it must be defined as a key

    als ik hem wil aanmaken in HeidiSQL (soort phpmyadmin)
    heb de query code zelf nog niet uitgevogelt om een tiny int te maken die auto increment heeft non null etc
    Siegfriedzondag 22 oktober 2006 @ 15:46
    Heb je je ID dan ook ingesteld als key?
    Swetseneggerzondag 22 oktober 2006 @ 16:05
    tvphp
    rrrikzondag 22 oktober 2006 @ 16:51
    tvp
    ralfiezondag 22 oktober 2006 @ 17:31
    quote:
    Op zondag 22 oktober 2006 15:36 schreef the_disheaver het volgende:

    [..]

    dank, maar ik krijg hem niet werkend.

    enkel syntax error's...
    [ code verwijderd ]
    ja, die klote forumbug weer, dit werkt wel:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    $is_article=array(1,3,4);
    $txt="<strong>Here are some urls</strong><br/>
    <a href=\"http://www.test.nl/index.php?id=1\">http://www.test.nl/index.php?id=1</a><br/>
    <a href=\"http://www.test.nl/index.php?id=2\">http://www.test.nl/index.php?id=2</a><br/>
    <a href=\"http://www.test.nl/index.php?id=3\">http://www.test.nl/index.php?id=3</a><br/>
    <a href=\"http://www.test.nl/index.php?id=4\">http://www.test.nl/index.php?id=4</a><br/>
    <a href=\"http://www.test.nl/index.php?id=5\">http://www.test.nl/index.php?id=5</a><br/>
    <a href=\"http://www.test.nl/index.php?id=6\">http://www.test.nl/index.php?id=6</a><br/>
    ";
    $pattern='$>http://www.test.nl/index\.php\?id=(d+)$e';
    echo preg_replace( $pattern, "in_array(\\1,\$is_article)?'>link to article':'>link to something else'",$txt);
    the_disheaverzondag 22 oktober 2006 @ 17:51
    Dank, maar volgens mij heb je niet alles geescaped. De puntjes in de pattern bv.

    Kun je hem misschien op de wiki zetten, wat hij replaced niets.

    http://wiki.fok.nl/index.php/OP/PHP
    ralfiezondag 22 oktober 2006 @ 17:59
    http://www.student.ru.nl/rvanhoorn/files/preg_replace.txt

    zo moet ie het doen
    the_disheaverzondag 22 oktober 2006 @ 18:04
    Dank! Nu ff goed intergreren maar dat zal wel goed gaan.
    fokME2zondag 22 oktober 2006 @ 18:33
    Wat is php
    JeRazondag 22 oktober 2006 @ 19:36
    quote:
    Op zondag 22 oktober 2006 18:33 schreef fokME2 het volgende:
    Wat is php
    Ja dat zou ik nou onderhand ook wel eens willen weten.
    super-muffinzondag 22 oktober 2006 @ 19:49
    PHP Dummie meld zich
    the_jasperzondag 22 oktober 2006 @ 20:16
    /* bullshit

    tis toch zo'n afkorting zonder einde? (net als gnu)

    php = php hypertekst preprocessor = php hypertekst preprocessor hypertekst preprocessor etc

    */
    Siegfriedzondag 22 oktober 2006 @ 20:26
    "PHP is de afkorting van PHP Hypertext Preprocessor en oorspronkelijk betekende de afkorting Personal Home Page."

    super-muffinzondag 22 oktober 2006 @ 20:26
    een recursief acroniem ja
    Desdinovamaandag 23 oktober 2006 @ 09:14
    enzo
    Nevermindmaandag 23 oktober 2006 @ 12:27
    Ik maak gebruik van sessies om users te kunnen laten inloggen. Hoe kan ik die sessiewaarden opslaan in de database en een 'stay logged in' functie maken? Links naar goede tutorials zijn ook welkom.
    Nevermindwoensdag 25 oktober 2006 @ 10:55
    kickje ivm servercrash
    Darkomenwoensdag 25 oktober 2006 @ 14:16
    tvptje (heb al teveel phpmysql voor dummies in mn bookmarks)
    Desdinovadonderdag 26 oktober 2006 @ 13:23
    @nevermind

    volgens mij kan je een sessie niet onthouden. je zou moeten werken met cookies dan, denk ik. enn in theorie kan je daar wel een sessionID in opslaan, maar dat is natuurlijk gewoon een waarde, en verder waardeloos als sessionID.


    [edit]

    Mijn session gaat over de zeik
    de pagina laadt niet of heeeel traag, en als ik mijn session_start(); escape (//) doet alles het wel

    hoe komt dit?

    [edit]
    hmm was firefox bug ofzo. fixed.

    [ Bericht 20% gewijzigd door Desdinova op 26-10-2006 13:51:18 ]
    ralfiedonderdag 26 oktober 2006 @ 16:01
    quote:
    Op maandag 23 oktober 2006 12:27 schreef Nevermind het volgende:
    Ik maak gebruik van sessies om users te kunnen laten inloggen. Hoe kan ik die sessiewaarden opslaan in de database en een 'stay logged in' functie maken? Links naar goede tutorials zijn ook welkom.
    hendigste is om een tabel te maken waarin je de $_SESSION array gewoon serialised en unserialised. Enige wat je moet doen is is dan met een cookie en/of ip bepalen of de huidige gebruiker al een sessie in je database heeft staan en als dat zo is deze eruit halen

    Ik geloof dat als identificatie vaak een md5 has van username en password gebruikt wordt
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    <?php
    //get database session
    if (!isset($_SESSION['controle']) && isset($_COOKIE['sessionhash'])) {
       
    $res=mysql_query("SELECT sessie from sessions_table WHERE sessionhash='".mysql_real_escape($_COOKIE['sessionhash'])."' LIMIT 1");
       
    $x=mysql_fetch_assoc($res);
       
    $_SESSION=unserialise($x['sessie']);
       
    $_SESSION['controle']=true;//om ervoor te zorgen dat een al bestaande sessie niet vervangen wordt door die uit de db
    }


    //create new database entry
    $u=md5($username.$password);
    $s=serialise($_SESSION);
    mysql_query("INSERT INTO sessions_table (sessionhash,sessie) values('{$u}','{$s}')");
    $_COOKIE['sessionhash']=$u;
    ?>

    uiteraard kun je ook controleren dmv IP-adres, en zul je iets moeten verzinnen om deze tabel af en toe te kunnen legen (datum kolom toevoegen)
    Desdinovadonderdag 26 oktober 2006 @ 16:30
    maar wat is het nu van zo'n soort registratie dan?
    Giel83donderdag 26 oktober 2006 @ 16:49
    quote:
    Op donderdag 21 september 2006 22:09 schreef Rumboon het volgende:
    Ben pas begonnen met PHP en loop nu onverklaarbaar vast.

    Versies:
    Apache/1.3.19
    PHP Version 4.0.4pl1

    Files:
    newcustomer.html
    [ code verwijderd ]

    process_newcustomer.php
    [ code verwijderd ]

    Als ik de html pagina draai krijg ik vervolgens te zien:

    Welcome new customer! You have entered the following information:

    Full Name:
    User Name:

    Verder niets! Hoe kan dit?????
    Zoals eerder gezegd werkt $_POST met die versie inderdaad nog niet. $_POST is pas beschikbaar vanaf 4.1.0. Dus ik zou inderdaad maar eerst even wat updates uitvoeren
    Desdinovadonderdag 26 oktober 2006 @ 17:03
    quote:
    Op donderdag 26 oktober 2006 16:49 schreef Giel83 het volgende:

    [..]

    Zoals eerder gezegd werkt $_POST met die versie inderdaad nog niet. $_POST is pas beschikbaar vanaf 4.1.0. Dus ik zou inderdaad maar eerst even wat updates uitvoeren
    In dat geval zou het kunnen zijn dat register_globals nog aan staat, dus als je het eerste stuk code weglaat (waar je de variabelen defineert), zou het zomaar kunnen dat het wel werkt.

    Neemt niet weg dat je moet updaten
    Siegfrieddonderdag 26 oktober 2006 @ 18:18
    ik haal data uit de DB met:
    1$result = $db->getRow($sql)


    Hoe kan ik in result iets doen met de cel 'body'?
    $result[body] werkt bijv niet..
    Siegfrieddonderdag 26 oktober 2006 @ 18:34
    Excuus.. toch wel
    Xevordonderdag 26 oktober 2006 @ 19:32
    Ik ben nu bezig met een scriptje te schrijven, maar ik kom er maar niet uit. Hopelijk kan hier iemand helpen.

    Ik heb een login script dat gegevens uit mysql haalt en daarvan een sessie maakt. Het probleem is dat de sessie niet wordt onthouden. Als ik namelijk weer naar login.php ga dan kan ik weer inloggen en dat wil ik op dat moment niet want ik hoor al ingelogd te zijn. Sessie wordt opgeslagen zodra ik inlog maar als ik dan login.php weer open of naar een andere pagina ga is die alweer verwijderd.

    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
    <?php
    session_start();
       include("config/mysql.php");
       include("config/util.php");

    if(isset($_POST['gebruiker']) && isset($_POST['wachtwoord'])) {

        $_POST['gebruiker'] = make_safe($_POST['gebruiker']);
        $_POST['wachtwoord'] = make_safe($_POST['wachtwoord']);

        $result = mysql_query("SELECT * 
                FROM gebruiker
                WHERE username='".$_POST['gebruiker']."'
                AND hash=PASSWORD('".$_POST['wachtwoord']."')"
        ) or die(mysql_error());
       
        if(mysql_num_rows($result) == 1) {
           $regel = mysql_fetch_array($result);
           $_SESSION['username'] = $regel['username'];   
           $_SESSION['voornaam'] = $regel['voornaam'];
           $_SESSION['achternaam'] = $regel['achternaam'];
           $_SESSION['level'] = $regel['ulevel'];

           $inhoud="Ingelogd!"; 
        } else {
           // Foute login
           $inhoud="Foute login!";
        }
    } else {
        $inhoud = 
       '<form name="loginform" method="post">
       Gebruikersnaam: <input type="text" name="gebruiker"><br>
       Wachtwoord: <input type="password" name="wachtwoord"><br>
       <input type="submit" value="Login" name="submit">
       </form>';
    }

    ?>
    <?php 
    echo $inhoud;
    echo $regel['username'];
    ?>


    Iemand die kan helpen?
    Giel83donderdag 26 oktober 2006 @ 19:38
    Misschien roep je op de andere pagina's geen session_start(); aan?
    Probeer anders na iedere session_start(); een print_r($_SESSION), dan kun je zien of je sessie variabelen zijn meegegeven, zoniet dan worden je sessies misschien niet goed opgeslagen.
    Xevordonderdag 26 oktober 2006 @ 19:49
    Kijk eens aan Met print_r($_SESSION); werkt die inderdaad, alleen jammer dat ik dan nog steeds de inlog formulier krijg. Bedankt voor je hulp in ieder geval. Ik was hier al best lang mee bezig vandaag en nu is het binnen een paar minuten opgelost.
    Giel83donderdag 26 oktober 2006 @ 20:04
    hm, heb je dan niet toevallig je session support op disabled staan?
    staat in de phpmyinfo();
    Xevordonderdag 26 oktober 2006 @ 20:08
    Nope,

    Session Support enabled
    Registered save handlers files user
    Registered serializer handlers php php_binary wddx

    Staat trouwens niet op een eigen server ofzo. Ik heb een net als alle andere studenten een diskruimte gekregen waar ik dit soort opdrachten op kan zetten, maar denk je dat het met de code zelf goed zit?
    Giel83donderdag 26 oktober 2006 @ 20:13
    Naja, code ziet er goed uit...
    Je kan ook nog session_register($regel['username']) proberen. Misschien werkt dat wel.
    Xevordonderdag 26 oktober 2006 @ 20:33
    Zodra ik session_register($regel['username']) invul in plaats van $_SESSION['username'] = $regel['username']; krijg ik de opgeslagen sessie niet meer te zien (met print_r($_SESSION); dus). En het probleem blijft er dan nog, want de login form komt dan weer terwijl ik al ingelogd ben.
    Giel83donderdag 26 oktober 2006 @ 21:09
    Ah op die fiets... Ik dacht dat je de sessies niet goed doorkreeg...
    Krijg je dan wel de $_POST waarden goed door? Blijkbaar komtie dan niet hier voorbij: if(isset($_POST['gebruiker']) && isset($_POST['wachtwoord'])) {
    kan je ook zien met print_r($_POST);

    Bij mij werkt je script trouwens wel gewoon...
    JeRadonderdag 26 oktober 2006 @ 21:29
    session_register() en $_SESSION dien je nooit door elkaar te gebruiken. Dit staat ook in de manual
    freissdonderdag 26 oktober 2006 @ 21:35
    quote:
    Op donderdag 26 oktober 2006 19:32 schreef Xevor het volgende:
    Ik ben nu bezig met een scriptje te schrijven, maar ik kom er maar niet uit. Hopelijk kan hier iemand helpen.

    Ik heb een login script dat gegevens uit mysql haalt en daarvan een sessie maakt. Het probleem is dat de sessie niet wordt onthouden. Als ik namelijk weer naar login.php ga dan kan ik weer inloggen en dat wil ik op dat moment niet want ik hoor al ingelogd te zijn. Sessie wordt opgeslagen zodra ik inlog maar als ik dan login.php weer open of naar een andere pagina ga is die alweer verwijderd.


    [ code verwijderd ]

    Iemand die kan helpen?
    Is toch ook wel logisch, of zie ik het verkeerd ? Als je weer terug gaat naar login.php, zijn de POST-velden niet meer gevuld, en dus krijg je weer het inlogscherm te zien.
    Xtr3mEvrijdag 27 oktober 2006 @ 09:27
    Kan iemand mij uitleggen waarom de onderstaande code niet werkt? zie ik wat over het hoofd?

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <?php
    //variabelen
    $zoek_klantnaam = $_POST['zoek_klantnaam'];
    $zoek_postcode = $_POST['zoek_postcode'];
    $zoek_klantnummer = $_POST['zoek_klantnummer'];


      
    //query
      
    $query = "SELECT * FROM Klant WHERE Klantnaam LIKE '%$zoek_klantnaam%' OR Postcode = '$zoek_postcode' OR Klantnummer = '$zoek_klantnummer'";
      
    $result = mysql_query($query)
           or die (
    "Kan opdracht niet uitvoeren");
    ?>


    Ik heb dus 3 zoekvelden waar je op kan zoeken:

    - Postcode
    - Klantnummer
    - Klantnaam

    * Ze hoeven niet allemaal ingevuld te worden.
    * de postcode en klantnummer moeten precies ingevuld overeen komen
    * klantnaam mag beetje afwijken (vandaar die LIKE)

    en onder de pagina komt een overzicht van de zoekresultaten.

    Nu werkt dus alleen als je zoekt op Klantnaam. Als je zoekt op postcode of klantnummer dan worden alle resultaten getoont ookal vul je een niet bestaande nummer of postcode in.


    -edit- het werkt wel als ik die LIKE van de klantnaam weghaal maar die moet juist LIKE zijn omdat er meerdere resulaten getoond moeten worden. (klantnaam is ook geen unieke waarde, de postcode en klantnummer wel)

    [ Bericht 6% gewijzigd door Xtr3mE op 27-10-2006 09:32:17 ]
    freissvrijdag 27 oktober 2006 @ 10:19
    quote:
    Op vrijdag 27 oktober 2006 09:27 schreef Xtr3mE het volgende:
    Kan iemand mij uitleggen waarom de onderstaande code niet werkt? zie ik wat over het hoofd?


    [ code verwijderd ]

    Ik heb dus 3 zoekvelden waar je op kan zoeken:

    - Postcode
    - Klantnummer
    - Klantnaam

    * Ze hoeven niet allemaal ingevuld te worden.
    * de postcode en klantnummer moeten precies ingevuld overeen komen
    * klantnaam mag beetje afwijken (vandaar die LIKE)

    en onder de pagina komt een overzicht van de zoekresultaten.

    Nu werkt dus alleen als je zoekt op Klantnaam. Als je zoekt op postcode of klantnummer dan worden alle resultaten getoont ookal vul je een niet bestaande nummer of postcode in.


    -edit- het werkt wel als ik die LIKE van de klantnaam weghaal maar die moet juist LIKE zijn omdat er meerdere resulaten getoond moeten worden. (klantnaam is ook geen unieke waarde, de postcode en klantnummer wel)
    Als in $zoek_klantnaam niets in staat, gebruik je eigenlijk de query "SELECT * FROM Klant WHERE Klantnaam LIKE '%%' OR Postcode = '$zoek_postcode' OR Klantnummer = '$zoek_klantnummer'". Hij vindt dan dus gewoon alles.
    Xtr3mEvrijdag 27 oktober 2006 @ 11:25
    quote:
    Op vrijdag 27 oktober 2006 10:19 schreef freiss het volgende:

    [..]

    Als in $zoek_klantnaam niets in staat, gebruik je eigenlijk de query "SELECT * FROM Klant WHERE Klantnaam LIKE '%%' OR Postcode = '$zoek_postcode' OR Klantnummer = '$zoek_klantnummer'". Hij vindt dan dus gewoon alles.
    enig idee hoe ik dat zou kunnen opvangen ?
    wonderervrijdag 27 oktober 2006 @ 12:55
    Mijn host heeft PHP gerecompiled (wat een lekker nederlands toch weer) en nu kan ik variabelen alleen nog maar aanroepen met $_GET["variable"] in plaats van $variable. Dit deed ik al voor POST, maar nooit met GET gedaan, eigenlijk... moet ik nu alle scripts door gaan lopen en aan gaan passen, of is daar een makkelijkere manier voor?
    ralfievrijdag 27 oktober 2006 @ 13:00
    @Xtr3mE

    je kunt de query dynamisch opbouwen. Dus

    1
    2
    3
    4
    5
    6
    <?php
    $query
    ='SELECT * FROM Klant WHERE';
    if (isset(
    $klantnaam)) $query.=" Klantnaam LIKE %$klantnaam%'";
    else if (isset(
    $pc)) $query.=" Postcode = '$pc'";
    else if (isset(
    $kn)) $query.=" Klantnummer = '$kn'";
    ?>

    zal iets anders moeten als er ook combinaties mogelijk zijn, maar je zou het princype moeten snappen

    @wanderer
    http://nl3.php.net/manual/en/ini.core.php#ini.register-globals

    het is een slechte gewoonte om register_globals aan te hebben en te gebruiken, daarom staat die vanaf 4.2 op uit standaard. Ik zou zeggen zoek een editor met regular expressions search en replace, dan heb je zo alles vervangen

    [ Bericht 11% gewijzigd door ralfie op 27-10-2006 13:06:39 ]
    JeRavrijdag 27 oktober 2006 @ 13:04
    quote:
    Op vrijdag 27 oktober 2006 12:55 schreef wonderer het volgende:
    Mijn host heeft PHP gerecompiled (wat een lekker nederlands toch weer) en nu kan ik variabelen alleen nog maar aanroepen met $_GET["variable"] in plaats van $variable. Dit deed ik al voor POST, maar nooit met GET gedaan, eigenlijk... moet ik nu alle scripts door gaan lopen en aan gaan passen, of is daar een makkelijkere manier voor?
    Er is een makkelijkere manier (zoek naar extract()) maar de betere manier is om het via $_GET, $_POST etc te doen
    wonderervrijdag 27 oktober 2006 @ 13:10
    quote:
    Op vrijdag 27 oktober 2006 13:04 schreef JeRa het volgende:

    [..]

    Er is een makkelijkere manier (zoek naar extract()) maar de betere manier is om het via $_GET, $_POST etc te doen
    Ik wil best alle scripts doorlopen, maar daar heb ik nu even geen tijd voor, ben dus alleen op zoek naar een quick fix.
    Xtr3mEvrijdag 27 oktober 2006 @ 14:54
    quote:
    Op vrijdag 27 oktober 2006 13:00 schreef ralfie het volgende:
    @Xtr3mE

    je kunt de query dynamisch opbouwen. Dus
    [ code verwijderd ]

    zal iets anders moeten als er ook combinaties mogelijk zijn, maar je zou het princype moeten snappen
    Ik snap wat je bedoelt maar ook weer niet. :)

    Maar maakt niet uit ik heb het al op een andere manier opgelost wat tot nu toe nog goed werkt.

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <?php
      
    if ($zoek_klantnaam=="") {
      
    $query = "SELECT * FROM Klant WHERE Postcode = '$zoek_postcode' OR Klantnummer = '$zoek_klantnummer'";
      
    $result = mysql_query($query)
           or die (
    "Kan opdracht niet uitvoeren");
      }
      else {
      
    $query = "SELECT * FROM Klant WHERE Klantnaam LIKE '%$zoek_klantnaam%' OR Postcode = '$zoek_postcode' OR Klantnummer = '$zoek_klantnummer'";
      
    $result = mysql_query($query)
           or die (
    "Kan opdracht niet uitvoeren");
           }
    ?>

    ;)
    fokME2vrijdag 27 oktober 2006 @ 15:16
    quote:
    Op vrijdag 27 oktober 2006 13:10 schreef wonderer het volgende:

    [..]

    Ik wil best alle scripts doorlopen, maar daar heb ik nu even geen tijd voor, ben dus alleen op zoek naar een quick fix.
    Zoiets?

    1
    2
    3
    4
    5
    6
    7
    8
    9
    <?php
    register_array
    ($array){
      foreach(
    $array as $key =&gt$value)
      {
       ${
    $key} = $value
      }
      return 
    true;
    }
    ?>
    ralfievrijdag 27 oktober 2006 @ 15:47
    dan is extract toch iets makkelijker
    fokME2vrijdag 27 oktober 2006 @ 19:08
    Geen flauw idee? Heb er niet naar gekeken
    Desdinovazaterdag 28 oktober 2006 @ 18:08
    kan fout omgaan met bepaalde php functies (mail en fsocketopen bijv ) een instabiele server tot gevolg hebben? of bijvoorbeeld het niet meer werken van pop en smtp?
    JeRazaterdag 28 oktober 2006 @ 18:23
    quote:
    Op zaterdag 28 oktober 2006 18:08 schreef Desdinova het volgende:
    kan fout omgaan met bepaalde php functies (mail en fsocketopen bijv ) een instabiele server tot gevolg hebben? of bijvoorbeeld het niet meer werken van pop en smtp?
    Zolang je de aan te roepen servers niet laat overstromen met requests van jouw kant of als je geen misbruik maakt van al dan niet bekende exploits in de gebruikte serversoftware niet, nee.
    mscholzondag 29 oktober 2006 @ 00:43
    klein vraagje:
    ik wil een php/mysql boek bestellen echter weet ik door de hoeveelheid boeken gewoon niet welke ik het beste kan nemen
    ik wil een boek bestellen via bol maar zowel onder nederlandstalige als engelstalige boeken heb je minimaal 15 verschillende boeken..

    ik wil een goed naslag werk en ook een waar veel uitleg instaat over het gebruiken en toepassen van mysql+php
    heeft iemand tips (voor dinsdag :s dat is namelijk de laatste dag dat ik een coupon kan inwisselen )
    ralfiezondag 29 oktober 2006 @ 09:29
    ik heb als naslagwerk de hele php en mysql manual gedownload en in een locale database draaien, compleet met zoekfunctie. Werkt super
    mscholzondag 29 oktober 2006 @ 09:58
    quote:
    Op zondag 29 oktober 2006 09:29 schreef ralfie het volgende:
    ik heb als naslagwerk de hele php en mysql manual gedownload en in een locale database draaien, compleet met zoekfunctie. Werkt super

    tja ik wil er ook nog wat van opsteken (dus een boek vind ik dan handiger..)

    ik heb nu deze op het oog:
    PHP and MySQL Web Development
    Web Database Applications with PHP and MySQL
    iemand die deze boeken kent?

    [ Bericht 40% gewijzigd door mschol op 29-10-2006 10:48:42 ]
    Nevermindzondag 29 oktober 2006 @ 16:47
    quote:
    Op donderdag 26 oktober 2006 16:01 schreef ralfie het volgende:

    [..]

    hendigste is om een tabel te maken waarin je de $_SESSION array gewoon serialised en unserialised. Enige wat je moet doen is is dan met een cookie en/of ip bepalen of de huidige gebruiker al een sessie in je database heeft staan en als dat zo is deze eruit halen

    Ik geloof dat als identificatie vaak een md5 has van username en password gebruikt wordt
    [ code verwijderd ]

    uiteraard kun je ook controleren dmv IP-adres, en zul je iets moeten verzinnen om deze tabel af en toe te kunnen legen (datum kolom toevoegen)
    Bedankt voor je hulp! Ik heb het op een iets andere manier gedaan, maar ik weet niet zeker of het veilig genoeg is. Ik heb alles mbt sessies verwijderd en het zo gedaan:

    Tabel xni_sessions
    session_key (varchar[32])
    session_expire (int)
    session_uid (int)

    Bij het inloggen wordt, na een geldige gebruikersnaam en wachtwoord, een md5-hash gemaakt van het ip en de browser van de gebruiker (plus twee extra tekens). Die session_key wordt dan in een cookie gestopt met dezelfde expiration date als in de session tabel. Bij elk bezoek aan de pagina wordt de hash weer gemaakt van de persoons huidige IP-adres en browser en indien die overeenkomt met de session_key is de persoon ingelogd onder het userid session_uid.

    Is dit veilig genoeg? Misbruikgevoelig?

    -edit-
    Mijn huisgenoot die op hetzelfde ipadres zit (en dezelfde browser heeft) zorgt voor fouten. Logisch. Even kijken of het werkt als ik de username in de hash zet.

    -edit2-
    Dat lijkt te werken. Ben nog wel benieuwd of iemand iets weet over de veiligheid van deze manier

    [ Bericht 5% gewijzigd door Nevermind op 29-10-2006 17:04:14 ]
    IceHeatzondag 29 oktober 2006 @ 23:01
    1
    2
    3
    4
    5
    6
    <?php
    php
    $plaatsen 
    = array();
    array_push($plaatsen1);
    echo 
    array_search(1$plaatsen);
    ?>


    Dit moet toch 1 echo'en???
    IceHeatzondag 29 oktober 2006 @ 23:13
    never mind, array_search is geen boolean.
    Chandlermaandag 30 oktober 2006 @ 10:39
    Weet iemand een regex om dit te filteren?

    1>เบิ้น</


    en ik wil graag alles tussen > en </ uitlezen :D echter staan er af en toe ook rn's tussen.

    Iemand een idee? :D

    heb dit al geprobeerd

    1>(w.*?)
    maar dat werkte niet :{
    wipes66maandag 30 oktober 2006 @ 15:28
    Weet iemand hoe ik errors van sqlite_query() onderdruk? Een @ er voor werkt niet
    IceHeatmaandag 30 oktober 2006 @ 16:09
    quote:
    Op maandag 30 oktober 2006 15:28 schreef wipes66 het volgende:
    Weet iemand hoe ik errors van sqlite_query() onderdruk? Een @ er voor werkt niet
    Try catch blok maken?
    ralfiemaandag 30 oktober 2006 @ 17:10
    quote:
    Op maandag 30 oktober 2006 10:39 schreef Chandler het volgende:
    Weet iemand een regex om dit te filteren?
    [ code verwijderd ]

    en ik wil graag alles tussen > en </ uitlezen echter staan er af en toe ook rn's tussen.

    Iemand een idee?

    heb dit al geprobeerd
    [ code verwijderd ]

    maar dat werkte niet
    ik denk dat je dit bedoeld?
    1'/>(.*?(?=<\/))/s'
    wipes66maandag 30 oktober 2006 @ 17:31
    quote:
    Op maandag 30 oktober 2006 16:09 schreef IceHeat het volgende:

    [..]

    Try catch blok maken?
    had ik ook al geprobeerd, maar sqlite_query() geeft geen exceptions.

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <?php
    function query($sql) {
        
    try {
                 
    $result sqlite_query($sql,$this-&gt;sqlite_connection,SQLITE_ASSOC);
        }
        
    catch Exception $e ) {
            die(
    'ERR:'.$e);
        }
    }
    ?>
    mscholmaandag 30 oktober 2006 @ 23:57
    quote:
    Op zondag 29 oktober 2006 09:58 schreef mschol het volgende:

    [..]


    tja ik wil er ook nog wat van opsteken (dus een boek vind ik dan handiger..)

    ik heb nu deze op het oog:
    PHP and MySQL Web Development
    Web Database Applications with PHP and MySQL
    iemand die deze boeken kent?
    helemaal niemand???
    gebruikt dan niemand boeken ??
    wipes66dinsdag 31 oktober 2006 @ 01:19
    quote:
    Op maandag 30 oktober 2006 23:57 schreef mschol het volgende:

    [..]

    helemaal niemand???
    gebruikt dan niemand boeken ??
    Er zullen vast wel mensen zijn die boeken gebruiken, maar de meeste gebruiken gewoon het internet denk ik
    IceHeatdinsdag 31 oktober 2006 @ 09:15
    quote:
    Op maandag 30 oktober 2006 23:57 schreef mschol het volgende:

    [..]

    helemaal niemand???
    gebruikt dan niemand boeken ??
    Dan moet ik eerst zo'n boek doorwerken. Ik ga liever meteen met mijn website aan de slag. Met het risico natuurlijk dat ik inefficiente technieken gebruik, maar dat neem ik voor lief.
    Chandlerdinsdag 31 oktober 2006 @ 11:05
    quote:
    Op maandag 30 oktober 2006 17:10 schreef ralfie het volgende:
    ik denk dat je dit bedoeld?
    [ code verwijderd ]
    Is helaas niet gelukt...

    Wat ik eingelijk zoek, en zelf niet achterkom is hoe kan ik uit een stukje tekst het volgende filteren.

    <p><h2>กกกก</h2></p>

    nu wil ik alleen กกกก hebben en niets meer...

    Help!

    ennuh ก = & # 3585
    Swetseneggerdinsdag 31 oktober 2006 @ 11:15
    quote:
    Op dinsdag 31 oktober 2006 11:05 schreef Chandler het volgende:

    [..]

    Is helaas niet gelukt...

    Wat ik eingelijk zoek, en zelf niet achterkom is hoe kan ik uit een stukje tekst het volgende filteren.

    <p><h2>กกกก</h2></p>

    nu wil ik alleen กกกก hebben en niets meer...

    Help!

    ennuh ก = & # 3585
    1
    2
    3
    <?php
    $part
    =substr ($mystring, strpos ($mystring, "&#3585;"), strrpos ($mystring, "&#3585;")-1);
    ?>


    let op, de php tag maakt er z'n entity code van, maar dan werkt het niet. Dus gewoon ก gebruiken en niet & #3585;

    [ Bericht 16% gewijzigd door Swetsenegger op 31-10-2006 11:30:00 ]
    Lightdinsdag 31 oktober 2006 @ 11:18
    Zoiets?
    1'/<h2>(.*)</h2>/Ui'


    Niet getest overigens.
    SuperRembodinsdag 31 oktober 2006 @ 11:36
    quote:
    Op dinsdag 31 oktober 2006 11:05 schreef Chandler het volgende:
    Wat ik eingelijk zoek, en zelf niet achterkom is hoe kan ik uit een stukje tekst het volgende filteren.

    <p><h2>กกกก</h2></p>

    nu wil ik alleen กกกก hebben en niets meer... :)
    1
    2
    3
    $html = 'foo <b>bar</b> baz.';
    preg_match_all('#>([^<]*)</#', $html, $matches));
    echo htmlentities($matches[1][0]);


    In $matches[0][0] staat het hele stuk dat matcht, dus '<b>bar</b>', in $matches[1][0] staat wat er tussen de haakjes matcht, dus 'bar'.
    Desdinovadinsdag 31 oktober 2006 @ 12:21
    zit er eigenlijk veel verschil tussen MySQL en SQL? Qua queries enzo? Of is het zo dat als je met het een kan werken je ook met het andere kan werken?

    Vanuit welke codetaal maak je eigenlijk verbinding met een SQL server?
    Swetseneggerdinsdag 31 oktober 2006 @ 12:30
    quote:
    Op dinsdag 31 oktober 2006 12:21 schreef Desdinova het volgende:
    zit er eigenlijk veel verschil tussen MySQL en SQL? Qua queries enzo? Of is het zo dat als je met het een kan werken je ook met het andere kan werken?

    Vanuit welke codetaal maak je eigenlijk verbinding met een SQL server?
    SQL is een verzamelnaam voor Structured Query Language. En die heb je in verschillende smaken, zoals MySQL, MSSQL, PostgreSQL, etc.

    Vanuit php kan je alle grote SQL databases aanspreken. zo bestaat mysql_query() maar ook mssql_query() als php functie.

    Omdat het allemaal SQL databases zijn, komen de meeste basics zoals SELECT, INSERT, UPDATE en WHERE statements wel aardig overeen. Maar er zijn wel degelijk verschillen.

    MSSQL ondersteunt bv subqueries (mysql ook vanaf 5?), maar bv de extreem handige LIMIT functie van MySQL is niet beschikbaar. En zo zijn er meer (kleine) verschillen. Het grootste verschil zitg natuurlijk in het feit dat er diverse gratis SQL databases zijn (MySQL, PostgreSQL, Interbase) en diverse betaalde (MSSQL, Oracel), waarbij je bij de laatste professionele support mag verwachten.
    Desdinovadinsdag 31 oktober 2006 @ 12:58
    luxe antwoord
    thanks

    een gratis sql server om mee te spelen zit er niet in begrijp ik
    Swetseneggerdinsdag 31 oktober 2006 @ 13:08
    quote:
    Op dinsdag 31 oktober 2006 12:58 schreef Desdinova het volgende:
    luxe antwoord
    thanks

    een gratis sql server om mee te spelen zit er niet in begrijp ik
    Jawel, mysql, postgresql en interbase/firebird
    Als je een gratis MSsql database bedoelt.... zelfs daar is tegenwoordig een 'lite' versie van te downloaden
    super-muffindinsdag 31 oktober 2006 @ 14:29
    Dit is een gedeelte uit mijn query:
    1
    2
    3
    <?php
    $sql 
    "SELECT *, DATE_FORMAT(datum, '%e %m %Y') AS date_x 
    ?>


    En krijk ik dus als output:
    31 10 2006

    Hoe zorg ik er voor dat ik ipv die 10, oktober te zien krijg?

    Ik had al wat geprobeerd met een array:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <?php
    $maanden 
    = array(=&gt"januari""februari""maart""april""mei"
    "juni""july""augustus""september""oktober""november""december");

    foreach(
    $maanden as $key =&gt$maand) {
        if (
    fnmatch($row[date_x], $key)) {
            return 
    $maand;
        }
    }
    ?>

    maar hoe krijg ik het dan netjes neer?
    Swetseneggerdinsdag 31 oktober 2006 @ 14:35
    quote:
    Op dinsdag 31 oktober 2006 14:29 schreef super-muffin het volgende:
    Dit is een gedeelte uit mijn query:
    [ code verwijderd ]

    En krijk ik dus als output:
    31 10 2006

    Hoe zorg ik er voor dat ik ipv die 10, oktober te zien krijg?
    DATE_FORMAT

    %M Month name (January..December)
    en in php kan je het natuurlijk doen door je local settings goed te zetten
    super-muffindinsdag 31 oktober 2006 @ 15:28
    Bedankt

    Als ik die localsettings goed zet dan kan ik gewoon %M gebruiken en dan kijg ik de goede Nederlandse maanden?

    --toevoeging:

    ik heb het goed gekregen

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    <?php
    $sql 
    "SELECT *, 
    DATE_FORMAT(datum, '%e %M %y') AS date_x 
    FROM berichten 
    ORDER BY id 
    DESC
    LIMIT 0, 1"
    ;
    $result mysql_query($sql);

    $loc_nl setlocale(LC_TIME'nl_NL''nl');

    while (
    $row mysql_fetch_assoc($result)) {

        
    $maand strftime("%e %B %y"mktime());
        
        echo 
    "<div class="bericht">
        <h2>" 
    $maand " " $row[kop] . "</h2>
        <p>" 
    $row[inhoud] . "</p>
    </div>"
    ;
    ?>


    Ik vind het echt goed van me zelf
    * super-muffin geeft schouderklop aan zich zelf.

    [ Bericht 47% gewijzigd door super-muffin op 31-10-2006 16:09:27 ]
    Siegfriedwoensdag 1 november 2006 @ 10:26
    Ik zoek eigenlijk een goeie download-beheer tool. Eentje die niet de werkelijke link van een bestand laat zien.

    Al een flinke tijd heb ik er een tijd een in gebruik, maar heb nu een specifieke eis:
    Ik moet kunnen aangeven hoevaak het maximaal gedownload mag worden, ivm dataverkeer.

    Momenteel heb ik even geen tijd om er zelf aan te gaan zitten om het te schrijven of de tool die ik in gebruik heb te modden. Maar wellicht heeft iemand van jullie een tool in gebruik die dit kan?
    Hij hoeft helemaal niet uitgebreid te zijn, alleen dus een max aantal downloads te kunnen instellen, en de daadwerkelijke locatie van het bestand af te schermen.
    Siegfriedwoensdag 1 november 2006 @ 10:28
    quote:
    Op dinsdag 31 oktober 2006 15:28 schreef super-muffin het volgende:
    Bedankt

    Als ik die localsettings goed zet dan kan ik gewoon %M gebruiken en dan kijg ik de goede Nederlandse maanden?

    --toevoeging:

    ik heb het goed gekregen
    [ code verwijderd ]

    Ik vind het echt goed van me zelf
    * super-muffin geeft schouderklop aan zich zelf.
    Waarom zet je setlocal in een variabele?
    zonder $loc_nl = werkt het toch ook?
    wipes66woensdag 1 november 2006 @ 18:04
    Weet iemand hoe je het beste tijd+datum op kan slaan in een db? Ik dacht er zelf aan om gewoon een timestamp (in GMT) te gebruiken. Ik heb er nooit zo over nagedacht om rekening te houden met tijdzones/daylight saving etc.
    mscholwoensdag 1 november 2006 @ 19:56
    quote:
    Op woensdag 1 november 2006 18:04 schreef wipes66 het volgende:
    Weet iemand hoe je het beste tijd+datum op kan slaan in een db? Ik dacht er zelf aan om gewoon een timestamp (in GMT) te gebruiken. Ik heb er nooit zo over nagedacht om rekening te houden met tijdzones/daylight saving etc.
    ik zou zeggen timestamp in gmt opslaan en dan in php omvormen naar de juiste tijdzone.. (als je de gegevens weer ophaalt)
    dan kan je namelijk zelf/de gebruiker de tijdzone aangeven
    wipes66woensdag 1 november 2006 @ 20:17
    quote:
    Op woensdag 1 november 2006 19:56 schreef mschol het volgende:

    [..]

    ik zou zeggen timestamp in gmt opslaan en dan in php omvormen naar de juiste tijdzone.. (als je de gegevens weer ophaalt)
    dan kan je namelijk zelf/de gebruiker de tijdzone aangeven
    ja dat is ook wat ik wil, maar hoe kan ik aan een gmt timestamp komen ongeacht de configuratie v/d server?
    Swetseneggerwoensdag 1 november 2006 @ 20:25
    wat is er mis met DATETIME en die manipuleren met DATE_FORMAT?
    ALTF4woensdag 1 november 2006 @ 22:58
    Hallo,

    ik ben op zoek naar een script dat op gezette tijden data uit een MySQL database leest en die vervolgens als excel bestand kan wegschrijven op de server. Het op gezette tijden actie ondernemen van het script is geen probleem voor me om in een script te implementen.

    Er zijn veel scripts die het mogelijk maken om te linken naar voorbeeld.php en dat de bezoeker dan de keuze krijgt voorbeeld.xls op te slaan of in de browser te openen. Dat zoek ik niet, het xls bestand moet worden opgeslagen op de server.

    Voorbeeld van toepassing: Iedere dag een backup maken van een lijst met mensen die zich hebben ingeschreven, in xls formaat zodat het wanneer gewenst direct te openen is in Excel.

    Weet iemand een script zoals door mij gezocht te vinden? Graag! Laat het me weten!
    IceHeatwoensdag 1 november 2006 @ 23:50
    quote:
    Op woensdag 1 november 2006 22:58 schreef ALTF4 het volgende:
    Hallo,

    ik ben op zoek naar een script dat op gezette tijden data uit een MySQL database leest en die vervolgens als excel bestand kan wegschrijven op de server. Het op gezette tijden actie ondernemen van het script is geen probleem voor me om in een script te implementen.

    Er zijn veel scripts die het mogelijk maken om te linken naar voorbeeld.php en dat de bezoeker dan de keuze krijgt voorbeeld.xls op te slaan of in de browser te openen. Dat zoek ik niet, het xls bestand moet worden opgeslagen op de server.

    Voorbeeld van toepassing: Iedere dag een backup maken van een lijst met mensen die zich hebben ingeschreven, in xls formaat zodat het wanneer gewenst direct te openen is in Excel.

    Weet iemand een script zoals door mij gezocht te vinden? Graag! Laat het me weten!
    Zelf schrijven? ODBC kun je voor Excel gebruiken, maar ik weet niet of je ODBC met PHP kan gebruiken.
    IceHeatwoensdag 1 november 2006 @ 23:51
    quote:
    Op woensdag 1 november 2006 23:50 schreef IceHeat het volgende:

    [..]

    Zelf schrijven? ODBC kun je voor Excel gebruiken, maar ik weet niet of je ODBC met PHP kan gebruiken.
    Ja dus: http://nl2.php.net/manual-lookup.php?pattern=ODBC
    fokME2donderdag 2 november 2006 @ 00:30
    Kan je met ODCB ook excel bestanden uitlezen?
    IceHeatdonderdag 2 november 2006 @ 00:47
    quote:
    Op donderdag 2 november 2006 00:30 schreef fokME2 het volgende:
    Kan je met ODCB ook excel bestanden uitlezen?
    Yup
    IceHeatdonderdag 2 november 2006 @ 00:51
    Ik bedenk net:

    Om Excel uit te lezen kun je denk ik wel beter OleDB gebruiken, ODBC verdraait soms bepaalde
    waarden, en is dus niet ideaal voor Excel. Bijv: Als een formule in de cel staat, dan pakt ODBC hem wel, maar als het gewoon een waarde is, zonder formule, slaat ODBC hem over.

    Eigenlijk is ODBC nooit ideaal.
    JeRadonderdag 2 november 2006 @ 03:29
    Goed, de meesten hier kennen wel de methode om [aantal] random rows op te halen uit een tabel:

    1SELECT * FROM tabel ORDER BY RAND() LIMIT 0, aantal


    Intern doet MySQL dit een beetje omslachtig (kan geoptimaliseerd worden). Hij kent elk record in de tabel een random waarde toe, waar hij vervolgens op gaat sorteren. Stel, ik heb een tabel met een miljoenen records waarvan ik geen enkele waarde vantevoren kan voorspellen (geen consecutive (primary) keys dus), hoe selecteer ik hier dan snél 10.000 random records uit?

    Voetnoot: de tabel in kwestie heeft fixed records en MySQL houdt het aantal records bij. Dit betekent dat bovenstaande wens uitgevoerd kan worden door random nummers tussen de 0 en numrecords te pakken en de bijbehorende records op te halen vanaf offset + recordsize * randomnumber in de dataset. Waarom MySQL niet iets dergelijks doet is me een raadsel.
    ALTF4donderdag 2 november 2006 @ 09:32
    quote:
    Op woensdag 1 november 2006 23:50 schreef IceHeat het volgende:

    [..]

    Zelf schrijven? ODBC kun je voor Excel gebruiken, maar ik weet niet of je ODBC met PHP kan gebruiken.
    Heej, oke.. dat kan me een stap in de richting helpen, hoewel ik nog nooit van ODBC heb gehoord. Maar, ik ben op zoek naar een script dat grotendeels af is vanwege weinig tijd.

    Kijk, dit (http://fundisom.com/phparadise/php/databases/mySQL_to_excel) script heb ik gevonden en werkt na wat kleine aanpassingen prima. Maar, die opent het in de browser en bewaard het bestand niet op de server. Weet iemand hoe ik dat met een kleine aanpassing van dat script wel kan doen?
    ALTF4donderdag 2 november 2006 @ 12:10
    Inmiddels heb ik de oplossing gevonden.
    In het script als hierboven genoemd wijzig je echo steeds in $sheet .= en vervolgens maak je het bestand op deze manier:

    $fopen = fopen("deelnemers.xls",w);
    fwrite($fopen, $sheet);
    fclose($fopen);

    In dat geval moet er al wel een bestand met die bestandsnaam aanwezig zijn met voldoende rechten. Een kleine aanpassing en het script zou dat bestand natuurlijk kunnen aanmaken.

    Wat ik doe is na het laten mailen van het excel bestand het excel bestand direct weer bewerken totdat er enkel "leeg" in het bestand staat. Zo:

    $fopen = fopen("deelnemers.xls",w);
    fwrite($fopen, "leeg");
    fclose($fopen);

    Op die manier zijn de gegevens uit de QSL database niet zomaar op te vragen door kwaadwillenden.
    TheSeeker_NLdonderdag 2 november 2006 @ 23:50
    Ik ben een beetje aan het stoeien met sql, maar ik kan het volgende niet vinden in mn boekje.

    ik heb een tabel met leden en elk lid heeft een handicap (golf). hoe krijg ik te zien welk lid de laagste handicap heeft?
    IceHeatvrijdag 3 november 2006 @ 00:08
    quote:
    Op donderdag 2 november 2006 23:50 schreef TheSeeker_NL het volgende:
    Ik ben een beetje aan het stoeien met sql, maar ik kan het volgende niet vinden in mn boekje.

    ik heb een tabel met leden en elk lid heeft een handicap (golf). hoe krijg ik te zien welk lid de laagste handicap heeft?
    ORDER BY [kolom]
    En dan ook nog ASC DESC aangeven

    http://www.w3schools.com/sql/sql_orderby.asp
    Siegfriedvrijdag 3 november 2006 @ 00:11
    1SELECT * FROM tabel ORDER BY handicap ASC
    TheSeeker_NLvrijdag 3 november 2006 @ 00:12
    quote:
    Op vrijdag 3 november 2006 00:08 schreef IceHeat het volgende:

    [..]

    ORDER BY [kolom]
    En dan ook nog ASC DESC aangeven

    http://www.w3schools.com/sql/sql_orderby.asp
    Ja ok dat is een manier. Maar wat nou als ik alleen de naam wil zien van het lid met de laagste handicap? dus zonder een lijst te genereren en die te ordenen van laag naar hoog?

    (bedankt voor je reactie iig )
    Ali Salamivrijdag 3 november 2006 @ 00:21
    LIMIT='1' toevoegen, dan hou je één row over

    Dat zijn wel de basisbeginselen overigens, misschien nog wat meer inlezen
    TheSeeker_NLvrijdag 3 november 2006 @ 00:28
    ahh ok.

    ik had SELECT MIN(handicap) gebruikt om de laagste handicap te vinden, ik dacht misschien dat ik op zo'n soort manier ook de naam van de speler erbij kon krijgen.

    maar blijkbaar niet. Je hebt gelijk ik moet ook nog wel meer lezen hoor, maar ik hou ervan spelende wijs dingen te leren. En als jullie het niet heeel erg vinden, dan post ik hier af en toe wat "domme vraagjes".
    Ali Salamivrijdag 3 november 2006 @ 00:32
    Zou net zeggen, je kan idd MIN/MAX gebruiken.
    Ali Salamivrijdag 3 november 2006 @ 00:39
    http://dev.mysql.com/doc/refman/4.1/en/example-maximum-row.html

    Kijk daar maar even, staat het uitgelegd
    TheSeeker_NLvrijdag 3 november 2006 @ 00:40
    thanks ik ga het lezen
    TheSeeker_NLvrijdag 3 november 2006 @ 00:42
    hah super! het werkt, dit was precies wat ik zocht!

    1
    2
    3
    SELECT naam
    FROM   Persoon
    WHERE  handicap=(SELECT MIN(handicap) FROM Persoon);


    super geholpen!
    Ali Salamivrijdag 3 november 2006 @ 01:23
    Mooi
    Chandlervrijdag 3 november 2006 @ 23:36
    Weet iemand een goed script dat excel sheets kan uitlezen in php, ik heb er wat gevonden maar ze konden allemaal (behalve hele dure) niet overweg met &#tekens...

    Weet iemand een goed script? google had veel maar helaas niet wat ik zocht (gratis , of ongv 10 euro oid)


    Nu ben ik zelf even opzoek gegaan en heb aardig informatie gevonden over excel com. En met wat voorbeelden heb ik het volgende gemaakt.

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    <?
        $excel = new COM("excel.application") or die("Unable to instanciate excel");  

        //bring it to front  
        $excel->Visible = 1;//NOT
        //dont want alerts ... run silent  
        $excel->DisplayAlerts = 1;  

        //open  document  
        $excel->Workbooks->Open("d:/excel.xls");  

        for ($h = 1; $h <= 3; $h++)
        {
            $book  = $excel->Workbooks(1);
            $sheet = $book->Worksheets($h);

            echo "<table>n";
            //Wtite row
            for ($i = 1; $i <= 150; $i++)
            {
                echo "<tr>n";
                //write colom
                for ($j = 1; $j <= 5; $j++)
                {
                    $cell = $sheet->Cells($i, $j); // #Select the cell (Row Column number)
                    $cell->activate;               // #Activate the cell
                
                    if($cell->value == '0')
                    {
                        $td = "";
                    }
                    else
                    {
                        $td = $cell->value;
                    }

                    echo "<td>" . $td . "</td>n"; // #write the cell
                }
                echo "</tr>n";
            }
            echo "</table>n";
        }

        //closing excel  
        $excel->Quit();  


    echter als ik het bestand uitlees krijg ik nog steeds vage teksten! wat is de inhoud dan zou je je afvragen!?

    Rij A - Nederlandse tekst (arial)
    Rij C - Thaise tekens (Angsana New)
    Rij E - Engelse tekst (arial)

    Maar als ik het uitlees krijg ik het volgende te zien.



    Oftewel ik lees iets niet goed uit, volgens mij moet ik ergens nog kunnen instellen welk karakterset ik wil gebruiken... maar dat kan ik dus niet vinden liefst zou ik gewoon alle teksten van een cel in &# codes willen hebben maar goed.

    Dit moet de uitkomst zijn ongv.





    [ Bericht 43% gewijzigd door Chandler op 04-11-2006 11:05:07 ]
    qu63zaterdag 4 november 2006 @ 23:12
    op de een of andere manier kan ik niet meer via CURL op Fok posten

    als ik wil posten krijg ik een #68 (Je bent niet ingelogd en kunt daarom niet reageren. Log eerst in, of vul je gebruikersnaam en wachtwoord in bij het reageervenster, en probeer het dan opnieuw.)
    en bij het wijzigen van mijn profiel een #3(Je bent niet ingelogd en kunt daarom geen gebruik maken van deze functie. Klik hier om in te loggen, of hier om je te registreren.)

    ik heb gewoon mijn eigen sessionid gebruikt die niet aan mijn ip gebonden is, gebruikersnaam en eachtwoord worden ook meegezonden..

    iemand een tip?
    qu63zondag 5 november 2006 @ 12:41
    quote:
    Op zaterdag 4 november 2006 23:12 schreef qu63 het volgende:
    op de een of andere manier kan ik niet meer via CURL op Fok posten

    als ik wil posten krijg ik een #68 (Je bent niet ingelogd en kunt daarom niet reageren. Log eerst in, of vul je gebruikersnaam en wachtwoord in bij het reageervenster, en probeer het dan opnieuw.)
    en bij het wijzigen van mijn profiel een #3(Je bent niet ingelogd en kunt daarom geen gebruik maken van deze functie. Klik hier om in te loggen, of hier om je te registreren.)

    ik heb gewoon mijn eigen sessionid gebruikt die niet aan mijn ip gebonden is, gebruikersnaam en eachtwoord worden ook meegezonden..

    iemand een tip?
    foutje in mn sessionid dus
    ExCibularzondag 5 november 2006 @ 16:35
    Ik hoop dat iemand mij bij he volgende kan helpen:
    Ik wil mijn menu uit een database halen. Dit bestaat 3 onderdelen:
    -de menu items uit de tabel menu halen
    -de submenu items de titels (van de tekst pagina's) uit de teksten tabel halen
    - extra submenuitems uit de tabel submenuitems halen.

    Nou wil ik dat ik in het extra submenuitems tabel een plaats kan meegeven die bepaald hoe hoog een bepaald submenu item komt te staan. Om dat te programeren had ik het volgende in gedachten:

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

    $taal = "NL";
    $menu_array = array();
    $submenu_array = array();
    include(
    "config.php");
    @
    mysql_select_db("database")
    or die (
    "kon geen database selecteren");
    $query = "SELECT menu  FROM menu WHERE taal='$taal' ORDER BY ID";
    $result = mysql_query($query);
    while (list(
    $menu) = mysql_fetch_row($result))
    {
    $de_menu = urldecode($menu);
    $menu_array[] = "<li>$de_menu</li>";
    $query2 = "SELECT titel FROM tekst WHERE taal='$taal' AND menu='$menu' ORDER BY ID";
    $result2 = mysql_query($query2);
    while (list(
    $titel) = mysql_fetch_row($result2))
    {
    $de_titel = urldecode($titel);
    $submenu_array[] = "<ol><a href='../$database/$titel'>$de_titel</a></ol>";}
    $query3 = "SELECT titel , URL , priority FROM submenu WHERE taal='$taal' AND menu='$menu' ORDER BY ID";
    $result3 = mysql_query($query3);
    while (list(
    $titel, $url, $priority) = mysql_fetch_row($result3))
    {
    $de_titel = urldecode($titel);
    if (empty(
    $priority))  {$submenu_array[] = "<ol><a href='$url'>$de_titel</a></ol>"; }
    else {               
    $output = array_slice ($submenu_array, $priority);
                            
    $menu_array[] = "<ol><a href='$url'>$de_titel</a></ol>";
                            
    $submenu_array = array_merge ($submenu_array, $output);
    }
    }
    $menu_array = array_merge ($menu_array, $submenu_array);
    print_r($menu_array);
    unset (
    $menu_array);
    unset (
    $submenu_array);
    }

    </
    ul>
    ?>


    Alleen is de uitkomst dus niet helemaal goed. Het probleem zit hem in het plaatsen op een bepaalde plaats in de array. Ik krijg mijn array niet meer mooi terug bijelkaar. Hoe kan ik dit het beste oplossen? Iemand tips?
    Swetseneggerzondag 5 november 2006 @ 17:12
    Misschien makkelijker om je eens in een hierarchisch model te verdiepen?
    SuperRembozondag 5 november 2006 @ 17:21
    Het is ook verstandig om de data met één query op te halen. Als je nu 10 menu's hebt met 10 submenu's dan moet je 120 query's uitvoeren!
    Waarom gebruik je urldecode() op de gegevens die uit de database komen
    ExCibularzondag 5 november 2006 @ 17:29
    Ik zal eens in een hierarchisch model duiken.

    @superrembo
    De gegevens in de database zijn urlgedecodeerd zodat ik ze direct uit de database kan halen. Ik had wat problemen met een aantal menu items waar een apostroph in voorkwam. Door met urldecode en encode te werken heb ik die problemen opgelost.
    SuperRembozondag 5 november 2006 @ 17:41
    Aha, dat is een oplossing, die wel werkt, maar toch is het niet de goede oplossing. Je moet mysql_real_escape_string() of addslashes() gebruiken als je een string in een query zet. Op de gegevens die je uit de database terug krijgt hoef je dan geen urldecode() o.i.d. toe te passen. Wel moet je natuurlijk htmlentities() of htmlspecialchars() gebruiken dat je een string in html gebruikt.
    ExCibularzondag 5 november 2006 @ 18:02
    Ik had ook mysql_real_eascape_string() kunnen gebruiken maar voor mij was het resultaat hetzelfde.Het voordeel vam urldecode() voor mij was dat ik die toch al toepaste op mijn site.
    Let wel, ik zet de string niet in een query, ik haal de alle titels op uit de database, controleer welke titel bestaat (overeenkomt met de string) en gebruik dan de titel die ik uit de database heb getrokken om de rest van de site te laden.
    SuperRembozondag 5 november 2006 @ 18:43
    Je hebt die titel toch een keer met urlencode() in je database gezet, via een sql query?
    Je maakt het jezelf alleen maar moeilijk als je jezelf verkeerde encoding aanleert. Dat soort dingen blijven je achtervolgen. (Zie het gehannes met de \ in replique )
    Swetseneggerzondag 5 november 2006 @ 19:46
    quote:
    Op zondag 5 november 2006 18:43 schreef SuperRembo het volgende:
    Je maakt het jezelf alleen maar moeilijk als je jezelf verkeerde encoding aanleert. Dat soort dingen blijven je achtervolgen. (Zie het gehannes met de \ in replique )
    Helaas heb ik dat door schade en schande zelf ondervonden.
    Eerst gebruikte ik altijd addslashes omdat dat bij mijn hoster werkte.
    Tot hij mijn website naar een andere machine verhuizde
    Toen ben ik gaan controleren of magic quotes aanstonden.
    Tegenwoordig strip ik slashes deep (zie php.net) en gebruik ik mysql_real_escape_string
    ExCibularzondag 5 november 2006 @ 19:58
    Aan de hand van jullie eerdere reacties ga ik vanavond bezig om mijn database design wat te optimaliseren.
    Graag hoop ik daarom op nog wat tips
    Ik heb een database met een aantal tabellen
    teksten (hierin de teksten)
    acties (specifieke database voor actie teksten andere opbouw dan gewonen teksten)
    projecten (idem)
    nieuws

    Dan heb ik een menu met 7 items en een aantal menuitems hebben submenuitems. Maar niet alle teksten komen in het menu voor. Een aantal van deze items zijn echter niet losstaand maar vormen een soort menu voor zichzelf zonder dat het in de balk voorkomt.

    Hoe kan ik dit het beste oplossen?
    IceHeatzondag 5 november 2006 @ 20:28
    quote:
    Op zondag 5 november 2006 19:58 schreef ExCibular het volgende:
    Aan de hand van jullie eerdere reacties ga ik vanavond bezig om mijn database design wat te optimaliseren.
    Graag hoop ik daarom op nog wat tips
    Ik heb een database met een aantal tabellen
    teksten (hierin de teksten)
    acties (specifieke database voor actie teksten andere opbouw dan gewonen teksten)
    projecten (idem)
    nieuws

    Dan heb ik een menu met 7 items en een aantal menuitems hebben submenuitems. Maar niet alle teksten komen in het menu voor. Een aantal van deze items zijn echter niet losstaand maar vormen een soort menu voor zichzelf zonder dat het in de balk voorkomt.

    Hoe kan ik dit het beste oplossen?
    Ik zou eerst een ERD maken als ik jouw was.
    ExCibularzondag 5 november 2006 @ 22:11
    quote:
    Op zondag 5 november 2006 20:28 schreef IceHeat het volgende:

    [..]

    Ik zou eerst een ERD maken als ik jouw was.
    Ik had nog nooit van een ERD gehoord. Maar ik ga het e.e.a. maar een in kaart brengen. Bedankt voor de tips!
    IceHeatzondag 5 november 2006 @ 22:17
    http://en.wikipedia.org/wiki/Entity-relationship_model
    www.casestudio.com
    wondererdinsdag 7 november 2006 @ 16:14
    Om SQL injection te voorkomen, doe ik

    $ID=settype($id,"int");

    zodat alles dat geen nummer is, eruit wordt gefilterd. $id is de variabele die in de functie wordt ingevoerd (geen userinput, maar als ik het mezelf zo kan aanleren, kan het vast geen kwaad). $id gaat er nu al 46329 in en komt er al 1 uit. Da's natuurlijk niet de bedoeling. Waar ligt dat aan, en hoe fix it het?

    edit: nevermind, php.net niet goed gelezen

    [ Bericht 8% gewijzigd door wonderer op 07-11-2006 16:22:48 ]
    splendordinsdag 7 november 2006 @ 19:05
    Ik ben op dit moment bezig om een serie functies te schrijven die mij gaan helpen om op een hele makkelijke manier formulieren te maken, controleren/valideren en verwerken.
    Nu kun je op google een heleboel achtergrond informatie vinden maar de meeste teksten zijn nogal basis en verklappen hier en daar en klein intressant detail, maar 90-95% van alle informatie weet ik al.
    Heeft er iemand een écht goeie tutorial die precies aangeeft welke functies belangrijk zijn om je form te valideren?

    En wat ik ook graag wil weten, hoe kun je het beste controleren of een formulier ook écht door jou webserver is verstuurd? Met spoofing kunnen ze een hoop headers veranderen las ik ergens dus dat is niet echt wat ik zoek. Is een random value aanmaken in een hidden input en die controleren met een session een veilige en goede methode?

    Andere hints en tips zijn ook welkom.

    Ohja, ik weet dat er een dergelijk systeem al bestaat in PEAR maar dat is heel erg uitgebreid en ik heb er even naar gekeken maar ik snap ook niet echt goed hoe die alles hebben gedaan. Ik doe het liever zelf, dat ik er ondertussen nog van leer ook.

    Het belangrijkste is dus voor mij, hoe maak ik mijn formulieren veiliger?
    Muzic.nldinsdag 7 november 2006 @ 19:11
    Het belangrijkste voor jou is: hoe maak je de verwerking van de gegevens uit de formulieren veiliger.
    splendordinsdag 7 november 2006 @ 19:11
    Yup dat klopt beter, en is metteen een leuke samenvatting van dat hele verhaal.
    GVRuuddinsdag 7 november 2006 @ 20:31
    Het verhaal
    Er was eens een tabel met daarin 1,1 miljoen achternamen. Bijvoorbeeld 'Janssen' en 'van der Laan'. Nu wordt er gezocht met een query:

    1SELECT * FROM Achternamen WHERE Achternaam LIKE '%Jan%' OR Achternaam LIKE '%Laan%'


    Op deze manier worden dus de achternamen 'Janssen' en 'van der Laan' gevonden. Deze tabel doorzoeken met slechts 100 (oid) records er in gaat goed en snel, maar 1.1 miljoen is toch een ander verhaal.

    Doordat er een % voor het zoekwoord geplaatst wordt, kan MySQL de index op het Achternaam-veld niet gebruiken, omdat niet duidelijk is waarmee het te zoeken woord begint (% betekend 0 of meer willekeurige tekens). Dit eerste % teken weglaten

    1SELECT * FROM Achternamen WHERE Achternaam LIKE 'Jan%' OR Achternaam LIKE 'Laan%'


    zou 'Janssen' wel vinden maar 'van der Laan' niet, omdat de achternaam niet met 'Laan' begint.

    Oke oplossen met een full-text index zou kunnen, maar helaas kan/mag/whatever ik deze niet gebruiken.

    Andere manier dus
    Ik heb twee tabellen gemaakt:

    1
    2
    AchternaamDeel(ID,Deelnaam)
    AchternaamDeelLink(Achternaam_ID,AchternaamDeel_ID)


    Ik splits de achternamen op: 'Janssen' blijft 'Janssen' en 'van der Laan' wordt opgedeeld in 3 stukken: 'van' 'der' en 'Laan'.

    Deze deelnamen worden in de AchternaamDeel tabel opgeslagen, en in de AchternaamDeelLink tabel worden de deelnamen gelinkt met Achternaam_ID, die verwijst naar de Achternamen tabel waar de achternaam in oorspronkelijke vorm is opgeslagen.

    We zoeken hierin met:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    SELECT * FROM Achternamen WHERE ID IN 
    (
       SELECT
          AchternaamDeelLink.Achternaam_ID
       FROM
          AchternaamDeelLink
       LEFT JOIN
          AchternaamDeel 
       ON
          AchternaamDeelLink.AchternaamDeel_ID=AchternaamDeel .ID
       WHERE   
          AchternaamDeel.Deelnaam LIKE 'Jan%' OR
          AchternaamDeel.Deelnaam LIKE 'Laan%'
       GROUP BY
          AchternaamDeelLink.Achternaam_ID
       ORDER BY
          COUNT(AchternaamDeelLink.Achternaam_ID) DESC
       
    )

    (Met de score bereken ik welke het meest overeenkomt met de zoektermen)

    Damn! dat werkt tegenover de andere manier retesnel (13 sec tegenover > 1 minuut)! Maar toch niet snel genoeg... Ik wil bijvoorbeeld per pagina slechts 10 achternamen afbeelden, maar een LIMIT is niet in de subquery te plaatsen omdat MySQL (5) dan klaagt dat die functie niet geimplementeerd is. Deze limit moet dus bij de buitenste query, wat betekend dat voor de subquery wel alle resultaten worden opgehaald.

    Ik heb verder de benodigde indexen aangemaakt, maar zoals hieronder uit de EXPLAIN van MySQL blijkt, wordt er nogsteeds een trage filesort gebruikt.

    12   DEPENDENT SUBQUERY   AchternaamDeel   range   PRIMARY,AchternaamDeel   AchternaamDeel   32   N   55   Using where; Using temporary; Using filesort


    Iemand een idee hoe ik dit verder kan optimaliseren? (Of pak ik het verkeerd aan?)
    wipes66dinsdag 7 november 2006 @ 23:15
    quote:
    Op dinsdag 7 november 2006 19:05 schreef splendor het volgende:

    En wat ik ook graag wil weten, hoe kun je het beste controleren of een formulier ook écht door jou webserver is verstuurd? Met spoofing kunnen ze een hoop headers veranderen las ik ergens dus dat is niet echt wat ik zoek. Is een random value aanmaken in een hidden input en die controleren met een session een veilige en goede methode?
    Volgens mij bestaat er geen waterdicht methode om dat te controleren. Maar als je alles goed controleert is dat niet echt een issue.

    Overigens heb je sinds php 5.2 Input filtering. Misschien kan je inspiratie opdoen door daar eens een kijkje naar te nemen.
    Chandlerwoensdag 8 november 2006 @ 08:03
    quote:
    Op vrijdag 3 november 2006 23:36 schreef Chandler het volgende:
    Weet iemand een goed script dat excel sheets kan uitlezen in php, ik heb er wat gevonden maar ze konden allemaal (behalve hele dure) niet overweg met &#tekens...

    Weet iemand een goed script? google had veel maar helaas niet wat ik zocht (gratis , of ongv 10 euro oid)


    Nu ben ik zelf even opzoek gegaan en heb aardig informatie gevonden over excel com. En met wat voorbeelden heb ik het volgende gemaakt.
    [ code verwijderd ]

    echter als ik het bestand uitlees krijg ik nog steeds vage teksten! wat is de inhoud dan zou je je afvragen!?

    Rij A - Nederlandse tekst (arial)
    Rij C - Thaise tekens (Angsana New)
    Rij E - Engelse tekst (arial)

    Maar als ik het uitlees krijg ik het volgende te zien.

    [afbeelding]

    Oftewel ik lees iets niet goed uit, volgens mij moet ik ergens nog kunnen instellen welk karakterset ik wil gebruiken... maar dat kan ik dus niet vinden liefst zou ik gewoon alle teksten van een cel in &# codes willen hebben maar goed.

    Dit moet de uitkomst zijn ongv.

    [afbeelding]

    Iemand een idee
    SuperRembowoensdag 8 november 2006 @ 08:19
    quote:
    Op woensdag 8 november 2006 08:03 schreef Chandler het volgende:

    [..]

    Iemand een idee
    Daar zal iets fout gaan met encoding of de charset of iets dergelijks. Waarschijnlijk krijg je unicode binnen uit excel. Stuur je wel de goede headers? Gebruik je htmlspecialchars()?
    Swetseneggerwoensdag 8 november 2006 @ 08:47
    quote:
    Op dinsdag 7 november 2006 19:05 schreef splendor het volgende:

    En wat ik ook graag wil weten, hoe kun je het beste controleren of een formulier ook écht door jou webserver is verstuurd? Met spoofing kunnen ze een hoop headers veranderen las ik ergens dus dat is niet echt wat ik zoek. Is een random value aanmaken in een hidden input en die controleren met een session een veilige en goede methode?
    Dat is min of meer het idee achter een captcha.
    Ik genereer een unieke code. Die unieke code plaats ik in een sessie en op beeld als een image. De gebruiker moet vervolgens de code die op het beeld staat overtikken als hij het formulier invult. Alsna de submit ($_POST['captcha'] != $_SESSION['captcha']) { die('spammert');}
    mscholwoensdag 8 november 2006 @ 09:25
    me php boek is opgestuurd
    ben benieuwd
    Swetseneggerwoensdag 8 november 2006 @ 09:29
    quote:
    Op woensdag 8 november 2006 09:25 schreef mschol het volgende:
    me php boek is opgestuurd
    ben benieuwd
    Welk boek?
    Chandlerwoensdag 8 november 2006 @ 09:37
    quote:
    Op woensdag 8 november 2006 08:19 schreef SuperRembo het volgende:

    [..]

    Daar zal iets fout gaan met encoding of de charset of iets dergelijks. Waarschijnlijk krijg je unicode binnen uit excel. Stuur je wel de goede headers? Gebruik je htmlspecialchars()?
    Sr, htmlspecialchars werkt helaas niet... krijg dezelfde output. en goede headers stuur ik inderdaad niet. Heb namelijk geen idee welke ik moet sturen die zowel gewone karakters als thaise karakters ondersteunen...
    mscholwoensdag 8 november 2006 @ 09:39
    quote:
    Op woensdag 8 november 2006 09:29 schreef Swetsenegger het volgende:

    [..]

    Welk boek?
    deze
    ralfiewoensdag 8 november 2006 @ 09:53
    quote:
    Op dinsdag 7 november 2006 20:31 schreef GVRuud het volgende:
    heel verhaal
    Je kunt natuurlijk ook de manier gebruiken die veel officiele instanties gebruiken
    achternaam, tussenvoegsels

    als in

    Laan, van der
    Jansen

    Het wordt iets moeilijker om bijv 'van der Laan' te zoeken (dit zul je met php om moeten bouwen) maar verder denk ik dat het een goed alternatief is.
    Chandlerwoensdag 8 november 2006 @ 10:39
    Kleine vraag, ben nu bezig met een MYSQL class. Dit omdat bepaalde zaken gemakkelijker kunnen in php scripts. Echter wil ik deze class ook binnen andere functies in het globale script gebruiken. Nu moet ik echter voor ieder functie $mysql (de gestarte class) meegeven. Is er ook een andere manier zodat ik niet voor iedere lokale functie $mysql hoef mee te geven?

    Tnx..

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

        function
    connect()
        {
           
    // connect
        
    }

        function
    do_query($sql)
        {
            
    // doe de query...
        
    }
    }

    function
    testA()
    {
         
    $query = $mysql->run_query("QUERY");
    }

    function
    testB($mysql)
    {
         
    $query = $mysql->run_query("QUERY");
    }

    $mysql = new MySQL;

    $mysql->connect();

    testA();
    testB();
    ?>


    testA werkt niet, testB wel.... somebody?
    ralfiewoensdag 8 november 2006 @ 14:15
    Je kunt $GLOBALS['mysql'] gebruiken, of in elke functie 'global $mysql;' zetten, om de globale variabele aan te spreken.

    Andere tip:
    Je kunt mysql->connect() beter als constructor maken. Mocht je dat niet kennen, Constructors zijn functies die automatisch aangeroepen worden als een object gemaakt wordt
    1
    2
    3
    4
    5
    6
    <?php
    class MySQL {
    function
    __construct(){
    mysql_connect($bla,$blaa,$blaa) or die("couldnt get database");
    }
    ?>

    wanneer je nu $x=new MySQL; doet, zal __construct() aageroepen worden (bij <php 5 heeft de constructor de naam van het object zelf (in dit geval 'function MySQL()' ). Scheelt weer een regel.
    Chandlerwoensdag 8 november 2006 @ 14:53
    @ralfie.. ah, ik had er wel wat overgehoord maar had de klepel nog niet zien hangen Die construct is inderdaad erg handig! maar dacht dat $GLOBALS nogal vies was om mee te coden of mag dat tegenwoordig wel weer

    Maaruh nog iets over die construct! Indien je die gebruikt voor bv connecten, dan moet je toch alle gegevens continue in het script zelf hardcoden (username/pass/etc!?) En dat wil ik dus buiten deze class houden

    [ Bericht 24% gewijzigd door Chandler op 08-11-2006 15:15:42 ]
    ralfiewoensdag 8 november 2006 @ 21:51
    quote:
    Op woensdag 8 november 2006 14:53 schreef Chandler het volgende:
    @ralfie.. ah, ik had er wel wat overgehoord maar had de klepel nog niet zien hangen Die construct is inderdaad erg handig! maar dacht dat $GLOBALS nogal vies was om mee te coden of mag dat tegenwoordig wel weer

    Maaruh nog iets over die construct! Indien je die gebruikt voor bv connecten, dan moet je toch alle gegevens continue in het script zelf hardcoden (username/pass/etc!?) En dat wil ik dus buiten deze class houden
    $GLOBALS schijnt beter te zijn zelfs als een variabele global declareerd, omdat er dan opnieuw iets gedeclareert wordt en $GLOBALS al bestaat. Andere methoden om globalen aan te spreken ken ik niet.

    De mysql_connect() was ter voorbeeld, je kunt hem ook zonder argumenten aanroepen zoals jij deed in je code
    Lightwoensdag 8 november 2006 @ 22:01
    quote:
    Op woensdag 8 november 2006 14:15 schreef ralfie het volgende:

    Andere tip:
    Je kunt mysql->connect() beter als constructor maken. Mocht je dat niet kennen, Constructors zijn functies die automatisch aangeroepen worden als een object gemaakt wordt
    [ code verwijderd ]

    wanneer je nu $x=new MySQL; doet, zal __construct() aageroepen worden (bij <php 5 heeft de constructor de naam van het object zelf (in dit geval 'function MySQL()' ). Scheelt weer een regel.
    Niet helemaal mee eens. Als je een class mysql maakt dan zou die voor verschillende projecten bruikbaar moeten zijn. En dat beperk je weer als je in de class zelf usernames en passwords enzo gaat zetten. Maar een constructor is natuurlijk ook een functie en kan ook parameters accepteren. Als je daar dingen voor username en password bjizet kun je die doorgeven naar de connect functie en kun je wel je configuratie centraal houden.
    Chandlerdonderdag 9 november 2006 @ 00:42
    Correct, al heb ik amper ooit meerdere databases moeten gebruiken maar goed . Daarvoor is het inderdaad handiger om de username ed in een appart bestand/variabel(en) te houden
    RiderXXXdonderdag 9 november 2006 @ 05:51
    Hallo! Ik heb een vraagje.

    Het is simpel om random iets uit een database te poepen met RAND(), maar wat nou als ik dat uit 3 verschillende databases tabellen wil doen? Dus:

    - 'text' ophalen uit tabel 'bla'
    - 'titel' ophalen uit tabel 'bla2'
    - 'nogiets' ophalen uit tabel 'bla3'

    Met RAND() maak ik dat ik uit tabel 'bla' random 'text' pak en dat in $text zet. Maar ik wil dus dat hij dat random doet uit alle tabellen.

    Ik zat te denken om drie queries uit te voeren, dat in een array of string te gooien, en dan een ander scriptje gebruiken om daar weer van te kiezen. Maar dat leek mij heel omslachtig, ik denk tenminste dat dat handiger kan. Dit bevorderd ook niet eens de snelheid.

    Het idee is namelijk dat ik een radiostream op Internet heb, en dat ik daar iedere 20 seconden met een cronjobje de titel van wil veranderen (de ene keer een nieuwstitel, de andere keer het weerbericht, weer de andere keer wat er op dat moment speelt).

    Alvast bedankt voor tips/voorbeelden!
    Xtr3mEdonderdag 9 november 2006 @ 12:58
    Een klein vraagje:

    ik heb een dropdownbox:

    1
    2
    3
    4
    5
    6
    7
    8
    <select name="requiredsoortklant" id="requiredsoortklant" tabindex="25">
                <?php 
          $result = mysql_query("SELECT * FROM `soortklant` ORDER BY `Naam` ASC"); 
               while (list($Naam) = mysql_fetch_row($result)){ 
               echo ("<option value=$Naam>$Naam</option>n");
             }
          ?>
            </select>


    die gevuld wordt met waardes uit een tabel

    Vervolgens kan je er een kiezen en deze door POST toevoegen in een ander tabel. Probleem is echter als er een waarde in zit waar een spatie in zit zoals "Albert Hein" dan wordt alleen "Albert" opgeslagen in de tabel. Hoe krijg ik dit opgelost ? anyone ?
    JeRadonderdag 9 november 2006 @ 13:04
    quote:
    Op donderdag 9 november 2006 05:51 schreef RiderXXX het volgende:
    Het is simpel om random iets uit een database te poepen met RAND(), maar wat nou als ik dat uit 3 verschillende databases tabellen wil doen?
    Je kunt dat op dezelfde manier doen als je joinet:
    1
    2
    3
    4
    5
    6
    SELECT t1.text, t2.naam, t3.etc
    FROM tabel1 t1
    LEFT JOIN tabel2 t2 ON t1.t2id = t2.id
    LEFT JOIN tabel3 t3 ON t2.t3id = t3.id
    ORDER BY RAND()
    LIMIT 0, 3

    Als de tabellen niet aan elkaar gerelateerd zijn kun je met subqueries werken.

    Zoals ik in een aantal posts geleden opmerkte, MySQL werkt niet optimaal met ORDER BY RAND(). Als je heel veel records hebt kunnen de queries langzamer gaan werken, heb je er niet zo heel veel dan maakt het niets uit.
    JeRadonderdag 9 november 2006 @ 13:06
    quote:
    Op donderdag 9 november 2006 12:58 schreef Xtr3mE het volgende:
    Een klein vraagje:

    ik heb een dropdownbox:
    [ code verwijderd ]

    die gevuld wordt met waardes uit een tabel

    Vervolgens kan je er een kiezen en deze door POST toevoegen in een ander tabel. Probleem is echter als er een waarde in zit waar een spatie in zit zoals "Albert Hein" dan wordt alleen "Albert" opgeslagen in de tabel. Hoe krijg ik dit opgelost ? anyone ?
    In (X)HTML moet je altijd de waarden van attributen omgeven door aanhalingstekens. Dus like that:
    1           echo ("<option value=\"" . htmlentities($Naam) . "\">" . htmlentities($Naam) . "</option>n");

    De htmlentities() is er om dingen als aanhalings naar & quot; om te zetten e.d.
    Xtr3mEdonderdag 9 november 2006 @ 14:05
    thx voor je reply volgens mij heb je de code nog aangepast want eerst kreeg ik een foutmelding
    maar nu wel oke
    splendordonderdag 9 november 2006 @ 14:57
    quote:
    Op woensdag 8 november 2006 08:47 schreef Swetsenegger het volgende:

    [..]

    Dat is min of meer het idee achter een captcha.
    Ik genereer een unieke code. Die unieke code plaats ik in een sessie en op beeld als een image. De gebruiker moet vervolgens de code die op het beeld staat overtikken als hij het formulier invult. Alsna de submit ($_POST['captcha'] != $_SESSION['captcha']) { die('spammert');}
    Zo'n image verification script heb ik al eens gemaakt, dat is hetzelfde toch?
    Maar om dat nu in elk formulier in te bouwen zie ik niet zitten. Ik ben bijvoorbeeld ook met een spelletje bezig en om in te loggen wil ik het gaan gebruiken maar zeker niet in het spel zelf.

    wipes66 ook bedankt, goeie link is dat. Al ben ik wel bezig het met classes (OO) op te lossen, lijkt me toch net ff fijner werken, zeker met foutmeldingen.

    Mocht er nog iemand anders ideeën hebben dan post gerust, ik blijf het topic volgen.
    Desdinovadonderdag 9 november 2006 @ 15:19
    ik wil een array maken in een array op deze manier:

    $array["dit"]["dat"] = "blaat";

    maar dat werkt niet?

    hoe moet ik het schrijven?


    [edit]
    even dollartekentje dr voor gezet
    Swetseneggerdonderdag 9 november 2006 @ 15:22
    quote:
    Op donderdag 9 november 2006 15:19 schreef Desdinova het volgende:
    ik wil een array maken in een array op deze manier:

    array["dit"]["dat"] = "blaat";

    maar dat werkt niet?

    hoe moet ik het schrijven?
    Zelf doe ik zoiets met een sessie:

    $_SESSION['giftwrap'][$value]=$_POST[$value]

    Dat werkt prima
    Desdinovadonderdag 9 november 2006 @ 15:24
    kan dit niet in een gewone variabele dan?
    Swetseneggerdonderdag 9 november 2006 @ 15:26
    quote:
    Op donderdag 9 november 2006 15:24 schreef Desdinova het volgende:
    kan dit niet in een gewone variabele dan?
    Lijkt me wel
    heb je hier wat aan: http://onaje.com/php/article.php4/44
    Desdinovadonderdag 9 november 2006 @ 15:28
    misschien kijk ik ergens overheen..

    ik heb

    1   $prices[$row->Ext]['year'] = $row->year;

    en krijg parse error
    1Parse error: syntax error, unexpected T_LNUMBER, expecting T_STRING or T_VARIABLE or '{' or '$' in /usr/home/rmmedia/domains/roosmultimedia.nl/public_html/Site/scriptincludes/general/constants.php on line 26


    line 26 is de regel die ik gepost heb. $row is een object gemaakt met mysql_fetch_object()..


    Shite. heb hem al.. Objectnaam begon met een getal (ie. $row->1year)..
    Swetseneggerdonderdag 9 november 2006 @ 15:33
    quote:
    Op donderdag 9 november 2006 15:28 schreef Desdinova het volgende:
    misschien kijk ik ergens overheen..

    ik heb
    [ code verwijderd ]

    en krijg parse error
    [ code verwijderd ]

    line 26 is de regel die ik gepost heb. $row is een object gemaakt met mysql_fetch_object()..


    Shite. heb hem al.. Objectnaam begon met een getal (ie. $row->1year)..
    LOL. Nou succes verder
    RiderXXXvrijdag 10 november 2006 @ 12:31
    quote:
    Op donderdag 9 november 2006 13:04 schreef JeRa het volgende:

    [..]

    Je kunt dat op dezelfde manier doen als je joinet:
    [ code verwijderd ]

    Als de tabellen niet aan elkaar gerelateerd zijn kun je met subqueries werken.

    Zoals ik in een aantal posts geleden opmerkte, MySQL werkt niet optimaal met ORDER BY RAND(). Als je heel veel records hebt kunnen de queries langzamer gaan werken, heb je er niet zo heel veel dan maakt het niets uit.
    Kun je me iets meer uitleg geven, hier word ik niet zo wijs uit Het zijn trouwens vier tabellen:

    streamrds: text
    nieuws: datum titel
    frequenties: stad frequentie
    top100_shout: naam text

    Dus van tabel 'streamrds' is het 'text' en van top100_shout 'naam' EN 'text'. Wat moet ik er dan neergooien?
    JeRavrijdag 10 november 2006 @ 12:35
    quote:
    Op vrijdag 10 november 2006 12:31 schreef RiderXXX het volgende:

    [..]

    Kun je me iets meer uitleg geven, hier word ik niet zo wijs uit
    Misschien kun jij even uitleggen hoe je drie tabellen (toch?) aan elkaar gerelateerd zijn, en hoe je precies de random records daaruit wilt halen
    Chandlervrijdag 10 november 2006 @ 12:36
    quote:
    Op woensdag 8 november 2006 09:37 schreef Chandler het volgende:

    [..]

    Sr, htmlspecialchars werkt helaas niet... krijg dezelfde output. en goede headers stuur ik inderdaad niet. Heb namelijk geen idee welke ik moet sturen die zowel gewone karakters als thaise karakters ondersteunen...
    Ik ben er bijna uit, het excel probleem dan...

    Nu heb ik een ander probleem.

    Voor mijn webshop ben ik bezig met een class, deze is natuurlijk bij iedere aanroep (include) weer leeg, echter wil ik proberen met sessies de inhoud te saven... echter gaat er iets fout..

    Om de sessie aantemaken en de produkten te saven
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    <?php
        
    function saveSession()
        {
            
    $_SESSION['shop'] = array();
            
            
    $_SESSION['shop']['stuks']           = $this->stuks;
            
    $_SESSION['shop']['produkten']       = addslashes(serialize($this->produkten));
            
    $_SESSION['shop']['produkten_stuks'] = $this->produkten_stuks;
            
    $_SESSION['shop']['totaalbedrag']    = $this->totaalbedrag;

            echo
    'save';
                
    print_r($_SESSION['shop']);

        }
    ?>


    en om het weer in te laden gebruik ik dit

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    <?php
        
    function shop()
        {
            if (isSet(
    $_SESSION['shop']))
            {
                
    $this->stuks           = $_SESSION['shop']['stuks'];
                
    $this->produkten       = stripslashes(unserialize($_SESSION['shop']['produkten']));
                
    $this->produkten_stuks = $_SESSION['shop']['produkten_stuks'];
                
    $this->totaalbedrag    = $_SESSION['shop']['totaalbedrag'];
            }
            else
            {
                
    $this->stuks           = 0;
                
    $this->produkten       = array();
                
    $this->produkten_stuks = 0;
                
    $this->totaalbedrag    = 0;
            }
        }
    ?>


    Dit is de sessie en class inhoud bij bestellen van een produkt
    quote:
    $_SESSIE
    Array
    (
    [stuks] => 1
    [produkten] => a:1:{i:2;a:5:{s:5:"titel";s:15:"Produkt titel 2";s:10:"stuk_prijs";s:1:"0";s:12:"totaal_prijs";s:1:"0";s:5:"stuks";i:1;s:7:"details";s:15:"Produkt tekst 2";}}
    [produkten_stuks] => 1
    [totaalbedrag] => 0
    )[/code]

    [quote]CLASS data
    object(shop)(4)
    {
    ["stuks"]=> int(1)
    ["produkten"]=> array(1)
    {
    [2]=> array(5)
    {
    ["titel"]=> string(15) "Produkt titel 2"
    ["stuk_prijs"]=> string(1) "0"
    ["totaal_prijs"]=> string(1) "0"
    ["stuks"]=> int(1)
    ["details"]=> string(15) "Produkt tekst 2"
    }
    }
    ["produkten_stuks"]=> int(1)
    ["totaalbedrag"]=> int(0)
    }
    Echter krijg ik steeds een probleem met het laden ervan... dan zegt het dat het een probleem heeft met unserialize van $_SESSION['shop']['produkten']..

    PS addslashes en stripslashes heb ik er nu in zitten en geeft ie een ander probleem..

    zonder addslashes/stripslashes
    quote:
    Notice: argument passed to unserialize() is not an string in d:wwwbedrijfwww.heartbeadsdesign.nlincludeshop.class.php on line 20
    Lijn 20 is de unserialize regel in functie shop() waar de sessie tot class data wordt omgezet.

    met addslashes/stripslashes
    quote:
    Warning: Invalid argument supplied for foreach() in d:wwwbedrijfwww.heartbeadsdesign.nlincludeshop.class.php on line 62
    saveArray ( [stuks] => [produkten] => N; [produkten_stuks] => [totaalbedrag] => ) array(4) { ["stuks"]=> NULL ["produkten"]=> string(2) "N;" ["produkten_stuks"]=> NULL ["totaalbedrag"]=> NULL }
    oftewel blijkt dat de array $this->produkten helemaal vern**kt is :X

    Wie heeft een idee??
    RiderXXXvrijdag 10 november 2006 @ 12:37
    quote:
    Op vrijdag 10 november 2006 12:35 schreef JeRa het volgende:

    [..]

    Misschien kun jij even uitleggen hoe je drie tabellen (toch?) aan elkaar gerelateerd zijn, en hoe je precies de random records daaruit wilt halen
    Hmja, ik heb net die post geupdate met de tabellen en wat ik er precies uit wil halen. Ik wil dat dus gewoon geheel random doen, zoals ik met RAND() LIMIT 1 zou kunnen doen, en dan die uitkomst in $text gooien. Dan kan ik $text gebruiken om de titel in de server te veranderen..

    Maar ik wil dat dus (in dit geval) met 4 tabelletjes doen, en dan ook vershillende rijnamen.
    JeRavrijdag 10 november 2006 @ 12:39
    quote:
    Op vrijdag 10 november 2006 12:31 schreef RiderXXX het volgende:

    [..]

    Het zijn trouwens vier tabellen:

    streamrds: text
    nieuws: datum titel
    frequenties: stad frequentie
    top100_shout: naam text

    Dus van tabel 'streamrds' is het 'text' en van top100_shout 'naam' EN 'text'. Wat moet ik er dan neergooien?
    En als ik je goed begrijp wil je dus uit één willekeurige tabel van de vier die je daar beschrijft een random row halen?
    RiderXXXvrijdag 10 november 2006 @ 12:40
    Klopt asj een boessie! (klopt als een bus)
    JeRavrijdag 10 november 2006 @ 12:45
    quote:
    Op vrijdag 10 november 2006 12:40 schreef RiderXXX het volgende:
    Klopt asj een boessie! (klopt als een bus) :P
    Dan bepaal je éérst wat je random tabel is in PHP:
    1
    2
    3
    4
    5
    <?php
    $tabellen
    = array('streams', 'nieuws', 'etc');
    $tabel = $tabellen[array_rand($tabellen)];
    unset(
    $tabellen);
    ?>

    Vervolgens doe je een query:
    1
    2
    3
    4
    5
    <?php
    $query
    = 'SELECT * FROM `' . $tabel . '` ORDER BY RAND() LIMIT 1';
    $result = mysql_query($query);
    $data = mysql_fetch_assoc($result);
    ?>

    En afhankelijk van welke $tabel je hebt output je de juiste kolommen :)
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <?php
    switch ($tabel)
    {
        case
    'streams':
            echo
    $data['text']; //ofzo
            
    break;
        case
    'nieuws':
            
    // etc
    }
    ?>
    RiderXXXvrijdag 10 november 2006 @ 12:48
    Aah relaxed!!! Dit snap ik tenminste.. bedankt

    Edit: wat als ik nu alleen in de tabel 'nieuws' wil sorteren op 'datum' en daar ook dan maar random uit de laatste 10 berichten eentje wil kiezen?

    [ Bericht 30% gewijzigd door RiderXXX op 10-11-2006 13:14:55 ]
    Chandlervrijdag 10 november 2006 @ 13:34
    quote:
    Op vrijdag 10 november 2006 12:36 schreef Chandler het volgende:

    [..]

    Ik ben er bijna uit, het excel probleem dan...

    Nu heb ik een ander probleem.

    Voor mijn webshop ben ik bezig met een class, deze is natuurlijk bij iedere aanroep (include) weer leeg, echter wil ik proberen met sessies de inhoud te saven... echter gaat er iets fout..

    Om de sessie aantemaken en de produkten te saven
    [ code verwijderd ]

    en om het weer in te laden gebruik ik dit
    [ code verwijderd ]

    Dit is de sessie en class inhoud bij bestellen van een produkt
    [..]

    Echter krijg ik steeds een probleem met het laden ervan... dan zegt het dat het een probleem heeft met unserialize van $_SESSION['shop']['produkten']..

    PS addslashes en stripslashes heb ik er nu in zitten en geeft ie een ander probleem..

    zonder addslashes/stripslashes
    [..]

    Lijn 20 is de unserialize regel in functie shop() waar de sessie tot class data wordt omgezet.

    met addslashes/stripslashes
    [..]

    oftewel blijkt dat de array $this->produkten helemaal vern**kt is :X

    Wie heeft een idee??
    Ik heb het probleem anders opgelost... door de data die geserialized is te decoden met base64 en daar krijg ik dus weer geen errors van.

    1
    2
    3
    <?php
        $this
    ->produkten       = unserialize(base64_decode($_SESSION['shopdata']['produkten']));
    ?>

    JeRavrijdag 10 november 2006 @ 13:39
    quote:
    Op vrijdag 10 november 2006 12:48 schreef RiderXXX het volgende:
    Aah relaxed!!! Dit snap ik tenminste.. bedankt :D :*

    Edit: wat als ik nu alleen in de tabel 'nieuws' wil sorteren op 'datum' en daar ook dan maar random uit de laatste 10 berichten eentje wil kiezen?
    Hoe je dat in PHP doet moet je zelf gaan bepalen, maar de SQL ziet er ongeveer zo uit (subquery):
    1
    2
    3
    4
    5
    6
    7
    8
    SELECT * FROM (
        SELECT *
        FROM nieuws
        ORDER BY datum DESC
        LIMIT 0, 10
    ) t1
    ORDER BY RAND()
    LIMIT 1
    GVRuudvrijdag 10 november 2006 @ 13:44
    quote:
    Op woensdag 8 november 2006 09:53 schreef ralfie het volgende:

    [..]

    Je kunt natuurlijk ook de manier gebruiken die veel officiele instanties gebruiken
    achternaam, tussenvoegsels

    als in

    Laan, van der
    Jansen

    Het wordt iets moeilijker om bijv 'van der Laan' te zoeken (dit zul je met php om moeten bouwen) maar verder denk ik dat het een goed alternatief is.
    Ja dat zou inderdaad kunnen, maar zoeken naar 'der Laan' zou op die manier niet werken, terwijl dat wel de bedoeling is.
    JeRavrijdag 10 november 2006 @ 13:47
    quote:
    Op vrijdag 10 november 2006 13:44 schreef GVRuud het volgende:

    [..]

    Ja dat zou inderdaad kunnen, maar zoeken naar 'der Laan' zou op die manier niet werken, terwijl dat wel de bedoeling is.
    Je zou bepaalde woorden kunnen laten herkennen als tussenvoegsels, zodat je uiteindelijk toch op 'Laan' uitkomt?
    RiderXXXvrijdag 10 november 2006 @ 13:59
    Nou, probleem één is klaar. Nu weer het volgende (grote) probleem:

    Ik wil een database opbouwen met daarin 'album releases'. Ik wil dat op de volgende manier kunnen showen op de website:


    [maand] [jaar]
    [dag] [artiest] [albumtitel] [label]
    [dag] [artiest] [albumtitel] [label]
    [dag] [artiest] [albumtitel] [label]
    [dag] [artiest] [albumtitel] [label]
    [dag] [artiest] [albumtitel] [label]

    [maand] [jaar]
    [dag] [artiest] [albumtitel] [label]
    [dag] [artiest] [albumtitel] [label]
    [dag] [artiest] [albumtitel] [label]
    [dag] [artiest] [albumtitel] [label]


    etc.. en de nieuwste maand boven. Maar hoe kan ik dat het beste doen? Het mooiste zou zijn om gewoon één tabelletje te hebben met 'albumreleases' en dat ik daar alles invul, maar wat is het beste qua opbouw in php en sql?
    Swetseneggervrijdag 10 november 2006 @ 14:57
    quote:
    Op vrijdag 10 november 2006 13:59 schreef RiderXXX het volgende:
    Nou, probleem één is klaar. Nu weer het volgende (grote) probleem:

    Ik wil een database opbouwen met daarin 'album releases'. Ik wil dat op de volgende manier kunnen showen op de website:


    [maand] [jaar]
    [dag] [artiest] [albumtitel] [label]
    [dag] [artiest] [albumtitel] [label]
    [dag] [artiest] [albumtitel] [label]
    [dag] [artiest] [albumtitel] [label]
    [dag] [artiest] [albumtitel] [label]

    [maand] [jaar]
    [dag] [artiest] [albumtitel] [label]
    [dag] [artiest] [albumtitel] [label]
    [dag] [artiest] [albumtitel] [label]
    [dag] [artiest] [albumtitel] [label]


    etc.. en de nieuwste maand boven. Maar hoe kan ik dat het beste doen? Het mooiste zou zijn om gewoon één tabelletje te hebben met 'albumreleases' en dat ik daar alles invul, maar wat is het beste qua opbouw in php en sql?
    Lees eens wat over database normalisatie.
    Ik zie hier sowieso al een tabel of 3 (tabel artiesten, tabel albums, tabel labels). Plus een koppeltabel waarbij je een artiest en label aan een album knoopt)

    -edit- dat zal je op de langere termijn werk besparen (je hoeft elke artiest of label maar 1 keer in te voeren en kan je vervolgens meerdere malen aan een album titel koppelen. Zo hoef je bv maar 1 keer Metallica in te voeren voor Load, Reload en Garage inc.), je database kleiner houden omdat er geen dubbele invoer in staat EN makkelijker uitbreidbaar in de toekomst als je meer informatie wil bij je album releases.

    [ Bericht 7% gewijzigd door Swetsenegger op 10-11-2006 15:04:46 (uitleg) ]
    JeRavrijdag 10 november 2006 @ 15:31
    Let overigens wel op dat alhoewel een genormaliseerde database een erg nette manier van datarepresentatie is, bepaalde database management systems zoals MySQL vaak veel sneller werken met redundante data. Even snel sorteren op het aantal nummers per artiest is er bijvoorbeeld niet bij, behalve als je dat in een apart veld in de tabel 'artiesten' opslaat met een index erop.

    De oplossing voor dat soort problemen ligt bij materialized views, welke MySQL nog niet ondersteunt. Verder leken me cross-table indices ook een goed idee (indexen die je kunt definiëren over de hele database over meerdere tabellen ipv per tabel), maar toen ik dat op GoT voorstelde als nieuwe feature werden ze allemaal kwaad en vroegen me om MySQL-configuraties omdat ze dachten dat ik een performanceprobleem had
    RiderXXXvrijdag 10 november 2006 @ 15:35
    ja maar GoT zijn nubs

    * RiderXXX rent naar GoT.
    ikJurvrijdag 10 november 2006 @ 18:41
    Ik heb een wordpress blog en ik blijf errors krijgen, volgens mij server logs gebeurd het hier.


    [Fri Nov 10 10:02:55 2006] [error] [client <MIJNIP> mod_security: Access denied with code 500. Pattern match "(ht|f)tps?:/" at POST_PAYLOAD [id "300018"] [rev "3"] [msg "Generic PHP code injection protection via ARGS"] [severity "CRITICAL"] [hostname "sk8indtc.trimsalonpluto.nl"] [uri "/wp-admin/link-manager.php?link_id=22&action=linkedit"] [unique_id "0VhGQ38AAAEAAGavwgkAAAAB"]


    hier word ik alleen niet veel wijzer uit. er staat dus acces denied with code 500 dat krijg ik als ik een link edit in wordpress. ("/wp-admin/link-manager.php). Hoe kan ik dit oplossen?
    ik zie daar ook staan Generic Code injection. Is het misschien dat een bepaalde beveiliging van mijn host dit tegengaat omdat ie denkt dat ik een hacker ben oid?
    ikJurvrijdag 10 november 2006 @ 18:47
    ik heb ff "Generic PHP code injection protection via ARGS" in google gegooid vond dit:
    http://www.etomite.org/forums/lofiversion/index.php?t6231.html

    die gast had hetzelfde lag dus aan de host die apache heeft dichtgetimmerd
    wipes66zaterdag 11 november 2006 @ 16:42
    quote:
    Op woensdag 8 november 2006 14:15 schreef ralfie het volgende:
    Je kunt $GLOBALS['mysql'] gebruiken, of in elke functie 'global $mysql;' zetten, om de globale variabele aan te spreken.

    Andere tip:
    Je kunt mysql->connect() beter als constructor maken. Mocht je dat niet kennen, Constructors zijn functies die automatisch aangeroepen worden als een object gemaakt wordt
    [ code verwijderd ]

    wanneer je nu $x=new MySQL; doet, zal __construct() aageroepen worden (bij <php 5 heeft de constructor de naam van het object zelf (in dit geval 'function MySQL()' ). Scheelt weer een regel.
    bestaat er niet ook een manier om $db om te toveren naar een superglobal?
    papernotezondag 12 november 2006 @ 18:10
    Ik heb wat vraagjes over sessies in PHP. Ten eerste, de veiligheid.

    Ik gebruik de volgende code om wat informatie uit een gePOST formulier op te slaan in de sessie:

    1
    2
    3
    4
    5
    6
    <?php
    $_SESSION
    ["naam"]     = $_POST["naam"];
    $_SESSION["adres"]    = $_POST["adres"];
    $_SESSION["postcode"] = $_POST["postcode"];
    $_SESSION["plaats"]   = $_POST["plaats"];
    ?>


    Is dit veilig? De POST data wordt dus direct in de sessie opgeslagen. Verder wordt die sessie-data weer op het scherm van de gebruiker getoont. De sessies worden opgeslagen in een database via een eigen sessie handler (overgenomen uit PHP in a Nutshell). Verder wordt de data aan het einde van de sessie definitief weggeschreven in een andere tabel in de database.

    Ik weet dat er dingen zijn als addslashes() enzo, maar zijn die ook nodig als de magic quotes aan staan?

    En verder is er ook een array die wordt opgeslagen in $_SESSION["data"]. Die array wordt dan aan het einde verspreid over meerdere rijen in een andere tabel opgeslagen. Moet ik dan nog handmatig dingen doen met serialize en unserialize?

    Verder gebeurd het soms (heel vreemd overigens) dat de data niet correct in de sessie wordt opgenomen. Voorbeeld: ik heb op 1 pagina staan:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <?php
    session_start
    ();

    //wat code

    if( /*is er gepost? */ )
    {
      
    $_SESSION["naam"] = $_POST["naam"];
    }

    //nog meer code

    echo($_SESSION["naam"]);
    ?>


    Als ik dan de naam POST naar die pagina, dan gebeurt het soms dat de naam (of andere velden) niet correct in de sessie worden bewaard. Het wordt wél op het scherm getoond, maar na een refresh (en dan niet herposten) is de data verdwenen.

    Hebben jullie tips om dit te verbeteren, veiliger te maken en eventueel de "vergeet"-bug te verhelpen?
    Chandlerzondag 12 november 2006 @ 18:14
    waarom save je $_POST gegevens niet zo

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <?php
    foreach ($_POST as $key => $value)
    {
        
    // er van uitgaand dat er geen arrays in je posts staan
        
    $_SESSION['postdata'][$key] = $value;
    }

    en wil je dit weer echooon

    foreach ($_SESSION['postdata'] as $key => $value)
    {
        echo
    $key . " = " . $value . "<br />";
    }
    ?>


    zo ongv doe ik het ook met mijn parser... is altijd handig als je formulieren moet checken!
    papernotezondag 12 november 2006 @ 18:17
    quote:
    Op zondag 12 november 2006 18:14 schreef Chandler het volgende:
    waarom save je $_POST gegevens niet zo
    [ code verwijderd ]

    zo ongv doe ik het ook met mijn parser... is altijd handig als je formulieren moet checken!
    Omdat niet alle data die wordt gepost ook in de sessie bewaard moet worden.

    Dan kan ik die natuurlijk middels een if() er weer uit filteren, maar ik vond het zo makkelijker.
    Chandlerzondag 12 november 2006 @ 18:19
    Correct, maar stel je gebruikt een template... dan kun je alle namen weer laten hergebruiken in de velden van je template... zoals ik zelf nu doe bij invul velden van formulieren waarbij ik de data check... als het fout is wil ik graag ook weer de teksten terug in de velden die de gebruiker heeft ingevuld...
    papernotezondag 12 november 2006 @ 18:25
    Dat doe ik zo:

    1<input id="fnaam" name="naam" type="text" tabindex="1" value="<?=$_SESSION["naam"]?>" />


    Als iemand dus het formulier opnieuw wil/moet invullen, dan staat de reeds ingevulde data er al weer.

    En het formulier laten genereren aan de hand van de data die in een $_SESSION["postdata"] zit gaat niet zo eenvoudig denk ik, omdat het formulier bestaat uit text, radio, select en hidden dingen . Dan zou die informatie ook weer apart moeten worden opgeslagen.

    Ik heb daarom niet voor een template gekozen, maar het formulier dus zoals hierboven gewoon hardcoded opgeslagen. M'n site heeft overigens ook niet zoveel formulieren.

    Overigens is het wel een goede tip die ik ga onthouden.
    Skorpijazondag 12 november 2006 @ 21:24
    Weet iemand het volgende..

    Als ik fopen gebruik op het volgende:

    1fopen('http://htmllive.com/button_maker/generate.php?font=arial&font_size=10&align_text=center&text_color=FFFFFF&text=Click Me&style=1','r')


    Dan kan hij deze link niet openen...

    Ik gebruik het volgens deze code:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    $url_file = fopen($web_image,'r');

    $newimage = "c:/temp/test.gif";
    if($url_file){
       $newfile = fopen($newimage,'wb');
       while (!feof($url_file)) {
          $chunk = fread($url_file,1024);
          fwrite($newfile,$chunk);
       }
       fclose($newfile);
    }
    else{
       $error['no_file'] = "no file found on URL $web_image";
    }
    SuperRembozondag 12 november 2006 @ 23:12
    Een url openen met fopen() kan alleen als allow-url-fopen aan staat. Als het je eigen server is kan je dat aan zetten, anders gebruik je een socket.
    CraZaayzondag 12 november 2006 @ 23:26
    quote:
    Op zondag 12 november 2006 18:10 schreef papernote het volgende:

    Is dit veilig? De POST data wordt dus direct in de sessie opgeslagen. Verder wordt die sessie-data weer op het scherm van de gebruiker getoont.
    Dit alleen is al niet veilig en biedt ruimte voor bijvoorbeeld XSS (Cross Site Scripting), omdat je untrusted data zonder controle teruggeeft richting de browser.
    Chandlermaandag 13 november 2006 @ 08:04
    quote:
    Op zondag 12 november 2006 23:26 schreef CraZaay het volgende:

    [..]

    Dit alleen is al niet veilig en biedt ruimte voor bijvoorbeeld XSS (Cross Site Scripting), omdat je untrusted data zonder controle teruggeeft richting de browser.
    Je hebt gelijk, je zo zou ie zo je data die je van $_POST of $_GET moeten checken!
    Desdinovamaandag 13 november 2006 @ 12:17
    $query = "UPDATE Cart SET Extrainfo = Extrainfo + 'rn bla' WHERE Domain = '".$key."' AND SessionID = '".session_id()."'";

    ik had eigenlijk gehoopt dat hij met deze query de informatie achter de huidige bestaande waarde zou zetten.. maar de waarde wordt geupdate naar 0, wat mij het idee geeft dat hij probeert op te tellen. Is er een manier om dit toch voor elkaar te boxen?
    SuperRembomaandag 13 november 2006 @ 12:20
    Dat kan met de concat functie.
    Desdinovamaandag 13 november 2006 @ 13:04
    hah!

    werkt

    danku.

    ( $query = "UPDATE Cart SET Extrainfo = concat(Extrainfo, 'rn bla') WHERE Domain = '".$key."' AND SessionID = '".session_id()."'"; voor geinteresseerden)
    tankertuigmaandag 13 november 2006 @ 16:52
    Ik heb deze query:

    1
    2
    3
    4
    5
    6
    7
    $sql =    mysql_query("
                SELECT *
                FROM dkm_disco_tracks
                INNER JOIN dkm_disco_albums
                ON dkm_disco_tracks.album = dkm_disco_albums.id
                ORDER BY dkm_disco_tracks.album, dkm_disco_tracks.track
    ") or die (mysql_error());


    Ik wil de gegevens die uit deze query komen in een array kwijt die er zo uit ziet:

    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
    <?php
    $array
    =     Array // Aray die alle albums bevat
                
    (

                    
    'Blackout' => Array // Array die alle songs van een album bevat
                    
    (
            
                        
    'Walk Away',
                        
    'Worker Song',
                        
    'The Outcast',
                        
    'Black Velvet Band',
                        
    'Gonna Be A Blackout',
                        
    'World Full of Hate'
            
                    
    ),
            
                    
    'Sing Loud, Sing Proud' => Array // Array die alle songs van een album bevat
                    
    (
            
                        
    'For Boston',
                        
    'The Legend of Finn MacCumhail',
                        
    'Which Side Are You On?',
                        
    'The Rocky Road To Dublin',
                        
    'Heroes from Our Past',
        
                    )

                );
    ?>


    mn database structuur is zo:

    DKM_DISCO_ALBUMS(id, titel)
    DKM_DISCO_TRACKS(id, track_titel, track_nr, album)

    in DKM_DISCO_TRACKS is album het id van album in DKM_DISCO_ALBUMS

    Ben al halve dag aan het kloten, maar wil niet lukken.
    SuperRembomaandag 13 november 2006 @ 17:25
    Zo te zien heb je nog niets gebruikt van de tips die hier gegeven zijn.
    tankertuigmaandag 13 november 2006 @ 17:32
    jawel... maar iemand anders heeft met met paar dingen opweg geholpen. en dat zag er iets anders uit.

    met de bovenstaande query en deze php:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    <?php
    $prevAlbum
    = -1;

    while(
    $row = mysql_fetch_array($query))
    {
       if(
    $prevAlbum != $row['album'])
       {
          
    // Album titel weergeven
          
    if($prevAlbum != -1) echo "</ul>";
          echo
    "<li><a href="#">$row[titel]</a></li><ul>";
          
    $prevAlbum = $row['album'];
       }

       echo
    "<li>$row[track_titel]</li>";
    }
    ?>


    Krijg ik de volgende uivoer

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

      <li><a href="#">ALBUM TITLE 1</a>

        <ul>
          <li>TRACK TITEL 1</li>
          <li>TRACk TITEL 2</li>
          <li>TRACk TITEL 3</li>
          <li>...</li>
        </ul>

      </li>


      <li><a href="#">ALBUM TITLE 2</a>

        <ul>
          <li>TRACK TITEL 1</li>
          <li>TRACk TITEL 2</li>
          <li>TRACk TITEL 3</li>
          <li>...</li>
        </ul>

      </li>

    </ul> 


    Maar nu wil ik het niet in een lijst, maar in een array die er uitziet als hier boven. en dat wil niet lukken
    SuperRembomaandag 13 november 2006 @ 21:35
    Oja, als je dubbele kolomnamen in je query hebt, dan rename je gewoon de kolommen in je tabellen :{

    Het principe is hetzelfde als het maken van de lijst. Als je snapt hoe dat werkt, dan kan je op dezelfde manier die geneste array opbouwen.

    1
    2
    3
    4
    5
    6
    7
    8
    9
    initialiseer album array
    while (loop over rows) 
    {
       if (album id gewijzigd) 
       {
          nieuw item aan album array toevoegen
       }
       track titel toevoegen
    }
    tankertuigmaandag 13 november 2006 @ 21:47
    Dat probleem had ik idd al gevonden.

    Het titel in DKM_DISCO_TRACKS hernoemd naar track_titel
    heb je iets mee info over hoe je array's opbouwt. heb hier nooit echt mee gewerkt. dus zou begod niet weten wat de mogelijkheden zijn
    SuperRembomaandag 13 november 2006 @ 23:22
    M'n opmerking over het hernoemen van kolomnamen was ironisch bedoeld. Maar dat is blijkbaar niet over gekomen. Een handigere oplossing had ik eerder al gegeven: een alias gebruiken.
    1SELECT a.titel AS titel1, b.titel AS titel2 FROM a INNER JOIN b ON a.id = b.id


    Hoe je array's opbouwt kan je lezen in tutorials, bijvoorbeeld bij w3schools.com.
    Desdinovadinsdag 14 november 2006 @ 09:16
    ik weet niet of je er al uit bent, maar misschien is dit wat

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    <?php
    while($row = mysql_fetch_array($query))
    {

      
    $vars[$row['album']][] = $row[track_titel];

    }

    foreach (
    $vars as $key => $value){
      echo
    $key."<ul>";
      if (
    is_array($value)){
        foreach (
    $value as $value2){

          echo
    "<li>".$value2."</li>";

        }
      }
      echo
    "</ul>";
    }
    ?>


    niet getest overigens. ook niet gechecked op parse errors
    USAFdinsdag 14 november 2006 @ 17:06
    Vraagje

    Ik ben bezig met een systeem die per dag een aantal vragen weergeeft uit een database. In een textfield/textarea kunnen mensen deze vragen beantwoorden.

    Nu wil ik dat de verschillende antwoorden (die in een andere tabel van de db staan) worden vergeleken met het ingevulde antwoord. Want als het goed is krijgt deze user een x-aantal punten.

    Ik zat al te denken om de antwoorden in een array te zetten, maar hoe ik deze vervolgens vergelijk met het ingevulde antwoord....

    Iemand een idee?
    Siegfrieddinsdag 14 november 2006 @ 17:13
    if ($ingevoerde_waard == $waarde_uit_db)
    {
    user extra punten..
    }
    else
    {
    user krijgt niets..
    }
    Swetseneggerdinsdag 14 november 2006 @ 17:24
    quote:
    Op dinsdag 14 november 2006 17:06 schreef USAF het volgende:
    Vraagje

    Ik ben bezig met een systeem die per dag een aantal vragen weergeeft uit een database. In een textfield/textarea kunnen mensen deze vragen beantwoorden.

    Nu wil ik dat de verschillende antwoorden (die in een andere tabel van de db staan) worden vergeleken met het ingevulde antwoord. Want als het goed is krijgt deze user een x-aantal punten.

    Ik zat al te denken om de antwoorden in een array te zetten, maar hoe ik deze vervolgens vergelijk met het ingevulde antwoord....

    Iemand een idee?
    Je wilt open vragen gaan vergelijken met antwoorden uit database?
    papernotedinsdag 14 november 2006 @ 18:27
    quote:
    Op dinsdag 14 november 2006 17:24 schreef Swetsenegger het volgende:

    [..]

    Je wilt open vragen gaan vergelijken met antwoorden uit database?
    Als hij ernaast een expertsysteem opzet is dat goed mogelijk.
    CraZaaydinsdag 14 november 2006 @ 18:32
    quote:
    Op dinsdag 14 november 2006 17:24 schreef Swetsenegger het volgende:

    [..]

    Je wilt open vragen gaan vergelijken met antwoorden uit database?
    Moet te doen zijn, tot op zekere hoogte.
    CraZaaydinsdag 14 november 2006 @ 18:33
    quote:
    Op dinsdag 14 november 2006 09:16 schreef Desdinova het volgende:
    ik weet niet of je er al uit bent, maar misschien is dit wat
    [ code verwijderd ]

    niet getest overigens. ook niet gechecked op parse errors
    Zou een probleem op kunnen leveren wanneer je $vars[$row['album']] niet eerst declareert als array.
    Swetseneggerdinsdag 14 november 2006 @ 18:37
    Ik zeg toch niet dat het niet gaat, ik wil allen duidelijkheid
    Overigens zou IK niet weten hoe je dat technisch op moet lossen. Misschien met een soort thesaurus ofzo.
    papernotedinsdag 14 november 2006 @ 18:41
    quote:
    Op dinsdag 14 november 2006 18:37 schreef Swetsenegger het volgende:
    Ik zeg toch niet dat het niet gaat, ik wil allen duidelijkheid
    Overigens zou IK niet weten hoe je dat technisch op moet lossen. Misschien met een soort thesaurus ofzo.
    PHLIPS is een PHP extentie voor CLIPS, waarmee je expertsystemen kan bouwen.

    Expertsystemen kunnen reageren op natuurlijke taal en daarmee zou je dan zoiets kunnen implementeren. Zo heb ik zelf eens een helpdesk gemaakt in CLIPS, die reageerde op vragen als: "Mijn XboX is stuk, wat moet ik doen?".

    Deze vraag werd dan ingelezen door het systeem en gefilterd op bepaalde woorden. Er wordt gezocht naar een bekend onderwerp (XboX) en een probleem (stuk) en of er een negatie (bijv. niet) in voor komt. Aan de hand daarvan worden er dan in het programma bepaalde regels geactiveerd die een vervolgvraag stellen.

    Overigens heb ik dat direct in CLIPS geschreven en geen gebruik gemaakt van PHLIPS, maar middels PHLIPS zou je dat dus ook aan PHP kunnen koppelen.
    Swetseneggerdinsdag 14 november 2006 @ 19:04
    quote:
    Op dinsdag 14 november 2006 18:41 schreef papernote het volgende:

    [..]

    PHLIPS is een PHP extentie voor CLIPS, waarmee je expertsystemen kan bouwen.

    Expertsystemen kunnen reageren op natuurlijke taal en daarmee zou je dan zoiets kunnen implementeren. Zo heb ik zelf eens een helpdesk gemaakt in CLIPS, die reageerde op vragen als: "Mijn XboX is stuk, wat moet ik doen?".

    Deze vraag werd dan ingelezen door het systeem en gefilterd op bepaalde woorden. Er wordt gezocht naar een bekend onderwerp (XboX) en een probleem (stuk) en of er een negatie (bijv. niet) in voor komt. Aan de hand daarvan worden er dan in het programma bepaalde regels geactiveerd die een vervolgvraag stellen.

    Overigens heb ik dat direct in CLIPS geschreven en geen gebruik gemaakt van PHLIPS, maar middels PHLIPS zou je dat dus ook aan PHP kunnen koppelen.
    Interessant
    Chandlerdinsdag 14 november 2006 @ 19:51
    Ja daar moet ik ook maar eens wat meer over lezen
    USAFdinsdag 14 november 2006 @ 20:39
    Hopelijk iets duidelijker dit keer

    Ik heb dus een tabel 'vragen' en een tabel 'antwoorden', tabel antwoorden is gekoppeld aan tabel vragen door vraagid. Tevens heeft de tabel vragen een veld met dag, maand en jaar zodat het script weet welke vragen op welke dag getoond moeten worden.

    Op de pagina's waar de vragen staan, staan tekstvelden om de antwoorden voor de vragen in te vullen. De naam van het tekstveld is gelijk aan het id van de vraag.

    Als het formulier vervolgens gesubmitwordt, wil ik dat per vraag, de ingevulde waarde vergeleken wordt met de (mogelijk meerdere) row's in de tabel 'antwoorden'.

    Mensen met toegang tot het back-end kunnen later nog altijd antwoorden waar bijv. een spellingsfout in zit goedkeuren, daar zit het probleem dus niet in.

    Maar het probleem voor mij is, hoe vergelijk ik de ingevulde waarde met de mogelijke antwoorden in de database
    Swetseneggerdinsdag 14 november 2006 @ 20:41
    quote:
    Op dinsdag 14 november 2006 20:39 schreef USAF het volgende:
    Hopelijk iets duidelijker dit keer

    Ik heb dus een tabel 'vragen' en een tabel 'antwoorden', tabel antwoorden is gekoppeld aan tabel vragen door vraagid. Tevens heeft de tabel een veld met dag, maand en jaar zodat je weet welke vragen op welke dag getoond moeten worden.

    Op de pagina's waar de vragen staan, staan tekstvelden om de antwoorden voor de vragen in te vullen. De naam van het tekstveld is gelijk aan het id van de vraag.

    Als het formulier vervolgens gesubmit wordt, wil ik dat per vraag, de ingevulde waarde vergeleken wordt met de (mogelijk meerdere) row's in de tabel 'antwoorden'.

    Mensen met toegang tot het back-end kunnen later nog altijd antwoorden waar bijv. een spellingsfout in zit goedkeuren, daar zit het probleem dus niet in.

    Maar het probleem voor mij is, hoe vergelijk ik de ingevulde waarde met de mogelijke antwoorden in de database
    Die vraag is al beantwoord. Wanneer je met full text antwoorden werkt zal je met een expert systeem moeten werken, zie de vorige pagina.

    Een eenvoudiger alternatief is natuurlijk multiple-choice.
    Skorpijadinsdag 14 november 2006 @ 21:37
    Weet iemand het volgende:

    Ik wil transparency verwijderen van een gif plaatje en er wit van maken.
    Maar ik kan nergens vinden hoe dit moet. Alle voorbeelden zijn juist om een bepaalde kleur transparant te maken...

    (Ik bedoel hoe doe ik dit in PHP m.b.v. de GD Library )
    Swetseneggerdinsdag 14 november 2006 @ 21:40
    quote:
    Op dinsdag 14 november 2006 21:37 schreef Skorpija het volgende:
    Weet iemand het volgende:

    Ik wil transparency verwijderen van een gif plaatje en er wit van maken.
    Maar ik kan nergens vinden hoe dit moet. Alle voorbeelden zijn juist om een bepaalde kleur transparant te maken...
    Gewoon zonder transparency opslaan.
    Skorpijadinsdag 14 november 2006 @ 21:42
    quote:
    Op dinsdag 14 november 2006 21:40 schreef Swetsenegger het volgende:

    [..]

    Gewoon zonder transparency opslaan.
    Ik heb m'n post nog even ge-edit.

    Ik bedoelde, hoe maak ik via php m.b.v. de GD Library een transparante kleur wit..
    Swetseneggerdinsdag 14 november 2006 @ 21:45
    quote:
    Op dinsdag 14 november 2006 21:42 schreef Skorpija het volgende:

    [..]

    Ik heb m'n post nog even ge-edit.

    Ik bedoelde, hoe maak ik via php m.b.v. de GD Library een transparante kleur wit..
    Ah... niet denk ik...
    Darkomendinsdag 14 november 2006 @ 21:52
    Wie kan me even helpen met de volgende replace?

    1
    2
    3
    $ret = "blabldsablkdbsl [url=http://imageshack.us][img=http://img164.imageshack.us/img164/220/152tuning72868gm5.jpg][/url] dbsalksablknlksandlsa";
    $ret = preg_replace("#[url=http://imageshack.us][img=([w:%&/.;\#-=?[]+]][/url]#sie","'\1n'", $ret);
    echo $ret;


    [ Bericht 18% gewijzigd door Darkomen op 15-11-2006 13:08:29 ]
    papernotedinsdag 14 november 2006 @ 22:03
    quote:
    Op dinsdag 14 november 2006 20:41 schreef Swetsenegger het volgende:

    [..]

    Die vraag is al beantwoord. Wanneer je met full text antwoorden werkt zal je met een expert systeem moeten werken, zie de vorige pagina.

    Een eenvoudiger alternatief is natuurlijk multiple-choice.
    Ik denk dat een expert-systeem te geavanceerd is voor dit probleem. Je zou dit wellicht als volgt kunnen aanpakken:

    Je neemt een tabel met vragen en een tabel met antwoorden die je aan elkaar linkt middels een ID of zoiets dergelijks. Vervolgens stel je de vraag en komt het antwoord binnen via de POST. Dan zou je het antwoord kunnen scannen op voorkomens van bepaalde woorden die je in het antwoord verwacht. Deze woorden staan dan natuurlijk in je antwoorden-tabel.

    Voorbeeld uit een random quiz:
    quote:
    Q: Who wrote: "Bring me my bow of burning gold: Bring me my arrows of desire.." ?
    A: William Blake (1757-1827, English poet, painter and mystic.)
    De tabellen:

    Vragen
    1
    2
    3
    ID  VRAAG
    1   Who wrote: "Bring me my bo...
    2   Bla bla bla


    Antwoorden
    1
    2
    3
    4
    5
    ID  ANTWOORD
    1   blake
    1   william
    1   1827
    2   blob


    Middels PHP kan je simpel controleren of het woord "Blake" voorkomt in het antwoord. Verder zou je dan extra punten kunnen geven voor het voorkomen van "William" en ook nog voor de jaartallen.

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    <?php
    $punten 
    0;
    $answer strtolower($_POST["answer"]);
    if(
    strstr("blake"$answer))
    {
        echo(
    "CORRECT");
        
    $punten += 1;

        if(
    strstr("william"$answer))
        {
            
    $punten += 1;
        }

        
    //enz...
    }
    else
    {
        echo(
    "FOUT");
    }
    ?>


    Het hangt natuurlijk wel af van het soort vragen dat je gaat stellen, maar op deze manier zou je wellicht een aardig eindje kunnen komen.

    Als iemand overigens interesse heeft in expertsystemen dan kan ik daar wel eens een topic over openen met een korte tutorial?
    CraZaaydinsdag 14 november 2006 @ 22:08
    Daarnaast kun je met PHP ook nog simpel checken in hoeverre een antwoord overeenkomt (strings vergelijken en match-percentage returnen).
    Swetseneggerdinsdag 14 november 2006 @ 22:12
    quote:
    Op dinsdag 14 november 2006 22:03 schreef papernote het volgende:

    [..]

    Ik denk dat een expert-systeem te geavanceerd is voor dit probleem. Je zou dit wellicht als volgt kunnen aanpakken:

    Je neemt een tabel met vragen en een tabel met antwoorden die je aan elkaar linkt middels een ID of zoiets dergelijks. Vervolgens stel je de vraag en komt het antwoord binnen via de POST. Dan zou je het antwoord kunnen scannen op voorkomens van bepaalde woorden die je in het antwoord verwacht. Deze woorden staan dan natuurlijk in je antwoorden-tabel.

    Voorbeeld uit een random quiz:
    [..]

    De tabellen:

    Vragen
    [ code verwijderd ]

    Antwoorden
    [ code verwijderd ]

    Middels PHP kan je simpel controleren of het woord "Blake" voorkomt in het antwoord. Verder zou je dan extra punten kunnen geven voor het voorkomen van "William" en ook nog voor de jaartallen.
    [ code verwijderd ]

    Het hangt natuurlijk wel af van het soort vragen dat je gaat stellen, maar op deze manier zou je wellicht een aardig eindje kunnen komen.
    Het lijkt me redelijk omslachtig, maar het is te doen.
    quote:
    Als iemand overigens interesse heeft in expertsystemen dan kan ik daar wel eens een topic over openen met een korte tutorial?
    Ik zou graag een uitleg zien inderdaad
    Swetseneggerdinsdag 14 november 2006 @ 22:16
    quote:
    Op dinsdag 14 november 2006 22:08 schreef CraZaay het volgende:
    Daarnaast kun je met PHP ook nog simpel checken in hoeverre een antwoord overeenkomt (strings vergelijken en match-percentage returnen).
    http://nl2.php.net/similar_text

    Maar die geeft het aantal overeenkomende karakters in de strings weer.... lijkt me op z'n zachts gezegd niet de meest betrouwbare methode voor een correct antwoord.
    JeRadinsdag 14 november 2006 @ 22:56
    Je zou het één en het ander kunnen uitproberen en een combinatie van soundex(), similar_text(), levenshtein() etc kunnen gebruiken om woorden te matchen. Het is alleen niet echt een oplossing die schaalbaar is, het wordt bij veel documenten al snel trager
    Darkomenwoensdag 15 november 2006 @ 13:57
    quote:
    Op dinsdag 14 november 2006 21:52 schreef Darkomen het volgende:
    Wie kan me even helpen met de volgende replace?
    [ code verwijderd ]
    stukje verder maar nog niet de oplossing...
    1
    2
    3
    $ret = "}test{[url=http://imageshack.us][img=http://img164.imageshack.us/img164/220/152tuning72868gm5.jpg][/url]}test{ ";
    echo $ret.' => <br />';
    $ret = preg_replace("#[URL=http://imageshack.us+\][a-zA-Z0-9.:=/_\[\]- ]+\[/URL\]#sie","'\\1'", $ret);


    Ik krijg er dit uit:
    }test{}test{
    ralfiewoensdag 15 november 2006 @ 14:48
    quote:
    Op woensdag 15 november 2006 13:57 schreef Darkomen het volgende:

    [..]

    stukje verder maar nog niet de oplossing...
    [ code verwijderd ]

    Ik krijg er dit uit:
    }test{}test{
    vraag is een beetje wat je wilt he

    1
    2
    3
    4
    5
    6
    <?php
    $ret 
    "}test{[url=http://imageshack.us][img=http://img164.imageshack.us/img164/220/152tuning72868gm5.jpg][/url]}test{ ";
    echo 
    $ret.' => <br />';
    $ret preg_replace("#\[URL=http://imageshack\.us\]([a-z0-9.:=/_\[\]\- ]+)\[/URL\]#sie","'\\1'"$ret);
    echo 
    $ret;
    ?>

    zoiets?
    Darkomenwoensdag 15 november 2006 @ 15:01
    Yups dat is precies wat ik nou wilde doen.
    oke nou zie ik ook wat ik fout doe.

    bedankt!
    Mzz
    werkt wel in het test script maar niet in phpbb, straks maar es ff naar kijken

    [ Bericht 28% gewijzigd door Darkomen op 15-11-2006 15:10:08 ]
    CraZaaywoensdag 15 november 2006 @ 22:27
    quote:
    Op dinsdag 14 november 2006 22:16 schreef Swetsenegger het volgende:

    [..]

    http://nl2.php.net/similar_text

    Maar die geeft het aantal overeenkomende karakters in de strings weer.... lijkt me op z'n zachts gezegd niet de meest betrouwbare methode voor een correct antwoord.
    Het is een optie als je alleen typefouten etc af wilt vangen.
    De_Hertogdonderdag 16 november 2006 @ 12:46
    Ik zoek een tutorail voor een simpel login-systeem. Als ik op Google zoek vind ik vooral uitgebreide systemen, met login-aanvraag, password-mailer en dat soort dingen, en ik wil alleen maar een gedeelte van mijn site afschermen. Heeft iemand daar een simpele tutorial voor?
    JeRadonderdag 16 november 2006 @ 13:00
    quote:
    Op donderdag 16 november 2006 12:46 schreef De_Hertog het volgende:
    Ik zoek een tutorail voor een simpel login-systeem. Als ik op Google zoek vind ik vooral uitgebreide systemen, met login-aanvraag, password-mailer en dat soort dingen, en ik wil alleen maar een gedeelte van mijn site afschermen. Heeft iemand daar een simpele tutorial voor?
    Is HTTP authenticatie via je webserver niet misschien een adequate oplossing?

    Voor Apache kun je hier meer vinden.
    De_Hertogdonderdag 16 november 2006 @ 13:11
    quote:
    Op donderdag 16 november 2006 13:00 schreef JeRa het volgende:

    [..]

    Is HTTP authenticatie via je webserver niet misschien een adequate oplossing?

    Voor Apache kun je hier meer vinden.
    Dat ziet er ook wel goed genoeg uit ja, niet eens aan gedacht. Dank je wel
    mscholmaandag 20 november 2006 @ 16:56
    ik heb een functie die voor mij een lijst met (in mijn geval) videobestanden teruggeeft na een directory te zijn doorgelopen
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    <?php
    function get_file_list($root_dir)
    {
        if (
    is_dir($root_dir))
        {
            if (
    $dh opendir($root_dir))
            {
                while (
    false !== ($file readdir($dh))) 
                {
                    if(
    $file != "." && $file != "..")
                    {
                    
    $ext substr($file,-3,3);
                        if(
    preg_match("/avi|mkv|mpg|mpeg|wmv|mp4/i",$ext))
                        {
                            
    $array[] .= $file;
                        }
                    }
                }
                
    closedir($dh);
            }
        }
    return 
    $array;
    }
    ?>


    hoe kan ik er voor zorgen dat hij alle sub directory's mee neemt in de array?
    dus ik geef bijvoorbeeld D: op
    en vervolgens zoekt hij de hele schijf af naar videobestanden , ongeacht het aantal subdirectory's.
    is dat erg lastig? en hoe pak ik het aan?
    ralfiemaandag 20 november 2006 @ 17:18
    Dit moet je niet in php doen! De enige methode om dit in php te doen zou zijn met recursieve functies, en dat is ronduit stront als je hele schijven gaat indexeren.
    (ik neem tenminste aan dat dit voor je projectje van je andere topic is, op windows?)

    gebruik de executables die er voor bedoeld zijn, die werken VEEEEEEEEL sneller
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <?php
    chdir
    ("F:\\movies\\");
    exec('dir /s /b *.avi',$files);
    // /s=search subdirs
    // /b=return plain list, no header shizza
    foreach($files as $file) {
    echo
    "<br>found avi :$file<br/>";
    }
    ?>
    SuperRembomaandag 20 november 2006 @ 18:32
    quote:
    Op maandag 20 november 2006 17:18 schreef ralfie het volgende:
    Dit moet je niet in php doen! De enige methode om dit in php te doen zou zijn met recursieve functies, en dat is ronduit stront als je hele schijven gaat indexeren.
    (ik neem tenminste aan dat dit voor je projectje van je andere topic is, op windows?)

    gebruik de executables die er voor bedoeld zijn, die werken VEEEEEEEEL sneller
    [ code verwijderd ]
  • Het hoeft niet met een recursieve functie (zie onder)
  • Exec is niet handig als het bij een externe host moet draaien
  • Exec is niet handig als je op verschillende extensies wil filteren
  • Exec is niet handig als het op een ander OS moet draaien

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


    function getFiles($path, $fileFilter) {
       $dirStack = array($path);
       $files = array();

       while (null !== ($dir = array_pop($dirStack))) {
          $dh = opendir($dir)
             or die(sprintf('Error: Could not open directory "%s".', $dir));

          while (false !== ($file = readdir($dh))) {
             if($file != "." && $file != "..") {
                $fullFile = $dir . $file;
                if (is_file($fullFile)) {
                   if (preg_match($fileFilter, $file)) {
                      $files[] = $fullFile;
                   }
                } else if (is_dir($fullFile)) {
                   $dirStack[] = $fullFile . '/';
                }
             }
          }
          closedir($dh);
       }
       return $files;
    }


    $files = getFiles('d:/temp/', '/\\.(avi|mkv|mpg|mpeg|wmv|mp4)$/i');
    sort($files);

    header('Content-type: text/plain');
    print_r($files);

    ?>
  • ralfiemaandag 20 november 2006 @ 18:43
    quote:
    Op maandag 20 november 2006 18:32 schreef SuperRembo het volgende:

    [..]

  • Het hoeft niet met een recursieve functie (zie onder)
  • Exec is niet handig als het bij een externe host moet draaien
  • Exec is niet handig als je op verschillende extensies wil filteren
  • Exec is niet handig als het op een ander OS moet draaien
    [ code verwijderd ]
  • hmm, leuke functie. Snap alleen niet hoe exec niet handig is als je op verschillende extensies wil filteren, je kunt gewoon "dir /s /b *.exe *.avi *.txt" doen...

    Daarnaast zijn de andere punten niet van toepassing als (zoals in aannam) het ging over dit topic
    mscholmaandag 20 november 2006 @ 20:43
    quote:
    Op maandag 20 november 2006 18:43 schreef ralfie het volgende:

    [..]

    hmm, leuke functie. Snap alleen niet hoe exec niet handig is als je op verschillende extensies wil filteren, je kunt gewoon "dir /s /b *.exe *.avi *.txt" doen...

    Daarnaast zijn de andere punten niet van toepassing als (zoals in aannam) het ging over dit topic
    betreft idd dat topic
    quote:
    Op maandag 20 november 2006 17:18 schreef ralfie het volgende:
    Dit moet je niet in php doen! De enige methode om dit in php te doen zou zijn met recursieve functies, en dat is ronduit stront als je hele schijven gaat indexeren.
    (ik neem tenminste aan dat dit voor je projectje van je andere topic is, op windows?)

    gebruik de executables die er voor bedoeld zijn, die werken VEEEEEEEEL sneller
    [ code verwijderd ]
    snelheid is voor mij opzich geen punt, tenzij ik timeout's ga krijgen
    en hele schijven indexeren valt wel mee, de grootste schijf die te indexeren valt op dit moment is mijn externe HD:
    in des betreffende map staan 'slechts' 602 files
    quote:
    Op maandag 20 november 2006 18:32 schreef SuperRembo het volgende:

    [..]

  • Het hoeft niet met een recursieve functie (zie onder)
  • Exec is niet handig als het bij een externe host moet draaien
  • Exec is niet handig als je op verschillende extensies wil filteren
  • Exec is niet handig als het op een ander OS moet draaien
    [ code verwijderd ]
  • hmm externe host wordt het zowieso niet (server staat hier lokaal, en me domein zal daar ook naar verhuizen )
    meerdere extensie kan wel met dir commando, opzich geen reden om niet voor exec gaan
    zie 1 =) (komt nooit onder andere host te draaien )
    echter wil ik php het helemaal laten afhandelen (vind ik toch netter )

    [ Bericht 34% gewijzigd door mschol op 20-11-2006 20:50:08 ]
    CraZaaymaandag 20 november 2006 @ 20:49
    Ik zou sowieso geen preg_match() gebruiken, maar gewoon strstr() of stristr(). Dat is sneller.
    De_Hertogmaandag 20 november 2006 @ 21:25
    Weer een vraagje van mijn kant: Ik heb een tabel met een aantal speciale tekens erin, zoals Ä of ö of ß. Nu las ik op http://dev.mysql.com/tech-resources/articles/4.1/unicode.html dat MySQL Unicode aankan, en dat PHP het zou moeten kunnen lezen. Ik heb de tabel, in Navicat, omgezet naar utf-8, maar de php pagina geeft de variabelen nog steeds weer als vraagtekens. Ik heb, zoals daar staat, in de header de character set op utf-8 staan.

    Ik wil natuurlijk weten hoe ik dit goed kan krijgen, maar eerst het volgende: ik hoorde van een vriend dat php/mysql accenten negeert. Dus, als ik zoek op 'brau' krijg ik ook 'bräu' in beeld. Klopt dit? Zo nee, dan zet ik er gewoon de 'Nederlandse' equivalenten neer
    JeRamaandag 20 november 2006 @ 21:28
    quote:
    Op maandag 20 november 2006 21:25 schreef De_Hertog het volgende:
    Weer een vraagje van mijn kant: Ik heb een tabel met een aantal speciale tekens erin, zoals Ä of ö of ß. Nu las ik op http://dev.mysql.com/tech-resources/articles/4.1/unicode.html dat MySQL Unicode aankan, en dat PHP het zou moeten kunnen lezen. Ik heb de tabel, in Navicat, omgezet naar utf-8, maar de php pagina geeft de variabelen nog steeds weer als vraagtekens. Ik heb, zoals daar staat, in de header de character set op utf-8 staan.
    Vergeet niet ook de connection met MySQL te initialiseren voor de goede character set.
    1SET NAMES utf8; SET CHARACTER SET utf8

    Of iets dergelijks. Is terug te vinden in de manual
    quote:
    Ik wil natuurlijk weten hoe ik dit goed kan krijgen, maar eerst het volgende: ik hoorde van een vriend dat php/mysql accenten negeert. Dus, als ik zoek op 'brau' krijg ik ook 'bräu' in beeld. Klopt dit? Zo nee, dan zet ik er gewoon de 'Nederlandse' equivalenten neer
    PHP negeert ze sowieso niet, MySQL negeert ze als je er een comparison of sortering op loslaat zolang je geen 'binary' collation gebruikt.
    CraZaaymaandag 20 november 2006 @ 23:03
    Het PHP-bestand wat de waarden laat zien moet ook UTF-8 zijn. Niet alleen in de HTML zetten dat het UTF-8 is, maar het bestand dat ook daadwerkelijk laten zijn.
    JeRamaandag 20 november 2006 @ 23:22
    quote:
    Op maandag 20 november 2006 23:03 schreef CraZaay het volgende:
    Het PHP-bestand wat de waarden laat zien moet ook UTF-8 zijn. Niet alleen in de HTML zetten dat het UTF-8 is, maar het bestand dat ook daadwerkelijk laten zijn.
    Dat is alleen zo wanneer je ook HTML met unicode karakters in je PHP-files hebt staan, maar anders maakt het toch echt niéts uit hoe je je PHP-files opslaat hoor - zolang de PHP interpreter het maar kan lezen.

    Handige functies in PHP om met dergelijke unicode data te werken zijn de mb_*-functies, die kun je vantevoren met mb_internal_encoding() op UTF-8 zetten. Dan moet alles prima werken
    mscholdinsdag 21 november 2006 @ 00:30
    kan php een netwerk directory niet uitlezen
    ik heb wel iets gevonden via google (apache onder andere username en een registry key aanpasen) maar beide werken niet
    iemand die hier ervaring mee heeft onder windows?
    dossiedinsdag 21 november 2006 @ 10:00
    Ik heb een vraag over de bijzonderheden omtrent het draaien van php in cgi modus.

    Ik heb een applicatie gemaakt die lokaal perfect draait, maar eenmaal geinstalleerd op de daarvoor bedoelde host kwam problemen tegen die ik niet kon plaatsen.

    Wat bleek, de host draait php in cgi modus, en register globals stond aan. Ik dacht eigenlijk dat dit bijna nooit meer voorkwam, dus had er niet opgelet. Na een hoop gevloek begon het me eindelijk te dagen.
    Probleem is dat (volgens mijn google acties), dit niet kan overriden als php in cgi modus staat.

    Mijn vraag is nu, kan ik nog tegen andere problemen aanlopen? Ik was bijvoorbeeld van plan om iets met mod_rewrite te doen, maar kom ik dan ook in de problemen?

    Ik zou graag de belangrijkste verschillen willen weten voor mij tussen het draaien van php in cgi of als module (en het draait ook nog op windows btw). Ga ik nog vreemde zaken tegen komen waar ik nu al rekening mee kan houden?
    JeRadinsdag 21 november 2006 @ 13:27
    @dossie

    PHP verschilt niet zo héél veel als het in CGI-modus draait. Er zijn wat functies die je niet meer kunt aanroepen (zoals de apache-functies waarmee je informatie over de webserver opvraagt) en heel misschien is de inhoud van $_SERVER iets anders, maar dat is een kwestie van vergelijken.

    Maar ik vind het vreemd dat je applicatie ontwikkeld is met register_globals op Off, en dat het vervolgens niet meer werkt als die setting op On staat? Dan doe je toch iets fout in de declaratie van je variabelen. Zorg ervoor dat je alles vantevoren declareert zodat niemand via de URI iets kan doen:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    $login = false;   // standaard op false!
    if (!$login)
    {
        $login = checkLogin();
    }

    // Dit zou fout zijn gegaan als je $login niet eerst op false had gezet
    if ($login)
    {
        executeAdministrativeDeletionOfAllTables();
    }


    mod_rewrite moet geen problemen opleveren aangezien dat in Apache zelf een rol speelt, en niet in PHP. Apache herschrijft de URL en weet dan dat hij je script als CGI moet uitvoeren.
    dossiedinsdag 21 november 2006 @ 13:43
    Thnx Jera. Het kwam inderdaad doordat ik mijn variabele niet netjes had gedeclareerd. Een $id overschreef een global $id waardoor ik in de problemen kwam.

    Ik heb echter nu weer een prob

    Ik krijg de volgende foutmelding bij het uploaden van een foto. Het werkte prima op localhost en mijn eigen host, maar nu staat het op de host waar het uiteindelijk terecht moet komen, en nu werkt ie niet meer.

    Ik krijg een hele rits foutmeldingen, maar die komen mijn inziens voort uit de onderstaande. De paden zijn wel correct, dat heb ik gecheckt. Ik heb geprobeerdt te chmodden, maar dat lijkt niet echt te werken (windows?)

    1
    2
    3
    Warning: move_uploaded_file(D:wwwhtmltulpenselectie.nlapplicationfilesimgenkele_bloem_113_.jpg) [function.move-uploaded-file]: failed to open stream: Permission denied in D:wwwhtmltulpenselectie.nlapplicationincludesfunctionsinc_fotos_functions.php on line 354

    Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move 'C:PHPuploadtempphp11CE.tmp' to 'D:wwwhtmltulpenselectie.nlapplicationfilesimgenkele_bloem_113_.jpg' in D:wwwhtmltulpenselectie.nlapplicationincludesfunctionsinc_fotos_functions.php on line 354


    [ Bericht 55% gewijzigd door dossie op 21-11-2006 13:49:31 ]
    Darkomendinsdag 21 november 2006 @ 13:47
    Probeer eens copieren ipv verplaatsen
    JeRadinsdag 21 november 2006 @ 13:50
    quote:
    Op dinsdag 21 november 2006 00:30 schreef mschol het volgende:
    kan php een netwerk directory niet uitlezen
    ik heb wel iets gevonden via google (apache onder andere username en een registry key aanpasen) maar beide werken niet
    iemand die hier ervaring mee heeft onder windows?
    Laat eens wat foutmeldingen en code zien ?
    JeRadinsdag 21 november 2006 @ 13:52
    @dossie:
    quote:
    Op dinsdag 21 november 2006 13:47 schreef Darkomen het volgende:
    Probeer eens copieren ipv verplaatsen
    Probeer dit eens inderdaad, want het lijkt erop alsof Apache de bestanden wegschrijft onder een gebruiker waar jouw scripts met PHP niets aan mogen veranderen. Wellicht mogen ze die bestanden wél lezen werkt dat nog niet dan is het niet onverstandig om eens contact op te nemen met je hoster.
    dossiedinsdag 21 november 2006 @ 13:53
    Ik heb copy ook al geprobeerd, en dat lukt ook niet.
    Ik zoek onderhand nog even verder, maar ik snap er vrij weinig van....
    dossiedinsdag 21 november 2006 @ 14:04
    Ik zal inderdaad even een mailtje sturen naar de host. Wel vervelend, ze zijn redelijk duur, endan hebben ze ook nog eens register globals aanstaan, en nu werkt dit weer niet :s

    Maar bedankt, ik hou jullie op de hoogte :-)
    mscholdinsdag 21 november 2006 @ 14:58
    quote:
    Op dinsdag 21 november 2006 13:50 schreef JeRa het volgende:

    [..]

    Laat eens wat foutmeldingen en code zien :)?
    :@

    foutmelding:
    quote:
    Warning: opendir(Z:): failed to open dir: Invalid argument in d:wwwffmpegtest.php on line 73
    Error: Could not open directory: Z:
    code die ik gebruik:
    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
    <?php
    function getFiles($path, $fileFilter) {
       
    $dirStack = array($path);
       
    $files = array();

        while (
    null !== ($dir = array_pop($dirStack)))
        {
            
    $dh = opendir($dir) or die('Error: Could not open directory: '.$dir);
            while (
    false !== ($file = readdir($dh)))
            {
                if(
    $file != "." && $file != "..")
                {
                    
    $fullFile = $dir . $file;
                    if (
    is_file($fullFile))
                    {
                        if (
    preg_match($fileFilter, $file))
                           {
                              
    $files[] = $fullFile;
                           }
                    }  
                    else if (
    is_dir($fullFile))
                    {
                           
    $dirStack[] = $fullFile . '/';
                    }
                 }
              }
            
    closedir($dh);
       }
       
    sort($files);
       return
    $files;
    }

    $main_dir = "Z:\";

    $files = getFiles($main_dir,'/\.(avi|mkv|mpg|mpeg|wmv|mp4)$/i');
    ?>
    SHERMANdinsdag 21 november 2006 @ 19:20
    Ben nog een beetje php leek dus het antwoord is vast erg eenvoudig. ;)

    Ik laat php een lijstje data uit een db halen, die gooi ik in een array en met html maak ik er een mooi lijstje van. Dan heb ik de opties "Verwijder" en "Bewerk" gemaakt, lijkt me logisch waar het voor staat. Dit is echter tekst.

    Ik hou van grafische meuk en wil dus plaatjes hebben. ;) Ik gebruik de volgende code maar dan krijg ik een error. Wat zie ik over het hoofd. :?

    1
    2
    3
    <?php
    "<td><a href="verwijder_werknemer.php?id=" . $rij['id'] .""><img src="img/delete.png"/></a></td>" .
    ?>


    De originele code:
    1
    2
    3
    <?php
    "<td><a href="verwijder_werknemer.php?id=" .$rij['id'] . "">Verwijderen</a>" .
    ?>


    De error:
    quote:
    Parse error: syntax error, unexpected T_STRING in C:Program FilesxampphtdocsAlura-werkenalura_overzicht.php on line 34
    Darkomendinsdag 21 november 2006 @ 19:37
    1
    2
    3
    <?php
    echo "<td><a href=\"verwijder_werknemer.php?id=" . $rij['id'] ."\"><img src=\"img/delete.png\"/></a></td>" ;
    ?>


    Je was waarschijnlijk een quote vergeten te escapen
    Qunixdinsdag 21 november 2006 @ 20:24
    Kan iemand me hiermee helpen?

    Met "$_SERVER['PHP_SELF'];" laat hij de hele pad zien tot het php document waar het script zich bevind. Nu wil ik alleen de laatste map in een variabel en de map er boven in een aparte variabel.

    www/
    www/index.php
    www/images/plaatje.jpg
    www/images/index.php

    in images/index.php heb ik het script $_SERVER['PHP_SELF'] en daar staat dan het volgende:
    www/images/index.php

    Hoe laat ik weergeven dat hij alleen "images" toont.
    JeRadinsdag 21 november 2006 @ 20:27
    quote:
    Op dinsdag 21 november 2006 14:58 schreef mschol het volgende:

    [..]



    foutmelding:
    [..]

    code die ik gebruik:
    [ code verwijderd ]
    Je kunt via cmd wel gewoon Z: benaderen?
    JeRadinsdag 21 november 2006 @ 20:29
    quote:
    Op dinsdag 21 november 2006 20:24 schreef Qunix het volgende:
    Kan iemand me hiermee helpen?

    Met "$_SERVER['PHP_SELF'];" laat hij de hele pad zien tot het php document waar het script zich bevind. Nu wil ik alleen de laatste map in een variabel en de map er boven in een aparte variabel.

    www/
    www/index.php
    www/images/plaatje.jpg
    www/images/index.php

    in images/index.php heb ik het script $_SERVER['PHP_SELF'] en daar staat dan het volgende:
    www/images/index.php

    Hoe laat ik weergeven dat hij alleen "images" toont.
    Je kunt splitten op de forwardslash
    1
    2
    $pad = explode('/', $_SERVER['PHP_SELF']);
    print_r($pad);
    Qunixdinsdag 21 november 2006 @ 20:31
    quote:
    Op dinsdag 21 november 2006 20:29 schreef JeRa het volgende:

    [..]

    Je kunt splitten op de forwardslash

    [ code verwijderd ]
    Thanks... Was ik nog niet opgekomen
    mscholdinsdag 21 november 2006 @ 20:40
    quote:
    Op dinsdag 21 november 2006 20:27 schreef JeRa het volgende:

    [..]

    Je kunt via cmd wel gewoon Z: benaderen?
    yep,
    topic @ got
    JeRadinsdag 21 november 2006 @ 20:45
    quote:
    Op dinsdag 21 november 2006 20:40 schreef mschol het volgende:

    [..]

    yep,
    topic @ got
    Apache start (onder Linux iig) de threads als een andere gebruiker, je kunt dit in de configuratie instellen. Het maakt dus niet uit of je Apache start als Administrator
    mscholdinsdag 21 november 2006 @ 20:50
    quote:
    Op dinsdag 21 november 2006 20:45 schreef JeRa het volgende:

    [..]

    Apache start (onder Linux iig) de threads als een andere gebruiker, je kunt dit in de configuratie instellen. Het maakt dus niet uit of je Apache start als Administrator
    onder windows draait een service standaard onder het local system account, dit kan je aanpassen naar een andere gebruiker.

    en de threads draaien volgens mij (zover ik in mijn httpd.conf kan zien) ook allemaal onder dezelfde username
    JeRadinsdag 21 november 2006 @ 20:54
    quote:
    Op dinsdag 21 november 2006 20:50 schreef mschol het volgende:

    [..]

    onder windows draait een service standaard onder het local system account, dit kan je aanpassen naar een andere gebruiker.

    en de threads draaien volgens mij (zover ik in mijn httpd.conf kan zien) ook allemaal onder dezelfde username
    En hoe staat het met de rechten van schijf Z:?
    mscholdinsdag 21 november 2006 @ 20:59
    quote:
    Op dinsdag 21 november 2006 20:54 schreef JeRa het volgende:

    [..]

    En hoe staat het met de rechten van schijf Z:?
    screenshot genomen op me server

    alle gebruikers die je daar ziet hebben full controll van mij gekregen.
    ter verduidelijking:
    de server heet server en heeft ip 10.0.0.180
    en de pc met de share is PCMILO met IP 10.0.0.155
    ik kan overigens nergens een useraccount van server rechten geven op die share (alleen gebruikers van 10.0.0.155 zijn de mogelijkheid)

    de administrator gebruikers hebben hetzelfde wachtwoord
    mscholwoensdag 22 november 2006 @ 16:32
    ik heb het voorlopig maar opgegeven en de apache+php config gekopieerd naar mijn hoofd systeem om vanuit daar mijn files uit te lezen (en op System Volume Information error na werkte alles prima )
    ik kan nu in 1x 576 files van mijn externe HD in mijn database pompen
    super-muffinwoensdag 22 november 2006 @ 19:14
    Ik heb een raar probleem.

    Ik heb een formulier die er al volgt uitziet:
    1
    2
    3
    4
    5
    6
    7
    <?php
    <form action="index.php?p=action&actie=nieuwe_mark/">
    //inputs
    </form>

    <
    input type="submit" value="verstuur!" />
    ?>


    Als ik dan op 'verstuur!' druk, kom ik uit op index.php?naam=Flashfiles&rl=http%3A%2F%2Fwww.flashfiles.nl&cat=1

    wat dus

    index.php?p=action&actie=nieuwe_mark&naam=Flashfiles&rl=http%3A%2F%2Fwww.flashfiles.nl&cat=1

    Wat doe ik fout? Het liefst zou ik willen dat de vars van her formulier niet in de urlbalk komen
    fatewoensdag 22 november 2006 @ 19:19
    een method toevoegen?

    En als je de vars niet in de url wilt doe je method="post"
    Dan kan je op de pagina waar je de gegevens weer opvraagt dit simpel opvragen via $_POST['var_naam']
    super-muffinwoensdag 22 november 2006 @ 19:33
    hehe stom, helemaal vergeten

    Dank je
    fatewoensdag 22 november 2006 @ 19:35
    No problemo
    wipes66woensdag 22 november 2006 @ 20:32
    je kan action="" overigens ook gewoon leeg laten, op die manier verstuurd hij het naar de zelfde pagina.
    super-muffinwoensdag 22 november 2006 @ 20:57
    Ja dat weet ik, maar dat is niet handig in deze toepassing.
    mscholwoensdag 22 november 2006 @ 22:14
    hmm vaag probleempje met me zoek script:
    source

    als ik nu in mijn formulier c:/ intik dan schiet apache naar ~100% cpu gebruik en crashed me script..
    op d:/ of m:/ werkt hij echter zeeer vlot (1250 bestanden vinden in ~2 seconden, zo niet sneller )
    d:/ is dezelfde schijf m:/ is mijjn externe HD (aangesloten via usb)
    iemand een idee?

    en hoe kan ik de regel:
    1if($file != "." && $file != ".." && $file != "System Volume Information" && $file != "RECYCLER" && $file != "$RECYCLE.BIN" && $file != "Windows")

    verkorten (eigenlijk vind ik een array gebruiken mooier maar ik zou niet weten hoe ik die daar in moet zetten om hetzelfde effect te hebben)
    JeRawoensdag 22 november 2006 @ 22:43
    @mschol

    Probeer eens te achterhalen waar je script blijft hangen door bijvoorbeeld directories te echo'en (en te flush()en!).

    Die if-constructie kún je wel anders schrijven, namelijk zo:

    1
    2
    3
    4
    5
    $skipDirs = array('.', '..', 'System Volume Information', etcetc);
    if (!in_array($file, $skipDirs))
    {
        // yay
    }
    mscholwoensdag 22 november 2006 @ 22:50
    quote:
    Op woensdag 22 november 2006 22:43 schreef JeRa het volgende:
    @mschol

    Probeer eens te achterhalen waar je script blijft hangen door bijvoorbeeld directories te echo'en (en te flush()en!).
    ahh thnx, lijkt erop dattie temporary internet files niet leuk vind..
    quote:
    Die if-constructie kún je wel anders schrijven, namelijk zo:
    [ code verwijderd ]
    Held
    mscholdonderdag 23 november 2006 @ 15:13
    kleine laatste update m.b.t. mijn script..
    om de een of andere reden werken UNC paden nu wel vanaf me server
    en ik kan dus via me server de administrative shares (c$ , D$) gewoon uitlezen
    geen idee wat er veranderd is
    RiderXXXdonderdag 23 november 2006 @ 18:31
    Hoi, hallo, hai! Vraagje:

    Ik wil graag een tabel op mijn site met albumreleases. Wat ik dus op de site wil showen is (voorbeeld):
    december 2006
    15 <titel> <label>
    24 <titel> <label>

    november 2006
    06 <titel> <label>
    12 <titel> <label>
    24 <titel> <label>

    etc, etc... maar hoe kan ik dat het beste doen? Ik denk... 2 tabellen.. een met 'id', 'maand' en 'jaar' en daarna een tabel met 'id', 'dag', 'maand', 'jaar', 'artist', 'titel' en 'label'

    En dan een query doen met de maanden.. van tabel 1, en daarna een query IN die query om weer de juiste dag, artiest en titel eruit te halen.. WHERE maand = '$maand' oid.. maar wellicht kan het handiger.. dus voorbeelden of hulp zijn welkom!!!
    ralfiedonderdag 23 november 2006 @ 18:43
    Alles in één tabel doen, en maand, jaar,dag in een DATE() zetten.
    RiderXXXdonderdag 23 november 2006 @ 19:15
    maar hoe poep ik dat dan uit in PHP?
    ralfiedonderdag 23 november 2006 @ 21:11
    als je bijvoorbeeld alle albums will hebben van januari 2005 heb je oa de volgende mogelijhkheden:

    1. where date like '2005-01-%'
    2. where DATE_FORMAT(date,'%Y-%m')='2005-01'
    3. where EXTRACT(YEAR_MONTH FROM date)='200501'
    4. where YEAR(date)='2005' and MONTH(date)='1'
    5. where substring(date,1,7)='2005-01'
    6. where date between '2005-01-01' and '2005-01-31'

    (heb ik van http://dev.mysql.com/doc/(...)time-functions.html, niet zelf verzonnen )

    persoonlijke logica zegt me dat optie 2 het snelste is, kan dit verder niet onderbouwen
    RiderXXXvrijdag 24 november 2006 @ 05:00
    Okay... maar ik wil nu alleen dat automatisch alle maanden (en jaren) die ingevuld zijn in de database tevoorschijn komen... dus als er iets niet is toegevoegd voor december 2006, moet die maand niet weergegeven worden... maar die van januari 2007 weer wel, als daar iets voor is toegevoegd...
    Darkomenvrijdag 24 november 2006 @ 13:33
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    $shown = array();
    function RandomBackground($dir) {
       GLOBAL $shown;
       if( $open_dir = opendir($dir) ) {
          while( FALSE !== ($file = readdir($open_dir)) )   {
             if($file != "." && $file != ".." && $file!="index.html") { 
                $absolute_file =  $dir.'/'.$file;
                if(is_file($absolute_file))   {
                $afbeelding[] = $file;
                }
             }      
          }
       }
       $return = $afbeelding[rand(0,count($afbeelding))];
       $return = (!in_array($return, $shown)) ? $return : RandomBackground($dir);
       $shown[] .= $return;
       return ($return) ? $return :  RandomBackground($dir);
    }

    $image = RandomBackground($root);


    Waarom word mn array $shown niet aangevuld?
    super-muffinvrijdag 24 november 2006 @ 13:43
    moet je niet array_push gebruiken?

    werkt dit?
    1
    2
    3
    <?php
    array_push 
    ($shown$file);
    ?>
    ralfievrijdag 24 november 2006 @ 13:48
    quote:
    Op vrijdag 24 november 2006 05:00 schreef RiderXXX het volgende:
    Okay... maar ik wil nu alleen dat automatisch alle maanden (en jaren) die ingevuld zijn in de database tevoorschijn komen... dus als er iets niet is toegevoegd voor december 2006, moet die maand niet weergegeven worden... maar die van januari 2007 weer wel, als daar iets voor is toegevoegd...
    even ter voorbeeld:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <?php
    $result
    =mysql_query("SELECT naam,MONTHNAME(datum) as month,YEAR(datum) as year FROM albums ORDER BY datum") or die(mysql_error());
    $curr=array(-1,-1);

    while(
    $row=mysql_fetch_assoc($result)) {
            if (
    $curr[0]!=$row['month'] || $curr[1]!=$row['year']) {
                    echo 
    "<p><br/></p><b>{$row['month']} {$row['year']}</b><br/>";
                    
    $curr=array($row['month'],$row['year']);
            }
            echo 
    "ARTIEST: {$row['naam']}<br/>";
    }
    ?>
    Tis echt niet zo moeilijk

    @Darkomen:

    $array[]="bla" niet $array[].="bla" (denk ik, enige wat ik zo gauw heb gezien)
    Darkomenvrijdag 24 november 2006 @ 13:56
    Nee, sorry heb het al gevonden, brainfart, ik roep die functie maar 1 keer aan.... refresh, nog een keer.....
    Swetseneggerzondag 26 november 2006 @ 13:01
    Waarom tekent dit meer dan 5 karakters:

    1
    2
    3
    4
    5
    6
    7
    <?php
    for($i=1; $i<5; $i++){
        
    $left=$i*10;
        
    $text=substr ($ResultStr, 0, $i);
        
    imagettftext($NewImage, 10, mt_rand(-20,20), $left, 15, $TextColor, $font, $text);
    }
    ?>

    Het lijkt wel of hij 5 keer de volledige $ResultStr tekent
    Swetseneggerzondag 26 november 2006 @ 13:17
    dom dom dom, de substr vars verkeerd om
    Swetseneggerzondag 26 november 2006 @ 13:28
    Toch nog een probleempje. Hoe kan ik een random getal krijgen tussen twee tekenreeksen zonder the obvious lappen code?

    Dus een random getal tussen bv 0-10 OF 15-25
    SuperRembozondag 26 november 2006 @ 13:48
    rand() en mt_rand() hebben toch al een min en max parameter?
    1 $r = rand(15, 25);
    Swetseneggerzondag 26 november 2006 @ 14:03
    quote:
    Op zondag 26 november 2006 13:48 schreef SuperRembo het volgende:
    rand() en mt_rand() hebben toch al een min en max parameter?
    [ code verwijderd ]
    Ja, maar ik wil dus een random getal uit 2 van die reeksen. Ik heb nu dit, maar dat vind ik een beetje knoeien eigenlijk

    1
    2
    3
    4
    5
    6
    7
    8
    <?php
    $reeks
    =mt_rand(1,2);
        if(
    $reeks==1){
            
    $anglemt_rand(0,15);
        }else{
            
    $anglemt_rand(345,360);
        }
    ?>


    Maar goed, m'n captcha werkt :).
    JeRazondag 26 november 2006 @ 14:15
    Tja, zoiets kun je natuurlijk wel veralgemeniseren. Maar of je er iets mee opschiet?

    1
    2
    3
    4
    $range = 10;
    $offsets = array(0, 15);
    $offset = $offsets[array_rand($offsets)];
    $angle = mt_rand($offset, $offset + $range);
    Swetseneggerzondag 26 november 2006 @ 14:35
    @JeRa, nee precies.
    JeRazondag 26 november 2006 @ 14:45
    quote:
    Op zondag 26 november 2006 14:35 schreef Swetsenegger het volgende:
    @JeRa, nee precies.
    Het is natuurlijk wel zo dat als je meerdere ranges introduceert (6 ofzo) je dan nog steeds maar 4 regels hebt. Maar kijk maar, succes met je captcha
    ralfiezondag 26 november 2006 @ 15:00
    1
    2
    3
    <?php
    $angle
    =($x=mt_rand(0,30))>15?$x+330:$x;
    ?>

    één regel, één randomisatie :)
    Swetseneggerzondag 26 november 2006 @ 15:00
    quote:
    Op zondag 26 november 2006 14:45 schreef JeRa het volgende:

    [..]

    Het is natuurlijk wel zo dat als je meerdere ranges introduceert (6 ofzo) je dan nog steeds maar 4 regels hebt. Maar kijk maar, succes met je captcha
    Voor future reference is het wel handig
    Swetseneggerzondag 26 november 2006 @ 15:03
    quote:
    Op zondag 26 november 2006 15:00 schreef ralfie het volgende:

    [ code verwijderd ]

    één regel, één randomisatie
    Feitelijk is dit alleen een andere if notatie
    En precies zo'n stukje code dat je over een jaar een kwartier aan het puzzelen bent om uit te vinden wat je aan het doen bent geweest en waarom.
    JeRazondag 26 november 2006 @ 15:05
    quote:
    Op zondag 26 november 2006 15:00 schreef ralfie het volgende:

    [ code verwijderd ]

    één regel, één randomisatie
    En één onleesbare meuk als je er later eens naar terugkijkt
    ralfiezondag 26 november 2006 @ 15:11
    quote:
    Op zondag 26 november 2006 15:05 schreef JeRa het volgende:

    [..]

    En één onleesbare meuk als je er later eens naar terugkijkt
    niet voor mij, ik ben gewend met onleesbare meuk te werken (handschrift)
    qu63zondag 26 november 2006 @ 15:20
    quote:
    Op zondag 26 november 2006 15:11 schreef ralfie het volgende:

    [..]

    niet voor mij, ik ben gewend met onleesbare meuk te werken (handschrift)
    dan zou ik het ook moeten kunnen snappen, en dat lukt me dus echt niet
    Swetseneggerzondag 26 november 2006 @ 16:15
    quote:
    Op zondag 26 november 2006 15:20 schreef qu63 het volgende:

    [..]

    dan zou ik het ook moeten kunnen snappen, en dat lukt me dus echt niet :D
    Je snapt deze niet?
    1$angle=($x=mt_rand(0,30))>15?$x+330:$x;
    SuperRembozondag 26 november 2006 @ 17:00
    quote:
    Op zondag 26 november 2006 16:15 schreef Swetsenegger het volgende:

    [..]

    [ code verwijderd ]
    Maar om gelijkwaardig te zijn met de code die je eerder gaf zou het dit moeten zijn :P

    1$angle = ($x = mt_rand(0, 31)) > 15 ? $x + 329 : $x;
    Swetseneggerzondag 26 november 2006 @ 17:49
    quote:
    Op zondag 26 november 2006 17:00 schreef SuperRembo het volgende:

    [..]

    Maar om gelijkwaardig te zijn met de code die je eerder gaf zou het dit moeten zijn
    [ code verwijderd ]
    purist.
    Xevorzondag 26 november 2006 @ 23:26
    Ik ben al een tijdje hiermee bezig en ik kom er maar niet uit.

    Ik heb twee pagina's.

    Verzend.php
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <?php
            
    include("config/mysql.php");
            
    $query ="SELECT gNaam FROM gebruikers WHERE NOT id=1";
            
    $resultaat mysql_query($query) or die("Query: ".$query." Fout: ".mysql_error());
           
            echo 
    "<form action=verzend3.php method=POST><select name=gebruikers>";
            while (
    $record mysql_fetch_array($resultaat))
            {
                echo 
    "<option value=user>".$record["gNaam"]."</option>";
            }
            echo 
    "</select>";
            echo 
    "<input type='submit'>";
            echo 
    "</form>";
    ?>


    Die laat dus een dropdown box zien met alle usernames (gNaam) behalve die met id=1. Wanneer er geklikt wordt hoor ik in pagina verzend3.php de gegevens van die user te zien te krijgen maar ik krijg maar elke keer een leeg scherm.

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <?php
    //verbinding met de database maken
    include("config/mysql.php");

       
    $sql "SELECT * FROM gebruikers WHERE gNaam = '" $_POST['user'] . "'";
        
    $resultaat mysql_query($sql) or die("Query: ".$query." Fout: ".mysql_error());
         while (
    $record mysql_fetch_assoc($resultaat)) {
          echo 
    "<b>".$record['gNaam']."</b>
             "
    .$record['id']." ".$record['achternaam']."<br>n";
             }

     
    ?>

    Het probleem ligt bij '" . $_POST['user'] . "'"; maar ik zou niet weten wat ik hieraan moet veranderen. Als ik dit verander in een username en verzend3.php open dan krijg ik de gegevens wel gewoon te zien, maar hij moet het met het selecteren van een naam uit een dropdown box ook doen.

    Iemand enig idee wat er mis is?

    [ Bericht 26% gewijzigd door Xevor op 26-11-2006 23:33:08 ]
    mscholzondag 26 november 2006 @ 23:29
    je geeft bij iedere optie in "gebruikers" de waarde user mee
    verander dit eens in het ID ofzo??
    Xevorzondag 26 november 2006 @ 23:33
    Geen verschil
    Cageonzondag 26 november 2006 @ 23:35
    Dit moet beter werken?

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <?php
            
    include("config/mysql.php");
            
    $query ="SELECT gNaam, id FROM gebruikers WHERE NOT id=1";
            
    $resultaat = mysql_query($query) or die("Query: ".$query." Fout: ".mysql_error());
           
            echo
    "<form action=verzend3.php method=POST><select name=gebruikers>";
            while (
    $record = mysql_fetch_array($resultaat))
            {
                echo
    "<option value='". $record["gNaam"] ."'>".$record["gNaam"]."</option>";
            }
            echo
    "</select>";
            echo
    "<input type='submit'>";
            echo
    "</form>";
    ?>



    Daarbij zou ik als value de id van de user mee geven, dat is sneller bij het opzoeken in de database op de vervolg pagina.
    (Moet je die ook aanpassen dat die een gebruiker opzoekt aan de hand van zijn id)
    Xevorzondag 26 november 2006 @ 23:47
    Thanks dat werkt inderdaad na het veranderen van gNaam = '" . $_POST['user'] . "'"; in gNaam = '" . $_POST['gebruikers'] . "'";. (dat was ook een fout)

    Ik zal ook je tip volgen
    Darkomenmaandag 27 november 2006 @ 10:32
    Webshop met voorraad functie gezocht.

    Jongens ik moet over een tijdje een webshop opzetten voor een goede vriend van me, dit moet allemaal officeel.
    Het moet dus een webshop worden met voorraad systeem zodat hij goed kan bijhouden wat er nog op voorraad is.

    Ik ga dit niet zelf bouwen aangezien er genoeg goede systemen zijn, het enige wat ik zal toevoegen is een CMS gedeelte voor de rest van de site.
    Dit wil ik dan wel via dezelfde login als de webshop laten werken.

    Ik ben wel bezig met wat aan het bekijken bij hotscripts, maar welke zouden jullie aanraden?
    http://www.in-commerce.net/index.html
    395$ coupons, volgens mij alleen als module
    http://digishop.sumeffect.com/index.php
    mooi, netzo duur, wel reports, standalone,
    http://www.ecommercetemplates.com/dreamweaverecommerce.asp
    Ook mooi, allen vondt ik het niet duidelijk of het nu een systeem was of alleen templatse?

    [ Bericht 4% gewijzigd door Darkomen op 27-11-2006 10:53:47 ]
    Xtr3mEmaandag 27 november 2006 @ 13:31
    Mensen wie kan mij helpen..?

    Ik wil uit een textarea (hierin worden X aantal emailadressen uit de datatbase gehaald onderelkaar)
    kopieren naar het clipboard met de "Kopieer" knop die eronder hangt.

    Ik heb al veel gezocht op copy to clipboard uit een textarea maar kon niet veel nuttigs vinden..

    Heeft er iemand enig idee hoe dit kan?

    b.v.d.
    Darkomenmaandag 27 november 2006 @ 13:41
    Dat is javascript Xtreme
    en daar zijn duizenden voorbeelden van te vinden die dat doen.
    http://www.dynamic-tools.net/toolbox/copyToClipboard/

    http://www.google.nl/search?hl=nl&q=javascript++copy+to+clipboard++textarea&meta=

    [ Bericht 22% gewijzigd door Darkomen op 27-11-2006 13:56:42 ]
    Xtr3mEmaandag 27 november 2006 @ 13:51
    bedankt voor je reactie
    papernotemaandag 27 november 2006 @ 15:14
    quote:
    Op maandag 27 november 2006 10:32 schreef Darkomen het volgende:
    Webshop met voorraad functie gezocht.

    Jongens ik moet over een tijdje een webshop opzetten voor een goede vriend van me, dit moet allemaal officeel.
    Het moet dus een webshop worden met voorraad systeem zodat hij goed kan bijhouden wat er nog op voorraad is.

    Ik ga dit niet zelf bouwen aangezien er genoeg goede systemen zijn, het enige wat ik zal toevoegen is een CMS gedeelte voor de rest van de site.
    Dit wil ik dan wel via dezelfde login als de webshop laten werken.

    Ik ben wel bezig met wat aan het bekijken bij hotscripts, maar welke zouden jullie aanraden?
    http://www.in-commerce.net/index.html
    395$ coupons, volgens mij alleen als module
    http://digishop.sumeffect.com/index.php
    mooi, netzo duur, wel reports, standalone,
    http://www.ecommercetemplates.com/dreamweaverecommerce.asp
    Ook mooi, allen vondt ik het niet duidelijk of het nu een systeem was of alleen templatse?
    http://www.oscommerce.nl/

    Dat schijnt een hele goede, gratis webwinkel te zijn.
    Darkomenmaandag 27 november 2006 @ 15:31
    Dat is er idd ook eentje, kwam niet meer op die url
    Swetseneggermaandag 27 november 2006 @ 15:40
    quote:
    Op maandag 27 november 2006 10:32 schreef Darkomen het volgende:
    Webshop met voorraad functie gezocht.

    Jongens ik moet over een tijdje een webshop opzetten voor een goede vriend van me, dit moet allemaal officeel.
    Het moet dus een webshop worden met voorraad systeem zodat hij goed kan bijhouden wat er nog op voorraad is.

    Ik ga dit niet zelf bouwen aangezien er genoeg goede systemen zijn, het enige wat ik zal toevoegen is een CMS gedeelte voor de rest van de site.
    Dit wil ik dan wel via dezelfde login als de webshop laten werken.

    Ik ben wel bezig met wat aan het bekijken bij hotscripts, maar welke zouden jullie aanraden?
    http://www.in-commerce.net/index.html
    395$ coupons, volgens mij alleen als module
    http://digishop.sumeffect.com/index.php
    mooi, netzo duur, wel reports, standalone,
    http://www.ecommercetemplates.com/dreamweaverecommerce.asp
    Ook mooi, allen vondt ik het niet duidelijk of het nu een systeem was of alleen templatse?
    Gewoon zelf opzetten, leer je veel van
    Heb ik ook gedaan (minus het voorraad systeem)
    Darkomenmaandag 27 november 2006 @ 16:06
    Als het voor mezelf was zou ik het graag gaan proberen, maar ik heb nu niet de tijd en de kennis om een webshop te bouwen
    Het is ook voor een proffesionele site, dus ik wil niet dat ik er na een aantal maanden achterkom dat er gevaarlijk bugjes in zitten.
    Swetseneggermaandag 27 november 2006 @ 17:04
    quote:
    Op maandag 27 november 2006 16:06 schreef Darkomen het volgende:
    Als het voor mezelf was zou ik het graag gaan proberen, maar ik heb nu niet de tijd en de kennis om een webshop te bouwen
    Het is ook voor een proffesionele site, dus ik wil niet dat ik er na een aantal maanden achterkom dat er gevaarlijk bugjes in zitten.
    Die van mij is ook professioneel in gebruik en heeft afgelopen jaar een kleine ton aan omzet gedraaid
    Maar ik ben 'm wel continue aan het monitoren.