Foros del Web » Programando para Internet » PHP »

Problema con el POST ?

Estas en el tema de Problema con el POST ? en el foro de PHP en Foros del Web. Tengo el siguiente codigo, estos datos los envio de otra pagina denominada index.php: <?php require_once('librerias/control_sesion.php'); include ('funciones.php'); include ('conn.php'); ?> <html> <head> <title>Ejemplo de PHP</title> ...
  #1 (permalink)  
Antiguo 28/02/2011, 08:23
 
Fecha de Ingreso: junio-2009
Ubicación: Bolivia
Mensajes: 96
Antigüedad: 14 años, 10 meses
Puntos: 0
Problema con el POST ?

Tengo el siguiente codigo, estos datos los envio de otra pagina denominada
index.php:

<?php
require_once('librerias/control_sesion.php');
include ('funciones.php');
include ('conn.php');
?>
<html>
<head>
<title>Ejemplo de PHP</title>
<script language="javascript">
function confirmar ( mensaje ) {
return confirm( mensaje );
}
</script>

</head>
<body>
<?php
$nAncho = 15; // Ancho de caracteres tipo numerico
$cAncho1 = 16;//Ancho de caracteres tipo cadena

$cAncho2 = 7;

$cAncho3 = 60; //
$cAncho4 = 30;
$cAncho5 = 35;
$cAncho6 = 21;
$cAncho7 = 5;
//Obteniendo las claves primarias
$cite = $_GET['nro'];
$ano = $_GET['ano'];
$periodo = $_GET['periodo'];
//connect to the mysql
// $db = mysql_connect('localhost', 'root', '') or die("Could not connect database");
// mysql_select_db('filepersonal', $db) or die("Could not select database");
?>
<?php
$cSQL = "select n_nro_cite,DATE_FORMAT(d_fecha_ing,'%d/%m/%Y') AS ingreso,
c_cod_resp,
DATE_FORMAT(d_fecha_resp,'%d/%m/%Y') AS respuesta,
c_cod_cite,n_cod_ger,(
SELECT c_nombres FROM ta_remitente WHERE ta_remitente.n_cod_rem = ta_carta.n_cod_rem) AS remitente,n_cod_rem,(SELECT c_desc_empresa FROM ta_empresa WHERE ta_empresa.n_cod_empresa=ta_carta.n_cod_empresa) AS empresa,
(SELECT c_direccion FROM ta_empresa WHERE ta_empresa.n_cod_empresa=ta_carta.n_cod_empresa) AS direccion,(SELECT c_telefonos FROM ta_empresa WHERE ta_empresa.n_cod_empresa=ta_carta.n_cod_empresa) AS telefono,(SELECT (SELECT c_desc_tip_emp FROM ta_tipo_empresa WHERE ta_tipo_empresa.n_cod_tipo_emp=ta_empresa.n_cod_ti po_emp) FROM ta_empresa WHERE ta_empresa.n_cod_empresa = ta_carta.n_cod_empresa)AS tipo,
n_cod_empresa,
c_asunto,
n_tipo_corr1,
n_cantidad1,
n_tipo_corr2,
n_cantidad2,
n_tipo_corr3,
n_cantidad3,
c_desc_corr,
c_aquien_entrego,
c_plazo_cumplido,
DATE_FORMAT(d_fecha_venc ,'%d/%m/%Y') AS vencimiento,
n_ano,
n_periodo,
d_fecha_registro,
n_id,
n_eliminado
from ta_carta where n_nro_cite = '" . $cite . "' AND n_ano = '" . $ano . "' AND n_periodo = '" . $periodo . "' ";
$sql = mysql_query($cSQL);
$Fila = mysql_fetch_array($sql);
//$r =
$rr = $Fila['n_cod_rem'];
$cod_emp_ori = $Fila['n_cod_empresa'];

?>
<form id="form1" name="form1" method="POST" action="actualizar_carta2.php?n=<?php echo $Fila['n_nro_cite']; ?>&a=<?php echo $Fila['n_ano'];?>&p=<?php echo $Fila['n_periodo']; ?>" >

