Foros del Web » Programando para Internet » PHP »

Form + PHP

Estas en el tema de Form + PHP en el foro de PHP en Foros del Web. Buenas a todos: tengo lo siguiente... <p><input type='submit' name='mod_trat' value='Modificar el Tratamiento'> <p><INPUT TYPE='text' NAME='nuevo_trat' SIZE='200' MAXLENGTH='100'> En la pagina que recolecto los datos de ...
  #1 (permalink)  
Antiguo 31/03/2009, 11:37
 
Fecha de Ingreso: julio-2008
Mensajes: 33
Antigüedad: 15 años, 8 meses
Puntos: 0
Form + PHP

Buenas a todos:
tengo lo siguiente...

<p><input type='submit' name='mod_trat' value='Modificar el Tratamiento'>
<p><INPUT TYPE='text' NAME='nuevo_trat' SIZE='200' MAXLENGTH='100'>

En la pagina que recolecto los datos de eto (es la misma pagina) evaluo...

$mod_tratamiento = $_POST['mod_trat'] and $_POST['muevo_trat'];

if($mod_tratamiento){
Hago algo.....
}

la cosa es que siempre que clikeo en el boton "Modificar el tratamiento"

entra al if, por mas que no halla colocado nada en "nuevo_trat"

pregunta
¿como verifico que $_POST['muevo_trat'] sea distinto de "vacio"?,
probe con $_POST['muevo_trat'] != "", $_POST['muevo_trat'] != '' y nada.
¿Que caracter trae $_POST['muevo_trat'] si no ingrese texto?

Desde ya gracias....
  #2 (permalink)  
Antiguo 31/03/2009, 11:40
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 18 años, 11 meses
Puntos: 839
Respuesta: Form + PHP

Normalmente con empty() debería funcionar, y depaso trim() para eliminar espacios:
Código php:
Ver original
  1. if (empty(trim($_POST['muevo_trat']))) {
  2.     // Está vacío
  3. }
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #3 (permalink)  
Antiguo 31/03/2009, 11:44
Avatar de argy  
Fecha de Ingreso: octubre-2007
Ubicación: Longitud 75º Latitud 18º Sur
Mensajes: 614
Antigüedad: 16 años, 4 meses
Puntos: 18
Respuesta: Form + PHP

al momento de procesar utiliza la siguiente estructura

Código :
Ver original
  1. if(isset($_POST['var']))//verifica existencia de variable
  2. {
  3. if(empty($_POST['var']))//verifica que la variable no esté vacía
  4. {
  5. //mensaje de que variable está vacía
  6. }
  7. else
  8. {
  9. //procesar variable
  10. }
  11. }
  12. else
  13. {
  14. //mensaje de que no existe variables
  15. }

adicionalmente si quieres hacer otras validaciones, filtros, utiliza funciones php como strip_tags,htmlrntities,etc.
__________________
Software libre para un mundo libre.

Eventualmente en el foro.
  #4 (permalink)  
Antiguo 31/03/2009, 11:58
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 8 meses
Puntos: 416
Respuesta: Form + PHP

David el Grande, usar empty y trim al mismo tiempo da error.

Código php:
Ver original
  1. if (empty(trim($_POST['muevo_trat']))) {
  2.     // Está vacío
  3. }

Muestra un error. Tienes que hacer:

Código php:
Ver original
  1. $muevo_trat = trim($_POST['muevo_trat']);
  2. if (empty($muevo_trat)) {
  3.     // Está vacío
  4. }

http://www.php.net/manual/en/function.empty.php
Me di cuenta de eso hace unos meses atras.
  #5 (permalink)  
Antiguo 31/03/2009, 12:03
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 18 años, 11 meses
Puntos: 839
Respuesta: Form + PHP

Gracias por aclararlo RonRuby. No lo había notado.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #6 (permalink)  
Antiguo 31/03/2009, 12:33
Avatar de Avatar810  
Fecha de Ingreso: agosto-2007
Ubicación: Por rumbos Regios
Mensajes: 485
Antigüedad: 16 años, 7 meses
Puntos: 23
Respuesta: Form + PHP

