Foros del Web » Programando para Internet » PHP »

Paso de datos entre PHPs

Estas en el tema de Paso de datos entre PHPs en el foro de PHP en Foros del Web. Hola chicos, vereis quiero que un php contenido en un iframe coja un dato de la pagina donde está alojado el iframe. Pues bien he ...
  #1 (permalink)  
Antiguo 10/03/2009, 05:28
 
Fecha de Ingreso: agosto-2008
Mensajes: 112
Antigüedad: 15 años, 8 meses
Puntos: 0
Paso de datos entre PHPs

Hola chicos, vereis quiero que un php contenido en un iframe coja un dato de la pagina donde está alojado el iframe. Pues bien he conseguido pasar ese dato al php(que es un formulario) contenido en el iframe pero quiero pasarle ese dato a otro php, que insertará los datos del formulario y ese dato de la pag principal en una base de datos.
Había probado a poner en el ACTION='votacion.php?uid='Dato'' pero no ha funcionado porque cuando hago $GET['uid'] no lo coge, puse ese input hidden para meterlo por ahí pero no coge el valor de la variable "uid"
Os dejo el código, gracias!
Código PHP:
$dbname="votacion";
   
$tablename="primera";

   
$query="SELECT * FROM $tablename WHERE id=$iden;";
   
$result mysql_query($query$link) or die ("MySQL error: " mysql_error());

   
/*$result=mysql_db_query ($dbname, $query, $link);*/
   
$num mysql_num_rows($result);
   if(
$num==0){
   echo 
"Ok no has votado";
   echo
" <FORM METHOD='get' ACTION='votacion.php'>

<input type='hidden' name='uid' value=$uid>

<p>¿De qué color es el caballo blanco de Santiago?</p>



<blockquote>

<p><input type='radio' value='1' name='resp'>Blanco</p>

<p><input type='radio' name='resp' value='2'>Negro</p>

<p><input type='radio' name='resp' value='3'>No entiendo</p>

</blockquote>

<INPUT TYPE='submit' VALUE='Enviar'>"


Última edición por subharb; 10/03/2009 a las 05:42 Razón: La suscripcion
  #2 (permalink)  
Antiguo 10/03/2009, 06:51
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: Paso de datos entre PHPs

¿De dónde obtienes el valor de la variable $uid? Ya que con el campo hidden debería funcionar (aunque debe ir entre comillas para que funcione correctamente, eso debes modificar en tu código)
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #3 (permalink)  
Antiguo 10/03/2009, 06:55
 
Fecha de Ingreso: febrero-2009
Ubicación: Cusco - Peru
Mensajes: 142
Antigüedad: 15 años, 2 meses
Puntos: 0
Respuesta: Paso de datos entre PHPs

usa sessiones, puedes poner tu DATO a una $_SESSION['iud'] de la siguiente forma:

Código PHP:
$_SESSION['iud']=$uid
y para recuperarla:

Código PHP:
$uid=$_SESSION['iud']; 
Con esto puedes tener esa variable en donde y cuando desees utilizarla.
  #4 (permalink)  
Antiguo 10/03/2009, 08:14
 
Fecha de Ingreso: agosto-2008
Mensajes: 112
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: Paso de datos entre PHPs

Hola Kerverin,

He puesto
Código PHP:
$iden=$_GET['uid'];
session_start();
$_SESSION['uid']=$iden
Para guardar ese dato en el vector Session, y me da este error.¿Qué tengo que hacer?

Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at /usr/home/esoesespana.com/web/votaciones/form-votacion.php:7) in /usr/home/esoesespana.com/web/votaciones/form-votacion.php on line 17

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /usr/home/esoesespana.com/web/votaciones/form-votacion.php:7) in /usr/home/esoesespana.com/web/votaciones/form-votacion.php on line 17
  #5 (permalink)  
Antiguo 10/03/2009, 08:19
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: Paso de datos entre PHPs

No tiene mucho sentido utilizar sesiones si los valores los vas a usar en la misma página.

P.S.: El error es porque ya enviaste una salida HTML antes de llamar a session_start
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #6 (permalink)  
Antiguo 10/03/2009, 08:34
 
Fecha de Ingreso: agosto-2008
Mensajes: 112
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: Paso de datos entre PHPs

Lo que estoy haciendo es coger ese valor de un GET pero luego se lo quiero pasar junto con el FORM al php que manejará todos los datos.

Qué tengo que eliminar para que funcione ¿El HTML anterior al script de PHP?

Gracias
  #7 (permalink)  
Antiguo 10/03/2009, 08:38
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: Paso de datos entre PHPs

Como te dije, si usas el campo hidden correctamente, debería funcionar. Coloca el HTML resultante (Navegador > Ver Código Fuente) para que podamos ver dónde está el campo hidden y por qué no se envía junto al formulario.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #8 (permalink)  
Antiguo 10/03/2009, 08:44
 
Fecha de Ingreso: septiembre-2008
Mensajes: 91
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: Paso de datos entre PHPs

