200 likes | 463 Views
DBM Databases. Please use speaker notes for additional information!. Click here. Click here. Click here. Make any changes you want. Click here. Click here. Click here. Click here to retrieve the information. Click here. Click here. Click here. Click here. Click here.
E N D
DBM Databases Please use speaker notes for additional information!
Make any changes you want. Click here.
<!bccstudents1.html> <html> <head> <title>BCC Students</title> </head> <BODY> <h1>BCC Student eMail List</h1> <form action="http://www.pgrocer.com/cgi-bin/db/bccstudents1.cgi" method=post> The CIS Department is publishing a newsletter to keep students up-to-date with changes that are being made. This page will give you the opportunity to sign up for the newsletter or remove your name from the newsletter list.<br><br> Student Name: <input type=text name=stuname size=25><br> Student Major: <input type=text name=major size=3><br> Student Option: <input type=text name=option size=3><br> eMail address: <input type=text name=email size=50><br><br> <input type=submit name=button value="Add me to the CIS Mailing List"> <input type=submit name=button value="Remove me from the CIS Mailing List"><br><br> <input type=submit name=button value="View my information"> <input type=reset value="Reset"> </form> </body> </html>
#!/usr/bin/perl #bccstudents1.cgi - add and remove names from CIS mailing list print "Content-type: text/html\n\n"; use CGI::Carp qw(fatalsToBrowser); use CGI qw(:standard); use SDBM_File; use Fcntl; use strict; #declare variables my ($button, $name, $major, $option, $email); #assign values to variables $button = param('button'); $name = param('stuname'); $major = param('major'); $option = param('option'); $email = param('email'); if ($button eq "Add me to the CIS Mailing List") { add(); } elsif ($button eq "Remove me from the CIS Mailing List") { remove(); } elsif ($button eq "View my information") { view() } exit; #*****user-defined functions***** The functions add(), remove() and view() are shown on the next few pages.
sub view { #declare variable my %mail; #open database, view record, close database tie(%mail, "SDBM_File", "cislist", O_RDONLY, 0666) or die "Error opening cislist. $!, stopped"; ($name, $major, $option) = split(/,/, $mail{$email}); if (exists($mail{$email})) { untie(%mail); #create Web page print "<html>\n"; print "<head><title>CIS Newsletter Mailing List</title><basefont size=5></head>\n"; print "<h1>CIS Newsletter Mailing List</h1>\n"; print "<form action='http://www.pgrocer.com/cgi-bin/db/bccstudents1a.cgi' method=post>\n"; print "Student Name: <input type=text name=stuname value='$name' size=25><br>\n"; print "Student Major: <input type=text name=major value='$major' size=3><br>\n"; print "Student Option: <input type=text name=option value='$option' size=3><br>\n"; print "eMail address: <input type=text name=email value=$email size=50><br><br>\n"; print "<input type=submit name=button value='Update Mailing List'><br><br>\n"; print "<a href='http://www.pgrocer.com/db/bccstudents1.html'>OR...Click here to return to main page</a>\n"; print "</body></html>\n"; } else { untie(%mail); #create Web page print "<html>\n"; print "<head><title>CIS Newsletter Mailing List</title><basefont size=5></head>\n"; print "<h1>CIS Newsletter Mailing List</h1>\n"; print "Record does not exist.<br><br>\n"; print "<a href='http://www.pgrocer.com/db/bccstudents1.html'>Click here to return to main page</a>\n"; print "</body></html>\n"; } } #endview This is the code that opens the database. Note that I am opening in as readonly. I then take the record that the key located and split it into the appropriate fields so I can display them on the screen.
sub add { #declare variable my %mail; #open database, add record, close database tie(%mail, "SDBM_File", "cislist", O_CREAT|O_RDWR, 0666) or die "Error opening cislist. $!, stopped"; $mail{$email} = "$name,$major,$option"; untie(%mail); #create Web page print "<html>\n"; print "<head><title>CIS Newsletter Mailing List</title><basefont size=5></head>\n"; print "<h1>CIS Newsletter Mailing List</h1>\n"; print "You are on our list to receive your newsletter at $email.<br><br>\n"; print "<a href='http://www.pgrocer.com/db/bccstudents1.html'>Click here to return to main page</a>\n"; print "</body></html>\n"; } #end add
sub remove { #declare variables my (%mail, $msg); #open database tie(%mail, "SDBM_File", "cislist", O_RDWR, 0) or die "Error opening cislist. $!, stopped"; #determine if user's information is in the database if (exists($mail{$email})) { delete($mail{$email}); $msg = "Mail will not be sent to $email"; } else { $msg = "Our mailing list does not include $email."; } #close database untie(%mail); #create Web page print "<html>\n"; print "<head><title>CIS Newsletter Mailing List</title><basefont size=5></head>\n"; print "<h1>CIS Newsletter Mailing List</h1>\n"; print "$msg<br><br>\n"; print "<a href='http://www.pgrocer.com/db/bccstudents1.html'>Click here to return to main page</a>\n"; print "</body></html>\n"; } #end remove
#!/usr/bin/perl #bccstudents1a.cgi - change names from CIS mailing list print "Content-type: text/html\n\n"; use CGI::Carp qw(fatalsToBrowser); use CGI qw(:standard); use SDBM_File; use Fcntl; use strict; #declare variables my ($button, $name, $major, $option, $email); #assign values to variables $button = param('button'); $name = param('stuname'); $major = param('major'); $option = param('option'); $email = param('email'); if ($button eq "Update Mailing List") { change(); } exit; #*****user-defined functions*****
sub change { #declare variable my %mail; #open database, add record, close database tie(%mail, "SDBM_File", "cislist", O_CREAT|O_RDWR, 0666) or die "Error opening cislist. $!, stopped"; $mail{$email} = "$name,$major,$option"; untie(%mail); #create Web page print "<html>\n"; print "<head><title>CIS Newsletter Mailing List</title><basefont size=5></head>\n"; print "<h1>CIS Newsletter Mailing List</h1>\n"; print "The information has been changed.<br>\n"; print "Name: $name<br>\n"; print "Major: $major<br>\n"; print "Option: $option<br>\n"; print "eMail: $email<br><br><br>\n"; print "<a href='http://www.pgrocer.com/db/bccstudents1.html'>Click here to return to main page</a>\n"; print "</body></html>\n"; } #end change