Hackerboard Wiki HaboBlog
Hackerboard bei Facebook Hackerboard bei Google+ Hackerboard bei Twitter

[HaBo]

 
(Web-) Design und webbasierte Sprachen Tipps & Tricks, Designabgleich, HTML & Javascript, Flash, ASP, PHP, Perl/CGI...

PHP: Jedem User ohne Anmeldung eine ID zuweisen und eigenen Counter

Diskussion: PHP: Jedem User ohne Anmeldung eine ID zuweisen und eigenen Counter im Forum (Web-) Design und webbasierte Sprachen, in der Kategorie Web, Network & Multimedia Palace; Anzeige Hallo Leute, folgendes Problem: Ich will jedem Besucher meiner Seite einen Counter zuweisen, der pro Klicks auf einen Link ...

Antwort
Alt 09.05.07, 18:27   #1 (permalink)
 
Benutzerbild von $oul
 
Registriert seit: 19.12.04
$oul Leistung: Z3
$oul eine Nachricht über ICQ schicken
Likes: 2
Standard PHP: Jedem User ohne Anmeldung eine ID zuweisen und eigenen Counter

Anzeige

Hallo Leute,
folgendes Problem: Ich will jedem Besucher meiner Seite einen Counter zuweisen, der pro Klicks auf einen Link den der User bekommt, der eine ID enthält, um eins verringert wird. Das ganze lässt sich jedoch meinerseits nur schwer realisieren, ich komm einfach nicht drauf, wie ich das Problem angehen soll. Momentan habe ich diesen Code:

PHP-Code:
<?
    
include 'config.php';

    @
mysql_connect(MYSQL_HOSTMYSQL_USERMYSQL_PASS) OR die(mysql_error());
    
mysql_select_db(MYSQL_DATABASE) OR die(mysql_error());
    
    
$ip=$_GET['id'];
    
$date=date("d.m.Y - H:i:s");
    
    
$sql "SELECT IP,ClickCount FROM ".IDTable." WHERE IP='".$ip."';";
    
$resulta mysql_query($sql) OR die(mysql_error());
    while(
$row mysql_fetch_assoc($resulta))
        {
            
$ccnt $row['ClickCount'];
            echo 
"Dir fehlen noch ".$ccnt." Klicks!<p>";
            echo 
$ccnt." Klicks<p>";
            echo 
$ip."<p>";
        }
    
$ccnt=$ccnt-1;
    
    
$sql "SELECT IP,ClickCount FROM ".IDTable." WHERE IP='".$ip."';";
    
$resulta mysql_query($sql) OR die(mysql_error());
    
    if (
resulta=="Resource id #6")
    {
        
$realip=getenv("REMOTE_ADDR");
        
$sql="INSERT INTO ".IDTable." (IP,Datum,ClickCount) VALUES ('$realip','$date','$ccnt')";
        
$resultb = @mysql_query($sql);
    }
    else
    {
        
$sql="UPDATE ".IDTable." SET ClickCount=".$ccnt." WHERE IP='".$ip."';";
        
$resultc = @mysql_query($sql);
    }
?>
Die if-Anweisung klappt komischerweise auch nicht.
Meine grundsätzliche Frage ist: Wie kann ich das beschriebene realisieren?

mfg soul
__________________
Der eigene Wille müsste stets ein wenig mächtiger sein, als es das eigene Selbst ist.
Aber Wunschdenken stellt ein Risiko dar und so etwas können wir uns in einem Weltkapitalismus nicht leisten.
$oul ist offline   Mit Zitat antworten
Alt 09.05.07, 18:40   #2 (permalink)
Member of Honour
 
Registriert seit: 02.10.01
Indi Leistung: Z3
Likes: 0
Standard

mal abgesehen davon, dass dir das $-Zeichen in der if-abfrage fehlt, prüft man eine sql-ergebnis-menge im normalfall nicht mit "resource id #6" ab. Besser wäre da zb. mysql_num_rows() zu verwenden.

