How to create RateMySite rating script tutorial
Tutorial: Creating RateMySite script
RateMySite scripts give your visitors chance to rate your website.
Ratings are from 1 which is poor to 5 which is excelent. Logic of this script
can be also used for poll script.
Database design
For storing rating data we will need just one table we can call it Ratings.
This table need to have three fields: rating_id an autonumber field, rating
an numeric field and and one text field for storing visitor IP.
Requirements to run this script
Windows IIS web server,or any other which have Asp support.Support
for Microsoft Access database.
Script code
The script itself is developed to be included in asp page by using server
side include directive. Using SSI script file inc_ratemysite can be included
in any asp page.
At the begining of code the connection string is defined and connection
is opened.
dim connStr
dim conn
dim rsRatings
connSTR = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" &
Server.MapPath("_private\CaRateMySite.mdb")
set conn=server.CreateObject("ADODB.Connection")
conn.Open connSTR
Then we need to check if visitor posted his rating
rating=request("Rate")
if rating<>"" then
if rating is posted we need to check that this visitor did not already
rated our page, we need to check if cookie was issued and check the database
against his ip address. If cookie was not set and visitor ip is not in
our database we will store his rating and set a cookie. Using this we
will prevent same visitor to post multiple ratings.
visitorIP=request.ServerVariables("REMOTE_ADDR")
rating=request("Rate")
cookie=request.Cookies("Rate" & request.ServerVariables("SERVER_NAME"))
if cookie="" then
cookieRated=false
else
cookieRated=true
end if
Set rs = Server.CreateObject("ADODB.Recordset")
rs.ActiveConnection =conn
rs.Open "SELECT COUNT(*) FROM RATINGS WHERE IP='" & visitorIP
& "'"
if rs.Fields(0).Value=0 then
if cookieRated=false then
conn.Execute "INSERT INTO RATINGS(rating,ip) VALUES(" &
RATING & ",'" & VISITORIP & "')"
RESPONSE.Cookies("Rate" & request.ServerVariables("SERVER_NAME"))=TRUE
RESPONSE.Cookies("Rate" & request.ServerVariables("SERVER_NAME")).EXPIRES=DATE()+30
Displaying the rating result.We need to calculate the average rating by
dividing the sum of all ratings by number of votes. Average rating is
rounded to integer.Rating is presented by 5 stars.Shiny one for good rating
and black one or empty for unfilled rate.
set rsRatings= Server.CreateObject("ADODB.Recordset")
rsRatings.ActiveConnection =conn
rsRatings.Open "SELECT SUM(RATING),COUNT(*) FROM RATINGS"
totalVotes=rsRatings.Fields(1).Value
if cint(totalVotes)>0 then
avgRating=rsRatings.Fields(0).Value/rsRatings.Fields(1).Value
finalRating=round(avgRating)
noStars=5-cint(finalRating)
else
finalRating=0
noStars=5
end if
rsRatings.Close
conn.Close
dim i
for i=1 to cint(finalRating)%>
Display the filled star or image of your choice
next
for i=1 to cint(noStars)
Display unfilled or black star or image of your choice
next
Download Here
|