Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

Strisciata messaggi scritti dagli utenti

Problemi di HTML? Di PHP, ASP, .NET, JSP, Perl, SQL, JavaScript, Visual Basic..?
Vuoi realizzare programmi in C, C++, Java, Ruby o Smalltalk, e non sai da che parte cominciare?
Entra qui e troverai le risposte!

Moderatori: Triumph Of Steel, archimede

Strisciata messaggi scritti dagli utenti

Postdi landyl » 16/09/05 21:44

Sapete come si fa ad inserire nel sito una messaggeria a rotazione con messaggi scritti dagli utenti come è in questo sito?
http://www.4risate.com/inserisci_messag ... e8baf574fb
landyl
Utente Senior
 
Post: 164
Iscritto il: 12/01/05 13:55

Sponsor
 

Postdi Mikizo » 16/09/05 23:29

Hai letto il codice della pagina?
Dovrebbe essere facile ricrearlo
Avatar utente
Mikizo
Download Admin
 
Post: 8517
Iscritto il: 05/01/02 01:00
Località: Outside

Postdi landyl » 17/09/05 06:50

non credo basti ricreare il codice della pagina, perchè come minimo si deve creare un form e altre pagine...
landyl
Utente Senior
 
Post: 164
Iscritto il: 12/01/05 13:55

Postdi Ribonix » 17/09/05 12:33

Scusatemi per il romanzo che segue...
landyl ha scritto:non credo basti ricreare il codice della pagina, perchè come minimo si deve creare un form e altre pagine...
Ho creato una pagina di prova utilizando il codice, opportunamente modificato, del form della pagina di cui si sta discutendo.
Ovviamente bisogna postare le variabili ad un'altra pagina o a sè stessa. L'importante è che venga incorporata la funzione di processo delle stesse.

Attenzione però che il codice originale così come è messo non fa controlli dei Linefeed e dei carriage return e SOPRATTUTTO ESEGUE I TAG!!! Questa falla può dare problemi alla corretta visualizzazione della pagina in quanto si può inserire codice arbitrario...