<!-- <table class="art-article" border="0" cellspacing="0" cellpadding="0" align="center">
-->



<table>
<tbody bgcolor="#EBF3F5">
<tr>
<th class="Estilo4"><div >Nro. Cite</div></th>



<td><div ><input name="txNrocite" <?php echo "readonly"; ?> type="text" class="texto" id="txNrocite" value="<?php
echo $Fila['n_nro_cite'];?>" size="<?php echo $cAncho2; ?>" />

<input type="hidden" id="ano" value="<?php echo $Fila['n_ano']; ?>">
<input type="hidden" id="periodo" value="<?php echo $Fila['n_periodo']; ?>">

<input type="hidden" id="codremi" value="<?php echo $rr; ?>">

<input type="hidden" id="cod_ori_emp" value="<?php echo $cod_emp_ori; ?>">


</div></td>

<th class="Estilo4"><div>Plazo</div></th>



<td><div ><input name="txPlazo" <?php //echo "readonly"; ?> type="text" class="texto" id="txPlazo" value="<?php echo $Fila['c_plazo_cumplido']; ?>" size="<?php echo $cAncho7; ?>" /></div></td>



</tr>

<tr>

<th class="Estilo4"><div align="right">Fecha_Ingreso</div></th>
<td><div ><input name="txFechaIngreso" <?php if ($_SESSION['nivel']<=0) echo "readonly"; ?> type="text" class="texto" id="txFechaIngreso" value="<?php echo $Fila['ingreso']; ?>" size="<?php echo $cAncho2; ?>" /></div></td>

<th class="Estilo4"><div align="right">Fecha_Respuesta </div></th>
<td><div align="left"><input id="txFechaRes" <?php if ($_SESSION['nivel']<=0 or $_SESSION['nivel']==2) echo "readonly"; ?> type="text" class="texto" value="<?php echo $Fila['respuesta']; ?>" size="<?php echo $cAncho2; ?>" /></div></td>

</tr>

<tr>


<th class="Estilo4"><div align="right">Fecha_Vencimiento </div></th>
<td><div align="left"><input name="txFechaVen" <?php echo "readonly"; ?> type="text" class="texto" id="txFechaVen" value="<?php echo $Fila['vencimiento']; ?>" size="<?php echo $cAncho2; ?>" /></div></td>


<th class="Estilo4"><div align="right">Cod_Respuesta</div></th>
<td><div align="left"><input name="txCRespuesta" <?php if ($_SESSION['nivel']<=0) echo "readonly"; ?> type="text" class="texto" id="txCRespuesta" value="<?php echo $Fila['c_cod_resp']; ?>" size="<?php echo $cAncho1; ?>" /></div></td>

El problema es lo envio al archivo actulizar_carta2.php, que a continuacion les muestro.
  #2 (permalink)  
Antiguo 28/02/2011, 08:29
 
Fecha de Ingreso: junio-2009
Ubicación: Bolivia
Mensajes: 96
Antigüedad: 14 años, 10 meses
Puntos: 0
Respuesta: Problema con el POST ?

Este es el codigo del archivo:

<?php
require_once('librerias/control_sesion.php');
include ('conn.php');
$nrocite = $_GET['n'];
$ano = $_GET['a'];
$periodo = $_GET['p'];
?>

<?php
//Ahora obtenemos los valores de las diferentes variables

//echo $nrocite;
//echo $_GET['r'];


echo $nrocite = $_GET['n'] . "<br>";
echo $ano = $_GET['a'] . "<br>";
echo $periodo = $_GET['p'] ."<br>" ;

$FechaIngreso = $_POST['txFechaIngreso'];
echo $FechaIngreso;
$FechaRespuesta = $_POST['txFechaRes'];
//$FechaVencimiento = $_POST['txFechaVen'];
$CodResp = $_POST['txCRespuesta'];
$CodCite = $_POST['txCodCite'];
//Codigo de remitente cambiado
$CodRemCam = $_POST['cod_rem'];
//Codigo del remitente original
$CodRemOri = $_POST['codremi'];
//Codigo Original de empresa
$CodEmpOri = $_POST['cod_ori_emp'];
//Codigo de empresa cambiado
$CodEmpCam = $_POST['cod_emp'];



//echo $CodEmpCam;
//Continuamos con el codigo de empresa
//$CodEmp = $_POST['cod_emp'];
//Codigo de Gerencia
$CodGer = $_POST['txGer'];
$Asunto = $_POST['txAsunto'];
//Tipos de correspondencia y cantidades
$CodTip1 = $_POST['txTipo1'];
$Can1 = $_POST['txCan1'];
$CodTip2 = $_POST['txTipo2'];
$Can2 = $_POST['txCan2'];
$CodTip3 = $_POST['txTipo3'];
$Can3 = $_POST['txCan3'];
//A quien se entrego y una descripcion adicional a la correspondencia
$Desc = $_POST['txDesc'];
$Quien = $_POST['txEnt'];
//Nos creamos una bandera para saber si realmente todo esta correcto
//para guardar los datos
$sw = 0;

//Realizamos las comparaciones a cerca de que campos pueden ser nullos
//y les damos los respectivos valores
//Realizando las comparaciones adecuadas
if (!isset($FechaRespuesta) || $FechaRespuesta == "")
$FechaRespuesta="NULL";
//La fecha de vencimiento nunca puede ser nulla
//debido a que se genera en base a la fecha de ingreso
//if((!isset($FechaVencimiento) || $FechaVencimiento == ""))
//$FechaVencimiento = "NULL";

//La fecha de ingreso no puede ser NULLA por lo cual nuestra bandera cambiara a uno
if((!isset($FechaVencimiento) || $FechaVencimiento == ""))
$sw = 1;
//El codigo de respuesta puede ser nullo
if((!isset($CodResp) || $CodResp == ""))
$CodResp = "NULL";
//El codigo de Cite tambien puede ser nullo
if((!isset($CodCite) || $CodCite == ""))
$CodCite = "NULL";

//El codigo de remitente tampoco puede ser nullo
if((!isset($CodRem) || $CodRem == ""))
$sw = 1;
//El codigo de la empresa tampoco puede ser nullo
if((!isset($CodEmp) || $CodEmp == ""))
$sw = 1;
//El codigo de gerencia tampoco puede ser nullo
if((!isset($CodGer) || $CodGer == ""))
$sw = 1;
//El asunto tambien puede ser nullo
if((!isset($Asunto) || $Asunto == ""))
$Asunto="NULL";
//eL TIPO1,2,3 y cantidad 1,2,3 tambien pueden ser nullos
if((!isset($CodTip1) || $CodTip1 == ""))
$CodTip1=0;

if((!isset($Can1) || $Can1 == ""))
$Can1 = 0;

if((!isset($CodTip2) || $CodTip2 == ""))
$CodTip2 = 0;

if((!isset($Can2) || $Can2 == ""))
$Can2 = 0;

if((!isset($CodTip3) || $CodTip3 == ""))
$CodTip3 = 0;

if((!isset($Can3) || $Can3 == ""))
$Can3 = 0;
//Ahora la descripcion adicional y a quien se entrego pueden ser tambien nullos
if((!isset($Desc) || $Desc == ""))
$Desc = "NULL";
if((!isset($Quien) || $Quien == ""))
$Quien = "NULL";
//Revisando los codigos
//de remitente y empresa
if ($CodRemCam=="")
//echo "VACIA";
$CodRem = $CodRemOri;
else
$CodRem =$CodRemCam;
//Comparando para empresa
if ($CodEmpCam=="")
//echo "VACIA";
$CodEmp = $CodEmpOri;
else
$CodEmp =$CodEmpCam;
//Primero verificamos que todos los valores recibidos sean correctos

