Underc0de

Foros Generales => Dudas y pedidos generales => Mensaje iniciado por: fortil en Agosto 09, 2011, 11:08:43 AM

Título: [SOLUCIONADO] Error en código PHP, e intentado de todo y no me funciona
Publicado por: fortil en Agosto 09, 2011, 11:08:43 AM
resulta que en una pagina me he encontrado con este codigo y al ponerlo en el servidor, me manda a error
Código (php) [Seleccionar]
<?php
include('config.php');// Incluimos las configuraciones
if($_POST){
if(
$_POST['t']=="user"){
$user=array();
$in=0;
$ac=0;
$Sqll mysql_query("SELECT * FROM online WHERE sala='".$_POST['sala']."'",$con) or die(mysql_error());
while(
$datmysql_fetch_array($Sqll)){
$use=stripslashes($dat['user']);
$time=$dat['time'];
if(
abs(time()-$time)<(200+$seg_inac)){
if(
$time>time()){
$ac++;
$user[]='<strong>'.$use.'</strong>';
}else{
$in++;
$user[]='<i>'.$use.'</i>';
}
}else{
if(
$use!=$_POST['user']){
$consulta "DELETE FROM online WHERE id ='".$dat['id']."'";
$resultado mysql_query($consulta) or die(mysql_error());
}
}
}
if(empty(
$user))
echo 
"No hay usuarios conectados.";
else{
$user[]="<hr />Hay ".$ac." usuarios activos y ".$in." inactivos.(".($ac+$in).")";
echo 
implode('
'
,$user);

}
}elseif(
$_POST['t']=="conectar"){
$name=$_POST['name'];
$sala=$_POST['sala'];
$n=mysql_num_rows(mysql_query("SELECT * FROM online WHERE user='".$name."'"));
if(
$n==0){
$campos=array('time','user','sala');
$datos=array(  (time())+$seg_inac,$name,$sala);
$c=implode(',',$campos);
$d='''.implode("','",$datos).''';
$sSQL=sprintf("INSERT INTO %s (%s) VALUES (%s)","online",$c,$d);
$query mysql_query($sSQL);
}elseif(
$n==1){
$consulta "Update online set time='".(time()+$seg_inac)."', sala='".$sala."' WHERE user ='".$name."'";
@
$resultado mysql_query($consulta) or die(mysql_error());
}
}elseif(
$_POST['t']=="desconectar"){
$consulta "DELETE FROM online WHERE user ='".$_POST['user']."'";
$resultado mysql_query($consulta) or die(mysql_error());
}elseif(
$_POST['t']=="ver"){
$post=array();
$Sqll = @mysql_query("SELECT * FROM contenido WHERE sala='".$_POST['sala']."' ORDER BY id ASC",$con) or die(mysql_error());
while(
$datmysql_fetch_array($Sqll)){
$mensaje=stripslashes($dat['cont']);
$mensaje str_replace("[b]","<b>",$mensaje) ; $mensaje str_replace("[/b]","</b>",$mensaje) ;
$mensaje str_replace("[img]","<img src="",$mensaje) ; $mensaje = str_replace("[/img]","" border="0" onerror=this.onerror='this.src='';'>",$mensaje) ;
$mensaje preg_replace("/\[color=((#)?[0-9a-z]+)\]/i","<font color="\\1">",$mensaje) ; $mensaje str_replace("[/color]","</font>",$mensaje) ;
$mensaje preg_replace("/\[color=((#)?[0-9a-z]+)\]/i","<font color="\\1">",$mensaje) ; $mensaje str_replace("[/color]","</font>",$mensaje) ;
$mensaje preg_replace("/\[url\](www\..+)\[\/url\]/i","<a href="http://\\1" target="_blank">\\1</a>",$mensaje) ;
$mensaje preg_replace("/\[url\](.+)\[\/url\]/i","<a href="\\1" target="_blank">\\1</a>",$mensaje) ;
$mensaje preg_replace("/\[url=(www\..+)\](.+)\[\/url\]/i","<a href="http://\\1" target="_blank">\\2</a>",$mensaje) ;
$mensaje preg_replace("/\[url=(.+)\](.+)\[\/url\]/i","<a href="\\1" target="_blank">\\2</a>",$mensaje) ;
$mensaje str_replace("[i]","<i>",$mensaje) ; $mensaje str_replace("[/i]","</i>",$mensaje) ;
$mensaje str_replace("[u]","<u>",$mensaje) ; $mensaje str_replace("[/u]","</u>",$mensaje) ;
$post[]='<strong>'.$dat['name'].':</strong> '.$mensaje;
}
if(!empty(
$post))
echo 
implode('<br>',$post);
else
echo 
"No hay comentarios.";
echo 
'<div id="ultimo"></div>';
}elseif(
$_POST['t']=="insert"){
$name=$_POST['name'];
$fecha=@date('d-m-Y');
$sala=$_POST['sala'];
$cont=nl2br(addslashes(strip_tags($_POST['cont'])));
$campos=array('name','fecha','cont','sala');
$datos=array( $name$fecha ,$cont$sala);
$c=implode(',',$campos);
$d='''.implode("','",$datos).''';
$sSQL=sprintf("INSERT INTO %s (%s) VALUES (%s)","contenido",$c,$d);
$query mysql_query($sSQL);
$n=mysql_num_rows(mysql_query("SELECT * FROM online WHERE user='".$name."'"));
if(
$n==0){
$campos=array('time','user','sala');
$datos=array(  (time())+$seg_inac,$name,$sala);
$c=implode(',',$campos);
$d='''.implode("','",$datos).''';
$sSQL=sprintf("INSERT INTO %s (%s) VALUES (%s)","online",$c,$d);
$query mysql_query($sSQL);
}elseif(
$n==1){
$consulta "Update online set time='".(time()+$seg_inac)."', sala='".$_POST['sala']."' WHERE user ='".$name."'";
@
$resultado mysql_query($consulta) or die(mysql_error());
}
}
}
?>


Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING in /index.php on line 43

voy a esa linea y cambio las comillas sencillas por las dobles y se quita ese error pero sigue este otro.

Parse error: syntax error, unexpected '"' in /index.php on line 59

y en ese si me he quedado, le cambio de todo y nada, le busco por aquí por ayá y nada, si alguien me puede ayudar en que cosa está mal y si hay alguna manera o un programa como un IDEL o algo así para dfepurar mas facil los errores, xD

gracias
Título: Re:[ayuda]error, e intentado de todo y no me funciona
Publicado por: Xt3mP en Agosto 09, 2011, 02:36:27 PM
Cita de: Linea 43
Código (php) [Seleccionar]
<?php
$d 
implode("','",$datos);
?>


Cita de: Linea 59
Código (php) [Seleccionar]
<?php
$mensaje 
str_replace("[img]","<img src=\"\"",$mensaje);
$mensaje str_replace("[/img]"," border=\"0\" onerror=this.onerror='this.src='';'>",$mensaje) ;
?>


Las comillas son los problemas, probablemente ocupes hacer la misma dinámica con todas.

P.D. Atento a las \ que puse para poder poner " A: \"nanan\"", siempre se pone un \ para escapar y que no de error en caso de usar el mismo tipo de comillas en la cadena, saludos.
Título: Re:[ayuda]error, e intentado de todo y no me funciona
Publicado por: ~ Yoya ~ en Agosto 09, 2011, 04:33:26 PM
Puedes saber exactamente tu error...
CitarParse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING in /index.php on line 43

http://www.php.net/manual/es/tokens.php
Título: Re:[ayuda]error, e intentado de todo y no me funciona
Publicado por: fortil en Agosto 09, 2011, 08:51:05 PM
muchas gracias a todos por responder, tengo otra duda, que significa los
Código (php) [Seleccionar]
//\\

esque ahora me muestra un error de "\" según la tabla que me facilitó nuestro amigo Yoga, pero la forma que visualmente veo que se arregla es dandole espaciuo a el 1 (uno) que hay en este codigo.
Código (php) [Seleccionar]
$mensaje = preg_replace("/\[color=((#)?[0-9a-z]+)\]/i","<font color="\\1">",$mensaje) ; $mensaje = str_replace("[/color]","</font>",$mensaje) ;
en el font color="\\1" le doy un espacio para que quede font color="\\1 " y así me muestra de nuevo los colores de los strings y todo lo demas comosupuestamente tiene que ser, xD

pero entonces quisiera saber que significa los \\ y //\\ y demas que hay en ese codigo, gracias (en el codigo anterior que les dejé. por si acaso ayuda mas es un chat el que quiero ver, sino que no me va, y el que publicaron acá tampoco, xD
Título: Re:[ayuda]error, e intentado de todo y no me funciona
Publicado por: ~ Yoya ~ en Agosto 10, 2011, 04:57:02 PM
Cuando utilizas expresiones regulares  en PHP, es necesario utilizar delimitadores, que sirven para indicar donde inicia y termina el patrón(La expresión regular). Mayormente se utiliza las Barras
Citar/Regexp/
.

Igual se puede utilizar @, y otros caracteres mas.

Citar/\[
El primer carácter es una barra /, que indica el inicio del patrón(La expresión regular). El segundo es una barra invertida que sirve para escapar un caracter, en este caso un [, ya que si nose escapa el [, no seria un string sino un campo de carácter.



Te recomiendo que no copies partes de códigos porque no sabes lo que hace y por lo tanto, no tienes mucha idea de como solucionar problemas que ocasionan.

Si no sabes utilizar expresiones regulares, aprende porque sera tu mejor amigo a la hora de parsear datos, como es el caso.

Aquí una buena pagina para que vayas testeando tus Expresiones Regulares:

http://regex.larsolavtorvik.com/

Saludos.
Título: Re:[ayuda]error, e intentado de todo y no me funciona
Publicado por: fortil en Agosto 11, 2011, 10:30:53 PM
Gracias YOGA
Título: Re:[ayuda]error, e intentado de todo y no me funciona
Publicado por: blozzter en Agosto 11, 2011, 10:46:30 PM
No tienes permitido ver enlaces. Registrate o Entra a tu cuenta
Gracias YOGA

lol no le cambiees el nick xD