Foros del Web » Programando para Internet » PHP »

Sintaxis Error pasar PHP 5.2 A 5.3

Estas en el tema de Sintaxis Error pasar PHP 5.2 A 5.3 en el foro de PHP en Foros del Web. Buenas tardes tengo un problema Estoy cambiando esta linea //if(!ereg("(^[a-zA-Z0-9_ ]+)$",$id) or $id === true) return $this->error(true, "El nombre indicado en el método linkClase() es ...
  #1 (permalink)  
Antiguo 08/08/2012, 13:14
 
Fecha de Ingreso: septiembre-2009
Mensajes: 281
Antigüedad: 14 años, 7 meses
Puntos: 0
Pregunta Sintaxis Error pasar PHP 5.2 A 5.3

Buenas tardes tengo un problema

Estoy cambiando esta linea
//if(!ereg("(^[a-zA-Z0-9_ ]+)$",$id) or $id === true) return $this->error(true, "El nombre indicado en el método linkClase() es inválido");

Por esta:
if(!preg_match(“/(^[a-zA-Z0-9]+)$/”,$var)) return $this->error(true, “El nombre de la variable indicado contiene caracteres no válidos”);

Pero me muestra es siguiente error de sintaxis q no entiendo xq?
Parse error: syntax error, unexpected '^'

Lo mismo pasa con esta linea

if(!$result) return $this->error(false, @mysql_error(), $sql, preg_match(“/limit[ ]+[0-9]+(,[ ]*[0-9]+)?/”, strtolower($sql)));

Parse error: syntax error, unexpected '[' in

Agradezco su tiempo
  #2 (permalink)  
Antiguo 08/08/2012, 13:19
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Sintaxis Error pasar PHP 5.2 A 5.3

Deberías mostrar los mensajes de error completos, en realidad no deberías tener ese tipo de problemas con caracteres dentro de cadenas.

Pero bueno, sin tener toda la información es complicado deducir porque te salen dichos errores.

Edito: creo que estás copiando y pegando, viendo bien el código las comillas de las lineas que te dan error son otras.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 08/08/2012, 14:04
Avatar de KsrZ  
Fecha de Ingreso: abril-2011
Ubicación: /home/KsrZ/Desktop
Mensajes: 156
Antigüedad: 13 años
Puntos: 26
Respuesta: Sintaxis Error pasar PHP 5.2 A 5.3

podrías optimizar un poco esas expresiones
ejemplo, en lugar de [ ] (un espacio) usar \s
en cuanto a +
si tienes una cifra exacta de la longitud de los números devueltos seria ideal usar {1,$max}
en cuanto a tu error de " [ " puede que sea por dejarlo vació con un espacio..

también recuerda que preg_match devuelve un numero o false si es error..
podrías compararlo así > 0

dame un par de minutos, y hago algunas pruebas con tu expresión.

esto me funciona..
Código PHP:

$txt 
"limit 1, 20";
echo (
preg_match("/limit\s+[0-9]+(\,\s*[0-9]+)?/"$txt) > 0)? "si""no"
en cuanto a los demás errores, pateketrueke creo que tiene razón sobre las comillas
__________________
for (var i = 0; i < 2; i++){
i = !confirm("Trata a tu código como a ti mismo.. este te esta representando.. no te dejes mal parado")? 0 : i;
}

Última edición por KsrZ; 08/08/2012 a las 14:11
  #4 (permalink)  
Antiguo 08/08/2012, 14:28
 
Fecha de Ingreso: septiembre-2009
Mensajes: 281
Antigüedad: 14 años, 7 meses
Puntos: 0
Respuesta: Sintaxis Error pasar PHP 5.2 A 5.3

Muchas gracias por su tiempo eso de las comillas pateketrueke no veo donde donde puede estar mi error

Este es la funciona original
Código PHP:
if(!ereg("(^[a-zA-Z0-9]+)$",$var)) return $this->error(true"El nombre de la variable indicado contiene caracteres no válidos"); 
Y esta es la que quiero poner debido a tengo PHP 5.3
Código PHP:
if(!preg_match(/(^[a-zA-Z0-9]+)$/,$var)) return $this->error(true“El nombre de la variable indicado contiene caracteres no válidos”); 
Por otra parte gracias KsrZ voy ahora mismo intentar tu logica como me va
  #5 (permalink)  
Antiguo 08/08/2012, 14:35
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Sintaxis Error pasar PHP 5.2 A 5.3

¿De verdad no te das cuenta?

