Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > PHP
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 21-08-2007
Avatar de maximo_nashir
maximo_nashir maximo_nashir is offline
Miembro
 
Registrado: ene 2004
Ubicación: República dominicana
Posts: 55
Poder: 21
maximo_nashir Va por buen camino
Wink cómo llamar diferentes páginas si entró la clave correcta

Hola a todos, lo que sucede es lo siguiente: tengo tres botones los cuales deben llamar diferentes páginas. Pero cuando accesen a esas páginas, dichas páginas deben verificar que el usuario haya entrado una clave, si la ingresó pues entonces las páginas permiten que interactuen con ellas, si no ingresó la clave entonces dichas páginas deben devolver al usuario a la página principal que es donde están los tres botones y el cuadro de texto de la contraseña. Entonces, mi problema consiste en que al parecer al yo darle clik a cualquiera de los botones solo se está ejecutando el OnClick del último botón o no se si es que php está leyendo el OnClick de los tres y por ende el que queda ejecutandose o asignando el valor es el del último botón.

Bueno, aquí está el código que tal vez es más claro que yo:

Código PHP:
       <td rowspan="6"><img name="int_control_r4_c1" src="img/int_control_r4_c1.jpg" width="9" height="434" border="0" id="int_control_r4_c1" alt="" /></td>
       <td colspan="3"><img name="int_control_r4_c2" src="img/int_control_r4_c2.jpg" width="304" height="108" border="0" id="int_control_r4_c2" alt="" onclick="<?php $Accion 'Pagina1.php' ?> document.formVerificacion.submit()" /></td>
       <td rowspan="4" colspan="2"><img name="int_control_r4_c5" src="img/int_control_r4_c5.jpg" width="200" height="289" border="0" id="int_control_r4_c5" alt="" /></td>
       <td><img src="img/spacer.gif" width="1" height="108" border="0" alt="" /></td>
     </tr>
     <tr>
       <td colspan="3"><img name="int_control_r5_c2" src="img/int_control_r5_c2.jpg" width="304" height="113" border="0" id="int_control_r5_c2" alt="" onclick="<?php $Accion 'Pagina2.php' ?> document.formVerificacion.submit()"/></td>
       <td><img src="img/spacer.gif" width="1" height="113" border="0" alt="" /></td>
     </tr>
     <tr>
       <td colspan="3"><img name="int_control_r6_c2" src="img/int_control_r6_c2.jpg" width="304" height="122" border="0" id="int_control_r6_c2" alt="" onclick="<?php $Accion 'Pagina3.php' ?> document.formVerificacion.submit()"/></td> //al darle click a cualquier botón solo me está llamando a Pagina3.php
<td><img src="img/spacer.gif" width="1" height="122" border="0" alt="" /></td>
     </tr>
     <tr>
       <td rowspan="3"><img name="int_control_r7_c2" src="img/int_control_r7_c2.jpg" width="262" height="91" border="0" id="int_control_r7_c2" alt="" /></td>
          <form name='formVerificacion' method='POST' action="<?php echo $Accion ?>">
          <td><input type="password" name="ClaveAdmin" /></td>
          </form>
__________________
:::
:::
:::
Costoso es el saber que compras con la experiencia y más costoso el que te falta comprar
:::
:::
:::
Responder Con Cita
  #2  
Antiguo 21-08-2007
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Verás, tienes algunos conceptos equivocados en cuanto al uso de php y javascript. Debes recordar que el código php se ejecuta en el servidor mientras que javascript se ejecuta en el navegador.

Cuando pones:

Código:
<img ... onclick='<?php $Accion = 'Pagina1.php'?> document.formVerificacion.submit()'
el código php

Código PHP:
$Accion 'Pagina1.php' 
se ejecuta en el servidor cuando el navegador le pide la página, y lo que llega a éste es el html resultante. Como esa sentencia no da ninguna salida, el resultado es una cadena vacía, de manera que al navegador le llega esto:

Código:
<img ... onclick=' document.formVerificacion.submit()'>
de manera que lo único que se ejecuta cuando se hace clic en ese botón es el código javascript:

Código:
document.formVerificacion.submit()
Y lo mismo sucede con los tres botones. Es decir, los tres botones ejecutan lo mismo, que es el submit del formulario.

Por tanto, el formulario se enviará a cualquier cosa que valga su atributo action. Pero resulta que este atributo está dado por

Código:
<form ... action='<?php echo $Accion ?>'>
y como $Accion es una variable cuyo valor se resuelve en el servidor, no queda claro que valor tendrá para cuando la página llegue al navegador. En todo caso, no será el que corresponda al botón oprimido.

-------------------------------------------------

Hay varias maneras de hacer lo que quieres.

Una que se me ocurre es estableciendo el atributo action del formulario mediante javascript:

Código:
<img ... onclick=' document.formVerificacion.action="pagina1.php"; document.formVerificacion.submit();'>
Otra manera podría ser mandar a la misma página con los tres botones, pero cada botón establece un campo hidden:

Código:
<input type='hidden' name='boton'>

...

<img ... onclick=' document.formVerificacion.boton.value=1; document.formVerificacion.submit()'>
La página que recibe, dispone entonces del valor $_POST['botón '] para determinar a qué pagina redirigir:

Código PHP:
header('location: 'pagina' . $_POST['boton'] . '.php'); 
Aunque en este caso, tendrías que reenviar los demas valores del formulario por otros métodos, ya sea en la misma llamada al header, o mediante alguna variable de sesión.

// Saludos

Última edición por roman fecha: 21-08-2007 a las 20:02:26.
Responder Con Cita
  #3  
Antiguo 21-08-2007
Avatar de maximo_nashir
maximo_nashir maximo_nashir is offline
Miembro
 
Registrado: ene 2004
Ubicación: República dominicana
Posts: 55
Poder: 21
maximo_nashir Va por buen camino
Gracias roman, muy practica tu ayuda, me funcionó de mil maravillas
__________________
:::
:::
:::
Costoso es el saber que compras con la experiencia y más costoso el que te falta comprar
:::
:::
:::
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Cual es la forma correcta de llamar y ejecutar un ProcAlmacenado en IB6 y Delphi 7??? Saltamontes Firebird e Interbase 5 11-07-2007 17:05:19
Como saber si se entro una cadena determinada en un edit Tauro78 Varios 2 26-03-2007 11:18:03
Cómo utilizar consultas con DISTINCT de forma correcta dec MySQL 9 19-09-2006 17:50:47
Extraer datos de una pagina en java que tiene clave (sabiendo la clave claro) ;) kalimocho Internet 2 29-06-2005 05:11:24
diferentes paginas en quick Report, ayuda manolop Impresión 5 30-05-2005 19:48:58


La franja horaria es GMT +2. Ahora son las 21:55:34.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi