Ho questo script per il sistema di votazione con le steline e funziona tutto ok, tranne che in un caso, ovvero quando si da il primo voto!!!
Questo codice è modificato rispetto all'originale (e completamente funzionante) nel fatto che i record del database contengono anche un campo memo e quindi con del testo superiore a 255 caratteri e a quanto pare questa cosa manda in tilt il codice che mi restituisce un errore 500.
Avete idea di come risolverlo o aggirare il problema?
Codice PHP:
<%
if Request.QueryString("mode") = "votato" then
%>
<html>
<head>
<title>Grazie!</title>
<script language="javascript">
function chiudireload() {
window.close();
}
</script>
</head>
<body background="../img/stripe_b.gif">
<div align="center">
<center>
<table width="270" border="0" cellspacing="0" cellpadding="0" height="175" style="border-collapse: collapse" bordercolor="#111111">
<tr>
<td align="center" height="175"><font face="Arial">Grazie per aver votato.
</font>
<form>
<font face="Arial">
<input type="button" value="Chiudi" name="B1" onclick="chiudireload()" >
</form>
</td>
</tr>
</table>
</center>
</div>
<% else %>
<%
if Request.QueryString("mode") = "vota" then
%>
<%
Dim rsLink__ID
ConnR_String = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("../mdb-database/books-prova.mdb")
Set ConnR=Server.CreateObject("ADODB.Connection")
ConnR.Open ConnR_String
rsLink__ID = "1"
if (Request.QueryString("id") <> "") then rsLink__ID = Request.QueryString("id")
%>
<%
set rsLink = Server.CreateObject("ADODB.Recordset")
rsLink.ActiveConnection = ConnR_String
rsLink.Source = "SELECT *, (LINK_RATE/NO_RATES) AS RATING FROM Libri WHERE ID = " + Replace(rsLink__ID, "'", "''") + ""
rsLink.CursorType = 0
rsLink.CursorLocation = 2
rsLink.LockType = 3
rsLink.Open()
rsLink_numRows = 0
%>
<title>Vota per: <%=(rsLink.Fields.Item("titolo_libro").Value)%></title>
<body background="../img/stripe_b.gif">
</font>
<table width="100%" border="0" cellspacing="0" cellpadding="0" style="border-collapse: collapse" bordercolor="#111111" height="158">
<tr>
<td align="center" height="43">
<script language="JavaScript">
<!-- Hide from older browsers
// Function to add the rating to the database
function Rating(star) {
if (star != "") self.location.href = "rating.asp?ID=<%=(rsLink.Fields.Item("ID").Value)%>&Input=Vota&rate_value=" + star;
return true;
}
// -->
</script>
<font face="Arial" size="2">Vota:
<%=(rsLink.Fields.Item("titolo_libro").Value)%></font>
</td>
</tr>
<tr>
<td height="115">
<table border="0" cellspacing="0" cellpadding="2" align="center">
<tr>
<td><font face="Arial">[url="JavaScript:Rating('1')"][img]star_pieno.gif[/img][img]star_vuoto.gif[/img][img]star_vuoto.gif[/img][img]star_vuoto.gif[/img][img]star_vuoto.gif[/img][/url]</font></td>
<td><font face="Arial" size="2">Mediocre</font></td>
</tr>
<tr>
<td><font face="Arial">[url="JavaScript:Rating('2')"][img]star_pieno.gif[/img][img]star_pieno.gif[/img][img]star_vuoto.gif[/img][img]star_vuoto.gif[/img][img]star_vuoto.gif[/img][/url]</font></td>
<td><font face="Arial" size="2">Sufficiente</font></td>
</tr>
<tr>
<td><font face="Arial">[url="JavaScript:Rating('3')"][img]star_pieno.gif[/img][img]star_pieno.gif[/img][img]star_pieno.gif[/img][img]star_vuoto.gif[/img][img]star_vuoto.gif[/img][/url]</font></td>
<td><font face="Arial" size="2">Discreto</font></td>
</tr>
<tr>
<td><font face="Arial">[url="JavaScript:Rating('4')"][img]star_pieno.gif[/img][img]star_pieno.gif[/img][img]star_pieno.gif[/img][img]star_pieno.gif[/img][img]star_vuoto.gif[/img][/url]</font></td>
<td><font face="Arial" size="2">Buono</font></td>
</tr>
<tr>
<td><font face="Arial">[url="JavaScript:Rating('5')"][img]star_pieno.gif[/img][img]star_pieno.gif[/img][img]star_pieno.gif[/img][img]star_pieno.gif[/img][img]star_pieno.gif[/img][/url]</font></td>
<td><font face="Arial"><font size="2">Ottimo</font></td>
</tr>
</table>
</td>
</tr>
</table>
<%
ConnR.Close
set ConnR = nothing
rsLink.Close()
%>
<%
else
%>
<%intSiteID = CInt(Request.QueryString("ID"))
if Request.Cookies("rate_value")("Site" & intSiteID) = "True" then %>
<title>Non valido!</title>
<body background="../img/stripe_b.gif">
</font>
<div align="center">
<center>
<table wIDth="270" border="0" cellspacing="0" cellpadding="0" height="185" style="border-collapse: collapse" bordercolor="#111111">
<tr>
<td align="center" height="185"><font face="Arial">Hai già votato quest'opera![b]
[/b]
</font>
<form>
[b]
<font face="Arial">
<input type="button" value="Chiudi" name="B1" onClick="window.close()">
</font>
[/b]
</form>
</td>
</tr>
</table>
</center>
</div>
<%else %>
<%
Response.Cookies("rate_value")("Site" & intSiteID) = "True"
Response.Cookies("rate_value").Expires = Now() + 1
%>
<%
Dim ConnR_String,ConnR
ConnR_String = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("../mdb-database/books-prova.mdb")
Set ConnR=Server.CreateObject("ADODB.Connection")
ConnR.Open ConnR_String
if(Request.QueryString("rate_value") <> "") then cmdRating__varRATE = Request.QueryString("rate_value")
if(Request.QueryString("id") <> "") then cmdRating__varID = Request.QueryString("id")
%>
<%
set cmdRating = Server.CreateObject("ADODB.Command")
cmdRating.ActiveConnection = ConnR_String
cmdRating.CommandText = "UPDATE Libri SET LINK_RATE = LINK_RATE + " + Replace(cmdRating__varRATE, "'", "''") + ", NO_RATES = NO_RATES + 1 WHERE ID = " + Replace(cmdRating__varID, "'", "''") + ""
cmdRating.CommandType = 1
cmdRating.CommandTimeout = 0
cmdRating.Prepared = true
cmdRating.Execute()
Response.Redirect "rating.asp?mode=votato"
ConnR.Close
set ConnR = nothing
%>
<%
End if
End if
End if
%>