Foros del Web » Programando para Internet » PHP »

Disabled

Estas en el tema de Disabled en el foro de PHP en Foros del Web. Hola! tengo un formulario con 3 checkbox y todos estan en "disabled". (es formulario para editar. Pueden editar todo menos esa informacion) Para mayor seguridad ...
  #1 (permalink)  
Antiguo 14/06/2005, 15:55
 
Fecha de Ingreso: abril-2003
Mensajes: 150
Antigüedad: 21 años
Puntos: 1
Disabled

Hola!

tengo un formulario con 3 checkbox y todos estan en "disabled". (es formulario para editar. Pueden editar todo menos esa informacion)

Para mayor seguridad quisiera preguntar que si estan disabled haga la accion. Pero si no estan disabled es porque los cambiaron entonces no deberia de aceptarlo.

estoy usando:

Código PHP:
if ((isset($_POST["crear"]) or (isset($_POST["publicar"])) or (isset($_POST["eliminar"])) )
{
  
// no estan disabled 
 
echo "error";
}
else {
  
// estan disabled, no hay problema
 // guardar

pero no me funciona
Como lo hago?

Agradezco sus comentarios
Liz
  #2 (permalink)  
Antiguo 14/06/2005, 16:34
Avatar de yoseman  
Fecha de Ingreso: diciembre-2003
Ubicación: Alicante (Spain)
Mensajes: 471
Antigüedad: 20 años, 4 meses
Puntos: 5
Ése if evalua si esta activado alguno de los checkboxes, y está correcto, lo único que te falta un paréntesis después de la primera parte de la evaluación $_POST["crear"])

Código PHP:
<?
if ((isset($_POST["crear"])) or (isset($_POST["publicar"])) or (isset($_POST["eliminar"])) )
{
  
// no estan disabled
echo "error";
}
else {
  
// estan disabled, no hay problema
// guardar
}
?>
<form action="" method="post">
.crear &nbsp;<input type="checkbox" name="crear">
.publicar &nbsp;<input type="checkbox" name="publicar">
.eliminar &nbsp;<input type="checkbox" name="eliminar">
<input type="submit" name="submit" value="enviar">
</form>
Creo que es eso.

Salu2 ;)
__________________
[+]
[+]
  #3 (permalink)  
Antiguo 14/06/2005, 20:23
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 19 años, 8 meses
Puntos: 102
No puedes con PHP saber los atributos de un elemento del formulario... en todo caso sería con JavaScript.

La pregunta es... si de verdad quieres que no se modifiquen esos valores... ¿para qué los muestras? ... Si necesitas informar su estado lo puedes hacer en forma de texto... en su defecto ponerle otros names ó ninguno!!! así no los recojes de ninguna manera (no coincidirian).

Ahora la pregunta... que yo sepa... no hay manera de que puedan cambiar los estados de dichos checkboxes, si tu no daz esa opción... claro. Lo único que se me ocurre para que algo así suceda es que el navegador no interprete correctamente el HTML... lo cuál... será difícil haga un Navegador de uso común (iba a decir comercial... pero no )... ¿o planteas que tu visitante haga su propio navegador???... ...

__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #4 (permalink)  
Antiguo 14/06/2005, 22:12
 
Fecha de Ingreso: abril-2003
Mensajes: 150
Antigüedad: 21 años
Puntos: 1
Gracias a ambos por sus comentarios.

Bueno Jam1138, en PHP no se puede preguntar directamente el estado de un elemento eso lo se, pero si puedo trabajar con la variable que se va. Lo estaba haciendo de esta manera porque Cluster por ahi escribio algo similar para un persona que tambien queria saber esto.

Muestro los checkbox para informar su estado (como decia, es un formulario para editar), y si los muestro en checkbox es por presentacion. Tienes razon, en forma de texto podria mostrarlos, pero mostrar True, o Si/no no era lo que queria. Aunque si puede ser una opcion.

Cita:
¿o planteas que tu visitante haga su propio navegador???... ...
pensaba que si un hacker bajara el HTML y editara un read-only o un disable, se podria hacer un POST. Y el servidor no deberia aceptarlo.

Pense que el script que recibe la peticion deberia hacer un pequeño chequeo.
Por eso me guie mas o menos por lo que Cluster proponia de ver si la variable iba vacia o no... algo asi mas o menos.


Liz
  #5 (permalink)  
Antiguo 14/06/2005, 23:09
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 19 años, 8 meses
Puntos: 102
En realidad bromeaba con lo del navegador... ... pero ya veo tu preocupación... y hay que decir que esas cuestiones de seguridad son administradas por el servidor... deberá impedir insercciones de datos de un dominio diferente... de tu parte igual podrías crear una variable de sesión (que "no están visibles" para el visitante) para asegurarte que los datos provienen de un formulario tuyo... aunque, estas medidas son un poco "extras"...

Ahora... no te limites... no solo puedes mostrar "true" ó "si/no"... ¿quién te impide a hacer un if(cheeckbox=="si") echo "El estado esta activado";???? (simple ejemplo ilustrativo)

. Suerte!
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #6 (permalink)  
Antiguo 15/06/2005, 12:26
 
Fecha de Ingreso: abril-2003
Mensajes: 150
Antigüedad: 21 años
Puntos: 1
ok! entiendo tu sugerencia!!!
Voy a hacerlo asi! Gracias jam1138!!


Liz
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 17:05.