//echo "Codigo de empresa a tomarse en cuenta:" . $CodEmp ."<br>";
if($FechaRespuesta != "NULL")
//Verificamos si la fecha de respuesta es menor a la fecha de ingreso
//a traves de la funcion CompararFechas
$ban = CompararFechas($FechaIngreso,$FechaRespuesta);
if(sw==1)
{
echo "<span class='Estilo1'>";
echo "Error: Algunos valores requeridos no fueron enviados para su actualizacion";
echo "<br>";
echo"Vuelva a ingresar por favor los datos";
echo '<a href="javascript:history.go(-1)">Volver a la página anterior</a>';
echo "</span>";
}
else
{
//Primero verificamos que no sea la fecha de respuesta no sea nulla

//verificando la bandera
if($ban==0)
{
echo "<center>";
echo "<span class='Estilo1'>";
echo "Error: Usted introdujo una fecha de respuesta mayor a la fecha de ingreso!!!";
echo "<br>";
echo"Vuelva a ingresar por favor los datos <br>";
echo '<a href="javascript:history.go(-1)" class="Estilo1">Volver a la página anterior</a>';
echo "</span>";
echo "</center>";

}
else
{
//Como todo esta correcto aca actualizamos los datos
//Obtenemos la nueva fecha de vencimiento
//Debemos sumarles 10 dias hábiless
$FechaVencimiento = SumarDiasHabiles($FechaIngreso,10);
//Obteniendo el año y el periodo
$datos = explode("/",$FechaIngreso);
$periodo = $datos[1];
$ano = $datos[2];
//Obteniedo el id
$id = $_SESSION['id_usuario'] ;
//Obteniendo la hora y fecha de registro del sistema
$FechaRegistro = date('Y-m-d h:i:s A');
//Volviendo a verificar si la fecha es nula
if($FechaRespuesta == "NULL")
$plazo = "NULL";
else
{
//Comparando la fecha de vencimiento y la fecha de respuesta
$comprobar = CompararFechasIguales($FechaVencimiento,$FechaResp uesta);
if ($comprobar==1)
$plazo = "SI";
else
$plazo = "NO";
//
$FechaRespuesta = ConvertirFormatoIngles($FechaRespuesta);
}
//Convirtiendo al formato USA la fecha de ingreso
$FechaIngreso = ConvertirFormatoIngles($FechaIngreso);



/*

$consulta = "UPDATE ta_carta SET ";
$consulta .= "d_fecha_ing='" . $FechaIngreso . "', ";
//Verificando que cada valor que sea nullo tome el valor respectivo
if ($CodResp=="NULL")
$consulta .= "c_cod_resp = " . $CodResp . ", ";
else
$consulta .= "c_cod_resp='" . $CodResp . "', ";

if($FechaRespuesta=="NULL")
$consulta .= "d_fecha_resp = " . $FechaRespuesta . ", ";
else
$consulta .= "d_fecha_resp='" . $FechaRespuesta . "', ";

if($CodCite=="NULL")
$consulta .= "c_cod_cite = " . $CodCite . ", ";
else
$consulta .= "c_cod_cite='" . $CodCite . "', ";

//Estos tres valores no pueden ser nullos
$consulta .= "n_cod_ger='" . $CodGer . "', ";

$consulta .= "n_cod_rem='" . $CodRem . "', ";
$consulta .= "n_cod_empresa='" . $CodEmp . "', ";
//
if($Asunto=="NULL")
$consulta .= "c_asunto = " . $Asunto . ", ";
else
$consulta .= "c_asunto='" . $Asunto . "', ";
//Para los 3 tipos de correspondencia
//los cuales no pueden ser nulos
$consulta .= "n_tipo_corr1='" . $CodTip1 . "', ";
$consulta .= "n_cantidad1='" . $Can1 . "', ";
$consulta .= "n_tipo_corr2='" . $CodTip2 . "', ";
$consulta .= "n_cantidad2='" . $Can2 . "', ";
$consulta .= "n_tipo_corr3='" . $CodTip3 . "', ";
$consulta .= "n_cantidad3='" . $Can3 . "', ";
//

if($Desc=="NULL")
$consulta .= "c_desc_corr = " . $Desc . ", ";
else
$consulta .= "c_desc_corr='" . $Desc . "', ";

if($Quien=="NULL")
$consulta .= "c_aquien_entrego = " . $Quien . ", ";
else
$consulta .= "c_aquien_entrego='" . $Quien . "', ";

if($plazo=="NULL")
$consulta .= "c_plazo_cumplido = " . $plazo . ", ";
else
$consulta .= "c_plazo_cumplido='" . $plazo . "', ";
//Estos valores no pueden ser nullos
$consulta .= "d_fecha_venc='" . $FechaVencimiento . "', ";
$consulta .= "n_ano='" . $ano . "', ";
$consulta .= "n_periodo='" . $periodo . "', ";
$consulta .= "n_id='" . $id . "', ";
$consulta .= "d_fecha_registro='" . $FechaRegistro . "' ";

$consulta .= "WHERE n_nro_cite = '" . $nrocite . "' AND n_ano = '" . $ano . "' ";
$consulta .= "AND n_periodo = '" . $periodo . "' ";


//Verificando que todo este bien
//y que no haya ningun ERROR en la conexion de la base de datos
//echo $consulta;

$sql = mysql_query($consulta);
echo '<br>';
echo '<center>';
echo '<span class="Estilo1">';

*/

if ($sql > 0)
{
echo "Se actualizó la BD correctamente";
echo "<br>";
}
else
{
echo "No se pudo actualizar la BD, ocurrio un error";
echo '<br>';
}
echo '<a href="javascript:history.go(-1)" class="Estilo1">Volver a la página anterior</a>';

echo '</span>';
echo '</center>';

}

}
?>

