[PHP/FREE] Linkrotator script

Gestart doorJenner12 reacties261 weergaven

13 berichten · pagina 1 van 1

Jenner

Lid · Topicstarter

Berichten
1.544
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Hallo,

ik was weer een was aan het knutselen en hier is het resultaat. Een linkrotator, die unieke links weergeeft, dus een uurlink wordt maar eens per uur getoond aan een IP en een daglink maar eens per dag. (Zelf in te stellen uren) Als hij alle unieke links heeft bekeken krijgt hij een random link te zien.

PS: Opmerkingen/suggesties zijn altijd welkom smile
MySQL:

--
-- Database: `janerik_rotator`
--

-- --------------------------------------------------------

--
-- Tabelstructuur voor tabel `linkspel_kliks`
--

CREATE TABLE IF NOT EXISTS `linkspel_kliks` (
  `id` int(15) NOT NULL AUTO_INCREMENT,
  `ip` varchar(30) NOT NULL,
  `link_id` int(11) NOT NULL,
  `when` datetime NOT NULL,
  `checking` int(1) NOT NULL,
  PRIMARY KEY (`id`),
  KEY `when` (`when`),
  KEY `ip` (`ip`,`link_id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=6 ;

-- --------------------------------------------------------

--
-- Tabelstructuur voor tabel `linkspel_links`
--

CREATE TABLE IF NOT EXISTS `linkspel_links` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `url` varchar(255) NOT NULL,
  `credit` int(13) NOT NULL DEFAULT 0,
  `clicked` int(13) NOT NULL DEFAULT 0,
  `hours` int(3) NOT NULL,
  `priority` int(5) NOT NULL,
  PRIMARY KEY (`id`),
  KEY `clicked` (`clicked`,`priority`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=7 ;

--
-- Gegevens worden uitgevoerd voor tabel `linkspel_links`
--

INSERT INTO `linkspel_links` (`id`, `url`, `credit`, `clicked`, `hours`, `priority`) VALUES
(1, http://www.klikkanon.nl/klik.php?user=jenner2006, -1, 1, 24, 27),
(2, http://www.klikkanon.nl/uurklik.php?user=jenner2006, -1, 1, 1, 13),
(4, http://www.crazykliks.nl/72uursklik.php?user=jenner2006, -1, 1, 72, 50),
(5, http://www.crazykliks.nl/klik.php?user=jenner2006, -1, 1, 24, 28),
(6, http://www.crazykliks.nl/uurklik.php?user=jenner2006, -1, 1, 1, 8);


PHP:

[COLOR= #0000BB]<?php
$db[/COLOR] [COLOR= #007700]= new[/COLOR] MySQLi[COLOR= #007700]([/COLOR][COLOR= #DD0000]localhost[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #DD0000]USERNAME[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #DD0000]PASSWORD[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #DD0000]DATABASE[/COLOR][COLOR= #007700]);[/COLOR]

[COLOR= #0000BB]$ip[/COLOR] [COLOR= #007700]=[/COLOR] [COLOR= #0000BB]$_SERVER[/COLOR][COLOR= #007700][[/COLOR][COLOR= #DD0000]REMOTE_ADDR[/COLOR][COLOR= #007700]];[/COLOR]

[COLOR= #FF8000]//SELECTEER DE LINKS DIE AAN DE EISEN VOLDOEN[/COLOR]
[COLOR= #0000BB]$query[/COLOR] [COLOR= #007700]=[/COLOR] [COLOR= #0000BB]$db[/COLOR][COLOR= #007700]->[/COLOR]query[COLOR= #007700]([/COLOR][COLOR= #DD0000]SELECT
                        *,links.id AS id
                    FROM
                        linkspel_links AS links
                    LEFT JOIN
                        linkspel_kliks AS kliks
                        ON
                            kliks.ip = "[/COLOR][COLOR= #007700].[/COLOR][COLOR= #0000BB]$_SERVER[/COLOR][COLOR= #007700][[/COLOR][COLOR= #DD0000]REMOTE_ADDR[/COLOR][COLOR= #007700]].[/COLOR][COLOR= #DD0000]" AND
                            links.id = kliks.link_id AND
                            kliks.checking = 1
                    WHERE
                        (
                            links.credit > 0 OR
                            links.credit = -1
                        ) AND
                        (
                            DATE_ADD(kliks.when, INTERVAL links.hours HOUR) < NOW() OR
                            kliks.when IS NULL
                        )
                    ORDER BY
                        links.priority DESC
                    LIMIT 1
                    [/COLOR][COLOR= #007700])[/COLOR] or [URL="http://www.php.net/die"]die[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$db[/COLOR][COLOR= #007700]->[/COLOR]error[COLOR= #007700]);[/COLOR]

[COLOR= #0000BB]$link[/COLOR] [COLOR= #007700]=[/COLOR] [COLOR= #0000BB]$query[/COLOR][COLOR= #007700]->[/COLOR]fetch_object[COLOR= #007700]();[/COLOR]


[COLOR= #FF8000]// Als er geen geldige link is gevonden dan wordt er een random link getoont,
// maar verder niks in het Database gezet.[/COLOR]
[URL="http://www.php.net/if"]if[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$link[/COLOR] [COLOR= #007700]==[/COLOR] null[COLOR= #007700])
{[/COLOR]

    [COLOR= #0000BB]$query[/COLOR] [COLOR= #007700]=[/COLOR] [COLOR= #0000BB]$db[/COLOR][COLOR= #007700]->[/COLOR]query[COLOR= #007700]([/COLOR][COLOR= #DD0000]SELECT
                            *
                        FROM
                            linkspel_links
                        ORDER BY
                            RAND()
                        [/COLOR][COLOR= #007700])[/COLOR] or [URL="http://www.php.net/die"]die[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$db[/COLOR][COLOR= #007700]->[/COLOR]error[COLOR= #007700]);[/COLOR]
    [COLOR= #0000BB]$link[/COLOR] [COLOR= #007700]=[/COLOR] [COLOR= #0000BB]$query[/COLOR][COLOR= #007700]->[/COLOR]fetch_object[COLOR= #007700]();[/COLOR]
    
    [URL="http://www.php.net/if"]if[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$link[/COLOR] [COLOR= #007700]==[/COLOR] null[COLOR= #007700])[/COLOR]
        [URL="http://www.php.net/die"]die[/URL][COLOR= #007700]([/COLOR][COLOR= #DD0000]Er zijn geen links ingevoerd.[/COLOR][COLOR= #007700]);

}[/COLOR]
[URL="http://www.php.net/else"]else[/URL]
[COLOR= #007700]{[/COLOR]
    
    [COLOR= #FF8000]//Zet alle kliks van deze link op checking = 0[/COLOR]
    [COLOR= #0000BB]$db[/COLOR][COLOR= #007700]->[/COLOR]query[COLOR= #007700]([/COLOR][COLOR= #DD0000]UPDATE
                    linkspel_kliks
                SET
                    checking = 0
                WHERE
                    ip = "[/COLOR][COLOR= #007700].[/COLOR][COLOR= #0000BB]$_SERVER[/COLOR][COLOR= #007700][[/COLOR][COLOR= #DD0000]REMOTE_ADDR[/COLOR][COLOR= #007700]].[/COLOR][COLOR= #DD0000]" AND
                    link_id = [/COLOR][COLOR= #007700].[/COLOR][COLOR= #0000BB]$link[/COLOR][COLOR= #007700]->[/COLOR]id[COLOR= #007700].[/COLOR][COLOR= #DD0000]
                [/COLOR][COLOR= #007700])[/COLOR] or [URL="http://www.php.net/die"]die[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$db[/COLOR][COLOR= #007700]->[/COLOR]error[COLOR= #007700]);[/COLOR]
    
    
    [COLOR= #FF8000]//Als credit = -1 dan geen credit verlaging[/COLOR]
    [COLOR= #0000BB]$set[/COLOR] [COLOR= #007700]= ([/COLOR][COLOR= #0000BB]$link[/COLOR][COLOR= #007700]->[/COLOR]credit [COLOR= #007700]!= -[/COLOR][COLOR= #0000BB]1[/COLOR][COLOR= #007700]) ?[/COLOR] [COLOR= #DD0000]credit = credit - 1,[/COLOR] [COLOR= #007700]:[/COLOR] null[COLOR= #007700];[/COLOR]
    
    [COLOR= #FF8000]//Verlaag credit en verhoog clicked[/COLOR]
    [COLOR= #0000BB]$db[/COLOR][COLOR= #007700]->[/COLOR]query[COLOR= #007700]([/COLOR][COLOR= #DD0000]UPDATE
                    linkspel_links
                SET
                    [/COLOR][COLOR= #007700].[/COLOR][COLOR= #0000BB]$set[/COLOR][COLOR= #007700].[/COLOR][COLOR= #DD0000]
                    clicked = clicked + 1
                WHERE
                    id = "[/COLOR][COLOR= #007700].[/COLOR][COLOR= #0000BB]$link[/COLOR][COLOR= #007700]->[/COLOR]id[COLOR= #007700].[/COLOR][COLOR= #DD0000]"
                [/COLOR][COLOR= #007700])[/COLOR] or [URL="http://www.php.net/die"]die[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$db[/COLOR][COLOR= #007700]->[/COLOR]error[COLOR= #007700]);[/COLOR]
    
    
    [COLOR= #FF8000]//Voeg een nieuwe rij in ter bevestiging van het bekijken van de url.[/COLOR]
    [COLOR= #0000BB]$db[/COLOR][COLOR= #007700]->[/COLOR]query[COLOR= #007700]([/COLOR][COLOR= #DD0000]INSERT INTO
                    linkspel_kliks
                VALUES (
                    null,
                    "[/COLOR][COLOR= #007700].[/COLOR][COLOR= #0000BB]$_SERVER[/COLOR][COLOR= #007700][[/COLOR][COLOR= #DD0000]REMOTE_ADDR[/COLOR][COLOR= #007700]].[/COLOR][COLOR= #DD0000]",
                    "[/COLOR][COLOR= #007700].[/COLOR][COLOR= #0000BB]$link[/COLOR][COLOR= #007700]->[/COLOR]id[COLOR= #007700].[/COLOR][COLOR= #DD0000]",
                    NOW(),
                    1
                )
                [/COLOR][COLOR= #007700])[/COLOR] or [URL="http://www.php.net/die"]die[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$db[/COLOR][COLOR= #007700]->[/COLOR]error[COLOR= #007700]);

}[/COLOR]
?>
<html>
    <head>
        <title>Jenners linkrotator</title>
        <style type="text/css">
            html, body {
                margin: 0;
                padding: 0;
            }
        </style>
    </head>
    <body>
    <iframe src="[COLOR= #0000BB]<?php[/COLOR] [URL="http://www.php.net/echo"]echo[/URL] [COLOR= #0000BB]$link[/COLOR][COLOR= #007700]->[/COLOR]url[COLOR= #007700];[/COLOR] ?>" style="border: 0; width: 100%; height: 100%" frameborder="0">Your browser doesnt support iFrames.</iframe>
    </body>
</html>
0
Berichten
8.649
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Jenner schreef:
Hallo,

ik was weer een was aan het knutselen en hier is het resultaat. Een linkrotator, die unieke links weergeeft, dus een uurlink wordt maar eens per uur getoond aan een IP en een daglink maar eens per dag. (Zelf in te stellen uren) Als hij alle unieke links heeft bekeken krijgt hij een random link te zien.

PS: Opmerkingen/suggesties zijn altijd welkom smile
Bovenaan een config met var met om de hoeveel dagen enzo. En erbij van wijzig alles tot hier.
0
Rik

Lid

Berichten
18.393
Reputatie
0
Punten
0,04
Lid sinds
Laatst gezien
Vriendje schreef:
Eerdere citaten tonen
Jenner schreef:
Hallo,
ik was weer een was aan het knutselen en hier is het resultaat. Een linkrotator, die unieke links weergeeft, dus een uurlink wordt maar eens per uur getoond aan een IP en een daglink maar eens per dag. (Zelf in te stellen uren) Als hij alle unieke links heeft bekeken krijgt hij een random link te zien.

PS: Opmerkingen/suggesties zijn altijd welkom smile
Bovenaan een config met var met om de hoeveel dagen enzo. En erbij van wijzig alles tot hier.
Je kan per klinklink in de database instellen bij welke uurinterval hij getoond moet worden. Er is dus geen algemene var om dat in te stellen.
0
Jenner

Lid · Topicstarter

Berichten
1.544
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Vriendje schreef:
Eerdere citaten tonen
Jenner schreef:
Hallo,
ik was weer een was aan het knutselen en hier is het resultaat. Een linkrotator, die unieke links weergeeft, dus een uurlink wordt maar eens per uur getoond aan een IP en een daglink maar eens per dag. (Zelf in te stellen uren) Als hij alle unieke links heeft bekeken krijgt hij een random link te zien.

PS: Opmerkingen/suggesties zijn altijd welkom smile
Bovenaan een config met var met om de hoeveel dagen enzo. En erbij van wijzig alles tot hier.
Als je het database bekijkt zie je dat je dit allenaal per link kunt aanpassen wink Het enige wat aangepast moet worden is de database gegevens en dat is duidelijk volgensmij smile
0
Berichten
93.699
Reputatie
0
Punten
1,27
Lid sinds
Laatst gezien
Mooi biggrin.

Alleen wat is eigenlijk het verschil tussen MySQL en MySQLi?
0
Rik

Lid

Berichten
18.393
Reputatie
0
Punten
0,04
Lid sinds
Laatst gezien
Mysql_* is oud en zelden komen er echt nieuwe functies bij. Mysqli_* is MySQL Improved, wat dus vele handige nieuwe functies heeft zoals statement preparing (hopelijk noem ik het zo goed).
0
Berichten
93.699
Reputatie
0
Punten
1,27
Lid sinds
Laatst gezien
Okay, thanks.
0
Jenner

Lid · Topicstarter

Berichten
1.544
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Statistieken voor de klikjes: (Bekijk per domein hoeveel referral klikjes je hebt gekregen)

[COLOR= #0000BB]<?php
$db[/COLOR] [COLOR= #007700]= new[/COLOR] MySQLi[COLOR= #007700]([/COLOR][COLOR= #DD0000]localhost[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #DD0000]USERNAME[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #DD0000]PASSWORD[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #DD0000]DB[/COLOR][COLOR= #007700]);[/COLOR]

[COLOR= #0000BB]$result[/COLOR] [COLOR= #007700]=[/COLOR] [COLOR= #0000BB]$db[/COLOR][COLOR= #007700]->[/COLOR]query[COLOR= #007700]([/COLOR][COLOR= #DD0000]"SELECT
                        COUNT(*) AS times, 
                        domain 
                    FROM
                        (SELECT
                            REPLACE(REPLACE(SUBSTRING_INDEX(LOWER(referrer), /,  3), www., ), http://, ) AS domain 
                           FROM
                               linkspel_kliks
                           ) AS q2 
                    GROUP BY
                        domain
                    ORDER BY
                        times DESC
                    "[/COLOR][COLOR= #007700])[/COLOR] or [URL="http://www.php.net/die"]die[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$db[/COLOR][COLOR= #007700]->[/COLOR]error[COLOR= #007700]);[/COLOR]
?>

<table>
<tr>
    <th>Domein</th>
    <th>Kliks</th>
</tr>
[COLOR= #0000BB]<?php[/COLOR] [URL="http://www.php.net/while"]while[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$row[/COLOR] [COLOR= #007700]=[/COLOR] [COLOR= #0000BB]$result[/COLOR][COLOR= #007700]->[/COLOR]fetch_object[COLOR= #007700]()):[/COLOR] ?>
<tr>
    [COLOR= #0000BB]<?php[/COLOR] [URL="http://www.php.net/if"]if[/URL] [COLOR= #007700]([/COLOR][URL="http://www.php.net/empty"]empty[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$row[/COLOR][COLOR= #007700]->[/COLOR]domain[COLOR= #007700])):[/COLOR] ?>
    <td>Direct</td>
    [COLOR= #0000BB]<?php[/COLOR] [URL="http://www.php.net/else"]else[/URL][COLOR= #007700]:[/COLOR] ?>
    <td><a href="http://[COLOR= #0000BB]<?php[/COLOR] [URL="http://www.php.net/echo"]echo[/URL] [COLOR= #0000BB]$row[/COLOR][COLOR= #007700]->[/COLOR]domain[COLOR= #007700];[/COLOR] ?>" target="_blank">[COLOR= #0000BB]<?php[/COLOR] [URL="http://www.php.net/echo"]echo[/URL] [COLOR= #0000BB]$row[/COLOR][COLOR= #007700]->[/COLOR]domain[COLOR= #007700];[/COLOR] ?></a></td>
    [COLOR= #0000BB]<?php[/COLOR] [COLOR= #007700]endif;[/COLOR] ?>
    <td>[COLOR= #0000BB]<?php[/COLOR] [URL="http://www.php.net/echo"]echo[/URL] [COLOR= #0000BB]$row[/COLOR][COLOR= #007700]->[/COLOR]times[COLOR= #007700];[/COLOR] ?></td>
</tr>
[COLOR= #0000BB]<?php[/COLOR] [COLOR= #007700]endwhile;[/COLOR] ?>
</table>
0
Rik

Lid

Berichten
18.393
Reputatie
0
Punten
0,04
Lid sinds
Laatst gezien
Mag ik vragen waarom je het slomere fetch_object gebruikt in plaats van fetch_assoc trouwens?
0
Berichten
9.953
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Hoe kan het eigenlijk dat dat slomer is?
0
Jenner

Lid · Topicstarter

Berichten
1.544
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Rik schreef:
Mag ik vragen waarom je het slomere fetch_object gebruikt in plaats van fetch_assoc trouwens?
Ik ben het gewend, maar ik zie dus dat het heel veel uitmaakt. Zal ik zo snel mogelijk aanpassen smile Ik vind objecten persoonlijk mooier, maar het gaat nu eenmaal ook om snelheid.

toevoeging op 24 maart 2012, 23:08:29:
Ik heb even opgezocht, maar voor paginas waar je minder dan 10000 keer fetch_object() gebruikt maakt het geen drol uit.
0
Rik

Lid

Berichten
18.393
Reputatie
0
Punten
0,04
Lid sinds
Laatst gezien
Dat is ook weer zo. Mijn persoonlijke smaak is gewoon ook een array. Objecten zijn er voor andere dingen.
0

Jouw reactie

Deel je idee, stel een vraag of help een ander verder.

Editor laden…

Praat mee met de One2xs-community.

Inloggen om te reageren