Jump to content

Archived

This topic is now archived and is closed to further replies.

MereCatfish

Cookies - detect if a user has clicked a link today

Recommended Posts

Hi,

Just wondering if I could get some help with a problem.

I run a webring, which counts the amount of times a link is clicked. The user clicks it, the db value has 1 added to it. Then the user is redirected to the URL they wanted. Obviously, this allows people to continually refresh to get to the top.

So I decided to try to use cookies to see if a user has clicked the link today. If they have, the click will not be recorded. I cannot see why the clicks continue to be recorded. Here is my code:

[code]
<?php

# Connect to MySQL server
$conn = mysql_connect($host,$dbusername,$dbpassword)
   or die(mysql_error());

# Select the database
mysql_select_db("$database", $conn)
   or die(mysql_error());

$array = mysql_fetch_array(mysql_query("SELECT url, clicks FROM sites WHERE id='$id'"));

    if(isset($_COOKIE['$array[url]'])){

        header("Location: $array[url]");    
        exit;

    } else {

        $clicks = $array[clicks] + 1;
        mysql_query("UPDATE sites SET clicks='$clicks' WHERE id='$id'");
        setcookie("$array[url]", "halocewebring", time()+3600*24);

        header("Location: $array[url]");

    }

?>
[/code]

Thanks for your time.

Share this post


Link to post
Share on other sites
if(isset($_COOKIE['$array[url]'])){
needs to be
if(isset($_COOKIE[$array['url']])){
or
if(isset($_COOKIE["$array[url]"])){

using ' will print the variable how u wrote it so it is checking for a cookie called $array[url]


Regards
Liam

Share this post


Link to post
Share on other sites
[!--quoteo(post=365927:date=Apr 18 2006, 09:08 AM:name=shocker-z)--][div class=\'quotetop\']QUOTE(shocker-z @ Apr 18 2006, 09:08 AM) [snapback]365927[/snapback][/div][div class=\'quotemain\'][!--quotec--]
if(isset($_COOKIE['$array[url]'])){
needs to be
if(isset($_COOKIE[$array['url']])){
or
if(isset($_COOKIE["$array[url]"])){

using ' will print the variable how u wrote it so it is checking for a cookie called $array[url]
Regards
Liam
[/quote]

Still didn't make a difference :(.

Share this post


Link to post
Share on other sites
$array = mysql_fetch_array(mysql_query("SELECT url, clicks FROM sites WHERE id='$id'"));
try
$query=mysql_query("SELECT url, clicks FROM sites WHERE id='$id'") or die(mysql_error());
$array = mysql_fetch_array($query);


just want to check the statement is runnign properly...

Share this post


Link to post
Share on other sites
Alright, it is definitely having a problem finding the cookie. I can see the cookie set on my computer, but replacing the if code with...

[code]
    if(isset($_COOKIE["$array[url]"])){

        echo("you have da cookie lolz");    
        exit;

    } else {
[/code]

redirects to the site, which means header("Location: $array[url]"); would happen, which is in the else.

Share this post


Link to post
Share on other sites

×

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.