Computer Webmaster Gaming Console Graphics Forum

Welcome to the Computer Webmaster Gaming Console Graphics Forum forums.

You are currently viewing our boards as a guest which gives you limited access to view most discussions and access our other features. By joining our free community you will have access to post topics, communicate privately with other members (PM), respond to polls, upload content and access many other special features. Registration is fast, simple and absolutely free so please, join our community today!

If you have any problems with the registration process or your account login, please contact contact us.

MK PitStop Main Earn $25 Earn Money Posting Extras Members Blogs Image Hosting User Pages
Go Back   Computer Webmaster Gaming Console Graphics Forum > Webmaster Forum > Website Coding > PHP
Register FAQ/Rules Become A V.I.P. Member Search Today's Posts Mark Forums Read

PHP PHP for some can be one of the hardest website programming codes, so do you need help on your PHP script, if it is php4, php5 or lower this is the place for you for any PHP help.

Google
Reply
 
LinkBack Thread Tools Display Modes
Old 07-01-2007, 3:34 PM   #1
will marx
 
will marx's Avatar
 
Posts: n/a
My Photos: (0)

Banked:
MK Cash: $

I am Worth:
MK Cash: $
Donate

Recent Blog: None

Default File search

Hi was just wondering if anyone could help me with this.

I've got a file that logs ip addresses and I want to search the file for
occurences of the current users ip address so that only one vote can be
cast, I've tryed the following script but for some reason the in_array
function always returns false whether the ip address occurs in the file or
not. Maybe im just doing it wrong.

Thanks

Will.

|----heres the current script ----|

$ipfile = "votedip.txt";
$filesize = filesize($ipfile);
$handle = fopen($ipfile, "a+");

//fwrite($handle, $userip);
fclose($handle);

$ipsvoted = file($ipfile);

if (in_array("192.62.1.2",$ipsvoted))
{
echo "voted already";
}
else
{
echo "thanks for your vote";
}


 
Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Spurl this Post!Reddit!
Reply With Quote
Advertisements
Old 07-01-2007, 3:34 PM   #2
steffen horst
 
steffen horst's Avatar
 
Posts: n/a
My Photos: (0)

Banked:
MK Cash: $

I am Worth:
MK Cash: $
Donate

Recent Blog: None

Default File search

hi

> I've got a file that logs ip addresses and I want to search the file for
> occurences of the current users ip address so that only one vote can be
> cast, I've tryed the following script but for some reason the in_array
> function always returns false whether the ip address occurs in the file
> or not. Maybe im just doing it wrong.


have a look to votedip.txt: are saved adresses seperated by newlines?
in_array returns false if you read saved adresses using file, because file
doesn't remove newline-chars.

> $ipfile = "votedip.txt";
> $filesize = filesize($ipfile);


do you need the filesize? the actual sizes of ip-adresses differ. think of
sizeof($ipsvoted), if you want a fixed number of adresses to be saved.

> $handle = fopen($ipfile, "a+");


$handle = fopen($ipfile, "a");

> //fwrite($handle, $userip);


fwrite($handle, "$userip\n");

> fclose($handle);
> $ipsvoted = file($ipfile);


$ipsvoted = array_map("rtrim", file($ipfile));

> if (in_array("192.62.1.2",$ipsvoted))
> {
> echo "voted already";
> }
> else
> {
> echo "thanks for your vote";
> }


maybe this helps you (not tested):

function vote($ip_addr) {
$ipfile = "votedip.txt";
$ipsvoted = array_map("rtrim", file($ipfile);
if (in_array($ip_addr, $ipsvoted)) {
echo "voted already";
} else {
$handle = fopen($ipfile, "a");
fwrite($handle, $userip);
fclose($handle);
echo "thanks for your vote";
}
}

you may want to remove old adresses, because $ipfile could become very
large.

regards, steffen

--
Using M2, Opera's revolutionary e-mail client: http://www.opera.com/m2/
 
Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Spurl this Post!Reddit!
Reply With Quote
Old 07-01-2007, 3:34 PM   #3
steffen horst
 
steffen horst's Avatar
 
Posts: n/a
My Photos: (0)

Banked:
MK Cash: $

I am Worth:
MK Cash: $
Donate

Recent Blog: None

Default File search

> have a look to votedip.txt: are saved adresses seperated by newlines?
> in_array returns false if you read saved adresses using file, because
> file doesn't remove newline-chars.


i meant: in_array() returns false if you use file() to get the lines of
"votedip.txt" because file() doesn't remove any linebreaks (\n|\r\n|\r).
"example" != "example\n". that's why you should rtrim() the whole array
first:

$ipsvoted = array_map("rtrim", file($ipfile));

(i forgot one paranthesis and one linebreak in the function i submitted
before). this is the (more) correct version:

function vote($ip_addr) {
$ipfile = "votedip.txt";
$ipsvoted = array_map("rtrim", file($ipfile));
if (in_array($ip_addr, $ipsvoted)) {
echo "voted already";
} else {
$handle = fopen($ipfile, "a");
fwrite($handle, "$userip\n");
fclose($handle);
echo "thanks for your vote";
}
}

steffen

--
Using M2, Opera's revolutionary e-mail client: http://www.opera.com/m2/
 
Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Spurl this Post!Reddit!
Reply With Quote
Featured Websites
Free Space
Free Space
Free Space Free Space
Reply
Tags: ,




Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 
Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On

Similar Threads
Thread Thread Starter Forum Replies Last Post
cvs: pear /File/File CSV.php Helgi Þormar Þorbjörnsson Pear 0 05-20-2007 7:42 PM
cvs: pear /File/File CSV.php Helgi Þormar Þorbjörnsson Pear 0 05-20-2007 7:42 PM
cvs: pear /File/File CSV.php Helgi Þormar Þorbjörnsson Pear 0 05-20-2007 7:42 PM
cvs: pear /File/File CSV.php Helgi Þormar Þorbjörnsson Pear 0 05-20-2007 7:42 PM
cvs: pear /File/File CSV.php Helgi Þormar Þorbjörnsson Pear 0 05-20-2007 7:42 PM


Featured Websites




All times are GMT +1. The time now is 2:54 PM.


Powered by: vBulletin Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO 3.0.0
Cheap Computers
MK PitStop Copyright 2005 - 2008

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 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98