Observa bien el código que acabas de publicar, observa bien las comillas dobles que encierran la expresión.

A) Estas comillas estás bien, el resaltado de sintaxis lo confirma, además de que no te lanza error.
Código PHP:
if(!ereg("(^[a-zA-Z0-9]+)$",$var)) return $this->error(true"El nombre de la variable indicado contiene caracteres no válidos"); 
B) Estás "comillas" no son comillas ASCII, no se si tu editor las coloca o tu las copiaste y pegaste de algún lado, ahí el misterio.
Código PHP:
  if(!preg_match(/(^[a-zA-Z0-9]+)$/,$var)) return $this->error(true“El nombre de la variable indicado contiene caracteres no válidos”); 
Además observa que en A la cadena sale de rojo, y en B no se colorea la cadena.

C) Mira bien, ¿son iguales?
Cita:
" vs “
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #6 (permalink)  
Antiguo 08/08/2012, 14:35
Avatar de KsrZ  
Fecha de Ingreso: abril-2011
Ubicación: /home/KsrZ/Desktop
Mensajes: 156
Antigüedad: 13 años
Puntos: 26
Respuesta: Sintaxis Error pasar PHP 5.2 A 5.3

comillas malas “ ”
comillas buenas" "
te copio @pateketrueke XD
__________________
for (var i = 0; i < 2; i++){
i = !confirm("Trata a tu código como a ti mismo.. este te esta representando.. no te dejes mal parado")? 0 : i;
}

Última edición por KsrZ; 08/08/2012 a las 14:46
  #7 (permalink)  
Antiguo 08/08/2012, 14:55
 
Fecha de Ingreso: septiembre-2009
Mensajes: 281
Antigüedad: 14 años, 7 meses
Puntos: 0
Respuesta: Sintaxis Error pasar PHP 5.2 A 5.3

Gracias enserio no me di cuenta ahora tengo otro problema

Esta es la funcion que trato de cambiar


Código PHP:
function nombreVariable ($var) {
        if(!
is_string($var) or empty($var)) return $this->error(true"El nombre de variable indicado está vacío o es inválido.");
        
//if(!ereg("(^[a-zA-Z0-9]+)$",$var)) return $this->error(true, "El nombre de la variable indicado contiene caracteres no válidos");
        
if(!preg_match("/(^[a-zA-Z0-9]+)$/",$var)) return $this->error(true“El nombre de la variable indicado contiene caracteres no válidos”);
        
$this->nombreVariable = (string)$var
        return 
true;
    } 
El problema q tengo ahora es el siguiente
Parse error: syntax error, unexpected T_STRING in C:\xampp\htdocs\cessa\extras\php\PHPPaging.lib.php on line 553

Y eso es la linea esta
Código PHP:
$this->nombreVariable = (string)$var
No entiendo xq? Muchas gracias pateketrueke
  #8 (permalink)  
Antiguo 08/08/2012, 15:10
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Sintaxis Error pasar PHP 5.2 A 5.3

Ve la línea anterior, estas usando las "comillas" malas...
  #9 (permalink)  
Antiguo 08/08/2012, 15:12
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Sintaxis Error pasar PHP 5.2 A 5.3

Por favor, pon mucha atención a tu código, sigues usando las mismas "comillas malas" para tus cadenas de texto.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #10 (permalink)  
Antiguo 08/08/2012, 15:34
 
Fecha de Ingreso: agosto-2012
Ubicación: Santiago
Mensajes: 124
Antigüedad: 11 años, 8 meses
Puntos: 60
Respuesta: Sintaxis Error pasar PHP 5.2 A 5.3

El nombre de la variable indicado contiene caracteres no válidos
__________________
~~Aprendiendo.
Become a Programmer, Moth*rf*cker
  #11 (permalink)  
Antiguo 08/08/2012, 17:40
Avatar de KsrZ  
Fecha de Ingreso: abril-2011
Ubicación: /home/KsrZ/Desktop
Mensajes: 156
Antigüedad: 13 años
Puntos: 26
Respuesta: Sintaxis Error pasar PHP 5.2 A 5.3

Código PHP:
 if(!preg_match("/(^[a-zA-Z0-9]+)$/",$var)) return $this->error(true"El nombre de la variable indicado contiene caracteres no válidos"); 
usa eso ...
__________________
for (var i = 0; i < 2; i++){
i = !confirm("Trata a tu código como a ti mismo.. este te esta representando.. no te dejes mal parado")? 0 : i;
}

Etiquetas: mysql, sintaxis, sql, variables
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:01.