Heyz mensen.

Ik ben opzoek naar een Anti Dubbelpost script.

Ik heb hier alleen nog nooit mee gewerkt dus het zou fijn zijn als er een kleine uitleg bij kan.

Bij voorbaart dank.

Mvg,

Tim Kampherbeek

[edit]

Gezien de inhoud van het bericht is deze verplaatst naar een andere sectie gezien het een script verzoek is.

moderator:
Danny Roelofs
[/edit]
Verschillende oplossingen mogelijk. Eén van de mogelijk oplossingen is;


<?php
    session_start(); // indien je dit nog niet doet
    if (!isset($_SESSION['laatstepost']))
    {
        // er is nog niks gepost;
        $_SESSION['laatstepost'] = 0;
    }
    if ((mktime()-$_SESSION['laatstepost']) < 5)
    {
        exit("Je kan maar één keer in de 5 seconden posten");
    }
    else
    {
        $_SESSION['laatstepost'] = mktime();
    }
    //    ... afhandeling van je post gaat hier verder
?>
Wanneer je het hebt over 'dubbelpost', komt er al snel een database bij kijken om de data op te slaan. Met een simpele UNIQUE-constraint is dubbele data eenvoudig te voorkomen, met een CHECK-constraint kun je nog veel meer zaken voorkomen. Net wat jij nodig hebt.
is het voor hier op phphulp?
dan wacht je best even tot de nieuwe versie er is, die zal dat niet meer hebben.
Dit script werkt niet.

Ik heb een script nodig dat als iemand refresht en dus een post uitvoert dat hij dan dus geen posts meer uitvoerd snap je?
Tim Kampherbeek schreef op 06.01.2008 18:42
Dit script werkt niet.

Bovenstaand script getest. Werkt.
Maar ik kan dan nogsteeds heel makkelijk dubbel posten, gewoon uitloggen (waarschijnlijk), want daar doe je (waarschijnlijk) session_destroy();, dan weer inloggen en spammen maar :)
Om Frank even aan te vullen.

Je hebt een topic ID, user ID en een bericht tekst als er twee of meer records met dezelfde waarde in de database zitten dan is het een dubbelpost.
Van deze kolommen maak je een unieke index.

Om wat ruimte te besparen en de index wat sneller te maken kun je van de bericht tekst een samenvatting maken met sha1().

Op deze manier zorg je ervoor dat een gebruiker niet twee keer een post met dezelfde tekst in een topic kan plaatsen.

[edit]De kolom user ID zou je ook kunnen veranderen door het IP adres. Voor als je gast gebruikers hebt.
Ook zou je de kolom user ID weg kunnen laten uit de index en het IP adres samen met de bericht tekst met sha1() kunnen hashen[/edit]
@Martijn!
Zo voorkom je dat iemand meer als twee keer een bericht plaatst per topic. Dat is een andere invulling van dubbel post.


@Tommy
Er zijn zo veel manieren om te omzeilen.
@Webmakerij:

Hoe bedoel je dat?

Iemand kan beste meerdere berichten in 1 topic zetten, alleen niet hetzelfde bericht.
Ik zat je post verkeerd te lezen

Reageren