Jump to content

Recommended Posts

It's failing because, it looks like, you are using an ipv6 IP. The code only works with ip4 IP's.

Share this post


Link to post
Share on other sites

It's failing because, it looks like, you are using an ipv6 IP. The code only works with ip4 IP's.

Thank you for the reply. Umm...any chance you would happen to know how I would change it? I am using XAMPP.

Share this post


Link to post
Share on other sites

I don't use xampp but maybe they have changed how localhost is defined or maybe that is part of your computer if you have a newer OS. Try looking at your computers hosts file (location varies with the OS so you need to look that up) and if there is an entry for

::1			 localhost

change it to

# ::1			 localhost

Be sure there is a line that reads

127.0.0.1	   localhost

Unless xampp is overriding it, that should do it.

Share this post


Link to post
Share on other sites

I don't use xampp but maybe they have changed how localhost is defined or maybe that is part of your computer if you have a newer OS. Try looking at your computers hosts file (location varies with the OS so you need to look that up) and if there is an entry for

::1			 localhost

change it to

# ::1			 localhost

Be sure there is a line that reads

127.0.0.1	 localhost

Unless xampp is overriding it, that should do it.

Awesome. Works perfect now. Thank you Jack, most appreciated.

Share this post


Link to post
Share on other sites

Hi Jack,

 

Trying to install the mod, noticed that in the file column_left.php didn't use the lines you described to add:

