RE: [PHP-DB] Difference in time
> I am fighting a time issue(don't we all). I have a online poll set up. I > need a way to stop a person from > submitting more than once an hour. As of now I have the time .. mktime( > ) .. being stored in a database along > with the users IP. > > I want to be able to say if 1 hour has passed from the time .. mktime( ) > .. that is stored in the db they can vote once again. This also has to > account that if someone goes to the poll tomorrow at the same time (same > hour) the script knows it's a different hour and different day. > > Scenario: I submit to the poll at 12:00 PM, one hour from now will be > 1:00 PM and I can submit again. Now lets > say it's 12:00 PM the next day. The database stored time will say 12:00 > PM of the day before, It will not let me submit because it thinks that > it has to be at least 1:00 PM before I can submit again. Which is wrong. > > I was trying to use the mktime( ) function but it keeps giving me these > results.(( 1033578795 )) The last few > numbers change but the first few (that as suppose to be the hour) does > not change? > mktime(int hour, int minute, int second, int month, int day, int year). > How can I use this mktime( ) function to do what I need it to? Am I > going in the wrong direction? SELECT 1 FROM table WHERE FROM_UNIXTIME(last_post) < (NOW() - INTERVAL 1 HOUR) AND User_ID = XXX If a row is returned, then the user is clear to vote, it's been over an hour. ---John Holmes... -- PHP Database Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
RE: [PHP-DB] Difference in time
for mySQL, the table would look like... CREATE TABLE polls( pollID INT NOT NULL AUTO_INCREMENT, ipAddress VARCHAR (50) NULL, insertTime DATETIME NULL, etc... PRIMARY KEY (pollID) ); === the code would look like... $statement = "select pollID from polls where insertTime > (now() - INTERVAL 1 HOUR)"; //see mySQL date time functions for a description of this $result = mysql_query($statement); $rowsReturned = mysql_num_rows($result); if($rowsReturned){ print "Sorry you already voted in the last hour"; }else{ "insert into polls (ipAddress,insertTime) values ('$ipAddress',now())"; } P.S. - "now()" is a database function that will insert the time for you (mySQL is usually -dd-mm hh:mm:ss) -Original Message- From: wade [mailto:[EMAIL PROTECTED]] Sent: Wednesday, October 02, 2002 2:56 PM To: Vincent, Jason [BRAM:1334:EXCH] Subject: Re: [PHP-DB] Difference in time MYSQL Here is a sample of what I am doing $ip = $_SERVER['REMOTE_ADDR']; $time_now = mktime(); // open connection to database $connection = mysql_connect($hostname, $user, $pass) or die ("Unable to connect!"); // get the IP and stored DB time $query = "SELECT ip_address, server_time FROM stats WHERE ip_address = '$ip'"; $result = mysql_db_query($database, $query, $connection) or die ("Error in query: $query. " . mysql_error()); $row = mysql_fetch_array($result); $get_ip = $row['ip_address']; $get_server_time = $row['server_time']; // close connection mysql_close($connection); mysql_free_result($result); if ($ip == $get_ip) { $connection = mysql_connect($hostname, $user, $pass) or die ("Unable to connect!"); $query="select * from stats where server_time > 'now()- 1 hour' and ip_address = '$ip'"; $result = mysql_db_query($database, $query, $connection) or die ("Error in query: $query. " . mysql_error()); $row = mysql_fetch_array($result); $get_ip2 = $row['ip_address']; $get_server_time2 = $row['server_time']; // close connection mysql_close($connection); mysql_free_result($result); if ($get_server_time2) { echo "Sorry cannot vote"; exit; } } Jason Vincent wrote: what kind of database are you using? -----Original Message- From: wade [mailto:[EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]> ] Sent: Wednesday, October 02, 2002 2:47 PM To: Vincent, Jason [BRAM:1334:EXCH] Subject: Re: [PHP-DB] Difference in time One question on this issue. What should I store in the database mktime( ). time( )? Jason Vincent wrote: > yeah - the mktime function is returning unix style time (seconds since > 1970) which is why only the last few numbers are changing. I would > recommend letting the database decide who is able to submit... i.e. > > select * from database where lastSubmitDate > 'now()- 1 hour' and IP = > '$ipaddress' > > if there is a returned record from the database, you know that this > person has made a submission in the last hour. Otherwise, let them > submit again > > Obviously, you will need to figure out the sytax for the now() -1 hour > part depending on your database. > > -Original Message- > From: wade [mailto:[EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]> ] > Sent: Wednesday, October 02, 2002 1:29 PM > To: [EMAIL PROTECTED] > Subject: [PHP-DB] Difference in time > > Hello all, > > I am fighting a time issue(don't we all). I have a online poll set up. > I need a way to stop a person from submitting more than once an hour. > As of now I have the time .. mktime( > ) .. being stored in a database along > with the users IP. > > I want to be able to say if 1 hour has passed from the time .. mktime( > ) .. that is stored in the db they can vote once again. This also has > to account that if someone goes to the poll tomorrow at the same time > (same > hour) the script knows it's a different hour and different day. > > Scenario: I submit to the poll at 12:00 PM, one hour from now will be > 1:00 PM and I can submit again. Now lets say it's 12:00 PM the next > day. The database stored time will say 12:00 PM of the day before, It > will not let me submit because it t
RE: [PHP-DB] Difference in time
yeah - the mktime function is returning unix style time (seconds since 1970) which is why only the last few numbers are changing. I would recommend letting the database decide who is able to submit... i.e. select * from database where lastSubmitDate > 'now()- 1 hour' and IP = '$ipaddress' if there is a returned record from the database, you know that this person has made a submission in the last hour. Otherwise, let them submit again Obviously, you will need to figure out the sytax for the now() -1 hour part depending on your database. -Original Message- From: wade [mailto:[EMAIL PROTECTED]] Sent: Wednesday, October 02, 2002 1:29 PM To: [EMAIL PROTECTED] Subject: [PHP-DB] Difference in time Hello all, I am fighting a time issue(don't we all). I have a online poll set up. I need a way to stop a person from submitting more than once an hour. As of now I have the time .. mktime( ) .. being stored in a database along with the users IP. I want to be able to say if 1 hour has passed from the time .. mktime( ) .. that is stored in the db they can vote once again. This also has to account that if someone goes to the poll tomorrow at the same time (same hour) the script knows it's a different hour and different day. Scenario: I submit to the poll at 12:00 PM, one hour from now will be 1:00 PM and I can submit again. Now lets say it's 12:00 PM the next day. The database stored time will say 12:00 PM of the day before, It will not let me submit because it thinks that it has to be at least 1:00 PM before I can submit again. Which is wrong. I was trying to use the mktime( ) function but it keeps giving me these results.(( 1033578795 )) The last few numbers change but the first few (that as suppose to be the hour) does not change? mktime(int hour, int minute, int second, int month, int day, int year). How can I use this mktime( ) function to do what I need it to? Am I going in the wrong direction? Thank you very much Wade -- Should you have any questions, comments or concerns, feel free to call me at 318-338-2033. Thank you for your time, Wade Kelley, Design Engineer Bayou Internet...(888) 30-BAYOU...http://www.bayou.com Mississippi Internet...(800) MISSISSIPPI...http://www.mississippi.net Vicksburg Online...(800) MISSISSIPPI...http://www.vicksburg.com
[PHP-DB] Difference in time
Hello all, I am fighting a time issue(don't we all). I have a online poll set up. I need a way to stop a person from submitting more than once an hour. As of now I have the time .. mktime( ) .. being stored in a database along with the users IP. I want to be able to say if 1 hour has passed from the time .. mktime( ) .. that is stored in the db they can vote once again. This also has to account that if someone goes to the poll tomorrow at the same time (same hour) the script knows it's a different hour and different day. Scenario: I submit to the poll at 12:00 PM, one hour from now will be 1:00 PM and I can submit again. Now lets say it's 12:00 PM the next day. The database stored time will say 12:00 PM of the day before, It will not let me submit because it thinks that it has to be at least 1:00 PM before I can submit again. Which is wrong. I was trying to use the mktime( ) function but it keeps giving me these results.(( 1033578795 )) The last few numbers change but the first few (that as suppose to be the hour) does not change? mktime(int hour, int minute, int second, int month, int day, int year). How can I use this mktime( ) function to do what I need it to? Am I going in the wrong direction? Thank you very much Wade -- Should you have any questions, comments or concerns, feel free to call me at 318-338-2033. Thank you for your time, Wade Kelley, Design Engineer Bayou Internet...(888) 30-BAYOU...http://www.bayou.com Mississippi Internet...(800) MISSISSIPPI...http://www.mississippi.net Vicksburg Online...(800) MISSISSIPPI...http://www.vicksburg.com