Foros del Web » Programando para Internet » PHP »

Paso de Variables en Formulario

Estas en el tema de Paso de Variables en Formulario en el foro de PHP en Foros del Web. Hola a todos, Veamos, tengo el siguiente problema, tengo este formulario de ejemplo en una pagina que se autollama, para procesar unas variables, pero el ...
  #1 (permalink)  
Antiguo 19/02/2003, 12:36
 
Fecha de Ingreso: agosto-2001
Ubicación: Gran Canaria (España)
Mensajes: 430
Antigüedad: 16 años, 4 meses
Puntos: 0
Paso de Variables en Formulario

Hola a todos,

Veamos, tengo el siguiente problema, tengo este formulario de ejemplo en una pagina que se autollama, para procesar unas variables, pero el problema es precisamente ese, las variables no pasan al menos en mi servidor local, he subido la pagina a uno de prueba y funciona correctamente, por lo que deduzco que el problema esta en mi servidor (IIS 5.0). No obstante aqui les dejo el codigo (que creo que esta perfecto lo he sacado de un libro):
Código PHP:
<HTML>
<HEAD>
   <TITLE>Procesamiento de Pedidos</TITLE>
</HEAD>
<BODY>
<?php
  
// Se comprueba que no exista la variable $NombreUsuario
  
if (!isset($NombreUsuario))
    {
?>
<H1 ALIGN="CENTER">Formulario de Recepción de Pedidos</H1>
  <FORM ACTION="index.php" method=post>  <!-- Esta página se procesa a sí misma -->
    Nombre Usuario:
    <INPUT TYPE="text" NAME="NombreUsuario" SIZE="20"><BR>
    Listado de libros disponibles:
    <UL>
          <LI>Libro A - (Precio = 10) - Unidades:
            <INPUT TYPE="text" NAME="UnidadesA" SIZE="2">
             </LI>
          <LI>Libro B - (Precio = 12) - Unidades:
            <INPUT TYPE="text" NAME="UnidadesB" SIZE="2">
             </LI>
        </UL>
    <P ALIGN="CENTER"><INPUT TYPE="submit" VALUE="Enviar"></P>
  </FORM>
<?php 
    
}
  
// La variable $NombreUsuario está asignada -> se procesan los datos
  
else
    {
    
// Primero calculamos los totales
    
$SubtotalA $UnidadesA 10;
    
$SubtotalB $UnidadesB 12;
    
$TotalPedido $SubtotalA $SubtotalB;

    
// Ahora mostramos los resultados
    
echo '<H1 ALIGN="CENTER">Importe del Pedido</H1>';
    echo 
"Nombre = <B> $NombreUsuario </B>\n <PRE>\n";  
    echo 
"Libro A: <B> $UnidadesA </B> uds. a 10 = <B> $SubtotalA </B> \n";
    echo 
"Libro B: <B> $UnidadesB </B> uds. a 12 = <B> $SubtotalB </B> \n";
    echo 
"------------------------- \n ";
    echo 
"<B> TOTALES </B>           <B> $TotalPedido </B> </PRE> \n";    
    }
?>
</BODY>
</HTML>
Bueno ahi se los dejo a ver si me pueden echar una manilla...

Ah! por cierto, lo unico que hace la pagina en mi servidor cuando le das al boton enviar es refrescarse, es decir nada...

Un saludo

Última edición por daniph; 19/02/2003 a las 13:18
  #2 (permalink)  
Antiguo 19/02/2003, 12:54
V_G
Invitado
 
Mensajes: n/a
Puntos:
Yo tengo ese mismo script y me funciona, ¿tienes php instalado?

Por cierto, tu no has creado ese script, pq el mismo viene en "Creación de Sitios Web con PHP 4" de la editorial Mc Graw Hill
  #3 (permalink)  
Antiguo 19/02/2003, 13:02
 
