Ergebnis 1 bis 10 von 11

Thema: Reload Tabelle -> INET_ATON()

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Avatar von jpwfour
    Registriert seit
    06.02.2008
    Beiträge
    3.717

    Reload Tabelle -> INET_ATON()

    Was mir grad noch einfällt was immer nervig ist nachträglich machen zu müssen, wär praktisch, wenn das Grundscript schon gleich die IP Adressen als Zahl in der Datenbank behandeln würde, dementsprechend die topframe_forced.php und die content/verdienen/klick4.php angepasst wäre.

    Nur mal so als Anhaltspunkt:

    [tableold=head]|Größe in KiloByte|Anzahl Einträge
    vorher:|6.316,84|53.750
    nachher:|3.386,08|53.458[/tableold]

    Man kann da also mächtig einsparen, nicht nur an Platz, sondern auch an Geschwindigkeit gewinnen, da ein Index auf Zahlen einfach schneller durchsucht werden kann.

    --

    Code:
    CREATE TABLE IF NOT EXISTS `vms_reloads` (
      `ip` int(11) UNSIGNED NOT NULL default '0',
      `uid` int(7) NOT NULL default '0',
      `tan` varchar(32) NOT NULL default '',
      `bis` int(10) NOT NULL default '0',
      KEY `klick4` (`tan`,`uid`,`ip`)
    ) ENGINE=MyISAM;
    für umsteiger:
    Code:
    ALTER  TABLE  `vms_reloads`  CHANGE  `ip`  `ip` INT( 11  ) UNSIGNED NOT  NULL
    ##

    topframe_forced.php
    Code:
    ON (t1.tan=t2.tan AND (t2.uid=".$_SESSION['uid']." or t2.ip=INET_ATON('".$ip."') ))
    ...
    PHP-Code:
    db_query("INSERT INTO ".$db_prefix."_reloads (ip,uid,tan,bis) VALUES (INET_ATON('".$ip."'),".$_SESSION['uid'].",'".$forced['tan']."',".$new_reload.")"); 
    ##
    content/verdienen/klick4.php
    Code:
    ON (t1.tan = t2.tan AND (t2.uid = '.$_SESSION['uid'].' OR t2.ip = INET_ATON("'.$ip.'") ) AND t2.bis >= '.time().')
    Also eh nur minimale Veränderungen mit denk ich doch recht großem Effekt.

    Gibt zwar dann natürlich Probleme mit den Addons, die darauf Aufbauen (Paidlink Bereich, Highforced-Bereich usw.) da der "Umbau" dort aber auch mit 2 kleinen Änderungen zu machen ist, kann man ja darauf einfach in der readme.txt verweisen

    Btw: lässt sic auch in laufendem Betrieb gut umstellen, indem man
    1. die Änderungen in den Dateien macht und erst dann
    2. den SQL Query :
    Code:
    UPDATE vms_reloads SET ip = INET_ATON(ip)
    ausführt und erst dann
    3. den obigen alter table query ausführt
    Kill one man, and you are a murderer.
    Kill millions of men, and you are a conqueror.
    Kill them all, and you are a god.
    - Jean Rostand, Thoughts of a Biologist (1939)

  2. #2
    Erfahrener Benutzer Avatar von Gremlin
    Registriert seit
    05.07.2006
    Beiträge
    5.206
    Im Prinzip guter Vorschlag hatte ich auch schon dran gedacht, aber es gibt sehr viele Addons welche auch die vms_reloads nutzen, diese wären dann alle erst einmal inkompatibel.
    Diskutiere nie mit Idioten - sie holen Dich auf ihr Niveau und schlagen Dich dort mit Erfahrung!



  3. #3
    Erfahrener Benutzer Avatar von eRaaaa
    Registriert seit
    06.06.2007
    Beiträge
    702
    ich hatte das vor einiger zeit auch schon ansprechen wollen, weil ich auf phpperformance im blog (http://phpperformance.de/ip-adressen-optimal-speichern/) das schon gelesen hatte. gerade auch bei dem ländercode addon würd ichs umstellen...

  4. #4
    Erfahrener Benutzer Avatar von jpwfour
    Registriert seit
    06.02.2008
    Beiträge
    3.717
    Man köntne es so machen, dass man gleich schon in der functions.lib.php in der Variable
    $ip
    den "long" Wert speichert, somit müsste man in den Addons etc. nichts anpassen.

    Außer wenn es dann wiederum Addons gibt, die auf $ip zugreifen und das in eigenen Tabellen verwenden, wobei dann halt in varchar(15) nur die zahl gespeichert wird, was aber ja immerhin funktioniert (wenn auch platzverschwendung ist)

    Also in der functions.lib.php dann:

    PHP-Code:
    $ip             sprintf("%u"ip2long($_SERVER['REMOTE_ADDR'])); 
    Kill one man, and you are a murderer.
    Kill millions of men, and you are a conqueror.
    Kill them all, and you are a god.
    - Jean Rostand, Thoughts of a Biologist (1939)

  5. #5
    Erfahrener Benutzer Avatar von DJschatz27
    Registriert seit
    19.12.2009
    Beiträge
    617
    Tach ne frage gibts hierzu noch eine andere Lösung

    weil ich habs eben mal getestet aber dann bin ich wegen der ip fürs klicken gesperrt oder was muß man alles ändern?

  6. #6
    Erfahrener Benutzer Avatar von Hardy
    Registriert seit
    24.01.2007
    Beiträge
    2.235
    Vielleicht INET_ATON() aus der klickdatei entfernen

Ähnliche Themen

  1. Tabelle Gebuchte_Werbung
    Von wowfreak im Forum [HD] Programmieren
    Antworten: 1
    Letzter Beitrag: 11.05.2012, 21:48
  2. [SQL] Spalte von Tabelle A in Tabelle B kopieren
    Von danny888 im Forum [HD] Programmieren
    Antworten: 3
    Letzter Beitrag: 14.02.2010, 17:20
  3. Tabelle verbreitern
    Von deniz im Forum Support zum VMSone
    Antworten: 4
    Letzter Beitrag: 21.02.2009, 12:54
  4. Tabelle in Post
    Von Hardy im Forum Support zum VMSone
    Antworten: 5
    Letzter Beitrag: 09.01.2009, 18:34
  5. In der Tabelle IDs neu ordnen
    Von FlexMax im Forum [HD] Programmieren
    Antworten: 8
    Letzter Beitrag: 24.10.2008, 14:41

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •