AvatarEfrain
Usuario Novato
Usuario Novato

Saludos.

He estado tratando de hacer una pagina que tiene varias formas y hace submit a si misma para cambiar el contenido que muestra.

Utilizando el metodo GET en las formas todo funciona bien.

Al utilizar el metodo POST, los valores de los campos ocultos de mis formas a veces estan, por ejemplo $_POST["campoH1"] y a veces no. Se comporta realmente extraño.

¿Que puede estar pasando?

Avatar Image
@man / @woman
@man / @woman

Puedes poner el código, o mejor una versión reducida del mismo, para probarlo???

AvatarEfrain
Usuario Novato
Usuario Novato

Este es el codigo.
Como veras es muy sencillo.

https://darkages.webcindario.com/index.php
Este es el URL, si das varios clicks
en los botones veras que a veces sirve el POST
a veces no.

GRACIAS

<html>
<head>

<META HTTP-EQUIV="expires" CONTENT="Wed, 03 Nov 1999 12:21:14 GMT" />
<META HTTP-EQUIV="Pragma" CONTENT="no-cache" />
<meta http-equiv="Cache-Control" Content="no-cache" />


<title>Dark Ages</title>
<link rel="stylesheet" type="text/css" href="css/darkages.css" />
</head>

<body>

<table class="globalframe"><tr><td> <!-- ALL -->

<table class="mainframe">

<tr>
<td class="titleframe" colspan="2">
<table width="100%">
<form name="mail" action="index.php" method="POST">
<tr>
<td align="right" valign="middle" width="50%">
<input type="submit" name="act" class="boton" value="History" />
</td>

<td rowspan="3">
<img alt="Dark Ages" src="img/dalogo.jpg" onclick="document.forms.main.submit()"/>
</td>

<td align="left" valign="middle" width="50%">
<input type="submit" name="act" class="boton" value="Help" />
</td>
</tr>

<tr>
<td align="right" valign="middle" width="50%">
<input type="submit" name="act" class="boton" value="Races" />
</td>

<td align="left" valign="middle" width="50%">
<input type="submit" name="act" class="boton" value="Hints" />
</td>
</tr>

<tr>
<td align="right" valign="middle" width="50%">
<input type="submit" name="act" class="boton" value="Weapons" />
</td>

<td align="left" valign="middle" width="50%">
<input type="submit" name="act" class="boton" value="F.A.Q." />
</td>
</tr>
</form>
</table>
</td>
</tr>

<tr>
<td class="menuframe">
<table class="menu">
<tr>
<td>
HOLA
</td>
</tr>
</table>
</td>
<td class="userframe"> <!-- AQUI VA EL CODIGO PARA MOSTRAR LAS PAGINAS ADECUADAS -->
<?php

$actvar = "";

if (isset($_POST['act'])) {
$actvar = $_POST['act'];
}

switch($actvar) {
case "History": echo "Historia";
break;

case "Help": echo "Ayuda";
break;

case "Races": echo "Razas";
break;

case "Hints": echo "Datos";
break;

case "Weapons": echo "Armas";
break;

case "F.A.Q.": echo "Preguntas";
break;
}

echo "<br>";

echo $_SERVER['HTTP_USER_AGENT'];

echo "<br>";

?>
</td>
</tr>
</table>

</td></tr></table>

</body>

</html>

Avatar Image
@man / @woman
@man / @woman

No he tenido mucho tiempo para verlo... pero misterioisamente no me he olvidado....

Te pedi un código reducido... como este:

Codigo:

<html>
<head>
<title>Prueba con post</title>
</head>

<body>

<form name="mail" action="<? $PHP_SELF ?>" method="POST">
<input type="submit" name="act" class="boton" value="Boton1" />
<input type="submit" name="act" class="boton" value="Boton2" />
</form>

<?

$actvar = "";

if (isset($_POST['act']))
{
$actvar = $_POST['act'];
}

switch($actvar)
{
case "Boton1":
echo "Ha presionado boton1";
break;

case "Boton2":
echo "Ha presionado boton2";
break;
}

?>

</body>
</html>


Lo estoy probando ahora mismo... y me he dado cuenta que da problemas si presionas el botón por segunda vez, pero si cargas de nuevo la página funciona bien... voy a ver si miro como solucionarlo... pero yo de php soy autoditacta... asi que poco se.
Avatar Image
@man / @woman
@man / @woman

El problema radica cuando el usuario presiona un botón muy rápido, es como si el formulario necesitara 5 segundos o algo asi... voy a probarlo en otro servidor.

AvatarEfrain
Usuario Novato
Usuario Novato

Yo lo probe localmente (PHP/IIS en mi PC) y funciono bien.

Lo que hice para solucionarlo en el servidor fue colocar la parte de la forma como un include

<?php require("inc/formas.inc&quot; ?>

asi la forma esta precargada, por PHP, eso parece solucionarlo.

Gracias.

Avatar Image
Machacateclados
Machacateclados
<html>
<head>
<title>Prueba con post</title>
</head>
<body>
<script>
bloqueo = 0 ;
function bloquear() {
if(bloqueo == 0) { bloqueo++ ; return true ; } else { alert('La información se está enviando') ; return false ; }
}
</script>

<form name="mail" action="<? $PHP_SELF ?>" method="post" onsubmit="return bloquear()">
<input type="submit" name="act" class="boton" value="Boton1">
<input type="submit" name="act" class="boton" value="Boton2">
</form>
<?
$actvar = "";
if (isset($_POST['act'])) {
$actvar = $_POST['act'];
}
switch($actvar) {
case "Boton1":
echo "Ha presionado boton1";
break;
case "Boton2":
echo "Ha presionado boton2";
break;
}
?>
</body>
</html>


Lo probé en mi propio servidor y no me dió problemas, pero de todas formas le pusé un bloqueador en javascript para que el formulario sólo pueda ser enviado una vez.
ATENCIÓN: Este tema no tiene actividad desde hace más de 6 MESES,
te recomendamos abrir un nuevo tema en lugar de responder al actual
Opciones:
Ir al subforo:
Permisos:
TU NO PUEDES Escribir nuevos temas
TU NO PUEDES Responder a los temas
TU NO PUEDES Editar tus propios mensajes
TU NO PUEDES Borrar tus propios mensajes
Temas similares
TemaUsuariosRespuestasVisitasActividad
Por: , el 26/Mar/2011, 07:30
oxidrene NoSetup.org42kMar/11
Por: , el 28/Jul/2005, 15:37
vhsP Nodws cementerio35kAug/08
Por: , el 20/Abr/2004, 17:36
cgalvez NoSetup.org13kApr/04
Por: , el 21/Ene/2014, 03:42
c_esteras NoSetup.org1996Jan/14
Por: , el 01/Nov/2011, 06:00
alchro GestionXls12kNov/11