Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    Chat: Messaggi privati e scrolling di testo

    Salve a tutti.
    Da un po' di tempo sto lavorando su una chat scaricata da freephp: LSPhpChat1.1
    Sono riuscito a modificarla in varie parti, inserendo messaggi speciali, modificandola nella configurazione generale e quant'altro finora mi sia stato possibile fare.
    Una cosa che non sono riuscito a fare è però quella di insrire una stringa che mi permetta di inviare messaggi privati agli utenti presenti nella chat. Messaggi privati che però siano visualizzabili all'interno della pagina stessa e non in una form a parte.
    Qualcosa che compaia solo all'utente destinatario del messaggio e che si presenti più o meno in questo modo:

    -Messaggio privato da Tizio-
    Ehi ciao come stai?

    Quindi sostanzialmente qualcosa che si sviluppi su due righe: quella superiore che contanga la specifica "-Messaggio privato da $nick-"; quello inferiore in cui compare il contenuto del messaggio, privo di nick, di orario e quant'altro. Solo il testo.

    Se fosse possibile non mi dispiacerebbe che anche il mittente del messaggio possa visualizzare quanto ha scritto. In questo modo può seguire meglio la conversazione e rendersi conto di quel che ha scritto. Una cosa tipo:

    -Hai scritto a Tizio-
    Ehi ciao come stai?

    Il destinatario visualizzerà il primo messaggio, il mittente il secondo. Ed entrambi potranno continuare a seguire la chat senza bisogno di ricorrere ad altre finestre aggiuntive.

    Poi un'ultima cosa.
    LsphpChat ha una modalità di scrolling e aggiornamento del testo in senso ascensionale. Quindi i nuovi messaggi tendono a salire anzicché scendere e l'aggiornamento automatico mi riporta sempre alla parte superiore della pagina.
    Io invece vorrei invertire il flusso e far sì che il testo scorra verso il basso e che l'aggiornamento avvenga a fondo pagina e non a inizio pagina.
    Tempo fa boomboom69 mi consigliò di sostituire questa stringa:
    codice:
    $contenuto = $testa.$nuovo_mex.$vecchi_mexx.$coda;
    con questa:
    codice:
    $contenuto = $testa.$vecchi_mexx.$nuovo_mex.$coda;
    ed effettivamente in questo modo il testo si succede a scendere e non a salire. L'unico problema è che l'aggiornamento riporta la pagina, creando problemi con l'uso della chat.
    Ho provato a modificare le stringhe che mi sembravano più pertinenti, ma non ho mai ottenuto risultati. Sapreste darmi qualche consiglio?
    Per comodità riporto tutto il codice della chat, magari voi riuscite a vedere meglio di me dove mettere mano.
    Grazie a tutti

    codice:
    <?php
    
    //--Srtart code --//
    ////////////questa varibile si può modificare//////////////////////////
    require("config.inc.php");
    //////////////////////////////////
    /*Non è necessario modificare nient'altro*/
    ///////////////////////////////////
    
    $ora = date("H:i:s");
    $ip = getenv(REMOTE_ADDR);
    $now = time();
    
    $testa = "<html><head><meta http-equiv=\"refresh\" content=\"$time_refresh\"></head><body bgcolor=\"$bgcolor\">\n";
    $coda = "<!--LsPhpChat http://www.latoserver.com--></body></html>\n";
    $err_mess = "Impossbile scrivere o trovare il file $pat.
     Assicuarsi che la cartella abbia i permessi di scrittura attivi (CHMOD 777) o verificare la variabile ".'$path';
    
    if ($messaggio == $special_word){
    	clear();
    }
    
    if (!empty($nick) && !empty($messaggio)){ 
    	
    	$vecchi_mex = @file($path) or die ($err_mess);
    	
    	$nline = count($vecchi_mex);
    	
    	for ($i = 1; $i < $max_mex; $i++){
    	
    		if ($i < $nline-1){
    		
    		eregi("(.*)",$vecchi_mex[$i],$nick_old);
    		eregi("",$vecchi_mex[$i],$ip_old);
    		eregi("",$vecchi_mex[$i],$time_out);
    		
    			if ($nick == $nick_old[1] && $ip != $ip_old[1]){
    				$nick = $nick."_".mt_rand(0,10);
    			}
    			//echo $time_out[1];
    			if ($time_out[1]+($time_limit * 60) > $now  ){
    				$vecchi_mexx .= $vecchi_mex[$i];
    			}
    		}
    	}
    	
    	if (!isset($lschat) || $lschat != $nick){
    		setcookie("lschat",$nick,time()+360000);
    	}
    	
    	$messaggio = htmlspecialchars($messaggio);
    	
    	while (list($char,$rep) = each($emotion) ){
    		$messaggio = str_replace($char, "<img src=\"".$rep."\">", $messaggio );
    	}
    	
    	if ($moderate == "y"){
    			for ($i = 0; $i < count($badwords);$i++){
    				$messaggio = ereg_replace (strtoupper($badwords[$i]), str_repeat("x",strlen($badwords[$i])), strtoupper($messaggio));
    			}
    		$messaggio = strtolower($messaggio);
    	}
    	
    	
    	//Per il corretto funzionamento del programma lasciare inalterate le sringe di commento////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    	$nuovo_mex = "<font face=\"$font_face\" size=\"$font_size\" color=\"$fontcolor\">[$ora] - $nick:</font> <font face=\"$font_face\" size=\"$font_size\" color=\"$font_color\">".$messaggio."</font>
    \n";
    	///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    	$contenuto = $testa.$nuovo_mex.$vecchi_mexx.$coda;
    	
    	$contenuto=stripslashes($contenuto);
    	
    	$fp = @fopen($path,"w") or die ($err_mess);
    	
    	$len = strlen($contenuto);
    	
    	fwrite($fp,$contenuto,$len);
    	
    	fclose($fp);
    	
    	header("Location: $form_file");
    	
    }else{
    	header("Location: $form_file");
    }
    
    function clear(){
    
    	global $testa;
    	global $path;
    	global $coda;
    	global $form_file;
    	
    	$contenuto = $testa.$coda;
    	$contenuto = stripslashes($contenuto);
    	$fp = @fopen($path,"w");
    	$len = strlen($contenuto);
    	fwrite($fp,$contenuto,$len);
    	fclose($fp);
    	header("Location: $form_file");
    	exit();
    }
    /*--End code--*/
    ?>

    PS. Per ragioni di spazio qui non ho riportato le stringhe di commento relative alla licenza d'uso della chat, ma nel file originale le ho lasciate intatte.

  2. #2
    Nessuno che sappia consigliarmi qualcosa?

  3. #3
    mandami i file via mail.
    vedo di leggerli con calma ed help you

  4. #4
    Il mio problema persiste, benche kilio si sia offerto di darmi una mano alla fine non siamo più riusciti a sentirci.
    Qualcuno che sappia offrirmi una dritta?

    Grazie

  5. #5
    Possibile che non ci sia nessuno che sappia suggerirmi una soluzione?

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.