Likes Likes:  0
Resultaten 1 tot 10 van de 10
Geen
  1. #1
    Robert van Hall
    controle op dubbele invoer, hoe gaat dit?
    Gast
    n/a Berichten
    Berichten zijn liked



    Thread Starter

    controle op dubbele invoer, hoe gaat dit?

    Geacht Forum,

    Niet in het minst door jullie sympathieke hulp ben ik inmiddels toe aan het
    stadium: controle op de invoer van de door de gebruiker (d.m.v. een form met
    als action een voegtoe.php) ingevulde velden.

    Hoe, en in welk stadium kun je het beste controleren of (een gedeelte van,
    of het totaal van) de data al in de database zijn opgenomen? Ik zou dit
    graag willen implementeren om dubbele invoer te vermijden.

    Alvast bedankt voor de tips!
    Robert



  2. #2
    Maarten Wierda
    controle op dubbele invoer, hoe gaat dit?
    Gast
    n/a Berichten
    Berichten zijn liked



    Thread Starter

    Re: controle op dubbele invoer, hoe gaat dit?

    Robert van Hall wrote:

    > Hoe, en in welk stadium kun je het beste controleren of (een gedeelte van,
    > of het totaal van) de data al in de database zijn opgenomen? Ik zou dit
    > graag willen implementeren om dubbele invoer te vermijden.


    Maak je gebruik van een database? Het veiligste is om de betreffende
    kolom in te stellen op 'unique' o.i.d. In MySQL is dat i.i.g. mogelijk.

    Natuurlijk kun je ook met een PHP-scriptje dubbele waarden controleren
    maar dit is onveiliger omdat het dan nog steeds mogelijk is om dubbele
    waarden in te voeren wanneer je exact tegelijk iets aan de database wilt
    toevoegen.

    --
    Cheers, Maarten Wierda

    "Music is first, lyrics are secondary."

  3. #3
    Rene Pijlman
    controle op dubbele invoer, hoe gaat dit?
    Gast
    n/a Berichten
    Berichten zijn liked



    Thread Starter

    Re: controle op dubbele invoer, hoe gaat dit?

    Robert van Hall:
    >Hoe, en in welk stadium kun je het beste controleren of (een gedeelte van,
    >of het totaal van) de data al in de database zijn opgenomen? Ik zou dit
    >graag willen implementeren om dubbele invoer te vermijden.


    In de transactie waarin de data worden ingevoerd. Als blijkt dat de invoer
    dubbel is laat je de transactie falen (rollback).

    Over hoe dat precies moet is zonder informatie over database, datamodel en
    transactiemodel weinig zinnigs te zeggen.

    --
    René Pijlman

    Wat wil jij leren? http://www.leren.nl

  4. #4
    Robert
    controle op dubbele invoer, hoe gaat dit?
    Gast
    n/a Berichten
    Berichten zijn liked



    Thread Starter

    Re: controle op dubbele invoer, hoe gaat dit?

    In article <3f86b57d$0$61272$e4fe514c@dreader3.news.xs4all.nl >,
    rvanhall@bmb-bbm.org says...
    > Geacht Forum,
    >
    > Niet in het minst door jullie sympathieke hulp ben ik inmiddels toe aan het
    > stadium: controle op de invoer van de door de gebruiker (d.m.v. een form met
    > als action een voegtoe.php) ingevulde velden.
    >
    > Hoe, en in welk stadium kun je het beste controleren of (een gedeelte van,
    > of het totaal van) de data al in de database zijn opgenomen? Ik zou dit
    > graag willen implementeren om dubbele invoer te vermijden.
    >
    > Alvast bedankt voor de tips!
    > Robert
    >
    >
    >

    Dag Maarten en Rene,

    Hier is wat meer info: Ik gebruik inderdaad een MySql database.
    Mijn voegtoe.php, dat ik draai als action na het invullen van een form,
    plak ik hieronder.
    Waar kan ik het beste de check op unieke gegevens inpassen, en hoe komt
    dat er dan in het ideale geval uit te zien?

    Bedankt!
    Robert
    (die niet gedacht had dattie nog eens meer tijd zou doorbrengen op de
    groep server-side dan op ontwerp, en PHPCoder de laatste tijd meer
    gebruikt dan Dreamweaver...
    ;-)
    )

    <?php

    //verbind met de database server en kies 'personeel'
    include 'connect.php';

    //de doorgegeven POST-variabelen ophalen
    $achternaam = $_POST["achternaam"];
    $tussenvoegsel = $_POST["tussenvoegsel"];
    $voornaam = $_POST["voornaam"];
    $telefoonnummer = $_POST["telefoonnummer"];

    //als $achternaam, $voornaam en $telefoonnummer bestaan...
    if ($achternaam && $voornaam && $telefoonnummer)
    {

    //een nieuwe rij aan tabel 'gegevens' toevoegen
    $actie = mysql_query("INSERT INTO gegevens (id, achternaam,
    tussenvoegsel,
    voornaam, telefoonnummer)
    VALUES (NULL, '$achternaam', '$tussenvoegsel', '$voornaam',
    '$telefoonnummer')")
    or die("Foutje bij toevoegen");

    echo "<h2 class=\"kopjeoranje\">Naam en telefoonnummer zijn
    toegevoegd</h2>";
    }
    else
    {
    echo "Vul zowel achternaam, voornaam en telefoonnummer in ";
    }
    ?>


  5. #5
    Rene Pijlman
    controle op dubbele invoer, hoe gaat dit?
    Gast
    n/a Berichten
    Berichten zijn liked



    Thread Starter

    Re: controle op dubbele invoer, hoe gaat dit?

    Robert:
    > $actie = mysql_query("INSERT INTO gegevens (id, achternaam,

    ^^
    Waar komt deze id vandaan, hoe krijgt hij zijn waarde en wat is de
    betekenis van de betreffende kolom in de database?

    --
    René Pijlman

    Wat wil jij leren? http://www.leren.nl

  6. #6
    Robert
    controle op dubbele invoer, hoe gaat dit?
    Gast
    n/a Berichten
    Berichten zijn liked



    Thread Starter

    Re: controle op dubbele invoer, hoe gaat dit?

    In article <1e2eovsp11j453on2505oqr7t95cfi8oop@4ax.com>,
    reply.in.the.newsgroup@my.address.is.invalid says...
    > Robert:
    > > $actie = mysql_query("INSERT INTO gegevens (id, achternaam,

    > ^^
    > Waar komt deze id vandaan, hoe krijgt hij zijn waarde en wat is de
    > betekenis van de betreffende kolom in de database?
    >
    > --
    > René Pijlman
    >
    > Wat wil jij leren? http://www.leren.nl
    >

    Beste Rene,

    Hier is een stukje uit de php die de db aanmaakt:

    // maak een tabel met de naam gegevens
    $actie = mysql_query("CREATE TABLE gegevens (
    id int(11) auto_increment,
    achternaam varchar(80),
    tussenvoegsel varchar (80),
    voornaam varchar (80),
    telefoonnummer varchar(80),
    PRIMARY KEY (id),
    FULLTEXT tekstindex (achternaam))")
    or die(mysql_error());

    Is dit voldoende informatie?

    Bedankt dat je wil helpen,
    Robert

  7. #7
    Daniel Tryba
    controle op dubbele invoer, hoe gaat dit?
    Gast
    n/a Berichten
    Berichten zijn liked



    Thread Starter

    Re: controle op dubbele invoer, hoe gaat dit?

    Rene Pijlman <reply.in.the.newsgroup@my.address.is.invalid> wrote:
    > Robert:
    >> $actie = mysql_query("INSERT INTO gegevens (id, achternaam,

    > ^^
    > Waar komt deze id vandaan, hoe krijgt hij zijn waarde en wat is de
    > betekenis van de betreffende kolom in de database?


    Neemaar Rene, je bent SQL toch niet verleerd?

    Er stond:
    "INSERT INTO gegevens (id, achternaam, tussenvoegsel, voornaam, telefoonnummer)
    VALUES (NULL, '$achternaam', '$tussenvoegsel', '$voornaam', '$telefoonnummer')")

    Aan id wordt de waarde NULL gegeven. Naar betekenis kunnen we gissen, ik
    vermoed een auto increment uniek nummer.

    --

    Daniel Tryba


  8. #8
    Daniel Tryba
    controle op dubbele invoer, hoe gaat dit?
    Gast
    n/a Berichten
    Berichten zijn liked



    Thread Starter

    Re: controle op dubbele invoer, hoe gaat dit?

    Robert <xipe@spamcop.net> wrote:
    > Waar kan ik het beste de check op unieke gegevens inpassen, en hoe komt
    > dat er dan in het ideale geval uit te zien?


    > $actie = mysql_query("INSERT INTO gegevens (id, achternaam, tussenvoegsel,
    > voornaam, telefoonnummer) VALUES (NULL, '$achternaam', '$tussenvoegsel',
    > '$voornaam', '$telefoonnummer')")


    Wanneer bestempel jij iets als uniek? Is een telefoonnummer uniek (lijkt
    me niet)? Is een combinatie van alle velden uniek (dat lijkt er al meer
    op)? Je zou dan bv een unieke rij met een hash van alle "unieke" velden
    kunnen opnemen in de database, dan rest nog slechts het probleem van
    spaties, case en tikfouten.

    --

    Daniel Tryba


  9. #9
    Rene Pijlman
    controle op dubbele invoer, hoe gaat dit?
    Gast
    n/a Berichten
    Berichten zijn liked



    Thread Starter

    Re: controle op dubbele invoer, hoe gaat dit?

    Daniel Tryba:
    >Neemaar Rene, je bent SQL toch niet verleerd?


    Nee, te hard gewerkt vandaag :-/ Ik zag een $id die ik nergens terugvond
    en die bovendien - zoals je fijntjes opmerkt - op de verkeerde plaats zou
    staan.

    Ik dacht nog, zal ik nog eens goed kijken of mijn posting wel helemaal
    klopt? Maar ach, waarom zou je dat doen? Als uitkomt dat het niet klopt
    dan kun je altijd nog afzien van het vragen van toestemming.

    --
    René Pijlman

    Wat wil jij leren? http://www.leren.nl

  10. #10
    Rene Pijlman
    controle op dubbele invoer, hoe gaat dit?
    Gast
    n/a Berichten
    Berichten zijn liked



    Thread Starter

    Re: controle op dubbele invoer, hoe gaat dit?

    Robert:
    > id int(11) auto_increment,

    [...]
    > PRIMARY KEY (id),


    Yep, zo gaat een insert inderdaad altijd lukken.

    Je hebt een conceptueel probleem. Een client zegt via het web: voeg deze
    gegevens toe. Maar daarbij zit geen unieke identificatie van de
    transactie, van het request of wat dan ook. Hoe zou je op de server willen
    beslissen of de toe te voegen gegevens "dubbel" zijn?

    Stel dat is de combinatie <achternaam, tussenvoegsel, voornaam>. Dan maak
    je op die combinatie een primary key of unique key (weet effe niet uit
    mijn hoofd of MySQL dat kent) en dan zou een herhaalde transactie falen.

    Bij sommige applicaties wordt de beslissing geheel in handen van de
    gebruiker gelegd. In mijn boekhoudpakket is elke factuur er één. Als ik
    een factuur 10 keer invoer, dan zijn het 10 facturen.

    Bij webapplicaties wordt er soms voor gekozen elk form server-side te
    genereren met een unieke id, zodat het maximaal 1 keer kan worden gesubmit
    (zolang de client het formulier niet manipuleert door de id te
    veranderen). Dat kan een goede oplossing zijn, maar betekent wel dat je de
    hele zooi server-side moet genereren en dat je het verwerken van een
    formulier moet registreren in de database.

    En soms wordt ervoor gekozen de gebruiker een unieke identificatie te
    vragen. Verzint de gebruiker een bestaande, dan faalt de transactie. Maar
    niets verhindert één gebruiker om voor zichzelf 10 idenfiticaties te
    verzinnen. Hotmail werkt bijvoorbeeld zo.

    Het is dus een ontwerpkeuze, niet zozeer een regeltje code dat wij je
    kunnen aanreiken om ergens in te pluggen.

    --
    René Pijlman

    Wat wil jij leren? http://www.leren.nl

Webhostingtalk.nl

Contact

  • Rokin 113-115
  • 1012 KP, Amsterdam
  • Nederland
  • Contact
© Copyright 2001-2026 Webhostingtalk.nl.
Web Statistics