Gossamer Forum
Home : Products : Links 2.0 : Customization :

NEW MOD: reg users/store favorite links on server

(Page 1 of 2)
> >
Quote Reply
NEW MOD: reg users/store favorite links on server
I use Links 2 to run a directory of java and shockwave games at http://www.allgamesfree.com. I've used the mylinks.cgi and portal.cgi mods in the past to allow users to store their favorite links in a cookie. I wrote a new script that allows users to register, and then store their favorite links in a MySQL database.

I like this system because users can get their favorite links from any computer which should increase frequency of visits. Registration is simple and requires only an email address. I'll be able to quickly build a large base of newsletter subscribers.

Please visit http://www.allgamesfree.com and next to one of the games, click add to myGames. Let me know what you think. If anyone is interested I'd be glad to make the code more readable and then post it.

Regards,
Ryan McKillen

(For clarification: even though this mod uses MySQL it was written for the non-SQL version of Links 2.)

Quote Reply
Re: NEW MOD: reg users/store favorite links on server In reply to
Hi,
This mod sounds great. I am opening a new directory soon and would love to use this mod. Can you please make it available for everyone to use.
Thank You,
Paul

The Hot Web
http://www.thehotweb.net/
Quote Reply
Re: NEW MOD: reg users/store favorite links on server In reply to
This is not really a new Mod, since Jerry Su and I already wrote mods that works with MySQL and Links SQL.

Regards,

Eliot Lee
Quote Reply
Re: NEW MOD: reg users/store favorite links on server In reply to
Yeah, post it, Ryan. Thanks Smile



Quote Reply
Re: NEW MOD: reg users/store favorite links on server In reply to
http://www.allgamesfree.com/mygames.txt

There it is. I hope some of you will be able to use it, improve on it, and repost the code. There are a number of issues that I still need to finish up:

- add an admin function that emails registered users
- make the script more template friendly
- remove extraneous code
- catch and deny emails that aren't in proper form
- fix bug that only allows email/password to be changed only once per browser session

Those things aside, I've registered over 600 users in 3 days and everything seems to be functioning fairly well.

Ryan


Quote Reply
Re: NEW MOD: reg users/store favorite links on server In reply to
Hi,

This is an excellent mod and is one of the best I've seen.

Paul Wilson.
new - http://www.wiredon.net
Quote Reply
Re: NEW MOD: reg users/store favorite links on server In reply to
I saw that you have use CGI::Cookie, but I couldn't find where you'd actually used it. Instead, you used JavaScript. Why?

You might want to add a function to autodelete saved links that have deleted from the admin program. (You can use the coding from my script as an example.)

Happy Coding,

--Drew
http://www.FindingHim.com
Quote Reply
Re: NEW MOD: reg users/store favorite links on server In reply to
Junko, I use CGI::Cookie to read the cookie, but set it with javascript. I should probably set with CGI::Cookie as well for the sake of consistency.

I'd love to see your code to auto delete saved links that I remove from the admin program. Where can I see your script?

Quote Reply
Re: NEW MOD: reg users/store favorite links on server In reply to
portal.cgi linked in the Resources section.

Regards,

Eliot Lee
Quote Reply
Re: NEW MOD: reg users/store favorite links on server In reply to
This is great, Ryan. Thanks.