Nachtrag:
Desweiteren macht es wenig Sinn bei unregistrierten Usern die IP-Adresse zu verwenden, weil dadurch Ergebnisse verfälscht werden können, wenn sich mehrere User in einem Netzwerk auf deiner Seite bewegen, aber alle dann die gleiche IP-Adresse haben.
Indi ist offline   Mit Zitat antworten
   
HaBOT
 
- Anzeige -

Werbung ist gerade online    
Alt 09.05.07, 23:39   #3 (permalink)
 
Registriert seit: 14.03.07
.smash Leistung: Facit NTK
Likes: 0
Standard

Code:
    $ip=$_GET['id'];
    $date=date("d.m.Y - H:i:s");
    
    $sql = "SELECT IP,ClickCount FROM ".IDTable." WHERE IP='".$ip."';";

Code:
        $sql="UPDATE ".IDTable." SET ClickCount=".$ccnt." WHERE IP='".$ip."';";
        $resultc = @mysql_query($sql);

Ich würde mal sagen, dass sind 2 sehr einfach ausnutzbare sql-injections
So wie es scheint, kann man gezielt bei einem selbst oder bei anderen countern die klickanzahl beliebig editieren...

Ist zwar jetzt keine antwort auf diene Frage, aber wenn du einen richtigen service bieten willst, solltest genauso auf die sicherheit achten.


mfg
.smash ist offline   Mit Zitat antworten
Alt 21.05.07, 09:06   #4 (permalink)
 
Registriert seit: 03.01.07
Henni Leistung: Facit NTK
Henni eine Nachricht über ICQ schicken
Likes: 0
Standard

Wie ich das aus dem Code sehen kann, hast du in der Variable "$ip" die ID gespeichert...

Mal davon abgesehen der HTML Code ist daraus so wie ich es sehen kann auch net ganz richtig^^

[quote]
PHP-Code:
     while($row mysql_fetch_assoc($resulta))         {
            
$ccnt $row['ClickCount'];
            echo 
"Dir fehlen noch ".$ccnt." Klicks!<p>";
            echo 
$ccnt." Klicks<p>";
            echo 
$ip."<p>";
        } 
Hast du da etwa 3 mal einen P Tag geöffnet?Funktioniert der Code jetzt eigentlich? sonst würde ich eigentlich auch nur noch das Finden was schon gesagt wurde^^mfgHenni
Henni ist offline   Mit Zitat antworten
Alt 21.05.07, 14:54   #5 (permalink)
 
Benutzerbild von Eydeet
 
Registriert seit: 14.04.06
Eydeet Leistung: Facit NTK
Likes: 4
Standard

Musst du eigentlich unbedingt MySQL verwenden? Mit Sessions würde es nämlich viel einfacher funktionieren:
PHP-Code:
<?php
session_start
();
define("CLICKS_REQUIRED"10);

if (!isset(
$_SESSION["clicksLeft"]))
{
    
$_SESSION["clicksLeft"] = CLICKS_REQUIRED;
}
else
{
    --
$_SESSION["clicksLeft"];
}
?>
<p>Dir fehlen noch <?=$_SESSION["clicksLeft"]?> Klicks.</p>
Eydeet ist offline   Mit Zitat antworten
Antwort
   
- Anzeige -

Werbung ist gerade online    

[HaBo] » Web, Network & Multimedia Palace » (Web-) Design und webbasierte Sprachen » PHP: Jedem User ohne Anmeldung eine ID zuweisen und eigenen Counter
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind aus
Pingbacks sind aus
Refbacks sind aus


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Autostart ohne Registry vor Anmeldung Nick H. Windows 3 07.08.06 22:09
Suche : Useronline Rekord counter ohne Mysql XeonX (Web-) Design und webbasierte Sprachen 0 21.08.04 22:04
Counter ohne JS-Code Flou (Web-) Design und webbasierte Sprachen 2 05.12.02 16:07
Counter ohne JS-Code Flou Internet Allgemein 1 27.08.02 03:51


1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61