Foros del Web » Programando para Internet » PHP »

unexpected T_ECHO

Estas en el tema de unexpected T_ECHO en el foro de PHP en Foros del Web. ( ! ) Parse error: syntax error, unexpected T_ECHO in C:\wamp\www\zulo\alta_usuario.php on line 45 Posteo la linea 45: <span class="textfieldRequiredMsg">Este campo es obligatorio.</span><span class="textfieldInvalidFormatMsg">El Email ...
  #1 (permalink)  
Antiguo 24/02/2012, 14:55
 
Fecha de Ingreso: diciembre-2011
Mensajes: 151
Antigüedad: 13 años
Puntos: 1
unexpected T_ECHO

( ! ) Parse error: syntax error, unexpected T_ECHO in C:\wamp\www\zulo\alta_usuario.php on line 45

Posteo la linea 45:

<span class="textfieldRequiredMsg">Este campo es obligatorio.</span><span class="textfieldInvalidFormatMsg">El Email no es correcto.</span></span></td><?php ($error)? echo "<td>X </td>"; ?>

El error me lo da cuando pongo el ($error)?
  #2 (permalink)  
Antiguo 24/02/2012, 15:19
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 8 meses
Puntos: 2534
Respuesta: unexpected T_ECHO

El problema es que el echo no puedes ponerlo así.

En todo caso debería ir algo así:
Código PHP:
echo $foo $candy $bar
Cita:
El error me lo da cuando pongo el ($error)?
¿De donde sacaste esa sintaxis que no existe?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 24/02/2012, 16:12
 
Fecha de Ingreso: diciembre-2011
Mensajes: 151
Antigüedad: 13 años
Puntos: 1
Respuesta: unexpected T_ECHO

Es que esto de los if abreviados... xDDD
Soy virgen...

Lo que quiero hacer a ver yo tengo definida la variable $error = false;

Quiero que si $error = true; haga un echo ...
  #4 (permalink)  
Antiguo 24/02/2012, 16:49
Avatar de Nemutagk
Colaborador
 
Fecha de Ingreso: marzo-2004
Ubicación: México
Mensajes: 2.633
Antigüedad: 20 años, 8 meses
Puntos: 406
Respuesta: unexpected T_ECHO

en todo caso seria algo así...
Código PHP:
Ver original
  1. echo ($error === false) ? '<td>X </td>' : '';
__________________
Listo?, tendría que tener 60 puntos menos de IQ para considerarme listo!!!
-- Sheldon Cooper
http://twitter.com/nemutagk
PD: No contestaré temas vía mensaje personal =)
  #5 (permalink)  
Antiguo 26/02/2012, 06:17
 
Fecha de Ingreso: diciembre-2011
Mensajes: 151
Antigüedad: 13 años
Puntos: 1
Respuesta: unexpected T_ECHO

Eso no significa que si error es = a false haga el echo <td>.....</td> etc.. ?

Yo lo que quiero es al reves !! Que haga el echo si el error es = a true, o !=false ..
Y se hace con 3 = ? '===' ??

Porque tantos?

PD: Gracias por la respuesta ^^
  #6 (permalink)  
Antiguo 26/02/2012, 06:22
Avatar de rigobcastro  
Fecha de Ingreso: febrero-2012
Ubicación: Lejanías
Mensajes: 69
Antigüedad: 12 años, 9 meses
Puntos: 21
Respuesta: unexpected T_ECHO

Pues ponlo al revés.

Código PHP:
Ver original
  1. echo ($error === true) ? '<td>X </td>' : '';

o

Código PHP:
Ver original
  1. echo ($error) ? '<td>X </td>' : '';

o

Código PHP:
Ver original
  1. echo ((boolean) $error) ? '<td>X </td>' : '';

o

Código PHP:
Ver original
  1. echo (!empty($error)) ? '<td>X </td>' : '';

Está última es la mas recomendada porque empty te busca false, valores en 0, NULL, arrays vacios, strings vacios
  #7 (permalink)  
Antiguo 26/02/2012, 06:31
 
Fecha de Ingreso: diciembre-2011
Mensajes: 151
Antigüedad: 13 años
Puntos: 1
Respuesta: unexpected T_ECHO

Interesante me apunto lo del empty ^^

Yo estaba intentando hacer la 2ª...

Y porque son 3 iguales?? "===" En lugar de dos ?

Otra cosilla.. Yo tengo esto:
Código PHP:
Ver original
  1. if($pass!=$password)
  2.       {
  3.          echo "Las contraseñas no coinciden";
  4.          $error = true;
  5.       }
  6.       if($email!=$mail)
  7.       {
  8.          echo "El email no coincide";
  9.          $error = true;
  10.       }
  11.      
  12.       if($telefono!=$telefono2)
  13.       {
  14.          echo "Los telefonos no coinciden";
  15.          $error = true;
  16.       }