Fecha de Ingreso: agosto-2001
Ubicación: Gran Canaria (España)
Mensajes: 430
Antigüedad: 16 años, 4 meses
Puntos: 0
Perdon, efectivamente yo no lo he creado, pero si cree uno anterior y tenia ese mismo problema, y por supuesto que tengo php instalado...
  #4 (permalink)  
Antiguo 19/02/2003, 14:55
Avatar de Jano.cl  
Fecha de Ingreso: diciembre-2001
Ubicación: Chile
Mensajes: 258
Antigüedad: 16 años
Puntos: 0
La respuesta está en el FAQ

http://www.forosdelweb.com/showthrea...989#post238989
  #5 (permalink)  
Antiguo 19/02/2003, 19:32
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Viejo el libro ese si no menciona los arrays superglobales $_POST .. $_GET .. o tan siquiera $HTTP_POST_VARS .. $HTTP_GET_VARS ...

Por otro lado .. busca en tu libro si hablan de Here doc .. Ese monton de echo para lo q hace con here doc se podría resumir.

Por si no lo menciona lo de here doc .. siempre tienes el manual oficial de PHP:

http://us.php.net/manual/en/language.types.string.php
http://www.php.net/manual/en/function.echo.php

Un saludo,
  #6 (permalink)  
Antiguo 20/02/2003, 16:42
 
Fecha de Ingreso: agosto-2001
Ubicación: Gran Canaria (España)
Mensajes: 430
Antigüedad: 16 años, 4 meses
Puntos: 0
Muchas gracias a todos, sale perfecto, lo que ahora tengo el siguiente problema y es a la hora de pasar las variables por url, me da un mensaje como este:
CGI Error
The specified CGI application misbehaved by not returning a complete set of HTTP headers. The headers it did return are:

Que significa??
  #7 (permalink)  
Antiguo 21/02/2003, 11:36
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Cita:
The headers it did return are: ???????????????
Podrias especificar q cabeceras da error? .. (en esos ??? algo te dirá .. ponlo en el foro)

En principio esos errores sulen ser por no especificar correctamente el nombre del archivo al que apunta tu formulario en el action= ... En este caso es así mismo.

Revisalo y revisa el method= de tu formulario tambien .. no es lo mismo post q pos ... (un error comun al escribir ..) y usa comillas en el method="POST" ...

Tambien podrías poner el código completo q estas usando con las modificaciones que le has hecho si tomases en cuenta el tema de los arrays superglobales...


Un saludo,
  #8 (permalink)  
Antiguo 22/02/2003, 07:35
 
Fecha de Ingreso: agosto-2001
Ubicación: Gran Canaria (España)
Mensajes: 430
Antigüedad: 16 años, 4 meses
Puntos: 0
Hola

El mensaje de error que da, es exactamente el que puse arriba. Despues de los dos puntos no hay nada.

Última edición por daniph; 22/02/2003 a las 09:47
  #9 (permalink)  
Antiguo 22/02/2003, 09:54
 
Fecha de Ingreso: agosto-2001
Ubicación: Gran Canaria (España)
Mensajes: 430
Antigüedad: 16 años, 4 meses
Puntos: 0
Bueno el codigo es el siguiente,

