Foros del Web » Programando para Internet » PHP »

Enviar variables body onLoad y redireccionar header("Location:")

Estas en el tema de Enviar variables body onLoad y redireccionar header("Location:") en el foro de PHP en Foros del Web. Saludos aun no logro encontrar la solucion a mi problema. quiero enviar variables a una web y al mismo tiempo redirecionarme a otra web diferente ...
  #1 (permalink)  
Antiguo 22/02/2012, 09:22
 
Fecha de Ingreso: octubre-2006
Mensajes: 128
Antigüedad: 18 años
Puntos: 0
Exclamación Enviar variables body onLoad y redireccionar header("Location:")

Saludos aun no logro encontrar la solucion a mi problema.
quiero enviar variables a una web y al mismo tiempo redirecionarme a otra web diferente con php ejemplo,
desde mi pagina (web1) al enviar quiero enviar variables a otra pagina
(web2)
Cita:
echo '<body onLoad="form1.submit()"><form name="form1" method="post" action="http://www.web2.com"><input type="hidden" value="valor" name="campo"></form>';
al mismo tiempo quiero redireccionar a otra pagina
(web3)
Cita:
header("Location:http://www.web3.com");
de esta forma se envian las variables a (web2) pero se redirecciona tambien a la misma pagina (web2)
que otra linea puedo agregar para hacer lo que les explique y si tienen un ejemplo me lo podrian enviar.
  #2 (permalink)  
Antiguo 22/02/2012, 09:23
 
Fecha de Ingreso: octubre-2006
Mensajes: 128
Antigüedad: 18 años
Puntos: 0
Respuesta: Enviar variables body onLoad y redireccionar header("Location:")

y todo esto a travez del metodo _POST
  #3 (permalink)  
Antiguo 22/02/2012, 09:40
 
Fecha de Ingreso: enero-2012
Ubicación: En una casa
Mensajes: 72
Antigüedad: 12 años, 10 meses
Puntos: 2
Respuesta: Enviar variables body onLoad y redireccionar header("Location:")

Todo eso lo puedes hacer mediante el parent, del parent del parent donde parent sería web1, window.parent. window.parent + la variable= contenido en web2 etc. :D

Código PHP:
Ver original
  1. parent.location.href='http://www.web3.com'
__________________
Aprendo, Aprendo Aprendo :D A la filosofía de Golden Boy ^^,
Desarrollo Web en Colombia
  #4 (permalink)  
Antiguo 22/02/2012, 09:55
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 5 meses
Puntos: 2135
Respuesta: Enviar variables body onLoad y redireccionar header("Location:")

No puedes hacer lo que quieres, solamente puedes hacer una redirección, si lo que quieres es ver el resultado de tu otro POST, tienes que usar cURL, para hacer la petición por POST, obtener el resultado y al final hacer la redirección que quieres, ya que no puedes hacer dos redirecciones.

Saludos.
  #5 (permalink)  
Antiguo 22/02/2012, 10:48
 
Fecha de Ingreso: octubre-2006
Mensajes: 128
Antigüedad: 18 años
Puntos: 0
Respuesta: Enviar variables body onLoad y redireccionar header("Location:")