El problema es QUE no recibe ninguna de las variables NO LO MUESTRA en FIREFOX 3.6.13, sin embargo EN INTERNET EXPLORER FUNCIONA BIEN, QUE RARO NO?
CONFIGURE EL PHP.INI , PERO NI ASI FUNCIONO. TAMBIEN ME DIJERON QUE PODRIA SER EN VEZ de colocar method="post", cambie a method="POST",
del formulario, y tampoco es eso..??? QUE RARO, QUE PODRIA SER??
tampoco hay etiquetas, con ID repetidas, eso lo revise necesito SU AYUDA
POR FA.
SALUDOS Y MUCHAS GRACIAS POR SU AYUDA.
  #3 (permalink)  
Antiguo 28/02/2011, 11:35
Avatar de mayid
Colaborador
 
Fecha de Ingreso: marzo-2009
Ubicación: BsAs
Mensajes: 4.014
Antigüedad: 15 años, 1 mes
Puntos: 101
Respuesta: Problema con el POST ?

Tu codigo esta un poco verde. En la pagina dos, antes de recibir variables GET o POST tenes que asegurarte de que existan. Por ejemplo:

Código PHP:
Ver original
  1. if (isset($_POST['envios'])
  2. {
  3.  
  4. }

Con POST se estila comprobar si llegó alguna de las variables, y se da por sentado que las otras llegan (a menos que se necesite validar una por una).

Pero bueno, creo que tu fallo está en no declarar un name para tus <input> siendo que POST recibe los campos segun su atributo name.

Cuando lo tengas, podes hacer esto en pagina 2 para comprobar que te llegó la data:
Código PHP:
Ver original
  1. <h2>Variables GET</h2>
  2. <pre>
  3. print_r($_GET);
  4. </pre>
  5. <br/>
  6. <h2>Variables POST</h2>
  7. <pre>
  8. print_r($_POST);
  9. </pre>
  #4 (permalink)  
Antiguo 28/02/2011, 12:30
 
Fecha de Ingreso: junio-2009
Ubicación: Bolivia
Mensajes: 96
Antigüedad: 14 años, 10 meses
Puntos: 0
Respuesta: Problema con el POST ?

Hice la prueba quitando el atributo id o solo con el nombre. Tambien imprimi con eso
de : echo "variables"."<br>";
print_r($_POST);

Pero NO MUESTRA las variables. Me late que es talvez problema de configuracion de firefox. Gracias de todos modos.
Saludos

Etiquetas: post
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:50.