PHP [PROBLEMA]Smile chat php

Stato
Discussione chiusa ad ulteriori risposte.

Fisiosteppista

Utente Electrum
13 Luglio 2008
315
22
12
141
Salve ragazzi mi rivolgo a voi esperti di programazzione, ho un problema nell'inserire nuovi smile su una chat in php vi faccio vedere i codici

Chatstyle.php
Codice:
<!-- SMILIES -->
<center>
<a  href='#'><img src="./images/smilies/001_smile.gif"  onclick="document.getElementById('messaggio').value+=':)  ';document.getElementById('messaggio').focus()"></a>
<a  href='#'><img src="./images/smilies/sad.gif"   onclick="document.getElementById('messaggio').value+=':(   ';document.getElementById('messaggio').focus()"></a>
<a  href='#'><img src="./images/smilies/wink.gif"  onclick="document.getElementById('messaggio').value+=';)  ';document.getElementById('messaggio').focus()"></a>
<a  href='#'><img src="./images/smilies/biggrin.gif"  onclick="document.getElementById('messaggio').value+=':D  ';document.getElementById('messaggio').focus()"></a>
<a  href='#'><img src="./images/smilies/closedeyes.gif"   onclick="document.getElementById('messaggio').value+='u.u   ';document.getElementById('messaggio').focus()"></a>
<a  href='#'><img src="./images/smilies/001_tt2.gif"   onclick="document.getElementById('messaggio').value+=':P   ';document.getElementById('messaggio').focus()"></a>

<!-- FINE -->
</center>