What should we name the table(s) and fields? (I'm just starting to get the hang of MySQL)

Also, can this be made to work with Links SQL?

Much appreciated ! SmileSmile

Quote Reply
Re: NEW MOD: reg users/store favorite links on server In reply to
portal.cgi... thanks Anthro!

Create your database. In my case I called it mygames. Here's the table structure I used to create users:

CREATE TABLE users (
num int(5) NOT NULL auto_increment,
email varchar(30) NOT NULL,
pass varchar(30) NOT NULL,
ids varchar(255),
PRIMARY KEY (num),
UNIQUE num (num),
KEY num_2 (num)
);

For all you guys that are interested, I am going to make my changes and the autodelete one suggested, and will repost it later this week.

Quote Reply
Re: NEW MOD: reg users/store favorite links on server In reply to
DogTags,

As I mentioned above Jerry Su and I both wrote "My Link" type of Mods for LINKS SQL. Wink

Regards,

Eliot Lee
Quote Reply
Re: NEW MOD: reg users/store favorite links on server In reply to
Thanks, allthingsfree and AnthroRules. This script looks very nice, and I'll try to hunt down the ones by Widgetz and Anthro shortly. I'm hoping to move to SQL sometime within this life span.

SmileSmile

Quote Reply
Re: NEW MOD: reg users/store favorite links on server In reply to
Widgetz is linked in the Links SQL v.1.13 Forum and mine is not publicly available.

Regards,

Eliot Lee
Quote Reply
Re: NEW MOD: reg users/store favorite links on server In reply to
Thank you very kindly, AnthroRules!

DT

Quote Reply
Re: NEW MOD: reg users/store favorite links on server In reply to
Anything new? I see the file is gone now.

Quote Reply
Re: NEW MOD: reg users/store favorite links on server In reply to
Hi allthingsfree

I'm giving your SQL Mylinks a try, and I have a few questions.

1. Right now, I'm testing the "Lost Your Password" link. All that happens is that the user is returned to the login page. The link that I'm using seems to be properly formatted:

http://www.mysite.com/cgi-bin/mylinksite/mylinks.cgi?lost=password

Any suggestions? What should I be seeing?

2. Does your script work with templates? As soon as I login, some old templates from widgy's script pop up.

3. When I went to your site to see how to configure the link code, I got warning windows (in IE 5) and my computer closed that browser window. I didn't even get a chance to look at the source code to look for errors. Is there a problem with the script?

Thanks for your help.

DT



Quote Reply
Re: NEW MOD: reg users/store favorite links on server In reply to
Hello,

Where can I get this file/mod?

http://www.allgamesfree.com/mygames.txt
it's not there anymore. I emailed him but never heard back.

thanks



Quote Reply
Re: NEW MOD: reg users/store favorite links on server In reply to
I just tried allthingsfree's site again. The script seems to be working, but for some reason, IE5 crashes on his site. I got to try a few things, but then my brower took a dive.

Let's see if allthingsfree responds soon.

DT

Quote Reply
Re: NEW MOD: reg users/store favorite links on server In reply to
Okay, going by allthingsfree's comments above, Ryan wants us to post and improve the code. So, here it is. I can get it to add users, and I can login, but that's about it. The cookie doesn't seem to set, and the "Lost Password" thing doesn't work for me. I use IE5.

mygames.cgi ORIGINAL
In Reply To:
#!/usr/bin/perl

use CGI::Cookie;
use CGI();
use CGI::Carp qw/fatalsToBrowser/;
use CGI qw(:standard);
use DBI;

require "/home/allgamesfree/public_html/cgi-bin/games/admin/links.cfg";
require "$db_lib_path/db_utils.pl";
require "$db_lib_path/links.def";
require "/home/allgamesfree/public_html/cgi-bin/games/admin/Mailer.pm";
$build_use_templates ?
require "$db_lib_path/site_html_templates.pl" :
require "$db_lib_path/site_html.pl";
$|++;

$username = "username";
$password = "password";
$database = "dbname";

&main();

#BEGIN MAIN-------------------------------------------------------------------
sub main {
if (param('email')) {
&login();
} elsif (param('regemail')) {
Ūme();
} elsif ($gamestring) {
&display();
} elsif (param('delete')) {
&delete_id();
} elsif (param('add')) {
&add_id();
} elsif (param('modify')) {
&modify();
} elsif (param('newpass') or param('confirmnewpass') or param('newemail')) {
&modifyme();
} elsif (param('forgot')) {
&forgot();
} elsif (param('sendpassto')) {
&sendpassto();
} else {
&disp_login();
}
}
#END MAIN---------------------------------------------------------------------

#BEGIN DISPLAY----------------------------------------------------------------
sub display {
$sep = "WASEMAILNOWPASS";
print "Content-type: text/html\n\n";
@g2 = split(/x/, $gamestring);
foreach (@g2) {
last if ($_ eq "");
$OUT{'links'} .= &site_html_my_link (&get_record ($_));
}
&site_html_my_home ( { %OUT } );
print qq~
<SCRIPT language="JavaScript">
function SetCookie (name,value,expires,path,domain,secure) {
document.cookie = name + "=" + escape (value) +
((expires) ? "; expires=" + expires.toGMTString() : "") +
((path) ? "; path=" + path : "") +
((domain) ? "; domain=" + domain : "") +
((secure) ? "; secure" : "");
}
if(document.cookie) {

} else {
SetCookie ("mygames", "$email$sep$pass", null, "/");
}
</SCRIPT>
</body>
</html>
~;
$gamestring = "";
}
#END DISPLAY------------------------------------------------------------------

#BEGIN DISP_LOGIN-------------------------------------------------------------
sub disp_login {
if (param('add_id')) { $id = param('add_id'); }
&header();
print qq ~
<center><p>
<b>myGames</b>
<table width=500><tr><td><p align="justify">
As a myGames user, your favorite java and shockwave games are stored on allgamesfree.com. Login
from any computer and your favorite games will be listed on one easy-to-view page.
</td></tr></table><p>
<table><tr>
<td valign="top" width=250>
<b>current users: login</b><p align="justify">
Enter your email address and password to access myGames.
<form name="register" method="post" action="/mygames.cgi">
<input type="hidden" name="add_id" value="$id">

<table>
<tr><td>email:</td><td><input type="text" name="email" value="$email"></td></tr>
<tr><td>password: </td><td><input type="password" name="pass"></td></tr>
<tr><td colspan=2 align="right"><input type="submit" value="login"></td></tr>
</table>
</form>
$error
<p align="justify">
<a href=\"mygames.cgi?lost=password\">lost your password?</a>
</td>
<td>     
</td><td valign="top" width=250>
<b>new users: register</b><p align="justify">
Registration only requires a valid email address. No other annoying forms to fill out!
<form name="register" method="post" action="/mygames.cgi">
<input type="hidden" name="add_id" value="$id">

<table>
<tr><td>email:    </td><td><input type="text" name="regemail"></td></tr>
<tr><td colspan=2 align="right"><input type="submit" value="register"></td></tr>
</table>
</form>
$error2
<p align="justify">
A password will be emailed to you and is required for any logins beyond this first one.
</tr></table>
</center>
~;
&footer();
}
#END DISP_LOGIN---------------------------------------------------------------

#BEGIN BAD_PASS---------------------------------------------------------------
sub bad_pass {
$email = param('email');
$error = "<font color=\"red\"><b>incorrect password</b></font>";
&disp_login();
}
#END BAD_PASS-----------------------------------------------------------------

#BEGIN BAD_EMAIL--------------------------------------------------------------
sub bad_email {
$email = param('email');
$error = "<font color=\"red\"><b>$email
is not registered</b></font>";
$email = "";
&disp_login();
}
#END BAD_EMAIL----------------------------------------------------------------

#BEGIN REGME------------------------------------------------------------------
sub regme {
$regemail = param('regemail');
@pass = split(/\@/,$regemail);
srand;
$number = int(rand(100)) + 1;
$regpw = $pass[0] . $number;
$dbh = DBI->connect ("DBI:mysql:$database", $username, $password);
$sth = $dbh->prepare("SELECT email FROM users WHERE email = '$regemail'");
$sth -> execute();
@data = $sth->fetchrow_array;
if ($regemail eq $data[0]) {
$email = param('regemail');
$error2 = "<font color=\"red\"><b>$email
is already registered</b></font>";
$dbh->disconnect;
&disp_login();
} else {
$sth = $dbh->prepare("INSERT INTO users VALUES ('','$regemail','$regpw','')");
$sth -> execute();
$dbh->disconnect;
#begin mailing
$db_mail_path = "/usr/sbin/sendmail";
$from = "games\@allgamesfree.com";
$subject = "enjoy myGames";
$to = $regemail;
$msg = qq|

As a myGames user, your favorite java and shockwave games are
stored on allgamesfree.com. Login from any computer and your
favorite games will be listed on one easy-to-view page.

Use your email address and password \"$regpw\" to login.
If you don't like this password you can change it.

http://www.allgamesfree.com/mygames.cgi

|;
$db_mailer_log = '';
my $mailer = new Mailer ( {
sendmail => $db_mail_path,
from => $from,
subject => $subject,
to => $to,
msg => $msg,
log => $db_mailer_log
} ) or return;
$mailer->send or return;
#end mailing
$regme = 1;
$added_id = param('add_id');
&login();
}
}
#END REGME--------------------------------------------------------------------

#BEGIN LOGIN------------------------------------------------------------------
sub login {
if ($regme == 1) {
$email = $regemail;
$pass = $regpw;
} else {
$email = param('email');
$pass = param('pass');
}
$dbh = DBI->connect ("DBI:mysql:$database", $username, $password);
$sth = $dbh->prepare("SELECT pass FROM users WHERE email = '$email'");
$sth -> execute();
@data = $sth->fetchrow_array;
$pword = $data[0];
if ($pword) {
if ($pword eq $pass) {
$sth = $dbh->prepare("SELECT ids FROM users WHERE email = '$email'");
$sth -> execute();
@data = $sth->fetchrow_array;
$game_ids = $data[0];
@g_ids = split(/::/,$game_ids);
$num = 0;
foreach $game (@g_ids) {
if ($num == 0) {
$gamestring = $game;
++$num;
} else {
$gamestring = $gamestring . "x" . $game;
}
}
if ($regme == 1) {
if ($added_id) {
$gamestring = $added_id;
$data[0] = $added_id;
$sth = $dbh->prepare("UPDATE users SET ids = '$data[0]' WHERE email = '$email'");
$sth -> execute();
}
} elsif (param('add_id')) {
$added_id = param('add_id');
foreach (@g_ids) {
if ($_ == $added_id) { $noadd = 1; }
}
if ($noadd != 1) {
$gamestring = $added_id . "x" . $gamestring;
$data[0] = $added_id . "::" . $data[0];
}
$sth = $dbh->prepare("UPDATE users SET ids = '$data[0]' WHERE email = '$email'");
$sth -> execute();
}
$whereto = "mygames";
} else {
$whereto = "password";
}
} else {
$whereto = "email";
}
$dbh->disconnect;
if ($whereto eq "mygames") { &display(); }
if ($whereto eq "password") { &bad_pass(); }
if ($whereto eq "email") { &bad_email(); }
}
#END LOGIN--------------------------------------------------------------------

#BEGIN DELETE_ID--------------------------------------------------------------
sub delete_id {
$id = param('delete');
@nvpairs=split(/; /, $ENV{'HTTP_COOKIE'});
foreach $pair (@nvpairs) {
($name, $value) = split(/=/, $pair);
$cookie{$name} = $value;
}
$email_and_pass = $cookie{'mygames'};
@cookie_data = split(/WASEMAILNOWPASS/,$email_and_pass);
$dbh = DBI->connect ("DBI:mysql:$database", $username, $password);
$sth = $dbh->prepare("SELECT ids FROM users WHERE email = '$cookie_data[0]'");
$sth -> execute();
@data = $sth->fetchrow_array;
@ids = split(/::/,$data[0]);
$num = 0;
foreach (@ids) {
if ($id != $_) {
$new_ids[$num] = $_;
++$num;
}
}
$num = 0;
if (@new_ids) {
foreach (@new_ids) {
if ($num == 0) {
$id_string = $_;
} else {
$id_string = $id_string . "::" . $_;
}
++$num;
}
}
$sth = $dbh->prepare("UPDATE users SET ids = '$id_string' WHERE email = '$cookie_data[0]'");
$sth -> execute();
$dbh->disconnect;
@gs = split(/::/,$id_string);
$num = 0;
foreach (@gs) {
if ($num == 0) {
$gamestring = $_;
} else {
$gamestring = $gamestring . "x" . $_;
}
++$num;
}
&display();
}
#END DELETE_ID----------------------------------------------------------------

#BEGIN ADD_ID-----------------------------------------------------------------
sub add_id {
$id = param('add');
@nvpairs=split(/; /, $ENV{'HTTP_COOKIE'});
if (@nvpairs) {
foreach $pair (@nvpairs) {
($name, $value) = split(/=/, $pair);
$cookie{$name} = $value;
}
$email_and_pass = $cookie{'mygames'};
@cookie_data = split(/WASEMAILNOWPASS/,$email_and_pass);
$dbh = DBI->connect ("DBI:mysql:$database", $username, $password);
$sth = $dbh->prepare("SELECT ids FROM users WHERE email = '$cookie_data[0]'");
$sth -> execute();
@data = $sth->fetchrow_array;
@data_check = split(/::/,$data[0]);
foreach (@data_check) {
if ($_ == $id) { $notadd = 1; }
}
if ($notadd != 1) { $data[0] = $id . "::" . $data[0]; }
$sth = $dbh->prepare("UPDATE users SET ids = '$data[0]' WHERE email = '$cookie_data[0]'");
$sth -> execute();
$dbh->disconnect;
@gs = split(/::/,$data[0]);
$num = 0;
foreach (@gs) {
if ($num == 0) {
$gamestring = $_;
} else {
$gamestring = $gamestring . "x" . $_;
}
++$num;
}
&display();
} else {
&disp_login();
}
}
#END ADD_ID-------------------------------------------------------------------

#BEGIN MODIFY-----------------------------------------------------------------
sub modify {
@nvpairs=split(/; /, $ENV{'HTTP_COOKIE'});
if (@nvpairs) {
foreach $pair (@nvpairs) {
($name, $value) = split(/=/, $pair);
$cookie{$name} = $value;
}
$email_and_pass = $cookie{'mygames'};
@cookie_data = split(/WASEMAILNOWPASS/,$email_and_pass);
&header();
print qq ~
<center><p>
<b>myGames</b>
<p>
enter a new email, password, or both
<form name="modify" method="post" action="/mygames.cgi">
<table>
<tr><td>new email: </td><td><input type="text" name="newemail"></td></tr>
<tr><td>new password: </td><td><input type="password" name="newpass"></td></tr>
<tr><td>new password again: </td><td><input type="password" name="confirmnewpass"></td></tr>
<tr><td colspan=2 align="right"><input type="submit" value="modify"></td></tr>
</table>
</form>
$error
~;
&footer();
} else {
&disp_login();
}
}
#END MODIFY-------------------------------------------------------------------

#BEGIN MODIFYME---------------------------------------------------------------
sub modifyme {
$error = "";
$newpass1 = param('newpass');
$newpass2 = param('confirmnewpass');
$newemail = param('newemail');
@nvpairs=split(/; /, $ENV{'HTTP_COOKIE'});
foreach $pair (@nvpairs) {
($name, $value) = split(/=/, $pair);
$cookie{$name} = $value;
}
$email_and_pass = $cookie{'mygames'};
@cookie_data = split(/WASEMAILNOWPASS/,$email_and_pass);
if ($newemail) {
$dbh = DBI->connect ("DBI:mysql:$database", $username, $password);
$sth = $dbh->prepare("SELECT email FROM users WHERE email = '$newemail'");
$sth -> execute();
@data = $sth->fetchrow_array;
$dbh->disconnect;
if ($newemail eq $data[0]) {
$error = "<font color=\"red\"><b>$newemail
is already registered</b></font>";
&modify();
} else {
$dbh = DBI->connect ("DBI:mysql:$database", $username, $password);
$sth = $dbh->prepare("UPDATE users SET email = '$newemail' WHERE email = '$cookie_data[0]'");
$sth -> execute();
$dbh->disconnect;
$email = $newemail;
}
} else {
$newemail = $cookie_data[0];
$email = $newemail;
}
if ($newpass1 or $newpass2) {
if ($newpass1 eq $newpass2) {
$pass = $newpass;
$dbh = DBI->connect ("DBI:mysql:$database", $username, $password);
$sth = $dbh->prepare("UPDATE users SET pass = '$newpass1' WHERE email = '$newemail'");
$sth -> execute();
$dbh->disconnect;
} else {
$error = "<font color=\"red\"><b>passwords do not match</b></font>";
&modify();
}
} else {
$pass = $cookie_data[1];
}
if (!$error) {
$dbh = DBI->connect ("DBI:mysql:$database", $username, $password);
$sth = $dbh->prepare("SELECT ids FROM users WHERE email = '$newemail'");
$sth -> execute();
@data = $sth->fetchrow_array;
$dbh->disconnect;
$game_ids = $data[0];
@g_ids = split(/::/,$game_ids);
$num = 0;
foreach $game (@g_ids) {
if ($num == 0) {
$gamestring = $game;
++$num;
} else {
$gamestring = $gamestring . "x" . $game;
}
}
$pass = $newpass1;
&display();
}
}
#END MODIFYME-----------------------------------------------------------------

#BEGIN HEADER-----------------------------------------------------------------
sub header {
print "Content-type: text/html\n\n";
open(HEADER_FILE, "</home/allgamesfree/public_html/cgi-bin/games/admin/templates/my_header.html");
while (<HEADER_FILE>) {
print $_;
}
close(HEADER_FILE);
}
#END HEADER-------------------------------------------------------------------

#BEGIN FOOTER-----------------------------------------------------------------
sub footer {
#open(FOOTER_FILE, "<admin/templates/my_footer.html");
#while (<FOOTER_FILE>) {
# print $_;
#}
#close(FOOTER_FILE);
print "<p align=\"center\">contact <a href=\"mailto:games\@allgamesfree.com\">games\@allgamesfree.com</a>";
print "</body></html>";
}
#END FOOTER-------------------------------------------------------------------

#BEGIN FORGOT-----------------------------------------------------------------
sub forgot {
&header();
print qq ~
<center><p>
<b>myGames</b>
<p>
have your password emailed
<form name="forgot" method="post" action="/mygames.cgi">
<table>
<tr><td>email: </td><td><input type="text" name="sendpassto"></td></tr>
<tr><td colspan=2 align="right"><input type="submit" value="send it"></td></tr>
</table>
</form>
$error
~;
&footer();
}
#END FORGOT-------------------------------------------------------------------

#BEGIN SENDPASSTO-------------------------------------------------------------
sub sendpassto {
$sendpassto = param('sendpassto');
$dbh = DBI->connect ("DBI:mysql:$database", $username, $password);
$sth = $dbh->prepare("SELECT pass FROM users WHERE email = '$sendpassto'");
$sth -> execute();
@data = $sth->fetchrow_array;
$dbh->disconnect;
if ($data[0]) {
#begin mailing
$db_mail_path = "/usr/sbin/sendmail";
$from = "games\@allgamesfree.com";
$subject = "myGames password";
$to = $sendpassto;
$msg = qq|

Did you forget that "$data[0]" is your myGames password? Now you'll
be able to play your favorite java and shockwave games again.

http://www.allgamesfree.com/mygames.cgi

|;
$db_mailer_log = '';
my $mailer = new Mailer ( {
sendmail => $db_mail_path,
from => $from,
subject => $subject,
to => $to,
msg => $msg,
log => $db_mailer_log
} ) or return;
$mailer->send or return;
#end mailing
&disp_login();
} else {
$error = "<font color=\"red\"><b>$sendpassto is not registered</b></font>";
&forgot();
}
}
#END SENDPASSTO---------------------------------------------------------------
This would be great to get working and have good instructions.

HTH

DT

Quote Reply
Re: NEW MOD: reg users/store favorite links on server In reply to
Just adding a little flotation.

allthingsfree, if you get a chance, we'd love to know how we should tweak your script.

Thanks.

DT

Quote Reply
Re: NEW MOD: reg users/store favorite links on server In reply to
Hi everyone! I'm back, I just kind of forgot about the forum for a while. Here is a list of all the changes:

- seperate page for signing up new users
- more descriptive errors
- dialogs that inform users when they have signed up, added, deleted, etc
- cookie problems have been fixed
- error handling for browsers without cookies enabled
- modify email and password bug fixed
- tracks number of times users have logged in
- checks for fake-looking email addresses
- new users receive email with activation URL needed to login for the first time
- users now pick their own passwords instead of getting a random one
- timestamping so accounts not activated within a week can be removed
- timestamping so accounts not used in 90 days can be removed
- newsletter feature, users are subscribed by default, but can choose to not receive newsletter

There are probably some other things too. I'm going to clean the code up a bit and chop it up into seperate files, because 24k for the script is a little big. When it's done I'll post a URL and instructions. For now, you can try it out:

http://www.allgamesfree.com/mygames.cgi.

Later... Ryan

Quote Reply
Re: NEW MOD: reg users/store favorite links on server In reply to
Here it is as promised:

http://www.screamingv.com/mylinks_sql/

I created a readme.txt and tried to explain everything fairly well. I was in a bit of a rush so I hope everything is clear. Let me know if there are problems.

When customizing for your site PLEASE make sure you go through all the files and customize the error message, dialogs, and templates. Right now there are lots of references to "Site Name", "domain.com", "you\@domain.com", things you won't want on your site. I wrote this script for myself so it's not completely template friendly.

I'm leaving for Florida (SPRING BREAK!) Friday night so I will try to answer any questions posted before then. Otherwise, I'll be back in a week.

I still wanted to add one feature, but I forgot to do it. I'll try to get around to it before I leave... a function that removes link IDs from the MySQL database when the Links 2.0 admin removes them from links.db.

Later...

Quote Reply
Re: NEW MOD: reg users/store favorite links on server In reply to
It sounds like a great mod, thanks for putting forth the effort to create it.

However, I just tried to download the files and all of the cgi and pl files are forbidden access. Could you fix this, and maybe zip the files into a single download?

Thanks!
Adam



Quote Reply
Re: NEW MOD: reg users/store favorite links on server In reply to
Yep, I got the same Forbidden thing.

DT

> >