Foros del Web » Programando para Internet » PHP »

problema para pasar variables _POST a PHP 5X

Estas en el tema de problema para pasar variables _POST a PHP 5X en el foro de PHP en Foros del Web. Tengo desarrollada una intranet en PHP y ha esta funcionando muy bien por buen tiempo, sin embargo, al actualizar PHP a la versión 5, me ...
  #1 (permalink)  
Antiguo 08/04/2012, 16:57
 
Fecha de Ingreso: febrero-2005
Mensajes: 7
Antigüedad: 19 años, 2 meses
Puntos: 0
problema para pasar variables _POST a PHP 5X

Tengo desarrollada una intranet en PHP y ha esta funcionando muy bien por buen tiempo, sin embargo, al actualizar PHP a la versión 5, me doy con la sorpresa que el método para pasar las variables desde mis formulario a archivos PHP mediante el URL ya no funcionan. Puede alguien ayudarme y decirme qué debo cambiar?
Ante utilizaba el siguiente código:
<form METHOD="POST" ACTION="intfrintranet_new.php" name="flogin">
<table border="0" cellpadding="0" cellspacing="0">
<tr>
<td align="center">Usuario</td>
<td align="center" valign="top">Contrasena</td>
<td></td>
</tr>
<tr>
<td align="center"><input type="text" name="codf" size="6"> </td>
<td align="center"><input type="password" name="pw" size="6"> </td>
<td valign="top"><input type="submit" value="Entrar" name="login"></td>
</tr>
</table>
</form>

y se generaba el URL http://misitio.com?codf=12345&pw=1234

Todo funcionaba bien, pero ahora ya no...


En mi archivo intfrintranet_new.php tengo:

<html><head></head>
<frameset framespacing="0" border="false" frameborder="0" rows="2,*">
<frame name="encabezado" scrolling="no" noresize target="principal" src="cabecerax.htm">
<frame name="principal" src="<?php echo "$PHP_SELF?buscar=ok&codf=$codf&pw=$pw"; ?>" scrolling="auto">
<noframes>
<body>
<p>Esta página usa marcos, pero su explorador no los admite.</p>
</body>
</noframes>
</frameset>
</html>

Muchas gracias por la ayuda!!!
MAC
  #2 (permalink)  
Antiguo 08/04/2012, 17:02
Avatar de JaimeMSE  
Fecha de Ingreso: diciembre-2010
Ubicación: Isla Cristina (Huelva)
Mensajes: 164
Antigüedad: 13 años, 4 meses
Puntos: 7
Respuesta: problema para pasar variables _POST a PHP 5X

Prueba así:

Código PHP:
Ver original
  1. <form METHOD="GET" ACTION="intfrintranet_new.php" name="flogin">
  2. <table border="0" cellpadding="0" cellspacing="0">
  3. <tr>
  4. <td align="center">Usuario</td>
  5. <td align="center" valign="top">Contrasena</td>
  6. <td></td>
  7. </tr>
  8. <tr>
  9. <td align="center"><input type="text" name="codf" size="6"> </td>
  10. <td align="center"><input type="password" name="pw" size="6"> </td>
  11. <td valign="top"><input type="submit" value="Entrar" name="login"></td>
  12. </tr>
  13. </table>
  14. </form>



intfrintranet_new.php:
Código PHP:
Ver original
  1. <?php
  2. $codf = $_GET["codf"];
  3. $pw = $_GET["pw"];
  4. ?>
  5. <html><head></head>
  6. <frameset framespacing="0" border="false" frameborder="0" rows="2,*">
  7. <frame name="encabezado" scrolling="no" noresize target="principal" src="cabecerax.htm">
  8. <frame name="principal" src="<?php echo $_SERVER['PHP_SELF']. "?buscar=ok&codf=".$codf."&pw=".$pw; ?>" scrolling="auto">
  9. <noframes>
  10. <body>
  11. <p>Esta página usa marcos, pero su explorador no los admite.</p>
  12. </body>
  13. </noframes>
  14. </frameset>
  15. </html>
__________________
@JaimeMSE - ¡Sígueme!
  #3 (permalink)  
Antiguo 08/04/2012, 17:55
 
Fecha de Ingreso: febrero-2005
Mensajes: 7
Antigüedad: 19 años, 2 meses
Puntos: 0
Respuesta: problema para pasar variables _POST a PHP 5X

Estimado JaimeMSE, muchas gracias!
Efectué los cambios recomendados, pero ahora me reenvia a la siguiente dirección:

http://www.santamargarita.edu.pe/intranet/intfrintranet_new2.php?codf=11129&pw=1129&login=En trar

y no carga nada...
Como verás NO aparece buscar=ok y por el contrario aparece: login=Entrar

Es importante que reconozca buscar=ok para que se ejecute el codigo q llama a una base de datos...

Nuevamente, muchas gracias! Espero seguir contando con tu ayuda!

Saludos,
MAC
  #4 (permalink)  
Antiguo 08/04/2012, 21:00
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 14 años
Puntos: 461
Respuesta: problema para pasar variables _POST a PHP 5X

buenas lo primero es que si estas haciendo un login el mostrar el valor de los campos por la url como lo deseas es totalmente inseguro, ahora en ningún lugar del código que colocaste existe el campo buscar=ok, ni en el formulario ni en la url, saludos
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way
  #5 (permalink)  
Antiguo 08/04/2012, 21:08
 
Fecha de Ingreso: febrero-2005
Mensajes: 7
Antigüedad: 19 años, 2 meses
Puntos: 0
Respuesta: problema para pasar variables _POST a PHP 5X

