kostenloser Webspace werbefrei: lima-city


Wert bei Klick einmalig erhöhen

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    ultimate-bravery

    ultimate-bravery hat kostenlosen Webspace.

    Hallo zusammen,

    bin mir nicht sicher ob das jetzt ins PHP oder ins Javascript Forum gehört, aber ich versuche es mal hier.

    Also ich habe ein paar Zahlen in einer Datenbank stehen und diese werden auf einer Seite ausgegeben. Beim Klick auf eine Zahl soll diese Zahl um eins erhöht werden. Sowohl auf der Seite als auch in der Datenbank. Dafür habe ich folgenden Code:

    Onclick Event:

    function voten(index, id1, id2) {
    	$.get('vote.php?id1='+id1+'&id2='+id2, function(data) {
    		$('#vote_'+index).html(data);
    	})
    }


    vote.php:

    <?php
    include"verbindung.php";
    if(isset($_GET['id1']) && isset($_GET['id2'])){
    	$id1 = htmlspecialchars($_GET['id1']);
    	$id2 = htmlspecialchars($_GET['id2']);
    	$page = $mysqli->query("SELECT a".$id1." FROM data WHERE id='$id2';");
    	if ($zeile = $page->fetch_array()) {
    		$anzahl = $zeile['a'.$id1];
    		$anzahl++;
    		$aendern = $mysqli->query("UPDATE data SET a".$id1."='$anzahl' WHERE id='$id2'");
    		echo"<center>".$anzahl."</center>";
    	}	
    }
    ?>


    Jetzt möchte ich es aber so haben, dass jeder Besucher diesen Wert maximal 1 mal erhöhen darf. Also er soll nicht ständig auf die Zahl klicken können. Wie macht man das am besten? Gibt es eine Möglichkeit ohne die IP Adressen in einer extra Tabelle zu speichern?

    Danke schonmal für die Hilfe.
    Viele Grüße
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. Wie macht man das am besten?


    Wie wäre es mit einer Lösung über Cookies?
    Der Benutzer ist nicht eingeloggt auf der Seite nehme ich an. Sonst bestünde dein Problem ja nicht in dieser Art?

    Gibt es eine Möglichkeit ohne die IP Adressen in einer extra Tabelle zu speichern?

    Datenschutz? ;)

  4. Autor dieses Themas

    ultimate-bravery

    ultimate-bravery hat kostenlosen Webspace.

    Nein der Benutzer ist nicht eingeloggt. Ich habe es jetzt erstmal so gelöst, dass bei einem Klick die IP Adresse, ID1 und ID2 in einer Datenbank gespeichert werden. Dann wird bei einem Klick halt überprüft ob die IP Adresse schon zu den beiden IDs existiert.

    Ist jetzt zwar doch die Datenbank Lösung aber hat ja sonst niemand geantwortet. Weiß meinst du denn mit Datenschutz? Darf man keine IP Adressen in einer DB speichern oder was?
  5. IP Adresse, Browsereigenschaften, per Evercookie (Am besten auch noch per PHP Cookie) oder Canvasfingerprintig.

    Du kannst natürlich alles kombinieren. Dir muss bewusst sein, dass dies eines der heikelsten Themen ist:

    1) IP Adressen haben verschiedene Personen im gleichen Netzwerk die gleichen. Wird in Firmen bzw allgemeinen öffentlichen Gebäuden problematisch.
    2) Cookies können deaktiviert werden.
    3) JavaScript (Evercookie) Kann deaktiviert werden.

    Und die IP am besten als Hash speichern.

    Ausserdem ist das bei Nutzern allgemein nicht so erwünscht, vorallem Canvasfingerprinting, lass das am besten weg.

    Theoretisch kann ein User also trotzdem alle Einstellungen so getroffen haben, dass das ganze Problematisch wird. Da kannst du aber mit PHP abfragen ob er Cookies deaktiviert hat, wenn ja blendest du eine Meldung ein (Falls ein Vote schon vorhanden ist) dass es daran liegen könnte. Bei JavaScript das gleiche mit <noscript>

    Schlussendlich könntest du dann noch Accounts anbieten oder dir denken, wer das so eingestellt hat ist selbst schuld :P
    Dein onclick Event funktioniert aber sowieso nur mit JavaScript. Also wenn du die Seite sowieso so auslegen möchtest, dass das ohne nicht funktioniert sollte das mit Evercookie in den meisten Fällen hin hauen.

    Beitrag zuletzt geändert: 12.11.2014 18:46:00 von c143
  6. wenn der User kein Javascript aktiviert hat, dann einfach nicht zulassen das er das "voten" anklicken kann :smokin:

    hier mal ein Beispiel:
    <script type="text/javascript"><!-- Login nur wenn Javascript aktiviert -->
    	//<![CDATA[
    		document.write('<input type="submit" name="voten" value="voten">');
    	//]]>
    </script>
    <noscript>
    	Kein Voten m&#246;glich: JavaScript  = aus !<br>
    	Bitte aktivieren Sie JavaScript f&#252;r Ihren Internet-Browser!<br>
    	<a href="logout.php">Hier klicken, um erneut zu pr&#252;fen!</a>
    </noscript>

    :spammer:

    Beitrag zuletzt geändert: 13.11.2014 8:40:50 von dunkeltuten
  7. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!