Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Hildds

Envio de dados POST com redirecionamento

Recommended Posts

Olá, pessoal estou com uma duvida, estou querendo enviar dados via POST utilizando cURL para uma página, mas quero que eu seja redirecionado junto ao envio de dados...

Só que não quero fazer isso através de formulários pois preciso que esses dados sejam passados de forma segura e escondida do cliente.

 

Obrigado a todos pela atenção.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você quer redirecionar a página junto com os dados do formulário POST?

Usa isso:

header("Location: pagina.php", TRUE, 307);

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você quer redirecionar a página junto com os dados do formulário POST?

Usa isso:

header("Location: pagina.php", TRUE, 307);

@Jefrey

Tentei aqui e não consegui, segue o código:

<?php
	echo "INICIANDO...<br>";

	$url = "http://127.0.0.1/Testes/cURL/recebe.php";

	$cURL = curl_init();
	curl_setopt($cURL, CURLOPT_URL, $url);
	curl_setopt($cURL, CURLOPT_AUTOREFERER, true);
	curl_setopt($cURL, CURLOPT_FOLLOWLOCATION, true);
	curl_setopt($cURL, CURLOPT_POST, true);
	curl_setopt($cURL, CURLOPT_TIMEOUT, 20);
	curl_setopt($cURL, CURLOPT_SSL_VERIFYPEER, false);
	curl_setopt($cURL, CURLOPT_HEADER, false);

	$dados = array(
		"mensagem" => "<h3>enviou e redirecionou</h3>"
	);

	curl_setopt($cURL, CURLOPT_POSTFIELDS, $dados);
   	curl_exec($cURL);
    curl_close($cURL);
	header("Location: ".$url, TRUE, 307);

?>

Mensagem:

Notice: Undefined index: mensagem in C:\Program Files (x86)\Wamp\www\Testes\cURL\recebe.php on line 3

recebe.php:

<?php

echo $_POST["mensagem"];

?>

 

Obrigado e abraços.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Para usar o método lá do header() não precisa de curl.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Para usar o método lá do header() não precisa de curl.

O problema é que preciso que os dados sejam enviados com o cURL e junto ao envio seja redirecionado, quero saber se isso é possível.

Compartilhar este post


Link para o post
Compartilhar em outros sites
Só que não quero fazer isso através de formulários pois preciso que esses dados sejam passados de forma segura e escondida do cliente.

O método do header() é oculto.

preciso que os dados sejam enviados com o cURL

Você quer ou deve utilizar cURL?

junto ao envio seja redirecionado

Mas é isso que o método do header() faz.

 

Acho que não entendi direito a pergunta. Explica com uma mini-história, ou algo assim.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Testei o código que você postou e funcionou perfeitamente.

 

No caso usei ele em curl.php para efetuar a conexão, recebe.php para executar algo "nos bastidores" e pagina.php para ser redirecionada.

 

Seu problema é que você fez confusão sobre onde redirecionar. Nesse caso, você deveria redirecionar em recebe.php e não em curl.php, afinal, CURLOPT_FOLLOWLOCATION serve para seguir um redirecionamento na página alvo da conexão.

 

Para ter certeza de que tudo estava correndo nos conformes, gravei a mensagem enviada via POST numa sessão para ser recuperada mais tarde, em pagina.php:

 

curl.php

error_reporting( E_ALL | E_STRICT );

$strCookie = 'PHPSESSID=' . $_COOKIE['PHPSESSID'] . '; path=/';

session_write_close();

$url = "http://localhost/recebe.php";

$cURL = curl_init();

curl_setopt( $cURL, CURLOPT_URL, $url );
curl_setopt( $cURL, CURLOPT_AUTOREFERER, true );
curl_setopt( $cURL, CURLOPT_COOKIE, $strCookie );
curl_setopt( $cURL, CURLOPT_FOLLOWLOCATION, true );
curl_setopt( $cURL, CURLOPT_POST, true );
curl_setopt( $cURL, CURLOPT_TIMEOUT, 20 );
curl_setopt( $cURL, CURLOPT_SSL_VERIFYPEER, false );
curl_setopt( $cURL, CURLOPT_HEADER, false );
curl_setopt( $cURL, CURLOPT_POSTFIELDS,
            array( "mensagem" => "<h3>enviou e redirecionou</h3>" ) );

curl_exec( $cURL );

curl_close( $cURL );

recebe.php

<?php

session_start();

$_SESSION['mensagem'] = $_POST["mensagem"];

header("Location: pagina.php", TRUE);

pagina.php

<?php

session_start();

var_dump( $_SESSION );

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.