Funciones.php
Codice:
function caretos($texto,$ruta)
{
 $i="[COLOR=#03C]<[B]img[/B][COLOR=#039] src=[COLOR=#060]\"$ruta/";[/COLOR]
 $i_=[COLOR=#060]"\"[/COLOR] [/COLOR]>[/COLOR]";
 $texto=str_replace(":)",$i."icon_smile.gif".$i_,$texto);
 $texto=str_replace(":D",$i."icon_biggrin.gif".$i_,$texto);
 $texto=str_replace("^^",$i."icon_cheesygrin.gif".$i_,$texto);

 $texto=str_replace("xD",$i."icon_lol.gif".$i_,$texto);
 $texto=str_replace("XD",$i."icon_lol.gif".$i_,$texto);

 $texto=str_replace(":|",$i."icon_neutral.gif".$i_,$texto);
 $texto=str_replace(":(",$i."icon_sad.gif".$i_,$texto);
 $texto=str_replace(":&#039(",$i."icon_cry.gif".$i_,$texto);
 $texto=str_replace(":O",$i."icon_surprised.gif".$i_,$texto);
 $texto=str_replace("B)",$i."icon_cool.gif".$i_,$texto);
 $texto=str_replace("8|",$i."icon_rolleyes.gif".$i_,$texto);
 $texto=str_replace("O_O",$i."icon_eek.gif".$i_,$texto);
 $texto=str_replace(":P",$i."icon_razz.gif".$i_,$texto);
 $texto=str_replace(":?",$i."icon_confused.gif".$i_,$texto);
 $texto=str_replace("^:@",$i."icon_evil.gif".$i_,$texto);
 $texto=str_replace("^_-",$i."icon_frown.gif".$i_,$texto);
 $texto=str_replace("!(",$i."icon_mad.gif".$i_,$texto);
 $texto=str_replace("^)",$i."icon_twisted.gif".$i_,$texto);
 $texto=str_replace(";)",$i."icon_wink.gif".$i_,$texto);
 $texto=str_replace(":B",$i."drool.gif".$i_,$texto);
 return $texto;
}


Se vado ad inserirne di nuovi non vengono visualizzati e rimane solo il tag tipo ':B'
Potete darmi qualke dritta?
 
Prova a sostituire la funzione sopra con questa:

PHP:
function caretos($texto,$ruta) { 
 $i='<img src=\"$ruta/'; 
 $i_='\" >';  
$texto=str_replace(":)",$i."icon_smile.gif".$i_,$texto);  
$texto=str_replace(":D",$i."icon_biggrin.gif".$i_,$texto); 
 $texto=str_replace("^^",$i."icon_cheesygrin.gif".$i_,$texto);   
$texto=str_replace("xD",$i."icon_lol.gif".$i_,$texto);
 $texto=str_replace("XD",$i."icon_lol.gif".$i_,$texto);   
$texto=str_replace(":|",$i."icon_neutral.gif".$i_,$texto);  
$texto=str_replace(":(",$i."icon_sad.gif".$i_,$texto);  
$texto=str_replace(":&#039(",$i."icon_cry.gif".$i_,$texto);  
$texto=str_replace(":O",$i."icon_surprised.gif".$i_,$texto);  
$texto=str_replace("B)",$i."icon_cool.gif".$i_,$texto); 
 $texto=str_replace("8|",$i."icon_rolleyes.gif".$i_,$texto); 
 $texto=str_replace("O_O",$i."icon_eek.gif".$i_,$texto);  
$texto=str_replace(":P",$i."icon_razz.gif".$i_,$texto);  
$texto=str_replace(":?",$i."icon_confused.gif".$i_,$texto); 
 $texto=str_replace("^:@",$i."icon_evil.gif".$i_,$texto); 
 $texto=str_replace("^_-",$i."icon_frown.gif".$i_,$texto);  
$texto=str_replace("!(",$i."icon_mad.gif".$i_,$texto);  
$texto=str_replace("^)",$i."icon_twisted.gif".$i_,$texto);  
$texto=str_replace(";)",$i."icon_wink.gif".$i_,$texto);  
$texto=str_replace(":B",$i."drool.gif".$i_,$texto);  
return $texto; 
}

Ho dato solo un'occhiata veloce..
 
prova così:
Codice:
[COLOR=#000000][COLOR=#007700]function [/COLOR][COLOR=#0000BB]caretos[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]$texto[/COLOR][COLOR=#007700],[/COLOR][COLOR=#0000BB]$ruta[/COLOR][COLOR=#007700]) { 
 [/COLOR][COLOR=#0000BB]$i[/COLOR][COLOR=#007700]=[/COLOR][COLOR=#DD0000]'<img src=\"$ruta/'[/COLOR][COLOR=#007700]; 
 [/COLOR][COLOR=#0000BB]$i_[/COLOR][COLOR=#007700]=[/COLOR][COLOR=#DD0000]'\" >'[/COLOR][COLOR=#007700];  
[/COLOR][COLOR=#0000BB]$texto[/COLOR][COLOR=#007700]=[/COLOR][COLOR=#0000BB]str_replace[/COLOR][COLOR=#007700]([/COLOR][COLOR=#DD0000]":)"[/COLOR][COLOR=#007700],[/COLOR][/COLOR][COLOR=#000000][COLOR=#DD0000]<img src=\"percorso immagine.gif[/COLOR][/COLOR][COLOR=#000000][COLOR=#DD0000]"[/COLOR][COLOR=#007700][/COLOR][COLOR=#007700],[/COLOR][COLOR=#0000BB]$texto[/COLOR][COLOR=#007700]);  [/COLOR][COLOR=#0000BB][/COLOR][COLOR=#007700]
return [/COLOR][COLOR=#0000BB]$texto[/COLOR][COLOR=#007700]; 
}  [/COLOR][/COLOR]
Te ne ho scritta solo 1 di riga, prova a sostituirla al tuo codice e vedi se funziona
 
prova così:
Codice:
[COLOR=#000000][COLOR=#007700]function [/COLOR][COLOR=#0000BB]caretos[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]$texto[/COLOR][COLOR=#007700],[/COLOR][COLOR=#0000BB]$ruta[/COLOR][COLOR=#007700]) { 
 [/COLOR][COLOR=#0000BB]$i[/COLOR][COLOR=#007700]=[/COLOR][COLOR=#DD0000]'<img src=\"$ruta/'[/COLOR][COLOR=#007700]; 
 [/COLOR][COLOR=#0000BB]$i_[/COLOR][COLOR=#007700]=[/COLOR][COLOR=#DD0000]'\" >'[/COLOR][COLOR=#007700];  
[/COLOR][COLOR=#0000BB]$texto[/COLOR][COLOR=#007700]=[/COLOR][COLOR=#0000BB]str_replace[/COLOR][COLOR=#007700]([/COLOR][COLOR=#DD0000]":)"[/COLOR][COLOR=#007700],[/COLOR][/COLOR][COLOR=#000000][COLOR=#DD0000]<img src=\"percorso immagine.gif[/COLOR][/COLOR][COLOR=#000000][COLOR=#DD0000]"[/COLOR][COLOR=#007700],[/COLOR][COLOR=#0000BB]$texto[/COLOR][COLOR=#007700]);  [/COLOR][COLOR=#007700]
return [/COLOR][COLOR=#0000BB]$texto[/COLOR][COLOR=#007700]; 
}  [/COLOR][/COLOR]
Te ne ho scritta solo 1 di riga, prova a sostituirla al tuo codice e vedi se funziona

Niente facendo così mi da Errore!
 
che errore? La riga è la stessa della mia modifica?
Si errore nella riga modificata

Hai uppato l'immagine con quel nome ed estensione nella stessa directory delle altre?
Si sono uppate con lo stesso nome e estensione
Il fatto è che nel primo file chatstyle.php tutte quelle smile funzionano ma se ne aggiungo altre non vengono visulaizzate!
 
Ecco il codice
PHP:
<?php


function limitatexto( $texto, $limite ) 
  { 
    if( strlen($texto)>$limite ) 
      { 
        $texto = substr( $texto,0,$limite ); 
      } 
    return $texto; 
 
  } 





function mostrarTemplate($tema, $variables)
{
    //var_dump($variables);
    extract($variables);
    eval("?>".$tema."<?");
}

function parsearTags($mensaje)
{
    $mensaje = str_replace("[citar]", "<blockquote><hr width='100%' size='2'>", $mensaje);
    $mensaje = str_replace("[/citar]", "<hr width='100%' size='2'></blockquote>", $mensaje);
    return $mensaje;
}

// funcion para validar email
function ValidaMail($pMail) {
    if (ereg("^[_a-zA-Z0-9-]+(\.[_a-zA-Z0-9-]+)*@+([_a-zA-Z0-9-]+\.)*[a-zA-Z0-9-]{2,200}\.[a-zA-Z]{2,6}$", $pMail ) ) {
       return true;
    } else {
echo "Devi inserire un'indirizzo email valido"; exit();
    }
}

// minimo de carateres
function minimo($contenido) {

if (strlen($contenido) < 3) {

echo "Devi inserire almeno 3 caratteri.";include('footer.php'); exit();

} else {

// echo "todo bien...";
return $contenido;
}  
}


function minimopass($contenido) {

if (strlen($contenido) < 6) {

echo "Devi inserire almeno 6 caratteri nel campo password.";include('footer.php'); exit();

} else {

// echo "todo bien...";
return $contenido;
}  
}

// funcion para sanitizar variables
function limpiar($mensaje)
{
$mensaje = htmlentities(stripslashes(trim($mensaje)));
$mensaje = str_replace("'"," ",$mensaje);
$mensaje = str_replace(";"," ",$mensaje);
$mensaje = str_replace("$"," ",$mensaje);
return $mensaje;
}

function shout($nombre_usuario){
   if (ereg("^[a-zA-Z0-9\-_]{3,20}$", $nombre_usuario)) {
//      echo "El campo $nombre_usuario es correcto<br>";
      return $nombre_usuario;
   } else {
       echo "Il campo $nombre_usuario non è valido<br>";include('footer.php');
exit();
   }
} 




// universal cleaner function


function uc($mensaje)
{

   if (ereg("^[a-zA-Z0-9\-_]{3,20}$", $mensaje)) {
//      echo "El campo $mensaje es correcto<br>";
$mensaje = htmlentities(stripslashes(strtolower(trim($mensaje))));
$mensaje = str_replace("'"," ",$mensaje);
$mensaje = str_replace(";"," ",$mensaje);
$mensaje = str_replace("$"," ",$mensaje);
return $mensaje;
   } else {
       echo "Il campo $mensaje non è valido.<br>";include('footer.php');
exit();
   }

}








//funcion para añadir smylies

function caretos($texto,$ruta)
{
    $i="<img src=\"$ruta/";
    $i_="\" >";
    $texto=str_replace(":)",$i."icon_smile.gif".$i_,$texto);
    $texto=str_replace(":D",$i."icon_biggrin.gif".$i_,$texto);
    $texto=str_replace("^^",$i."icon_cheesygrin.gif".$i_,$texto);

    $texto=str_replace("xD",$i."icon_lol.gif".$i_,$texto);
    $texto=str_replace("XD",$i."icon_lol.gif".$i_,$texto);

    $texto=str_replace(":|",$i."icon_neutral.gif".$i_,$texto);
    $texto=str_replace(":(",$i."icon_sad.gif".$i_,$texto);
    $texto=str_replace(":&#039(",$i."icon_cry.gif".$i_,$texto);
    $texto=str_replace(":O",$i."icon_surprised.gif".$i_,$texto);    
    $texto=str_replace("B)",$i."icon_cool.gif".$i_,$texto);
    $texto=str_replace("8|",$i."icon_rolleyes.gif".$i_,$texto);
    $texto=str_replace("O_O",$i."icon_eek.gif".$i_,$texto);
    $texto=str_replace(":P",$i."icon_razz.gif".$i_,$texto);
    $texto=str_replace(":?",$i."icon_confused.gif".$i_,$texto);
    $texto=str_replace("^:@",$i."icon_evil.gif".$i_,$texto);
    $texto=str_replace("^_-",$i."icon_frown.gif".$i_,$texto);
    $texto=str_replace("!(",$i."icon_mad.gif".$i_,$texto);
    $texto=str_replace("^)",$i."icon_twisted.gif".$i_,$texto);
    $texto=str_replace(";)",$i."icon_wink.gif".$i_,$texto);
    $texto=str_replace(":B",$i."drool.gif".$i_,$texto);
    return $texto;
}

// ip real
function getRealIP()
{
   
   if( $_SERVER['HTTP_X_FORWARDED_FOR'] != '' )
   {
      $client_ip =
         ( !empty($_SERVER['REMOTE_ADDR']) ) ?
            $_SERVER['REMOTE_ADDR']
            :
            ( ( !empty($_ENV['REMOTE_ADDR']) ) ?
               $_ENV['REMOTE_ADDR']
               :
               "unknown" );
   
      // los proxys van añadiendo al final de esta cabecera
      // las direcciones ip que van "ocultando". Para localizar la ip real
      // del usuario se comienza a mirar por el principio hasta encontrar
      // una dirección ip que no sea del rango privado. En caso de no
      // encontrarse ninguna se toma como valor el REMOTE_ADDR
   
      $entries = split('[, ]', $_SERVER['HTTP_X_FORWARDED_FOR']);
   
      reset($entries);
      while (list(, $entry) = each($entries))
      {
         $entry = trim($entry);
         if ( preg_match("/^([0-9]+\.[0-9]+\.[0-9]+\.[0-9]+)/", $entry, $ip_list) )
         {
            // http://www.faqs.org/rfcs/rfc1918.html
            $private_ip = array(
                  '/^0\./',
                  '/^127\.0\.0\.1/',
                  '/^192\.168\..*/',
                  '/^172\.((1[6-9])|(2[0-9])|(3[0-1]))\..*/',
                  '/^10\..*/');
   
            $found_ip = preg_replace($private_ip, $client_ip, $ip_list[1]);
   
            if ($client_ip != $found_ip)
            {
               $client_ip = $found_ip;
               break;
            }
         }
      }
   }
   else
   {
      $client_ip =
         ( !empty($_SERVER['REMOTE_ADDR']) ) ?
            $_SERVER['REMOTE_ADDR']
            :
            ( ( !empty($_ENV['REMOTE_ADDR']) ) ?
               $_ENV['REMOTE_ADDR']
               :
               "unknown" );
   }
   
   return $client_ip;
   
}

?>
 
mmm.. Sempre la funzione caretos centra.. Sembra tutto a posto... Da dove hai preso questo script?
Se è uno ufficiale dovrebbe non avere errori come questo...
 
Stato
Discussione chiusa ad ulteriori risposte.