Ciao a tutti,premetto che di ASP non so nulla...vi volevo esporre il mio problema...
Ho trovato sul web un guestbook molto semplice ma molto personalizzabile difatti sono riuscito a integrarlo perfettamente con il mio sito.
Questo è composto da 4 files:
1.nuovo_messaggio.htm
Dove è contenuto il form di invio dei dati inseriti.
Questo è lo script:
<html>
<head><title>Firma il libro degli ospiti</title></head>
<body>
<h1>Libro degli ospiti</h1>
Introduci il tuo messaggio ed invia il modulo
<hr>
<form action="inserisci_messaggio.asp" method="post">
Nome: (*)
<input type="text" name="nome">
E mail:
<input type="text" name="email">
Home Page:
<input type="text" name="homepage" value="http://">
Messaggio: (*)
<textarea rows="5" cols="30" name="messaggio"></textarea>
<input type="submit" value="Invia">
<input type="reset" value="Cancella">
</form>
<hr>
I campi contrassegnati da (*) sono obbligatori
</body>
</html>
2.inserisci_messaggio.asp
che gestisce l'invio dei messaggi (credo)
Questo è il codice:
<%@ LANGUAGE = JScript %>
<%
function togliInvio(str) {
var cars;
var str2 = "";
for (c=0;c<str.length;c++) {
cars = str.charCodeAt(c);
if (cars!=13 && cars!=10) {
str2 += str.charAt(c);
} else {
if (cars==13) str2 += " ";
}
}
return str2;
}
// Ricezione del form
var nome = String(Request.Form("nome"));
if (nome=="undefined") nome = "";
var email = String(Request.Form("email"));
if (email=="undefined") email = "";
var homepage = String(Request.Form("homepage"));
if (homepage=="undefined" || homepage=="http://") homepage = "";
var messaggio = String(Request.Form("messaggio"));
if (messaggio=="undefined") messaggio = "";
// Controllo campi obbligatori
if (nome=="" || messaggio=="") {
Response.Write("Non hai compilato tutti i campi obbligatori! Torna indietro e correggi.");
Response.End;
}
// Elimina eventuali "invii" dai vari campi
// Evita così che un campo possa andare su più di una riga
nome = togliInvio(nome);
email = togliInvio(email);
homepage = togliInvio(homepage);
messaggio = togliInvio(messaggio);
var fso = new ActiveXObject("Scripting.FileSystemObject");
// Legge i messaggi vecchi
var in_stream = fso.OpenTextFile(Server.MapPath("messaggi.txt"));
var vecchi = in_stream.ReadAll();
in_stream.Close();
// Crea il nuovo file
var out_stream = fso.CreateTextFile(Server.MapPath("messaggi.txt")) ;
out_stream.WriteLine(nome);
out_stream.WriteLine(email);
out_stream.WriteLine(homepage);
out_stream.WriteLine(messaggio);
out_stream.WriteLine();
out_stream.Write(vecchi);
out_stream.Close();
Response.Redirect("guestbook.asp");
%>
3.guestbook.asp
ossia la pagina che conterrà i messaggi inseriti.
questo è lo scritp:
<%@ LANGUAGE = JScript %>
<%
// Apertura dello stream verso il file di testo
var fso = new ActiveXObject("Scripting.FileSystemObject");
var stream = fso.OpenTextFile(Server.MapPath("messaggi.txt"));
%>
<html>
<head><title>*Canebullo* *Guestbook*</title></head>
<LINK REL="stylesheet" TYPE="text/css" href="stileguest.css">
<body>
<div id="Messaggi">
[ FIRMA IL GUESTBOOK ]
<%
while (!stream.AtEndOfStream) {
Response.Write("<hr>");
aux = stream.ReadLine();
Response.Write("<div>nome:</div>" + aux + "
");
aux = stream.ReadLine();
if (aux!="") Response.Write("<div>e-mail:</div> " + aux + "
");
aux = stream.ReadLine();
if (aux!="") Response.Write("<div>sito:</div> " + aux + "
");
aux = stream.ReadLine();
Response.Write("<div>messaggio:</div>
" + aux + "
");
stream.SkipLine();
}
stream.Close();
%>
<hr width="300" size="1" color="#3B3C33" align="right">
</div>
</body>
</html>
4.messaggi.txt
che funge da database.
Il miei problemi sono i seguenti:
vorrei avere un contatore, semplicissimo ovviamente, che mi conti i messaggi totali inseriti nel guestbook, ma non riesco a farlo (ossia impletare script presi da altri guest trovati sul web).
in più vorrei che mi dividesse il guest in pagine ch visualizzano solo 5 messaggi per volta, mentre così com'è li mette tutti in un'unica pagina, risultando brutto esteticamente e poi col tempo risulterebbe lento a caricare...
Sicuramente per voi saranno banalità, ma io sto a zero con asp...almeno finchè non trovo un bel corso!!!
Se potete aiutarmi vi sarò grato a vita!!!

Rispondi quotando
