Brunck 0 Denunciar post Postado Fevereiro 20, 2010 Galera, eu peguei esse código pronto desse post e gostaria de saber se vocês sabem como eu posso verificar se o cadastro já foi feito para apenas dar update no status. E quando o status estiver "Aprovado", ele fazer uma consulta qualquer no banco. Abraços a todos. <? $host = ""; $database = ""; // nome da base de dados MySql $user = ""; // Usuário de acesso a base de dados $pass = ""; // Senha de acesso a base de dados function conexao_mysql($host,$user,$pass,$database){ global $host, $user, $pass, $database; //verifica se as variaveis (host,user,pass,database) estao setadas if(isset($host) and isset($user) and isset($pass) and isset($database)){ //realiza a conexao com o banco de dados $conexao = @mysql_connect($host, $user, $pass); //checa se a conexao foi bem sucedida if(!$conexao){ print("<font color='#FF0000'>Erro: Impossível conectar-se ao banco de dados.</font>"); exit(); } //verifica e seleciona o banco de dados if(!@mysql_select_db($database, $conexao)){ print("<font color='#FF0000'>Erro: Impossível selecionar o banco de dados desejado.</font>"); exit(); } }else{ print("<font color='#FF0000'>Erro: Alguns dos dados para conexão ao banco de dados não foi informado.</font>"); } } conexao_mysql($host,$user,$pass,$database); // RECEBE O POST ENVIADO PELA PagSeguro E ADICIONA OS VALORES PARA VALIDACAO DOS DADOS $PagSeguro = 'Comando=validar'; $PagSeguro .= '&Token='; // Insira aqui o código do Token gerado no PagSeguro $Cabecalho = "Premium Down"; // Coloque um título foreach ($_POST as $key => $value) { $value = urlencode(stripslashes($value)); $PagSeguro .= "&$key=$value"; } if (function_exists('curl_exec')) { //Prefira utilizar a funcao CURL do PHP //Leia mais sobre CURL em: http://us3.php.net/curl $curl = true; } elseif ( (PHP_VERSION >= 4.3) && ($fp = @fsockopen ('ssl://pagseguro.uol.com.br', 443, $errno, $errstr, 30)) ) { $fsocket = true; } elseif ($fp = @fsockopen('pagseguro.uol.com.br', 80, $errno, $errstr, 30)) { $fsocket = true; } // ENVIA DE VOLTA PARA A PagSeguro OS DADOS PARA VALIDAÇÃO if ($curl == true) { $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, 'https://pagseguro.uol.com.br/Security/NPI/Default.aspx'); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_POSTFIELDS, $PagSeguro); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_HEADER, false); curl_setopt($ch, CURLOPT_TIMEOUT, 30); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_URL, 'https://pagseguro.uol.com.br/Security/NPI/Default.aspx'); $resp = curl_exec($ch); curl_close($ch); $confirma = (strcmp ($resp, "VERIFICADO") == 0); } elseif ($fsocket == true) { $Cabecalho = "POST /Security/NPI/Default.aspx HTTP/1.0\r\n"; $Cabecalho .= "Content-Type: application/x-www-form-urlencoded\r\n"; $Cabecalho .= "Content-Length: " . strlen($PagSeguro) . "\r\n\r\n"; if ($fp || $errno>0) { fputs ($fp, $Cabecalho . $PagSeguro); $confirma = false; $resp = ''; while (!feof($fp)) { $res = @fgets ($fp, 1024); $resp .= $res; // Verifica se o status da transação está VERIFICADO if (strcmp ($res, "VERIFICADO") == 0) { $confirma=true; break; } } fclose ($fp); } else { echo "$errstr ($errno)<br />\n"; // ERRO HTTP } } if ($confirma) { // RECEBE OS DADOS ENVIADOS PELA PagSeguro E ARMAZENA EM VARIAVEIS //Selecione aqui todos os parametros enviados pela PagSeguro $VendedorEmail = $_POST['VendedorEmail']; $TransacaoID = $_POST['TransacaoID']; $Referencia = $_POST['Referencia']; $TipoFrete = $_POST['TipoFrete']; $ValorFrete = $_POST['ValorFrete']; $Anotacao = $_POST['Anotacao']; $DataTransacao = $_POST['DataTransacao']; $TipoPagamento = $_POST['TipoPagamento']; $StatusTransacao = $_POST['StatusTransacao']; $CliNome = $_POST['CliNome']; $CliEmail = $_POST['CliEmail']; $CliEndereco = $_POST['CliEndereco']; $CliNumero = $_POST['CliNumero']; $CliComplemento = $_POST['CliComplemento']; $CliBairro = $_POST['CliBairro']; $CliCidade = $_POST['CliCidade']; $CliEstado = $_POST['CliEstado']; $CliCEP = $_POST['CliCEP']; $CliTelefone = $_POST['CliTelefone']; $NumItens = $_POST['NumItens']; $ProdID = $_POST['ProdID_1']; $ProdDescricao = $_POST['ProdDescricao_1']; $ProdValor = $_POST['ProdValor_1']; $ProdQuantidade = $_POST['ProdQuantidade_1']; $ProdFrete = $_POST['ProdFrete_1']; $ProdExtras = $_POST['ProdExtras_1']; // Verifique se a TransacaoID não foi previamente processada // Verifique se o email recebido (VendedorEmail) é o seu email // Verifique se o valor do pagamento está correto // Processe o pagamento salvando os dados em seu banco de dados // Pegando o IP do usuário $ip = $_SERVER['REMOTE_ADDR']; // pegando o endereço remoto $forward = $_SERVER['HTTP_X_FORWARDED_FOR']; // pegando o endereço que foi repassado (se houver) $ip=( (($ip=='unknown' || $ip=='201.6.24.158') && ( isset($foward) && $forward!='unknown'))?$forward:$ip); $datahora = date("Y-m-d H:i:s"); $data = date("Y-m-d"); $hora = date("H:i:s"); $cadastro = mysql_query("INSERT into PagSeguroTransacoes (TransacaoID, VendedorEmail, TipoFrete, ValorFrete, Anotacao, TipoPagamento, Referencia, StatusTransacao, CliNome, CliEmail, CliEndereco, CliNumero, CliComplemento, CliBairro, CliCidade, CliEstado, CliCEP, CliTelefone, NumItens, ProdID, ProdDescricao, ProdValor, ProdQuantidade, ProdFrete, ProdExtras, ip, datahora, data, hora) VALUES ('$TransacaoID','$VendedorEmail','$TipoFrete','$ValorFrete','$Anotacao','$TipoPagamento','$Referencia','$StatusTransacao','$CliNome','$CliEmail','$CliEndereco','$CliNumero','$CliComplemento','$CliBairro','$CliCidade','$CliEstado','$CliCEP','$CliTelefone','$NumItens','$ProdID','$ProdDescricao','$ProdValor','$ProdQuantidade','$ProdFrete','$ProdExtras','$ip','$datahora','$data','$hora')"); }else{ if (strcmp ($res, "FALSO") == 0) { // LOG para investigação manual } } Header("Location: index.php"); ?> Compartilhar este post Link para o post Compartilhar em outros sites
João Batista Neto 448 Denunciar post Postado Fevereiro 20, 2010 Você precisará de uma chave que será UNIQUE ou então precisará da chave primária, seu INSERT ficaria assim: INSERT INTO `suatabela`(`coluna1`,`coluna2`,`coluna_unique`) VALUES('valor 1','valor 2','valor 3') ON DUPLICATE KEY UPDATE `coluna1`=VALUES(coluna1), `coluna2`=VALUES(coluna2), `coluna3`=VALUES(coluna3); Compartilhar este post Link para o post Compartilhar em outros sites