un aporte mas, tendra algo que ver que tu campo es "NAME='nuevo_trat'" y tu validacion es sobre $_POST['muevo_trat']; aunque esto en teoria deberia regresar un false... segun yo.

Pues yo lo que he hecho es

Código PHP:
<?
if(isset($_POST['mod_trat']) and isset($_POST['nuevo_trat']) and trim($_POST['nuevo_trat'])!="")
     echo 
"paso";
else
{
     echo 
"<br>Existe mod_trat".isset($_POST['mod_trat']);
     echo 
"<br>Existe nuevo_trat ".isset($_POST['nuevo_trat']);
     echo 
"<br>Valor nuevo_trat '".trim($_POST['nuevo_trat'])."'";
}
?>
<form method="post" name="f1" action="<?php $_SERVER['PHP_SELF']; ?>">
    <p><input type='submit' name='mod_trat' value='Modificar el Tratamiento'>
    <p><INPUT TYPE='text' NAME='nuevo_trat' SIZE='200' MAXLENGTH='100'>
</form>
Prueba y nos avisas que pasa.
__________________
Una demo siempre funcionará correctamente hasta que toque algo tu (hasta ahora) cliente.
Avatar810

Última edición por Avatar810; 31/03/2009 a las 12:38
  #7 (permalink)  
Antiguo 31/03/2009, 12:41
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: Form + PHP

El problema es que empty() es un language construct, no una función como tal, por eso falla, lo que se puede hacer para ahorrar código es:
Código php:
Ver original
  1. if( trim( $var ) === '' ) {
  2.       // esta vacio
  3. }

Ya que trim() opera sobre strings por lo cual es posible evaluarlo y compararlo contra una cadena vacia.

Saludos.
  #8 (permalink)  
Antiguo 31/03/2009, 22:05
 
Fecha de Ingreso: julio-2008
Mensajes: 33
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: Form + PHP

Gente gracias por los aporte (y lo rapido que respondieron)...
Les cuento que de todas las respuestas aprendi algo (soy nuevito en PHP).

El problema en realidad venia por otro lado y lo grito par que otros aprendan de mis errores.

" NO INICIALICE LAS VARIABLES !!!!! "

Recomiendo inicialisarlas siempre ya que al crearlas traen basura.....
  #9 (permalink)  
Antiguo 31/03/2009, 23:26
Avatar de Avatar810  
Fecha de Ingreso: agosto-2007
Ubicación: Por rumbos Regios
Mensajes: 485
Antigüedad: 16 años, 7 meses
Puntos: 23
Respuesta: Form + PHP

En parte te doy la razon, es buena practica realizar la inicialización de lasvariables que utilizas pues al ser invocadas por primera vez no saber a que parte de la memoria se apunta.
Sin embargo siendo un poco cuidadoso puedes trabajar sin haberlo hecho ya que propiamente el PHP no lo exige.

Recaigo en el hecho que simplemente el error de tu script fue una letra equivocada, desencadenando un monton de fallos.

Cada dia podemos mejorar y con el tiempo descubres cuales son tus fallos mas habituales y podras identificarlos en primer instancia y con un poco de empeño logar evitarlos.

Exito en tu proyecto.
__________________
Una demo siempre funcionará correctamente hasta que toque algo tu (hasta ahora) cliente.
Avatar810
  #10 (permalink)  
Antiguo 01/04/2009, 11:10
Avatar de argy  
Fecha de Ingreso: octubre-2007
Ubicación: Longitud 75º Latitud 18º Sur
Mensajes: 614
Antigüedad: 16 años, 4 meses
Puntos: 18
Respuesta: Form + PHP

cuando se configura con errores estrictos el php si que te muestra errores cuando utilizas una variable no inicializada, para mí es buena forma inicializarlas.

suerte.
__________________
Software libre para un mundo libre.

Eventualmente en el foro.
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 06:18.