Una vez que envias el formulario, a la variable uid que tenes como campo hidden la usas como $_POST['uid']. O si no, para no usar campo hidden tambien podes hacer lo que te dijeron, usar variables de sesion, pero el error esta cuando pones "session_start()", lo piçrimero que tenes que poner en el script php es session-.start() antes de mandar cualquier cosa al navegador, nio siquiera renglones en blanco al principio ni al final.

Última edición por papucho666; 10/03/2009 a las 08:44 Razón: me equivoque
  #9 (permalink)  
Antiguo 10/03/2009, 09:00
 
Fecha de Ingreso: agosto-2008
Mensajes: 112
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: Paso de datos entre PHPs

David, el problema del hidden es como asignarle un valor que obtengo de un GET, cuando le pongo un valor numerico funciona, pero cuando pongo value=$iden, con comillas y sin comillas no obtengo un valor.

Papucho, este es el código que tengo ahora, no hay nada por encima del session_start pero tengo el mismo error
Código PHP:
 <?
session_start
();
?>


<?php
$iden
=$_GET['uid'];

$_SESSION['uid']=$iden;

echo 
"Eres "$_SESSION['uid'] . "<BR>";
Muchas gracias a todos !
  #10 (permalink)  
Antiguo 10/03/2009, 09:02
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: Paso de datos entre PHPs

¿Puedes poner el código con que imprimes el campo hidden?

Con las comillas usadas correctamente debe funcionar.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #11 (permalink)  
Antiguo 10/03/2009, 09:06
 
Fecha de Ingreso: septiembre-2008
Mensajes: 91
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: Paso de datos entre PHPs

Ni siquiera un espacio en blanco debe haber, ahi tenes un espacio,al principio no mas, es re quisquilloso el session_start(). Asegurate de no estar mandando html desde ningun script, ni head ni body, nada nada.

en php

echo "<input type="hidden" name="nombre_hidden" value=\"".$_GET['uid']."\" >";

en html
<input type="hidden" name="nombre_hidden" value="<?=$_GET['uid']?>" >
  #12 (permalink)  
Antiguo 11/03/2009, 04:00
 
Fecha de Ingreso: agosto-2008
Mensajes: 112
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: Paso de datos entre PHPs

Muchas gracias por vuestras respuestas, pero he hecho lo que me dijisteis pero no consigo coger el valor de uid en votacion.php, he cambiado un poco lo que me puso papucho porque las comillas dobles cierran el echo, que tengo que cambiar sino, también he probado a poner todas las comillas simples y me da error.
Código PHP:
echo" <FORM METHOD='get' ACTION='votacion.php'>

<input type='hidden' name='uid' value=\""
.$_GET['uid']."\" >

<p>¿De qué color es el caballo blanco de Santiago?</p>



<blockquote>

<p><input type='radio' value='1' name='resp'>Blanco</p>

<p><input type='radio' name='resp' value='2'>Negro</p>

<p><input type='radio' name='resp' value='3'>No entiendo</p>

</blockquote> 
<INPUT TYPE='submit' VALUE='Enviar'>";
  #13 (permalink)  
Antiguo 11/03/2009, 10:57
 
Fecha de Ingreso: septiembre-2008
Mensajes: 91
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: Paso de datos entre PHPs

Tenes que cerrar las etiquetas php y abrirlas despues de termiandoi el formulario en html, tipo plantilla, si no te volves loco.

hasta aca viene tu php.

Código PHP:
<?php
//declaraciones
//cerras php momentaneamente
?>
[HTML]
<!--codigo html puro-->

<FORM METHOD="get" ACTION="votacion.php">

<input type="hidden" name="uid" value="<?=$_GET['uid']?>" >

<p>¿De qué color es el caballo blanco de Santiago?</p>



<blockquote>

<p><input type="radio" value="1" name="resp">Blanco</p>

<p><input type="radio" name="resp" value="2">Negro</p>

<p><input type="radio" name="resp" value="3">No entiendo</p>

</blockquote> 
<!--termian html-->
[/HTML]
<?php
//aca continuaria tu codigo php
Denbtro de este html, abris php solo para pasarle el valor de tu variable.
  #14 (permalink)  
Antiguo 11/03/2009, 13:01
 
Fecha de Ingreso: agosto-2008
Mensajes: 112
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: Paso de datos entre PHPs

El problema es que quería mostrar ese html dependiendo de una variable, por eso si se cumple una condición mostrará ese html, si no se cumple mostrará otra cosa.
Entonces necesitaría mostrar el form en el echo, ya que tiene el html se generará dependiendo de una condición que está en el script php
  #15 (permalink)  
Antiguo 11/03/2009, 13:53
 
Fecha de Ingreso: septiembre-2008
Mensajes: 91
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: Paso de datos entre PHPs

Código PHP:
<?php
if(condicion)
{
?>
formulario html
<?php
}
else
{
?>
mas html o php. Si es php no lo cierres despues del else 
<?php
}
?>
  #16 (permalink)  
Antiguo 12/03/2009, 04:27
 
Fecha de Ingreso: agosto-2008
Mensajes: 112
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: Paso de datos entre PHPs

Papucho, muchisismas gracias, no conocía ese uso del php!
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 08:01.