he intentado con curl pero no me funciona o no me envia, podrias darme un ejemplo de como se haria
te envio uno de los tantos codigos con los que he probado
Cita:
function use_curl($href, $post=null){
$handle=curl_init();
curl_setopt($handle, CURLOPT_URL, $href);
if($post){
if($post){
curl_setopt($handle, CURLOPT_POST, 1);
curl_setopt($handle, CURLOPT_POSTFIELDS, $post);
}
curl_setopt($handle, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($handle, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($handle, CURLOPT_TIMEOUT, 90);
}
$result=curl_exec($handle);
curl_close($handle);
return $result;
}

$campo="valor";
if(use_curl)("http://www.web2.com", $campo);
  #6 (permalink)  
Antiguo 22/02/2012, 10:52
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 5 meses
Puntos: 2135
Respuesta: Enviar variables body onLoad y redireccionar header("Location:")

Aquí hay un aporte con muchos, muchos ejemplos: http://www.forosdelweb.com/f18/aport...equest-724214/

Saludos.
  #7 (permalink)  
Antiguo 22/02/2012, 10:54
 
Fecha de Ingreso: enero-2012
Ubicación: En una casa
Mensajes: 72
Antigüedad: 12 años, 10 meses
Puntos: 2
Respuesta: Enviar variables body onLoad y redireccionar header("Location:")

Yo también quedé O_O, yo he hecho esto en un ejemplo de sistema de logeo:
Código HTML:
Ver original
  1. <iframe src="ingreso.php" style="display: none;" width="1242" height="80" id="ingres" name="ingres">ingreso</iframe>
  2.  
  3. <div id="ingre" class="ingre_1" align="center">
  4. <form id="ingre_usu" method="post" action="ingreso.php" target="ingres">
  5. <tr><td><label>E-mail: </td><td><input type="text" class="objcts" id="ing_ml" name="ing_ml" maxlength="30" /></label></td></tr>
  6. <tr><td><label>Contrase&ntilde;a: </td><td><input type="password" class="objcts" id="ing_contra" name="ing_contra" maxlength="20" /></label></td></tr><br />
  7. <br /><table align="center">
  8. <tr><td><input type="submit" id="ini_sesion" name="ini_sesion" value="Ingresar" class="objcts" /></td><td align="center"><input type="reset" name="rest" id="rest" class="objcts" value="Cancelar" /></td></tr>
  9. </form>
  10. </div>

Paso el POST a otro lugar así:

Código PHP:
Ver original
  1. $mailU = quitar($_POST["ing_ml"]);
  2. $passU = quitar($_POST["ing_contra"]);
  3. $result = mysql_query("SELECT password FROM ingresos_usu WHERE email='".$mailU."' AND password ='".$passU."'");
  4. if (mysql_num_rows($result) == 1){
  5. $resulto= mysql_query("SELECT nick FROM ingresos_usu");
  6. while ($row = mysql_fetch_row($resulto)){
  7. $_SESSION['usuario'] = $row[0];
  8. $bi = "Bienvenido: ".$row[0];
  9. echo "<script>
  10. parent.location.href='index.php';
  11. window.parent.window.document.getElementById('usu').innerHTML = \"$bi\";
  12. </script>";}

y acá lo recibe:

Código HTML:
Ver original
  1. <div id='usuar' name='usuar' class='usuar' onmouseover='on()' onmouseout='out()'><?echo "Bienvenido ".$_SESSION['usuario'];?></div><br /><br />
__________________
Aprendo, Aprendo Aprendo :D A la filosofía de Golden Boy ^^,
Desarrollo Web en Colombia
  #8 (permalink)  
Antiguo 22/02/2012, 11:06
 
Fecha de Ingreso: octubre-2006
Mensajes: 128
Antigüedad: 18 años
Puntos: 0
Respuesta: Enviar variables body onLoad y redireccionar header("Location:")

he probado con file_get_contents
Cita:
$url = 'http://www.example.com/submit.php';
$body = 'FDW=programacion&PHP=f18';
$options = array('method' => 'POST', 'content' => $body);
$context = stream_context_create(array('http' => $options));
$page = file_get_contents($url, false, $context);
echo $page;
el problema es que sirve solo si se imprime en la pagina que envia (web1) la pagina que recibe las variables www.example.com/submit.php o (web2) y no lo reenvia. y si le elimino el
Cita:
echo $page;[/
no funciona.

pato_cuack una pregunta el parent.location.href= lo soporta todos los navegadores?
  #9 (permalink)  
Antiguo 22/02/2012, 11:10
 
Fecha de Ingreso: enero-2012
Ubicación: En una casa
Mensajes: 72
Antigüedad: 12 años, 10 meses
Puntos: 2
Respuesta: Enviar variables body onLoad y redireccionar header("Location:")

xD buena pregunta por que no sé xD ^^, algo que voy a investigar :D
__________________
Aprendo, Aprendo Aprendo :D A la filosofía de Golden Boy ^^,
Desarrollo Web en Colombia
  #10 (permalink)  
Antiguo 23/02/2012, 09:25
 
Fecha de Ingreso: octubre-2006
Mensajes: 128
Antigüedad: 18 años
Puntos: 0
Respuesta: Enviar variables body onLoad y redireccionar header("Location:")

ya logré enviar variables a una web y redireccionar a otra web diferente,
Cita:
$url = "http://www.web2.com";
$query=array();
array_push($query, 'variable='.urlencode($_POST['valor']));
array_push($query, 'variable2='.urlencode($_POST['valor2']));
array_push($query, 'variable3='.urlencode($_POST['valor3']));
$query=implode('&', $query);
$options = array('method' => 'POST', 'content' => $query);
$context = stream_context_create(array('http' => $options));
$page = file_get_contents($url, false, $context);
header("Location:http://www.web3.com");
no debe haber espacion entre el curl y el header("Location: para que al terminar de enviar las variables me redirecione de una vez

Etiquetas: body, onload, redireccionar, variables
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 09:58.