Pero me gustaria saber cual de ellos esta fallando, como lo podria hacer? Porque claro si falla uno o fallan los 3 siempre me va a devolver true, pero nunca sabre cual de los campos es el erroneo :S
  #8 (permalink)  
Antiguo 26/02/2012, 22:39
Avatar de rigobcastro  
Fecha de Ingreso: febrero-2012
Ubicación: Lejanías
Mensajes: 69
Antigüedad: 12 años, 9 meses
Puntos: 21
Respuesta: unexpected T_ECHO

Según lo que entendí esto te puede servir.

Código PHP:
Ver original
  1. // Compara dos contraseñas iguales
  2.         $errors = array();
  3.         if($pass != $password){
  4.             $errors['password'] = 'Las contraseñas no coinciden';
  5.         }
  6.        
  7.         // Compara dos telefonos iguales
  8.         if($pass != $password){
  9.             $errors['telefono'] = 'Los teléfonos no coinciden';
  10.         }
  11.        
  12.         // Comprueba si es un email válido
  13.         $email = filter_var($email, FILTER_SANITIZE_EMAIL);
  14.         if( ! filter_var($email, FILTER_VALIDATE_EMAIL)){
  15.             $errors['email'] = 'El E-mail es inválido';
  16.         }
  17.        
  18.         // Si existen errores recorre el array y escribe los mensajes
  19.         if(!empty($errors)){
  20.             // Con el key => campo podrás saber cuál es el campo del error
  21.             foreach ($errors as $campo => $mensaje) {
  22.                 echo $mensaje . '<br>';
  23.             }
  24.         }

Tienes el array $errors donde el key es el campo del error y el value es el mensaje del error, podrás usar esta matriz como quieras lo último es solo un ejemplo basado en tu código.

Hay mil y una forma de hacer este proceso de validación eso depende de como estas interactuando con el front.
  #9 (permalink)  
Antiguo 27/02/2012, 02:21
 
Fecha de Ingreso: diciembre-2011
Mensajes: 151
Antigüedad: 13 años
Puntos: 1
Respuesta: unexpected T_ECHO

Si mas o menos podria ser eso si :D

Y una cosa... Porque se ponen los 3 iguales "===" ? No bastaria con dos ?

Gracias !
  #10 (permalink)  
Antiguo 27/02/2012, 03:17
Avatar de rigobcastro  
Fecha de Ingreso: febrero-2012
Ubicación: Lejanías
Mensajes: 69
Antigüedad: 12 años, 9 meses
Puntos: 21
Respuesta: unexpected T_ECHO

Los operadores de comparación se dividen en varios tipos. El usado es un operador de comparación no idéntico. Este operador no solo compara los valores sino también el tipo, así que lo hace un operador sumamente estricto.

Ejemplos de operadores de comparación con breve explicación:

Igual == y Diferente !=:

Como solo se compara el valor, los string se convierten a números cuandon son comparados; y los números comparados a boleanos.
ej: 0 == FALSE y (1 o mayor a 1) == TRUE. Este método de comparación se usa en los switch

Código PHP:
var_dump("10" == 10); // TRUE
var_dump(== TRUE); // TRUE
var_dump("100" != 100); // FALSE
var_dump(!= FALSE); // FALSE 
Idéntico === y No idéntico !==
En este operador se antepone el tipo, primero se compara el tipo y si no corresponde al tipo comparado inmediatamente devuelve FALSE. Si corresponde al tipo comparado se prosigue a comparar el valor, si el valor no es idéntico devuelve FALSE.

Código PHP:
var_dump("10" === 10); // FALSE
var_dump(=== TRUE); // FALSE
var_dump("100" !== 100); // TRUE
var_dump(!== FALSE); // TRUE

var_dump(TRUE === TRUE); // TRUE
var_dump(FALSE !== TRUE); // TRUE
var_dump(100 === 100); // TRUE
var_dump("test" === "test"); // TRUE 
De es se trata todo. Puedes leer más información en la página de PHP http://www.php.net/manual/es/language.operators.comparison.php


Saludos!
  #11 (permalink)  
Antiguo 28/02/2012, 10:25
 
Fecha de Ingreso: diciembre-2011
Mensajes: 151
Antigüedad: 13 años
Puntos: 1
Respuesta: unexpected T_ECHO

ok. Creo que lo entendi !!! :D

Etiquetas: unexpected, usuarios
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.