Hola Carlos,
Gracias por el comentario.
Tienes razón y originalmente utilicé el método POST, pero al no funcionarme opté porel GET que sugirió Jaime MSE.
Es cierto q "buscar" no aparece en el formulario, porque solo publique una parte del codigo, pero es una variable necesaria para q cuando se realice el PHP_SELF reconozca buscar=ok y me derive a otra porción del código en la q llama a una base de datos...

Como comentaba al principio, todo funcionaba bien hasta q pase al PHP 5.x y ahora no reconoce las variables q paso por URL.

Agradeceré me sigas apoyando.
Saludos,
MAC
  #6 (permalink)  
Antiguo 08/04/2012, 21:14
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 14 años
Puntos: 461
Respuesta: problema para pasar variables _POST a PHP 5X

muestranos como realizas las cosas, para poder ayudarte mejor, pero pudieras hacer algo como esto
Código HTML:
Ver original
  1. <form name="form1" action="<?php echo $_SERVER['PHP_SELF'];?>" method="post" >
  2.     <input type="text" name="codf" size="6">
  3.     <input type="password" name="pw" size="6">
  4.     <input type="hidden" name="buscar" value="ok">
  5.  
  6. </form>
de manera que cuando recibas por post tengas el campo buscar con el valor ok
Código PHP:
Ver original
  1. <?php
  2. echo "<pre>";
  3. print_r($_POST);
  4. echo "</pre>";
  5. ?>
te repito en los casos de los formularios es mejor usar metodo post de manera que los datos no se vean en la url y mas si es un login, saludos
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way
  #7 (permalink)  
Antiguo 09/04/2012, 05:57
Avatar de JaimeMSE  
Fecha de Ingreso: diciembre-2010
Ubicación: Isla Cristina (Huelva)
Mensajes: 164
Antigüedad: 13 años, 4 meses
Puntos: 7
Respuesta: problema para pasar variables _POST a PHP 5X

Lo he hecho por GET ya que pedías que aparecieran los datos por URL, y como era una intranet, pues no sé.

Lo mejor que hay es usar POST, y si luego quieres convertir la URL del prefil por ejemplo de: http://loquesea.com/usuario.php?id=329 a http://loquesea.com/usuario/jaime entonces tienes que usar .htaccess.
__________________
@JaimeMSE - ¡Sígueme!
  #8 (permalink)  
Antiguo 09/04/2012, 19:15
 
Fecha de Ingreso: febrero-2005
Mensajes: 7
Antigüedad: 19 años, 2 meses
Puntos: 0
Respuesta: problema para pasar variables _POST a PHP 5X

Estimados Carlos y Jaime, nuevamente gracias por la ayuda...
Publico el archivo intfrintranet_new.php completo:

<?
if ($buscar=="ok"){
mysql_connect('localhost','misuario','miclave');
mysql_select_db("mibasededatos");
$sql2 = "SELECT * FROM logsm";
$rs2=mysql_query($sql2);
// $campo=mysql_fetch_array($rs);
$n2 = mysql_num_rows($rs2);
//
$sql = "SELECT * FROM padres WHERE codf='$codf' AND pw='$pw'";
$rs=mysql_query($sql);
$campo=mysql_fetch_array($rs);
$n = mysql_num_rows($rs);
$title="Intranet";
if ($n>=1){
// ************
$ingreso=date("d/m/y H:i a");
$lcodf=$campo["codf"];
$lapellidos=$campo["apellidos"];
$lnombres=$campo["nombres"];
$lcontador=$n2+76752;
$sqlx = "insert into logsm (codf,apellidos,nombres,otros,contador) ".
"values ('$lcodf','$lapellidos','$lnombres','$ingreso','$l contador')";
$cn =mysql_connect('localhost','miusuario','miclave');
mysql_select_db('mibasededatos',$cn);
$ok = mysql_query($sqlx,$cn);
//if ($ok){
// echo "Articulo $codf grabado";
//}else{
// echo "Ocurrio un problema al grabar";
//}
mysql_close($cn);
// ************
include ("inthome.htm");
// header("HTTP/1.0 307 Temporary redirect");
// header("Location:datospadre.php?codf=$codf&pw=$pw" );
}else{
echo "<p>El número de usuario o contraseña ingresados son incorrectos.</p>";
echo "<A HREF='javascript:history.back(1)' target='_parent'>Volver</A>";
}
}else{
?>
<html><head></head>
<frameset framespacing="0" border="false" frameborder="0" rows="2,*">
<frame name="encabezado" scrolling="no" noresize target="principal" src="cabecerax.htm">
<frame name="principal" src="<?php echo "$PHP_SELF?buscar=ok&codf=$codf&pw=$pw"; ?>" scrolling="auto">
<noframes>
<body>
<p>Esta página usa marcos, pero su explorador no los admite.</p>
</body>
</noframes>
</frameset>
</html>
<?
}
?>


Como verán, lo que hace el código es buscar en mibasededatos los datos del usuario (apellidos, etc.) para registrar en la tabla logsm que usuario se logueó, además de la fecha y hora; luego muestra en el frame inferior inthome.htm pero ya personalizada con los datos del usuario logueado.

Como les decía, me funcionó perfectamente hasta que cambié de PHP en mi servidor.

Lo que ahora necesito saber es que cambiar para que siga funcionando igual. Les estaré muy agradecido por la ayuda!

Saludos,
MAC

Etiquetas: formulario, html, post, variables, usuarios
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:45.