A tal proposito ti allego un estratto del default.asp del mio sito, che salvo errori mi pare funzionare correttamente (l'ho testato qualche centinaio di volte e mi sembra che idi aver ovviato alla falla). Ho anche inserito il contenuto della pagina ASP che processa le variabili insermessaggio.asp

Codice: Seleziona tutto
[... codice ...]
<FORM name="inviamsg" method="post" action="/insermessaggio.asp">
 <p align=justify>
  <font size=2>
   <b>Scrivi un tuo messaggio!!!</b><br>Lo vedrai comparire nel testo scorrevole che vedi in alto!<br><br>
  </font>
 </p>
 <TABLE CELLPADDING=0 CELLSPACING=0 align=center border=0>
  <TR>
   <td width=70 align=right><b>Nome:</b></td>
   <td width=130>
    <input type="text" name="nick" size="15" maxlength="15" value="">
    <INPUT type="hidden" name="send" value="yes">
   </td>
  </TR>
  <TR>
   <td align=center width=70>
    <b>Messaggio:</b><br><br><br><font size="1"><b>Caratteri<br>disponibili</b></font><br><br>
    <input type="text" readonly name="charsleft" size="3" value="100"><br><br>
    <input type="submit" value="Invia" name="invia">
   </td>
   <td width=130>
    <textarea name="testo" rows="11" cols="12" OnKeyUp="calcCharLeft()" OnChange="calcCharLeft()"></textarea>
   </td>
  </TR>
 </table>
</form>
[... codice ...]

E' importante anche inserire il javascript se vuoi limitare la dimensione del campo "testo"

insermessaggio.asp
Codice: Seleziona tutto
<%
 if request("nick")="" or request("testo")="" then
  response.redirect "/"
 end if
  DIM MESSAGGIO(5)
  Set Fil=CreateObject("Scripting.FileSystemObject")
  Set inf=Fil.OpenTextFile("PERCORSODELFILE\NOMEDELFILE.TXT",1,true)
  for t=1 to 5
   if inf.AtEndofStream then exit for
   MESSAGGIO(t)=inf.ReadLine()
  next
  for t=4 to 1 step -1
   MESSAGGIO(t+1)=MESSAGGIO(t)
  next
  nick  = replace(replace(replace(replace(request("nick"),vbcrlf," "),chr(10)," "),chr(13)," "),"<","<")
  testo = replace(replace(replace(replace(request("testo"),vbcrlf," "),chr(10)," "),chr(13)," "),"<","<")
  MESSAGGIO(1)= right("0" & day(now),2) & "/" & right("0" & month(now),2) & "/" & year(now) & " h. " & right("0" & hour(now),2) & ":"  & right("0" & minute(now),2) & ":"  & right("0" & second(now),2) & " [" & nick & "]: " & testo
  inf.Close
  Set inf=Nothing
  Set Fil=CreateObject("Scripting.FileSystemObject")
  Set out=Fil.createTextFile("PERCORSODELFILE\NOMEDELFILE.TXT",true)
  for t=1 to 5
   out.WriteLine(messaggio(t))
  next
  out.Close
  Set out=Nothing
  Set Fil=Nothing
  response.redirect "/"
%>

Tieni conto che la mia form è ottimizzata per stare dentro una cella di 200 px di larghezza opportunamente formattata con dei fogli di stile.
Ciao
Allah Akhbar! Allah Akhbar! Allah Akhbar!
Avatar utente
Ribonix
Utente Senior
 
Post: 346
Iscritto il: 12/02/03 22:41
Località: 3GYPT

Postdi landyl » 17/09/05 19:16

Grazie milla Ribonix per quanto hai fatto, ma fai conto di avere a che fare con un ignorante che sarei io.

Per effettuare quanto ho richiesto, che cosa devo fare esattamente?
Creare file particolari?
I codici che hai scritit dove li devo copiare? Nella posizione dove voglio che compaia la scritta dei messaggi?
Insomma, se mi dai qualche dritta di piu te ne sarei grato, e se mi dai l'indirizoz del tuo sito cosi vedo quello che hai fatto tu...
Grazie
landyl
Utente Senior
 
Post: 164
Iscritto il: 12/01/05 13:55

Postdi Ribonix » 17/09/05 23:45

Non volermene se non ti do l'Url, ma poichè è il sito di una piccola Polisportiva dove io sono il webmaster, e lì vi partecipo vivamente, non amo rendere pubblica ai molti la mia vita se non al ristretto gruppo di persone che vivono nel mio quartiere.

Ribadisco che entrambe le pagine sono in ASP (default.asp e insermessaggio.asp) e devono risiedere nel tuo server. Della seconda ti ho già fornito il codice completo da inserire nel file insermessaggio.asp dove al posto di "PERCORSODELFILE\NOMEDELFILE.TXT" dovrai mettere l'indirizzo reale del tuo server (per esempio "c:\sito\www.dominio.it\messaggio.txt") della prima ti ho dato un parziale per giunta incompleto. Prova a creare un file di testo che rinominerai default.asp e inserisci questo codice (praticamente un romanzo) che sintetizza proprio l'effetto che vorresti tu:
Codice: Seleziona tutto
<%
 REM qui il server legge 5 righe di testo memorizzate sul server nel file TestoinHp.txt
 REM e compone in una variabile la scritta da visualizzare
 DIM MESSAGGIO(5)
 Set Fil=CreateObject("Scripting.FileSystemObject")
 Set inf=Fil.OpenTextFile("PERCORSODELFILE\NOMEDELFILE.TXT",1,true)
 for t=1 to 5
  if inf.AtEndofStream then exit for
  MESSAGGIO(t)=inf.ReadLine()
  if MESSAGGIO(t)<>"" then MESSAGGIOMARQUEE=MESSAGGIOMARQUEE & " - " & MESSAGGIO(t)
 next
 inf.Close
 Set inf=Nothing
 REM seguono delle righe in HTML che visualizzano la scritta scorrevole
 REM nonchè la form che invierà un nuovo messaggio sul server
 REM c'è anche il javascript che fa il controllo dei caratteri imessi
 REM che non devono superare il numero di 100
%>
<center>
 <marquee width=500 border=0 BGCOLOR=blue title="scorrimento" behavior="scroll" repeat="continuosly" direction="left"  scrollAmount="5" onMouseOver="this.scrollAmount=1" onMouseOut="this.scrollAmount=5" onMouseDown="this.scrollAmount=1" onMouseUp="this.scrollAmount=1">
  <font color=white>
   <% = "Ultimi messaggi inseriti" & MESSAGGIOMARQUEE %>
  </font>
 </marquee>
 <table>
  <tr>
   <td width=200>
    <FORM name="inviamsg" method="post" action="/insermessaggio.asp">
     <p align=justify>
      <font size=2>
       <br><b>Scrivi un tuo messaggio!!!</b><br>Lo vedrai comparire nel testo scorrevole che vedi in alto!<br><br>
      </font>
     </p>
     <TABLE CELLPADDING=0 CELLSPACING=0 align=center border=0>
      <TR>
       <td width=70 align=right><b>Nome:</b></td>
       <td width=130>
        <input type="text" name="nick" size="15" maxlength="15" value="">
        <INPUT type="hidden" name="send" value="yes">
       </td>
      </TR>
      <TR>
       <td align=center width=70>
        <b>Messaggio:</b><br><br><br><font size="1"><b>Caratteri<br>disponibili</b></font><br><br>
        <input type="text" readonly name="charsleft" size="3" value="100"><br><br>
        <input type="submit" value="Invia" name="invia">
       </td>
       <td width=130>
        <textarea name="testo" rows="11" cols="12" OnKeyUp="calcCharLeft()" OnChange="calcCharLeft()"></textarea>
       </td>
      </TR>
     </table>
    </form>
   </td>
  </tr>
 </table>
</center>
<script language="JavaScript">
 <!--
  function calcCharLeft(f,l1) {
   var msgLen;
   var MaxLength;
   MaxLength = 100;
   msgLen=document.inviamsg.testo.value.length;
   if (msgLen >= MaxLength ){
    document.inviamsg.charsleft.value= "0";
    window.alert("Lunghezza stringa eccessiva: " + msgLen + " caratteri, max " + MaxLength);
    document.inviamsg.testo.value=document.inviamsg.testo.value.substring(0,MaxLength);
    }
   else {
    document.inviamsg.charsleft.value = MaxLength - msgLen;
   }
  }
 // -->
</script>

e poi testa il tutto in http://www.dominiodeltuoserver.it/default.asp - inoltre ho aggiunto un effetto: vedrai scorrere più lentamente la scritta se ci posizionerai sopra il mouse e viceversa...
Penso di averti detto tutto e credo che ormai dovresti aver capito come fare sopratutto se hai un minimo di conoscenze del linguaggio ASP e HTML.
Comunque sono sempre pronto a discutere ancra dell'argomento. CIAO.
Allah Akhbar! Allah Akhbar! Allah Akhbar!
Avatar utente
Ribonix
Utente Senior
 
Post: 346
Iscritto il: 12/02/03 22:41
Località: 3GYPT

Postdi Ribonix » 17/09/05 23:55

Ribonix ha scritto:
Codice: Seleziona tutto
REM qui il server legge 5 righe di testo memorizzate sul server nel file TestoinHp.txt
Nonostante abbia riletto e corretto centinaia di volte il messaggio prima di postarlo mi è sfuggito questo particolare.
Il file TestoinHP.txt è il file residente sul mio server che viene creato da insermessaggio.asp con il messaggio appena inviato dalla form di default.asp più i vecchi inviati in precedenza. Lo stesso file viene poi riletto e visualizzato da default.asp sottoforma di scritta scorrevole.
Allah Akhbar! Allah Akhbar! Allah Akhbar!
Avatar utente
Ribonix
Utente Senior
 
Post: 346
Iscritto il: 12/02/03 22:41
Località: 3GYPT

Postdi landyl » 18/09/05 09:18

Ho provata a fare quello che mi hai scritto ma non mi funziona nulla.
Una cosa, ma io ho tutte pagine HTML, poi riesco a fare un mix con ASP?
Comunque al di la di questo non mi funziona, anche perchè per fare un file ASP ho copiato nel Blocco Note i codici (con le correzioni del mio percorso) e salvato con nome.asp
Forse per me è una cosa troppo difficile!!

Ma sarebbe possibile fare una cosa cosi, ripartiamo dall'inizio.

Nella mia Home Page (HTML), la strisciata lunga 500-600 px, e tramite un pulsante con scritto Invia Messaggio, si apre un Pop Up dove dentro c'è il Forma da compilare con Nik e Messaggio, e con un invio sim chiude il Pop Up e viene inserito nella strisciata (con Giorno e Orario)
Poi non so, si puo impostare quanti messaggi fare girare? La lunghezza dei messaggi?
landyl
Utente Senior
 
Post: 164
Iscritto il: 12/01/05 13:55

Postdi Ribonix » 18/09/05 10:53

Non ti funziona nulla perchè? La tua risposta è un po' generica.
Innanzitutto il tuo server ti segnala a video degli errori? Se sì quali? Il tuo server gestisce l'ASP? Hai permessi di scrittura nelle directory?

Non è nulla di difficile te l'assicuro: il codice che ti ho postato l'avevo compilato e testato nel giro di mezz'ora di orologio e non mi reputo un "genio della programmazione" :lol:

Per quanto riguarda la lunghezza dei messaggi ti basta modificare questa riga del javascript:
Codice: Seleziona tutto
MaxLength = 100

Per quanto riguarda quanti messaggi ci sono alcune modifiche da fare sia in default.asp che in insermessaggio.asp.

Modificherei in default.asp queste due righe dove al posto del 5 (max 5 messaggi) indichi la quantità dei messaggi che vuoi visualizzare tu.
Codice: Seleziona tutto
 DIM MESSAGGIO(5)
 [...]
 for t=1 to 5

in insermessaggio.asp invece devi modificare queste righe:
Codice: Seleziona tutto
  MAXMESSAGGI=10 '<====riga aggiunta al massimo rimane nel server uno storico di 10 messaggi
  for t=1 to MAXMESSAGGI '<================== riga modificata
   if inf.AtEndofStream then exit for
   MESSAGGIO(t)=inf.ReadLine()
  next
  for t=MAXMESSAGGI-1 to 1 step-1 '<========= riga modificata
   MESSAGGIO(t+1)=MESSAGGIO(t)
  next
[...]
  for t=1 to MAXMESSAGGI '<================== riga modificata
   out.WriteLine(messaggio(t))
  next

Sul mio sito ho fatto in modo che lo storico sia maggiore del numero effettivo dei messaggi che vengono visualizzati su server impostando a 10 la variabile MAXMESSAGGI. In questo modo non mi preoccupo più di modificare insermessaggi.asp: l'unica mia preoccupazione sarà quella di definire in default.asp soltanto quanti di quei 10 messaggi voglio visualizzare.
Allah Akhbar! Allah Akhbar! Allah Akhbar!
Avatar utente
Ribonix
Utente Senior
 
Post: 346
Iscritto il: 12/02/03 22:41
Località: 3GYPT

Postdi Ribonix » 18/09/05 11:02

landyl ha scritto:Una cosa, ma io ho tutte pagine HTML, poi riesco a fare un mix con ASP?
IMPOTANTE: la pagina dove gira il codice asp DEVE avere l'estensione.ASP.
Se la tua HP per esempio inizia con una pagina con estensione .HTML o .HTM devi fare in modo che quando digiti http://www.dominio.it la pagina sia reindirizzata ad una con estensione .ASP altrimenti il codice viene visualizzato, ma non eseguito.
Allah Akhbar! Allah Akhbar! Allah Akhbar!
Avatar utente
Ribonix
Utente Senior
 
Post: 346
Iscritto il: 12/02/03 22:41
Località: 3GYPT

Postdi landyl » 18/09/05 18:59

La pagina dove voglio venga visualizzata la strisciata è un .html per cui abbiamo gia finito di fare dlle prove :cry:

C'è solo questa soluzione con i .asp?
landyl
Utente Senior
 
Post: 164
Iscritto il: 12/01/05 13:55

Postdi Ribonix » 18/09/05 19:10

prova semplicemente a rinominarla in .asp, inserirla sul server, ed eseguila col browser. tutto qui
Allah Akhbar! Allah Akhbar! Allah Akhbar!
Avatar utente
Ribonix
Utente Senior
 
Post: 346
Iscritto il: 12/02/03 22:41
Località: 3GYPT

Postdi Ribonix » 18/09/05 19:38

Non sono ancora riuscito a capire se il tuo server gestisce l'ASP. Ma se così fosse anzichè utilizzare la pagina iniziale che potrebbe essere index.html o riesci ad impostare sul server la pagina iniziale come default.asp o altrimenti devi ricorrere a un "redirect":
Codice: Seleziona tutto
<html>
 <head>
  <META HTTP-EQUIV="refresh" content="1;URL=http://www.miosito.it/default.asp">
 </head>
 <body>
 </body>
</html>

In questo caso dopo un secondo che sei entrato sul sito vieni reindirizzato ad una pagina ASP.
Allah Akhbar! Allah Akhbar! Allah Akhbar!
Avatar utente
Ribonix
Utente Senior
 
Post: 346
Iscritto il: 12/02/03 22:41
Località: 3GYPT

Postdi landyl » 18/09/05 20:12

Il mio spazio è su Aruba e credo che riesca a gestire gli asp, ma sono io che non riesco bene a capire cosa devo fare con questi codici e file, e cmq non voglio rinominare la mia pagina html (non voglio problemi ulteriori), meglio che riesca a trovare un codice htlm o simile che cosi riesco a gestire meglio io.

Se vuoi vedere la situazione della pagina dove voglio metterla, questo è l'indirizzo http://superandyweb.it, diciamo che vorrei metterla sotto a dove scorre le news...

e comunque, quando si spinge il tasto che porta alla pagina per scrivere il messaggio e il nick, questa la vorrei in un pop-up centrato nello schermo per fatti suoi....
landyl
Utente Senior
 
Post: 164
Iscritto il: 12/01/05 13:55

Postdi Ribonix » 18/09/05 20:41

Temo che dovrai rinunciare finchè userai l'estensione html...
La differenza tra una pagina HTML ed una ASP è:
HTML è statica nel tempo al massimo la puoi modificare di tanto in tanto e ciò che ci scrivi dentro viene interamente visualizzato opportunamente formattato con i tag.
ASP è una pagina dinamica che contiene una parte HTML e del codice BASIC delimitato da "<%" e "%>" che viene eseguito e ti restituisce una pagina html pura come se l'avessi digitata a mano.

Per cui una pagina ASP che contiene il seguente codice di esempio (ho visto che per la data usi un javascript):
Codice: Seleziona tutto
<html>
 <head>
  <title>Pagina di prova</title>
 </head>
 <body>
  <%
   Response.Write "oggi è: " & Now
  %>
 </body>
</html>

ti darà solo ed esclusivamente una pagina il cui output sarà un codice diverso ogni volta come se la pagina web l'avessi creata tu direttamente:
Codice: Seleziona tutto
<html>
 <head>
  <title>Pagina di prova</title>
 </head>
 <body>
  oggi è: 9/18/2005 9:28:02 PM
 </body>
</html>


magari visto che nell'html del tuo sito hai messo degli ifame potresti aggiungerne uno che riporta al suo interno una pagina asp che si aggiorna ogni tot secondi...
Allah Akhbar! Allah Akhbar! Allah Akhbar!
Avatar utente
Ribonix
Utente Senior
 
Post: 346
Iscritto il: 12/02/03 22:41
Località: 3GYPT

Postdi landyl » 19/09/05 11:12

Ho visto che mi hai scritto nella strisciata di 4risate, ma tu sapresti estrapolare da quel sito il sistema che hanno utilizzato loro? Mi sembra che sia fatto un po in html e php
landyl
Utente Senior
 
Post: 164
Iscritto il: 12/01/05 13:55

Postdi Ribonix » 19/09/05 14:58

Purtroppo non so usare il linguaggio PHP, ma ti assicuro che il principio è lo stesso anche con l'ASP. Come vedi non ho ancora menzionato la classica estensione delle pagine web...
La pagina è http://www.4risate.com/inserisci_messaggio.php che ha al suo interno una form. Tu inserisci i dati e quando premi il pulsante "INVIA" questo rendirizza la pagina a sè stessa (<FORM name="inviamsg" method="POST" action="/inserisci_messaggio.php">). Prima di visualizzare la nuova stringa di messaggi formattata legge il nuovo testo postato dalla precedente form, lo salva in un file in cima a messaggi già salvati in precedenza. Questi sono tutti lavori eseguiti dal server e non dal client. E' per questo che ti dico che che non è possibile usare una pagina HTML per elaborare quel tipo di messaggi.
Allah Akhbar! Allah Akhbar! Allah Akhbar!
Avatar utente
Ribonix
Utente Senior
 
Post: 346
Iscritto il: 12/02/03 22:41
Località: 3GYPT

Postdi landyl » 19/09/05 15:12

Ok, proviamo con ASP, ma mi faresti un favore? mi manderesti i files gia funzionanti per e-mail, quelli che usi tu per il tuo sito, poi li metto sul mio spazio cosi vedo di capirci qualcosa (essendo questi sicuramente funzionanti)
Poi vediamo come inserire il tutto nelle mie pagine!!!
landyl
Utente Senior
 
Post: 164
Iscritto il: 12/01/05 13:55

Postdi Ribonix » 19/09/05 15:26

Te li mando entro questa sera ma praticamente in questo 3D ho già postato l'essenziale dei due file già funzionante, se qualcuno ha già avuto modo oltre a noi due di guardare questi nostri messaggi...
L'unica differenza è il percorso completo del disco fisso del server che ho volutamente celato...
Anzi ti creerò una variante di pagina asp in grado di postare un messaggio a sè stesso...
A più tardi. A proposito, la mail è inserita sul tuo sito?
Allah Akhbar! Allah Akhbar! Allah Akhbar!
Avatar utente
Ribonix
Utente Senior
 
Post: 346
Iscritto il: 12/02/03 22:41
Località: 3GYPT

Postdi landyl » 19/09/05 15:44

Grazie di questo favore.
Si, il mio indirizzo è in fondo alla Home Page del mio sito, e se nell'occasione mi dai l'indirizzo del tuo sito gli do un'occhiata.
grazie a stasera
landyl
Utente Senior
 
Post: 164
Iscritto il: 12/01/05 13:55

Prossimo

Torna a Programmazione


Topic correlati a "Strisciata messaggi scritti dagli utenti":


Chi c’è in linea

Visitano il forum: Nessuno e 2 ospiti