Ir para conteúdo

POWERED BY:

Arquivado

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

PAJE SANTOS

[Resolvido] Pegar todos os valores via POST e transformar em arra

Recommended Posts

Tentei procurar e nada achei...

Tô fazendo uma class pra um cliente... ela envia emails, tanto da página contato, quanto de qualquer outra parte do site

 

Tenho que automatizar isso...

Gostaria de pegar todos os valores enviados via POST, transformalos em array, contar as array e retonar todos os resultados. mais o menos assim:

 

<?php
//Function send mail

//Dados de configuração do administrador
include("config.php");

//Dados de envio recebidos via post
$Dados = $_POST;

//Conta e gera arrays da variavel $Dados
$num = count($Dados);
$i = 0;
while ($i <= $num){
$val = $i++;
//Retornas as variaves com seus respectivos valores
$Campo[$val] = $Dados[$val];
?>

Grato desde já

Compartilhar este post


Link para o post
Compartilhar em outros sites

Quando voce envia dados por um formulario via POST, os dados já vão num "array".

 

Eles ficam na variavel global $_POST.

 

Quando voce quer pegar um item desse array, tu nao usa essa variavel junto com o indice que quer?

Tipo, $_POST['nome']?

 

Então.

 

O $_POST ja contem todos os dados vindos de um formulario e etc.

Ele ja esta num array.

 

Faça um teste.

 

Envie dados por um formulario e na pagina PHP de um print_r($_POST)

 

;_)

Compartilhar este post


Link para o post
Compartilhar em outros sites

usei foreach

 

arquivo config.php

<?php
$Destino = "email@host.com";
$Assunto = $_POST['Assunto'];
$Subject = "Contato $Assunto - Site";
?>

arquivo send_mail.php

<?php
//Function send mail

//Dados de configuração do administrador
include("config.php");

//Dados de envio recebidos via post
if ($_POST){
//Conta e gera arrays da variavel $Dados
$Dados = array();
foreach ($_POST as $key => $value) {
$Dados[] = "<div>$key: $value</div>";
}
$Dados = join("", $Dados);
$enviar = true;
}else{
echo "Nao há dados recebidos para enviar";
$enviar = false;
}
//Compacta todos os dados em uma unica string
$Dados = $Dados;
$Dados = $Dados;
echo $Dados;

//Url de resposta de sucesso passado via GET pelo formulário ex.: www.site.com.br/funcao/send_mail.php?id=Contato&action=Enviada
$id = $_GET["id"];
$action = $_GET["action"];
$www = "http://www.".$_SERVER['SERVER_NAME'];
$url = $www."?id=$id&"."action=$action";

//Começa a criar o email
if ($enviar){//verifica se pode enviar o email
$Remetente = $_POST["Email"]; //Requer que exista um email remetente com o nome de Email que será recebido via post

// Para enviar email no formato html
$headers  = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";

// Headers adicionais
$headers .= "To: Empresa <$Destino>" . "\r\n";
$headers .= "From: $Nome <$Email>" . "\r\n";

if(!mail($Destino,$Subject,$Dados,$headers)){
echo "<script type='text/javascript'>
alert('Falha no envio da mensagem. Clique em Ok para voltar');
window.location.href='$www/?$id';
</script>";
} else {
//Aqui ele redireciona para uma outra página depois de enviado o formulário.
echo "
<script type='text/javascript'>
alert('Mensagem enviada com sucesso!');
window.location.href='$url';
</script>";
}
}
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Na vdd você está fazendo serviço dobrado...

 

Como o André falou, a própria variável $_POST é um array...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Rick, eu acho que entendi mais ou menos o que ele queria.

 

Acho que ele queria desmembrar os dados que vem pelo $_POST, em indice e valor para usar numa DIV.

 

E então para cada indice que vem no $_POST, ele relaciona com o valor deste indice.

 

Se for isso, creio que esteja certo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Rick, eu acho que entendi mais ou menos o que ele queria.

 

Acho que ele queria desmembrar os dados que vem pelo $_POST, em indice e valor para usar numa DIV.

 

E então para cada indice que vem no $_POST, ele relaciona com o valor deste indice.

 

Se for isso, creio que esteja certo.

Se você quer fazer exatamente como disse o André D. Molin você deve fazer assim:

 

<?php
foreach($_POST as $key => $value)
{
	$key = $value;
}
Veja mais nesse link: http://www.comocriarsites.com.br/Tratando-...om-php_b_3.html

Compartilhar este post


Link para o post
Compartilhar em outros sites

Rick, eu acho que entendi mais ou menos o que ele queria.

 

Acho que ele queria desmembrar os dados que vem pelo $_POST, em indice e valor para usar numa DIV.

 

E então para cada indice que vem no $_POST, ele relaciona com o valor deste indice.

 

Se for isso, creio que esteja certo.

Isso mesmo que eu queria, desmembrar os valores vindos do formulario via post e agrega-los a um email

Compartilhar este post


Link para o post
Compartilhar em outros sites

Natan...wtf? -.-

Cara...seu script tá vulneravel e relativamente feio.

Reveja...=D

wtf? -.-. Passo o dia na internet, mas não sei o que isso quer dizer, eu sempre uso o português, com erros é claro, mas sempre o português.

Vulneravel, porque não testei se os valores vinham mesmo do formulário?

Relativamente feio, não entendi!

script, essa parte não entendi mesmo, não postei script pronto, solução, só, digamos, dei uma dica pro nosso amigo. Mesmo porque não entendi bem o que ele queria, não fui o único.

 

Abraços

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.