1. Una funcion en javascript
Código PHP:
<script>
function 
abrepagina(id){ 
window.open('pagina.php?id=+id','pagina','toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=0,resizable=0,width=470,height=280');
}
</script> 
2. Un bucle que va recogiendo todos los id de los resultados.
Código PHP:
 while ($Objeto_Fila mysql_fetch_object($resultado) and $counter<=70
     {
     echo 
"<a href=\"javascript:abrepagina($Objeto_Fila->Id)\" class=\"foot\" onmouseover=\"window.status='$Objeto_Fila->Producto $Objeto_Fila->Version'; return true\" onmouseout=\"window.status=''; return true\">";     
     echo 
$Objeto_Fila->Producto." ";
     echo 
$Objeto_Fila->Version." ";
     echo 
"</a>";
     echo 
"<BR>\n";       
     
$counter++;     
     } 
Todo esto funciona perfectamente, pero claro cuando haga click en uno de los enlaces que muestra el bucle, me sale el mensaje de error que mostre en el anterior post.

Un saludo
  #10 (permalink)  
Antiguo 22/02/2003, 10:09
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Estas seguro que se genera correctamente el link?

creo q es error de estos foros pero por si acaso .. el pagina.php?id=+id ha de ir junto el ?conlasvariables ...

'pagina.php? id=+id'

Revisa bien la sintax javascript para concatenar variables .. creo q usarlas comillas como la usas podria darte problemas.

window.open('pagina.php?id='+id,'pagina', ...etc ...)

En tal caso confirmalo en el foro javascript.

Otro detalla .. Las variables que pasas por el URL entran por GET a donde lo envies .. (por si usas los arrays superglobales $_GET['id'] sería en tu caso)

Un saludo,

Última edición por Cluster; 22/02/2003 a las 10:14
  #11 (permalink)  
Antiguo 22/02/2003, 10:21
 
Fecha de Ingreso: agosto-2001
Ubicación: Gran Canaria (España)
Mensajes: 430
Antigüedad: 16 años, 4 meses
Puntos: 0
Si es un error de los foros, la asignacion esta bien (sin espacios) y el enlace se crea correctamente, no se... ¿es posible que el error este en la pagina que recoge la variable??

Es esta:
Código PHP:
<?php
//Establecimiento de la conexión   
 
$conex mysql_connect("localhost","root","") or die("NO se pudo realizar la conexión");
// Selección de la base de datos
  
mysql_select_db("datos");
//Preparación y ehjecución de la consulta  
  
$cons "Select * from tabla WHERE Id=$id";
  
$resultado mysql_query($cons,$conex);  
while (
$Objeto_Fila mysql_fetch_object($resultado))  { 
echo 
"<center>";
echo 
"<table border=0 cellpadding=0 cellspacing=0  width=100% bgcolor=#E2E2E2>";
echo 
"<tr><td width=100% align=center height=25 style='border-top: 1px solid #FF9933; border-bottom: 1px solid #FF9933; padding: 0' bgcolor=#C0C0C0><b>$Objeto_Fila->Producto $Objeto_Fila->Version</b></td></tr>";
echo 
"<tr><td width=100% align=center>";       
echo 
"<textarea rows=4 name=S1 cols=47>$Objeto_Fila->Series</textarea></p></td></tr>";
echo 
"</table>";
echo 
"</center>";
}
?>

Última edición por daniph; 22/02/2003 a las 10:30
  #12 (permalink)  
Antiguo 22/02/2003, 10:37
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
¿Seguro q esto va correctamente?
window.open('pagina.php?id=+id','pagina', ...etc ...)

Yo lo probé y no funciona corectamente osea .. me da como id=id y no su valor .. Debería ser:
window.open('pagina.php?id='+id,'pagina', ...etc ...)

Fijate en el detalle:
'pagina.php?id='+id
(esto es javascritp no PHP .. )

Y sobre donde recoges la variable .. ¿Cambiastes register_globals a ON? .. o trabajas a OFF?

Porque si trabajas a OFF deberias USAR el array superglobal $_GET .. $_POST .. segun corresponda.

Un saludo,
  #13 (permalink)  
Antiguo 22/02/2003, 10:42
 
Fecha de Ingreso: agosto-2001
Ubicación: Gran Canaria (España)
Mensajes: 430
Antigüedad: 16 años, 4 meses
Puntos: 0
Efectivamente esta como
'pagina.php?id='+id

Perdona debi de corregirlo despues de postearlo.
Esa parte esta OK

register_globals esta en ON, por lo que esto tambien esta OK


No se ??
  #14 (permalink)  
Antiguo 23/02/2003, 06:29
 
Fecha de Ingreso: agosto-2001
Ubicación: Gran Canaria (España)
Mensajes: 430
Antigüedad: 16 años, 4 meses
Puntos: 0
Alguna solucion please !!!
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:51.