6) In admin/includes/column_left.php, look for require(DIR_WS_BOXES...

or include(DIR_WS_BOXES..., and add this line before it:

 

require(DIR_WS_BOXES . 'view_counter.php');

 

Is there now a different way of placing the code?

 

Jacques.

Share this post


Link to post
Share on other sites

You are probably using oscommerce 2.3.3.4 which doesn't use that file change. Just skip that step.

Share this post


Link to post
Share on other sites

A new version has been uploaded with the following changes:

 

- Added a tool to allow the blocking of countries.

- Changed the tool layout to be easier to work with.

- Changed links on color page to make them fail - color page is for setting colors only.

- Changed database file to use innodb tables.

- Changed jquery load statements to remove the http protocol which was causing the dialog to fail when used with FF.

- Converted code to use IP2Location's database instead of their site, which they stopped.

Share this post


Link to post
Share on other sites

Hi Jack,

 

any chance of uploading a screenshot of how this looks in admin?

 

Many Thanks


Now running on a fully modded, Mobile Friendly 2.3.4 Store with the Excellent MTS installed - See my profile for the mods installed ..... So much thanks for all the help given along the way by forum members.

Share this post


Link to post
Share on other sites

Here you go. I'm glad you asked for this since I found in making it the package I uploaded didn't have all of the fixes in it. I've uploaded another now that should be correct.http://www.oscommerce-solution.com/images/view_counter.png.

 

I tried adding the above as an image but the code was mangled. The screenshot is also in the package now in case this link doesn't stay here.

Edited by Jack_mcs

Share this post


Link to post
Share on other sites

Thanks Jack - looks comprehensive - does it show cart contents for unregistered customers?


Now running on a fully modded, Mobile Friendly 2.3.4 Store with the Excellent MTS installed - See my profile for the mods installed ..... So much thanks for all the help given along the way by forum members.

Share this post


Link to post
Share on other sites

Share this post


Link to post
Share on other sites

I get an error when trying to do the install. Should I have pasted my key into the PHP that installs the SQL tables?

1048 - Column 'set_function' cannot be null
INSERT INTO configuration ( configuration_id, configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, set_function, date_added, use_function ) VALUES (NULL, 'API Key','VIEW_COUNTER_API_KEY', 'Your API KEY', 'Enter your IPInfoDB.com API Key here.
You can get your key at http://ipinfodb.com/register.php', '48561', '2', NULL, now(), NULL)
[TEP STOP]

Share this post


Link to post
Share on other sites

@@InterExTranet

You don't need to include the boxes in the left column with the new version of osCommerce. Thanks to some pretty hefty coders, anything in the directory is now include in the left column Alphabetically. Not exactly sure how, but I always skip over that part of the code when it says to edit column_left.php

Share this post


Link to post
Share on other sites

@@newburns For the database error, find the following in the view_counter_install.php file

   $fields = " configuration_id, configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, set_function, date_added, use_function ";
   $db_sql_array = array(array("INSERT INTO configuration (" . $fields . ")  VALUES (NULL, 'ON/OFF', 'VIEW_COUNTER_ENABLED', 'false', 'View Counter <br>(true=on false=off)', '" . $configuration_group_id . "', '" . ($sortID++). "', 'tep_cfg_select_option(array(\'true\', \'false\'), ', now(), NULL)"),
					  array("INSERT INTO configuration (" . $fields . ")  VALUES (NULL, 'API Key','VIEW_COUNTER_API_KEY', 'Your API KEY', 'Enter your IPInfoDB.com API Key here.<br><br>You can get your key at http://ipinfodb.com/register.php', '" . $configuration_group_id . "', '" . ($sortID++). "', NULL, now(), NULL)"),
					  array("INSERT INTO configuration (" . $fields . ")  VALUES (NULL, 'Active Time','VIEW_COUNTER_ACTIVE_TIME', '10', 'The numbre of minutes to show active visitors.', '" . $configuration_group_id . "', '" . ($sortID++). "', NULL, now(), NULL)"),
					  array("INSERT INTO configuration (" . $fields . ")  VALUES (NULL, 'Bad Bot Trap', 'VIEW_COUNTER_BAD_BOT_TRAP', 'Email', 'Choose how to handle the bad bot trap.<br><br><b>Ban:</b> Ban the IP<br><b>Email:</b> Send an Email containing the IP<br><b>Both:</b> Both of the above<br><b>Off:</b> Nothing will be done', '" . $configuration_group_id . "', '" . ($sortID++). "', 'tep_cfg_select_option(array(\'Ban\', \'Email\', \'Both\', \'Off\'), ', now(), NULL)"),
					  array("INSERT INTO configuration (" . $fields . ")  VALUES (NULL, 'Force Reset','VIEW_COUNTER_FORCE_RESET', '2', 'The maximum number of days to keep the IP\'s in the database. The View counter table will grow very large if not cleared and data over a few days is probably of no use.', '" . $configuration_group_id . "', '" . ($sortID++). "', NULL, now(), NULL)"),
					  array("INSERT INTO configuration (" . $fields . ")  VALUES (NULL, 'Force Reset Storage','VIEW_COUNTER_FORCE_RESET_STORAGE', '14', 'The maximum number of days to keep the IP\'s in the storage table. This table is used for reports. It will grow very large if not cleared on a regular basis.', '" . $configuration_group_id . "', '" . ($sortID++). "', NULL, now(), NULL)"),
					  array("INSERT INTO configuration (" . $fields . ")  VALUES (NULL, 'Hide Admin Links','VIEW_COUNTER_HIDE_ADMIN_LINKS', '', 'Do not show admin links for these IP\'s. Use a comma separted list for multiple IP\'s.', '" . $configuration_group_id . "', '" . ($sortID++). "', NULL, now(), NULL)"),
					  array("INSERT INTO configuration (" . $fields . ")  VALUES (NULL, 'Kick Off', 'VIEW_COUNTER_ENABLE_KILL_SESSION', 'false', 'Enable the ability to kick off customes.', '" . $configuration_group_id . "', '" . ($sortID++). "', 'tep_cfg_select_option(array(\'true\', \'false\'), ', now(), NULL)"),
					  array("INSERT INTO configuration (" . $fields . ")  VALUES (NULL, 'Page Refresh Period','VIEW_COUNTER_PAGE_REFRESH', '120', 'How often, in seconds, to refresh the main page in admin.', '" . $configuration_group_id . "', '" . ($sortID++). "', NULL, now(), NULL)"),
					  array("INSERT INTO configuration (" . $fields . ")  VALUES (NULL, 'Rows Per Page','VIEW_COUNTER_MAX_ROWS', '20', 'The maximum number of rows to display in the list.', '" . $configuration_group_id . "', '" . ($sortID++). "', NULL, now(), NULL)"),
					  array("INSERT INTO configuration (" . $fields . ")  VALUES (NULL, 'Send Emails To','VIEW_COUNTER_SEND_EMAILS_TO', '', 'The email address any emails created by View Counter will be sent to. If left empty, the shops email address will be used.', '" . $configuration_group_id . "', '" . ($sortID++). "', NULL, now(), NULL)"),
					  array("INSERT INTO configuration (" . $fields . ")  VALUES (NULL, 'Show Flags', 'VIEW_COUNTER_SHOW_FLAGS', 'true', 'Display the country flags. Turning this off will speed up the display. <br>(true=on false=off)', '" . $configuration_group_id . "', '" . ($sortID++). "', 'tep_cfg_select_option(array(\'true\', \'false\'), ', now(), NULL)"),
					  array("INSERT INTO configuration (" . $fields . ")  VALUES (NULL, 'Show Account Details', 'VIEW_COUNTER_SHOW_ACCOUNT_DETAILS', 'true', 'Display the account details of the visitor, if possible. If multiple accounts exist, they will all be shown. Enabling this option may cause a slow-down, depending upon the site. <br>(true=on false=off)', '" . $configuration_group_id . "', '" . ($sortID++). "', 'tep_cfg_select_option(array(\'true\', \'false\'), ', now(), NULL)"),
					  array("INSERT INTO configuration (" . $fields . ")  VALUES (NULL, 'Version Checker', 'VIEW_COUNTER_ENABLE_VERSION_CHECKER', 'false', 'Enable to automatically check if a new version is available. <br>(true=on false=off)', '" . $configuration_group_id . "', '" . ($sortID++). "', 'tep_cfg_select_option(array(\'true\', \'false\'), ', now(), NULL)"));

and change it to

   $fields = " configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, set_function, date_added, use_function ";
   $db_sql_array = array(array("INSERT INTO configuration (" . $fields . ")  'ON/OFF', 'VIEW_COUNTER_ENABLED', 'false', 'View Counter <br>(true=on false=off)', '" . $configuration_group_id . "', '" . ($sortID++). "', 'tep_cfg_select_option(array(\'true\', \'false\'), ', now(), NULL)"),
					  array("INSERT INTO configuration (" . $fields . ")  'API Key','VIEW_COUNTER_API_KEY', 'Your API KEY', 'Enter your IPInfoDB.com API Key here.<br><br>You can get your key at http://ipinfodb.com/register.php', '" . $configuration_group_id . "', '" . ($sortID++). "', NULL, now(), NULL)"),
					  array("INSERT INTO configuration (" . $fields . ")  'Active Time','VIEW_COUNTER_ACTIVE_TIME', '10', 'The numbre of minutes to show active visitors.', '" . $configuration_group_id . "', '" . ($sortID++). "', NULL, now(), NULL)"),
					  array("INSERT INTO configuration (" . $fields . ")  'Bad Bot Trap', 'VIEW_COUNTER_BAD_BOT_TRAP', 'Email', 'Choose how to handle the bad bot trap.<br><br><b>Ban:</b> Ban the IP<br><b>Email:</b> Send an Email containing the IP<br><b>Both:</b> Both of the above<br><b>Off:</b> Nothing will be done', '" . $configuration_group_id . "', '" . ($sortID++). "', 'tep_cfg_select_option(array(\'Ban\', \'Email\', \'Both\', \'Off\'), ', now(), NULL)"),
					  array("INSERT INTO configuration (" . $fields . ")  'Force Reset','VIEW_COUNTER_FORCE_RESET', '2', 'The maximum number of days to keep the IP\'s in the database. The View counter table will grow very large if not cleared and data over a few days is probably of no use.', '" . $configuration_group_id . "', '" . ($sortID++). "', NULL, now(), NULL)"),
					  array("INSERT INTO configuration (" . $fields . ")  'Force Reset Storage','VIEW_COUNTER_FORCE_RESET_STORAGE', '14', 'The maximum number of days to keep the IP\'s in the storage table. This table is used for reports. It will grow very large if not cleared on a regular basis.', '" . $configuration_group_id . "', '" . ($sortID++). "', NULL, now(), NULL)"),
					  array("INSERT INTO configuration (" . $fields . ")  'Hide Admin Links','VIEW_COUNTER_HIDE_ADMIN_LINKS', '', 'Do not show admin links for these IP\'s. Use a comma separted list for multiple IP\'s.', '" . $configuration_group_id . "', '" . ($sortID++). "', NULL, now(), NULL)"),
					  array("INSERT INTO configuration (" . $fields . ")  'Kick Off', 'VIEW_COUNTER_ENABLE_KILL_SESSION', 'false', 'Enable the ability to kick off customes.', '" . $configuration_group_id . "', '" . ($sortID++). "', 'tep_cfg_select_option(array(\'true\', \'false\'), ', now(), NULL)"),
					  array("INSERT INTO configuration (" . $fields . ")  'Page Refresh Period','VIEW_COUNTER_PAGE_REFRESH', '120', 'How often, in seconds, to refresh the main page in admin.', '" . $configuration_group_id . "', '" . ($sortID++). "', NULL, now(), NULL)"),
					  array("INSERT INTO configuration (" . $fields . ")  'Rows Per Page','VIEW_COUNTER_MAX_ROWS', '20', 'The maximum number of rows to display in the list.', '" . $configuration_group_id . "', '" . ($sortID++). "', NULL, now(), NULL)"),
					  array("INSERT INTO configuration (" . $fields . ")  'Send Emails To','VIEW_COUNTER_SEND_EMAILS_TO', '', 'The email address any emails created by View Counter will be sent to. If left empty, the shops email address will be used.', '" . $configuration_group_id . "', '" . ($sortID++). "', NULL, now(), NULL)"),
					  array("INSERT INTO configuration (" . $fields . ")  'Show Flags', 'VIEW_COUNTER_SHOW_FLAGS', 'true', 'Display the country flags. Turning this off will speed up the display. <br>(true=on false=off)', '" . $configuration_group_id . "', '" . ($sortID++). "', 'tep_cfg_select_option(array(\'true\', \'false\'), ', now(), NULL)"),
					  array("INSERT INTO configuration (" . $fields . ")  'Show Account Details', 'VIEW_COUNTER_SHOW_ACCOUNT_DETAILS', 'true', 'Display the account details of the visitor, if possible. If multiple accounts exist, they will all be shown. Enabling this option may cause a slow-down, depending upon the site. <br>(true=on false=off)', '" . $configuration_group_id . "', '" . ($sortID++). "', 'tep_cfg_select_option(array(\'true\', \'false\'), ', now(), NULL)"),
					  array("INSERT INTO configuration (" . $fields . ")  'Version Checker', 'VIEW_COUNTER_ENABLE_VERSION_CHECKER', 'false', 'Enable to automatically check if a new version is available. <br>(true=on false=off)', '" . $configuration_group_id . "', '" . ($sortID++). "', 'tep_cfg_select_option(array(\'true\', \'false\'), ', now(), NULL)"));

Share this post


Link to post
Share on other sites

Thanks Jack, Will have a go at the install sometime today - One change I will probably carry out is as follows:

 

in the root .htaccess I will change

# view counter trap anyone trying to access admin
RewriteCond %{REQUEST_URI} "/admin/"
RewriteRule (.*) view_counter_trap.php [L]

 

To

# view counter trap anyone trying to access admin
RewriteCond %{REQUEST_URI} "/admin/"
RewriteCond %{REQUEST_URI} "/private/"
RewriteCond %{REQUEST_URI} "/personal/"
RewriteCond %{REQUEST_URI} "/secret/"
RewriteRule (.*) view_counter_trap.php [L]

In an attempt to trap people snooping for various common restricted directories.


Now running on a fully modded, Mobile Friendly 2.3.4 Store with the Excellent MTS installed - See my profile for the mods installed ..... So much thanks for all the help given along the way by forum members.

Share this post


Link to post
Share on other sites

Yes, you can add what you want there. The ones you mention aren't common to oscommerce so they aren't included in the instructions. But if you are going to do that, the correct syntax would be

RewriteCond %{REQUEST_URI} "/admin/" [NC,OR]
RewriteCond %{REQUEST_URI} "/private/" [NC,OR]
RewriteCond %{REQUEST_URI} "/personal/" [NC,OR]
RewriteCond %{REQUEST_URI} "/secret/"
RewriteRule (.*) view_counter_trap.php [L]

Share this post


Link to post
Share on other sites

hello Jac,

 

I download your new version 1.3 and install it, i use version 2.3.3 and in my admin i can not backup my .htacces file and if i want to look in vieuw counter to monitor it stays empty?

we can be the problem.

greetings Paul

 

Edited by burt
remove un-necessary link

Share this post


Link to post
Share on other sites

Does the backup indicate it worked? Does the htaccess_backups directory exist? For the monitor, have you entered your key? Turned the program on?

Share this post


Link to post
Share on other sites

The link you provided is to your admin so I can't see it since it requires a login. If by "page is white" you mean a completely white page, then that means there is an error. I suppose it could be in the View Counter files but I use the same ones here so it is unlikely. The most likely reason is that there was a mistake made in the installation. You will need to look in the error log to find out what the error is in order to continue.

Share this post


Link to post
Share on other sites

Hi Jack,

 

Trying to install this on a 2.3.3.4 store and having trouble with the database installer.

When I use the install file in the package I get:

1048 - Column 'set_function' cannot be null

 

INSERT INTO configuration ( configuration_id, configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, set_function, date_added, use_function ) VALUES (NULL, 'API Key','VIEW_COUNTER_API_KEY', 'Your API KEY', 'my api-key

 

You can get your key at http://ipinfodb.com/register.php', '6507', '2', NULL, now(), NULL)

 

[TEP STOP]

 

when I use the revised code a couple of posts above I get:

 

1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''ON/OFF', 'VIEW_COUNTER_ENABLED', 'false', 'View Counter

(true=on false=off)' at line 1

 

INSERT INTO configuration ( configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, set_function, date_added, use_function ) 'ON/OFF', 'VIEW_COUNTER_ENABLED', 'false', 'View Counter

(true=on false=off)', '6507', '1', 'tep_cfg_select_option(array(\'true\', \'false\'), ', now(), NULL)

 

[TEP STOP]

 

any Ideas??


Now running on a fully modded, Mobile Friendly 2.3.4 Store with the Excellent MTS installed - See my profile for the mods installed ..... So much thanks for all the help given along the way by forum members.

Share this post


Link to post
Share on other sites

The fix for this was posted on the last page. Though I see it doesn't show correctly in IE - looks fine in FF.

Share this post


Link to post
Share on other sites

Hi jack,

 

The first error I get when using the original code.

 

The second error I get when using the revised code from post No: 40 on the previous page.

 

Thanks


Now running on a fully modded, Mobile Friendly 2.3.4 Store with the Excellent MTS installed - See my profile for the mods installed ..... So much thanks for all the help given along the way by forum members.

Share this post


Link to post
Share on other sites

Yes, there was a mistake in my fix. Please try this code

   $fields = " configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, set_function, date_added, use_function ";
   $db_sql_array = array(array("INSERT INTO configuration (" . $fields . ")  VALUES ('ON/OFF', 'VIEW_COUNTER_ENABLED', 'false', 'View Counter <br>(true=on false=off)', '" . $configuration_group_id . "', '" . ($sortID++). "', 'tep_cfg_select_option(array(\'true\', \'false\'), ', now(), NULL)"),
					  array("INSERT INTO configuration (" . $fields . ")  VALUES ('API Key','VIEW_COUNTER_API_KEY', 'Your API KEY', 'Enter your IPInfoDB.com API Key here.<br><br>You can get your key at http://ipinfodb.com/register.php', '" . $configuration_group_id . "', '" . ($sortID++). "', NULL, now(), NULL)"),
					  array("INSERT INTO configuration (" . $fields . ")  VALUES ('Active Time','VIEW_COUNTER_ACTIVE_TIME', '10', 'The numbre of minutes to show active visitors.', '" . $configuration_group_id . "', '" . ($sortID++). "', NULL, now(), NULL)"),
					  array("INSERT INTO configuration (" . $fields . ")  VALUES ('Bad Bot Trap', 'VIEW_COUNTER_BAD_BOT_TRAP', 'Email', 'Choose how to handle the bad bot trap.<br><br><b>Ban:</b> Ban the IP<br><b>Email:</b> Send an Email containing the IP<br><b>Both:</b> Both of the above<br><b>Off:</b> Nothing will be done', '" . $configuration_group_id . "', '" . ($sortID++). "', 'tep_cfg_select_option(array(\'Ban\', \'Email\', \'Both\', \'Off\'), ', now(), NULL)"),
					  array("INSERT INTO configuration (" . $fields . ")  VALUES ('Force Reset','VIEW_COUNTER_FORCE_RESET', '2', 'The maximum number of days to keep the IP\'s in the database. The View counter table will grow very large if not cleared and data over a few days is probably of no use.', '" . $configuration_group_id . "', '" . ($sortID++). "', NULL, now(), NULL)"),
					  array("INSERT INTO configuration (" . $fields . ")  VALUES ('Force Reset Storage','VIEW_COUNTER_FORCE_RESET_STORAGE', '14', 'The maximum number of days to keep the IP\'s in the storage table. This table is used for reports. It will grow very large if not cleared on a regular basis.', '" . $configuration_group_id . "', '" . ($sortID++). "', NULL, now(), NULL)"),
					  array("INSERT INTO configuration (" . $fields . ")  VALUES ('Hide Admin Links','VIEW_COUNTER_HIDE_ADMIN_LINKS', '', 'Do not show admin links for these IP\'s. Use a comma separted list for multiple IP\'s.', '" . $configuration_group_id . "', '" . ($sortID++). "', NULL, now(), NULL)"),
					  array("INSERT INTO configuration (" . $fields . ")  VALUES ('Kick Off', 'VIEW_COUNTER_ENABLE_KILL_SESSION', 'false', 'Enable the ability to kick off customes.', '" . $configuration_group_id . "', '" . ($sortID++). "', 'tep_cfg_select_option(array(\'true\', \'false\'), ', now(), NULL)"),
					  array("INSERT INTO configuration (" . $fields . ")  VALUES ('Page Refresh Period','VIEW_COUNTER_PAGE_REFRESH', '120', 'How often, in seconds, to refresh the main page in admin.', '" . $configuration_group_id . "', '" . ($sortID++). "', NULL, now(), NULL)"),
					  array("INSERT INTO configuration (" . $fields . ")  VALUES ('Rows Per Page','VIEW_COUNTER_MAX_ROWS', '20', 'The maximum number of rows to display in the list.', '" . $configuration_group_id . "', '" . ($sortID++). "', NULL, now(), NULL)"),
					  array("INSERT INTO configuration (" . $fields . ")  VALUES ('Send Emails To','VIEW_COUNTER_SEND_EMAILS_TO', '', 'The email address any emails created by View Counter will be sent to. If left empty, the shops email address will be used.', '" . $configuration_group_id . "', '" . ($sortID++). "', NULL, now(), NULL)"),
					  array("INSERT INTO configuration (" . $fields . ")  VALUES ('Show Flags', 'VIEW_COUNTER_SHOW_FLAGS', 'true', 'Display the country flags. Turning this off will speed up the display. <br>(true=on false=off)', '" . $configuration_group_id . "', '" . ($sortID++). "', 'tep_cfg_select_option(array(\'true\', \'false\'), ', now(), NULL)"),
					  array("INSERT INTO configuration (" . $fields . ")  VALUES ('Show Account Details', 'VIEW_COUNTER_SHOW_ACCOUNT_DETAILS', 'true', 'Display the account details of the visitor, if possible. If multiple accounts exist, they will all be shown. Enabling this option may cause a slow-down, depending upon the site. <br>(true=on false=off)', '" . $configuration_group_id . "', '" . ($sortID++). "', 'tep_cfg_select_option(array(\'true\', \'false\'), ', now(), NULL)"),
					  array("INSERT INTO configuration (" . $fields . ")  VALUES ('Version Checker', 'VIEW_COUNTER_ENABLE_VERSION_CHECKER', 'false', 'Enable to automatically check if a new version is available. <br>(true=on false=off)', '" . $configuration_group_id . "', '" . ($sortID++). "', 'tep_cfg_select_option(array(\'true\', \'false\'), ', now(), NULL)"));

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×