Foros del Web » Programando para Internet » PHP »

Tengo un duda

Estas en el tema de Tengo un duda en el foro de PHP en Foros del Web. Buen dia a todos, como puedo poner en un if que si un POST trae un valor STRING pues se ejecute la condicion. Saludos!...
  #1 (permalink)  
Antiguo 16/05/2012, 15:33
 
Fecha de Ingreso: noviembre-2011
Ubicación: Paris
Mensajes: 450
Antigüedad: 12 años, 5 meses
Puntos: 7
Tengo un duda

Buen dia a todos, como puedo poner en un if que si un POST trae un valor STRING pues se ejecute la condicion.
Saludos!
  #2 (permalink)  
Antiguo 16/05/2012, 15:37
Avatar de jotaincubus  
Fecha de Ingreso: mayo-2005
Ubicación: Medellin - Colombia
Mensajes: 1.797
Antigüedad: 18 años, 11 meses
Puntos: 394
Respuesta: Tengo un duda

Código PHP:
Ver original
  1. if(is_string($_POST['campo_a_evaluar'])){
  2. echo 'La variable es de tipo string';
  3. }else{
  4. echo 'La variable no es de tipo string';
  5. }

Cuidado: Esto verifica si la cadena es de tipo string, no el contenido de la variable... en ese caso por favor explica mejor que es lo que quieres hacer.
__________________
Por que existe gente que no agradece después de que se le ha brindado tiempo y ayuda ???
  #3 (permalink)  
Antiguo 16/05/2012, 15:40
 
Fecha de Ingreso: noviembre-2011
Ubicación: Paris
Mensajes: 450
Antigüedad: 12 años, 5 meses
Puntos: 7
Respuesta: Tengo un duda

Gracias Jota por tu respuestan y gracias por l aclaracion
  #4 (permalink)  
Antiguo 16/05/2012, 15:44
Avatar de jotaincubus  
Fecha de Ingreso: mayo-2005
Ubicación: Medellin - Colombia
Mensajes: 1.797
Antigüedad: 18 años, 11 meses
Puntos: 394
Respuesta: Tengo un duda

FE DE ERRATA:

Cita:
Cuidado: Esto verifica si la cadena es de tipo string, no el contenido de la variable... en ese caso por favor explica mejor que es lo que quieres hacer.
Lo que quise decir es que esto verifica el tipo de variable, NO el contenido que esta tiene asignado.
__________________
Por que existe gente que no agradece después de que se le ha brindado tiempo y ayuda ???
  #5 (permalink)  
Antiguo 16/05/2012, 16:04
 
Fecha de Ingreso: septiembre-2009
Ubicación: Queretaro
Mensajes: 51
Antigüedad: 14 años, 6 meses
Puntos: 2
Respuesta: Tengo un duda

tambien similar a su respuesta seria asi:

Código PHP:
Ver original
  1. if(!is_numeric($_POST["variable"])){
  2. echo 'La variable es de tipo string';
  3. }else{
  4. echo 'La variable no es de tipo string';
  5. }

saludos jijijii
  #6 (permalink)  
Antiguo 17/05/2012, 10:07
Avatar de linuxzero  
Fecha de Ingreso: noviembre-2011
Ubicación: Argentina
Mensajes: 778
Antigüedad: 12 años, 5 meses
Puntos: 160
Respuesta: Tengo un duda

Cita:
Iniciado por Curda Ver Mensaje
tambien similar a su respuesta seria asi:

Código PHP:
Ver original
  1. if(!is_numeric($_POST["variable"])){
  2. echo 'La variable es de tipo string';
  3. }else{
  4. echo 'La variable no es de tipo string';
  5. }

saludos jijijii
Esta respuesta es totalmente errada, puesto que estas tomando como cierto que si no es del tipo numerico es del tipo string y eso no es cierto, hay muchos tipos de datos, entre ellos un boolean, entonces si $_POST['variable'] es del tipo boolean segun tu codigo seria del tipo string tambien al no ser del tipo string.

No es una solucion valida la que estas ofreciendo debido a que depende totalmente el componente html del cual provenga el $_POST.
__________________
Si todo fuera tan sencillo como un symfony cc la vida seria más fácil.
http://phpnico.wordpress.com
  #7 (permalink)  
Antiguo 17/05/2012, 15:20
 
Fecha de Ingreso: septiembre-2009
Ubicación: Queretaro
Mensajes: 51
Antigüedad: 14 años, 6 meses
Puntos: 2
Respuesta: Tengo un duda

no es totalmente errada ya que es trae un valor string por eso la toma como string.
a lo mejor aun habria una mejor forma creando una funcion con expresiones regulares.

y se me hace interesante tu caso que explicas me gustarian unos ejemplos para aprender y y no seas tan extremista al redactar.

gracias

saludos.
  #8 (permalink)  
Antiguo 17/05/2012, 15:48
Avatar de jotaincubus  
Fecha de Ingreso: mayo-2005
Ubicación: Medellin - Colombia
Mensajes: 1.797
Antigüedad: 18 años, 11 meses
Puntos: 394
Respuesta: Tengo un duda

Por eso coloque la FE DE ERRATA y parece que @Curda no la leyo... deben entender que el no especifica si quiere verificar la variable como tal o el valor que esta tiene asignado...

Si el @echo_ desea verificar el tipo de variable en si debera utilizar is_string lo cual le va perfecto (siempre y cuando no utlice el metodo GET ya que este cambia automaticamente todo a STRING para mandar los datos por la URL CABE ACLARAR que podria solucionarlo almacenando el dato dentro de una nueva variable en el codigo que se esta compilando $nueva = $_GET['algo'] en ese caso la variable nueva sera seteada por PHP automaticamente al valor que esta contenga) mirese el tema de tipado de datos

Pero si @echo_desea revisar el valor de la variable podria utilizar una expresion regular, pero si el usuario desea revisar el tipo de variable NO CREO QUE SEA POSIBLE CON UNA EXPRESION REGULAR ya que esto es manejo interno de PHP.

Espero que esta informacion les ayude en su aprendizaje.
__________________
Por que existe gente que no agradece después de que se le ha brindado tiempo y ayuda ???
  #9 (permalink)  
Antiguo 17/05/2012, 15:51
Avatar de stramin  
Fecha de Ingreso: marzo-2008
Ubicación: Cubil felino
Mensajes: 1.652
Antigüedad: 16 años, 1 mes
Puntos: 336
Respuesta: Tengo un duda

En las variables post o get los valores son cadenas o cadenas, jamás números o booleanos, estas cadenas pueden contener números por lo tanto is_numeric podría validar perfectamente

Es por esto que is_string() no sirve, ya que siempre será cadena, aunque se ingresen números

No es intención de ser troll ni nada, solo digo las cosas como son, Curda Wins
__________________
El objetivo de este foro es orientar al usuario como un favor y no como una obligación.

Yo soy de los que dan puntos por aporte :D

Última edición por stramin; 17/05/2012 a las 15:56
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 23:40.