Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2009
    Messaggi
    95

    Problema scroll, integrazione PHP/Javascript

    Allora ho un problema abbastanza curioso: volevo realizzare uno script Javascript, che in combinazione con PHP, mi creasse un testo scorrevole contenente tutti i commenti lasciati dagli utenti attraverso un form apposito sul mio sito.
    Quindi ho realizzato questo codice:
    codice:
    //Creare la funzione che legge nel database(gli ultimi 6 commenti).   
     function writeDB($nome,$commento)  {  	$connessione=mysql_connect("xxxxx","xxxxxx","xxxxx") or die("connessione non riuscita, errore: ".mysql_error()); 
    mysql_select_db("database"); 
     $result=mysql_query("insert into Commentario(Nome,Commento) values('$nome','$commento');",$connessione);   mysql_free_result($result);   mysql_close($connessione);   }  
     //adesso controllare se è stato inviato un commento   
     if (!empty($_POST["commento"]))    
     {   
        .........
         writeDB($_POST["nome"],$_POST["commento"]); 
      }      
    //adesso bisogna leggere dal database i commenti 
    $connessione=mysql_connect("xxxxxx","xxxxxxx","xxxxx")or die("errore: ".mysql_error()); 
    mysql_select_db("database",$connessione);     $result=mysql_query("select Nome,Commento from Commentario order by Id desc limit 6",$connessione);  $f=mysql_num_rows($result); 
    /* scrivere il codice javascript per creare gli array della 
    dimensione necessaria:*/ 
    echo "<script type=\"text/javascript\">\n<!--\nmsg=\" \";\nnome=new Array($f);\ncommento=new Array($f);\n";  $i=-1;
    /* adesso in base ai dati estratti dal database
    scrivere il codice javascript per assegnare i 
    valori agli array creati */  
    while ($line=mysql_fetch_array($result,MYSQL_ASSOC))
      {
      	$i++;
      	echo "nome[$i]=\"".str_replace("\n","",$line["Nome"]) ."\";\n"; 
     	echo "commento[$i]=\"".str_replace("\n","",$line["Commento"]) ."\";\n"; 
     }  
    /*Adesso scrivere il codice Javascript necessario per l'effetto "test scorrevole": */
    echo   "pos = 0;\n
              for (indice in nome)\n
              {\n
      	msg+=\"\"+nome[indice]+\": \"+commento[indice]+\"  \";\n
              }\n 
             function ScrollMessage()
              {\n
                msg =msg.substring(pos, msg.length) + msg.substring(0, pos);\n  
                var div = document.getElementById(\"scroll\");\n
                div.innerHTML = msg;\n
                pos++;\n
                if (pos > msg.length) pos = 0;\n
                window.setTimeout(\"ScrollMessage()\",400);\n 
                }\n 
                //-->\n
               </script>\n";
    
     mysql_free_result($result);
     mysql_close($connessione);
    In pratica lo script PHP mi scrive il codice Javascript necessario per il testo scorrevole, in maniera dinamica.
    Tutto ciò sembra funzionare(anche grazie all'uso dei CSS per sistemare questo effetto nella pagina), ma ogni tanto qualche commento viene scitto così nella pagina xhtml:
    codice:
    commento[3]="commento....
     ";
    Cioè in pratica ogni tanto mi va a capo dove non dovrebbe, tutto ciò, nonostante che io abbia utilizzato la seguente funzione php :
    codice:
    str_replace("\n","",$line["Commento"])
    Questa riga di codice dovrebbe togliere tutti i ritorni a capo, eppure mi ritorna a capo lo stesso.
    Naturalmente il browser non mi esegue lo script javascript, proprio per questo motivo. Come posso fare?
    Pensavo che la mia soluzione per realizzare questo testo scorrevole con tutti i commenti degli urenti (estratti dall'apposito database MYSQL) fosse buona, ma ho purtroppo questo problema....

  2. #2
    Utente di HTML.it
    Registrato dal
    Apr 2009
    Messaggi
    95
    Vi informo che ho risolto il problema, creando questa funzione:
    codice:
    function knows($stringa)
      {
      	$stringa=strtolower($stringa);
    	$risultato="";
    	$alfabeto=array('a','b','c', 'd', 'e' ,'f','g', 'h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z',';','.',',',' ');
        $len=strlen($stringa);
        for($i=0;$i<$len;$i++)
    	{
    		$char=substr($stringa,$i,1);
    		foreach($alfabeto as $valore)
    		{
    			if($char==$valore)$risultato.=$valore;
    		}
    	}
    	return $risultato;
      }
    E quindi passando come argomento di questa funzione il nome ed il commento degli utenti, non solo ho risolto il problema, ma ho anche realizzato una shutbox sicura, dove è impossibile scrivere codice html dannoso.
    Spero almeno di essere stato utile a qualcuno.

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.