Ir para conteúdo
Fórum Script Brasil
  • 0

Parse error: syntax error, unexpected '<' in [...]


Nyke

Pergunta

Olá pessoal, estou terminando meu sistema de pagseguro automático pra meu servidor, porém está dando um erro em um dos arquivos, o erro é o seguinte:

Parse error: syntax error, unexpected '<' in C:\xampp\htdocs\retpagseguro.php on line 24

Este é o código:

<?php
#CONFIGURAÇÕES##
$retorno_site = '/?subtopic=latestnews';  // Site para onde o usuário vai ser redirecionado
$retorno_host = 'localhost'; // Local da base de dados MySql
$retorno_database = 'otserv'; // Nome da base de dados MySql
$retorno_usuario = 'root'; // Usuario com acesso a base de dados MySql
$retorno_senha = '';  // Senha de acesso a base de dados MySql
################################################################              NÃO ALTERE DESTA LINHA PARA BAIXO################################################################
$lnk = mysql_connect($retorno_host, $retorno_usuario, $retorno_senha) or die ('não foi possível conectar ao MySql: ' . mysql_error());
mysql_select_db($retorno_database, $lnk) or die ('não foi possível ao banco de dados selecionado no MySql: ' . mysql_error());
require_once("retorno.php");
function retorno_automatico ($VendedorEmail, $TransacaoID, $Referencia, $TipoFrete,$ValorFrete, $Anotacao, $DataTransacao, $TipoPagamento,$StatusTransacao, $CliNome, $CliEmail, $CliEndereco,$CliNumero, $CliComplemento, $CliBairro, $CliCidade,$CliEstado, $CliCEP, $CliTelefone, $produtos, $NumItens) // Gravando DadosP 
{   
$quantidade = $produtos[0]['ProdQuantidade'];
mysql_query("INSERT into PagSeguroTransacoes SET    TransacaoID='$TransacaoID',    VendedorEmail='$VendedorEmail',    Referencia='$Referencia',      TipoFrete='$TipoFrete',    ValorFrete='$ValorFrete',      Extras='$Extras',      Anotacao='$Anotacao',      TipoPagamento='$TipoPagamento',    StatusTransacao='$StatusTransacao',    CliNome='$CliNome',    CliEmail='$CliEmail',      CliEndereco='$CliEndereco',    CliNumero='$CliNumero',    CliComplemento='$CliComplemento',      CliBairro='$CliBairro',    CliCidade='$CliCidade',    CliEstado='$CliEstado',    CliCEP='$CliCEP',      CliTelefone='$CliTelefone',    NumItens='$NumItens',      ProdQuantidade='$quantidade',    Data=now();");  
if ($StatusTransacao == 'Completo' OR $StatusTransacao == 'Aprovado')  
{
$query = "SELECT premium_points FROM accounts WHERE accounts.name = '$Referencia'";
$result = mysql_query($query);
$prem = mysql_fetch_array($result);$points = $prem['premium_points'] + $quantidade;  // 
$points = mysql_query($prem);
$qry2 = "UPDATE accounts SET premium_points = '$points' WHERE accounts.name = '$Referencia'";  
$result2 = mysql_query($qry2); }
} <script type="text/javascript">window.location = '/?subtopic=latestnews';</script> ?>

Poderiam me ajudar?

Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0

Amigo, agora aparece o seguinte:

Parse error: syntax error, unexpected ',' in C:\xampp\htdocs\retorno.php on line 11

Perdão pela 'enxeção' de saco, é porque necessito muito usar este sistema, e ele tinha vindo encriptado, quando eu o desencriptei, as quebras estavam todas erradas, por isso to tentando o arrumar...

@EDIT

Vi que na linha 11, ele direciona ao retorno.php, então, segue o mesmo:

<?php
if (!defined('TOKEN')) define ('TOKEN', '7DF14A366DB74B5586C23EDA6791B102');/*** RetornoPagSeguro** Classe de manipulação para o retorno do post do pagseguro** @package PagSeguro*/
class RetornoPagSeguro {/*** _preparaDados** Prepara os dados vindos do post e converte-os para url, adicionando* o token do usuario quando necessario.** @internal é usado pela {@see RetornoPAgSeguro::verifica} para gerar os,* dados que serão enviados pelo PagSeguro** @access private** @param array $post Array contendo os posts do pagseguro* @param bool $confirmacao Controlando a adicao do token no post* @return string*/
function _preparaDados($post, $confirmacao=true) 
{if ('array' !== gettype($post)) $post=array();
if ($confirmacao) {$post['Comando'] = 'validar';$post['Token'] = TOKEN;}$retorno=array();
foreach ($post as $key=>$value){if('string'!==gettype($value)) $post[$key]='';$value=urlencode(stripslashes($value));$retorno[]="{$key}={$value}";}
return implode('&', $retorno);}/*** _tipoEnvio** Checa qual será a conexao de acordo com a versao do PHP* preferencialmente em CURL ou via socket** em CURL o retorno será:* <code> array ('curl','https://pagseguro.uol.com.br/Security/NPI/Default.aspx') </code>* já em socket o retorno será:* <code> array ('fsocket', '/Security/NPI/Default.aspx', $objeto-de-conexao) </code>* se não encontrar nenhum nem outro:* <code> array ('','') </code>** @access private* @global string $_retPagSeguroErrNo Numero de erro do pagseguro* @global string $_retPagSeguroErrStr Texto descritivo do erro do pagseguro* @return array Array com as configurações**/
function _tipoEnvio() {//Prefira utilizar a função CURL do PHP
//Leia mais sobre CURL em: http://us3.php.net/curlglobal 
$_retPagSeguroErrNo, $_retPagSeguroErrStr;
if (function_exists('curl_exec'))return array('curl', 'https://pagseguro.uol.com.br/Security/NPI/Default.aspx');
elseif ((PHP_VERSION >= 4.3) && ($fp = @fsockopen('ssl://pagseguro.uol.com.br', 443, $_retPagSeguroErrNo, $_retPagSeguroErrStr, 30)))return array('fsocket', '/Security/NPI/Default.aspx', $fp);
elseif ($fp = @fsockopen('pagseguro.uol.com.br', 80, $_retPagSeguroErrNo, $_retPagSeguroErrStr, 30))
return array('fsocket', '/Security/NPI/Default.aspx', $fp);return array ('', '');}/*** not_null** Extraido de OScommerce 2.2 com base no original do pagseguro,* Checa se o valor e nulo** @access public** @param mixed $value Variável a ser checada se é nula* @return bool*/
function not_null($value) 
{if (is_array($value)) 
{if (sizeof($value) > 0) 
{return true;} else {return false;}} else {if (($value != '') && (strtolower($value) != 'null') && (strlen(trim($value)) > 0)) 
{return true;} else {return false;}}}/*** verifica** Verifica o tipo de conexão aberta e envia os dados vindos* do post** @access public** @use RetornoPagSeguro::_tipoenvio()* @global string $_retPagSeguroErrNo Numero de erro do pagseguro* @global string $_retPagSeguroErrStr Texto descritivo do erro do pagseguro* @param array $post Array contendo os posts do pagseguro* @param bool $tipoEnvio (opcional) Verifica o tipo de envio do post* @return bool*/
function verifica($post, $tipoEnvio=false) 
{global $_retPagSeguroErrNo, $_retPagSeguroErrStr;if ('array' !== gettype($tipoEnvio))$tipoEnvio = RetornoPagSeguro::_tipoEnvio();$spost=RetornoPagSeguro::_preparaDados($post);
if (!in_array($tipoEnvio[0], array('curl', 'fsocket')))return false;$confirma = false;
if ($tipoEnvio[0] === 'curl') {$ch = curl_init();curl_setopt($ch, CURLOPT_URL, $tipoEnvio[1]);curl_setopt($ch, CURLOPT_POST, true);curl_setopt($ch, CURLOPT_POSTFIELDS, $spost);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);$resp = curl_exec($ch);
if (!RetornoPagSeguro::not_null($resp)) {curl_setopt($ch, CURLOPT_URL, $tipoEnvio[1]);$resp = curl_exec($ch);}curl_close($ch);$confirma = (strcmp ($resp, 'VERIFICADO') == 0);} 
elseif ($tipoEnvio[0] === 'fsocket') {if (!$tipoEnvio[2]) {die ("{$_retPagSeguroErrStr} ($_retPagSeguroErrNo)");} else {$cabecalho = "POST {$tipoEnvio[1]} HTTP/1.0\r\n";$cabecalho .= "Content-Type: application/x-www-form-urlencoded\r\n";$cabecalho .= "Content-Length: " . strlen($spost) . "\r\n\r\n";$resp = '';fwrite ($tipoEnvio[2], "{$cabecalho}{$spost}");
while (!feof($tipoEnvio[2])) {$resp = fgets ($tipoEnvio[2], 1024);
if (strcmp ($resp, 'VERIFICADO') == 0) {$confirma = (strcmp ($resp, 'VERIFICADO') == 0);$confirma=true;break;}}fclose ($tipoEnvio[2]);}}if ($confirma && function_exists('retorno_automatico')) {$itens = array ('VendedorEmail', 'TransacaoID', 'Referencia', 'TipoFrete','ValorFrete', 'Anotacao', 'DataTransacao', 'TipoPagamento','StatusTransacao', 'CliNome', 'CliEmail', 'CliEndereco','CliNumero', 'CliComplemento', 'CliBairro', 'CliCidade','CliEstado', 'CliCEP', 'CliTelefone', 'NumItens',);
foreach ($itens as $item) {if (!isset($post[$item])) $post[$item] = '';
if ($item=='ValorFrete') $post[$item] = str_replace(',', '.', $post[$item]);}$produtos = array ();
for ($i=1;isset($post["ProdID_{$i}"]);$i++) {$produtos[] = array ('ProdID' => $post["ProdID_{$i}"],'ProdDescricao' => $post["ProdDescricao_{$i}"],'ProdValor' => (double) (str_replace(',', '.', $post["ProdValor_{$i}"])),'ProdQuantidade' => $post["ProdQuantidade_{$i}"],'ProdFrete' => (double) (str_replace(',', '.', $post["ProdFrete_{$i}"])),'ProdExtras' => (double) (str_replace(',', '.', $post["ProdExtras_{$i}"])),);}retorno_automatico ($post['VendedorEmail'], $post['TransacaoID'], $post['Referencia'], $post['TipoFrete'],$post['ValorFrete'], $post['Anotacao'], $post['DataTransacao'], $post['TipoPagamento'],$post['StatusTransacao'], $post['CliNome'], $post['CliEmail'], $post['CliEndereco'],$post['CliNumero'], $post['CliComplemento'], $post['CliBairro'], $post['CliCidade'],$post['CliEstado'], $post['CliCEP'], $post['CliTelefone'], $produtos, $post['NumItens']);}
return $confirma;}}
if ($_POST) {RetornoPagSeguro::verifica($_POST);die();}
?>

Editado por Nyke
Link para o comentário
Compartilhar em outros sites

  • 0

falta uma }

tente

<?php
#CONFIGURAÇÕES##
$retorno_site = '/?subtopic=latestnews';  // Site para onde o usuário vai ser redirecionado
$retorno_host = 'localhost'; // Local da base de dados MySql
$retorno_database = 'otserv'; // Nome da base de dados MySql
$retorno_usuario = 'root'; // Usuario com acesso a base de dados MySql
$retorno_senha = '';  // Senha de acesso a base de dados MySql

$lnk = mysql_connect($retorno_host, $retorno_usuario, $retorno_senha) or die ('não foi possível conectar ao MySql: ' . mysql_error());
mysql_select_db($retorno_database, $lnk) or die ('não foi possível ao banco de dados selecionado no MySql: ' . mysql_error());
require_once("retorno.php");
function retorno_automatico ($VendedorEmail, $TransacaoID, $Referencia, $TipoFrete,$ValorFrete, $Anotacao, $DataTransacao, $TipoPagamento,$StatusTransacao, $CliNome, $CliEmail, $CliEndereco,$CliNumero, $CliComplemento, $CliBairro, $CliCidade,$CliEstado, $CliCEP, $CliTelefone, $produtos, $NumItens) // Gravando DadosP 
{   
$quantidade = $produtos[0]['ProdQuantidade'];
mysql_query("INSERT into PagSeguroTransacoes SET    TransacaoID='$TransacaoID',    VendedorEmail='$VendedorEmail',    Referencia='$Referencia',      TipoFrete='$TipoFrete',    ValorFrete='$ValorFrete',      Extras='$Extras',      Anotacao='$Anotacao',      TipoPagamento='$TipoPagamento',    StatusTransacao='$StatusTransacao',    CliNome='$CliNome',    CliEmail='$CliEmail',      CliEndereco='$CliEndereco',    CliNumero='$CliNumero',    CliComplemento='$CliComplemento',      CliBairro='$CliBairro',    CliCidade='$CliCidade',    CliEstado='$CliEstado',    CliCEP='$CliCEP',      CliTelefone='$CliTelefone',    NumItens='$NumItens',      ProdQuantidade='$quantidade',    Data=now();");  
if ($StatusTransacao == 'Completo' OR $StatusTransacao == 'Aprovado')  
{
$query = "SELECT premium_points FROM accounts WHERE accounts.name = '$Referencia'";
$result = mysql_query($query);
$prem = mysql_fetch_array($result);$points = $prem['premium_points'] + $quantidade;  // 
$points = mysql_query($prem);
$qry2 = "UPDATE accounts SET premium_points = '$points' WHERE accounts.name = '$Referencia'";  
$result2 = mysql_query($qry2); }
}  echo "<script type='text/javascript'>window.location = '/?subtopic=latestnews';</script> ?>";
}

Link para o comentário
Compartilhar em outros sites

  • 0
falta uma }

tente

<?php
#CONFIGURAÇÕES##
$retorno_site = '/?subtopic=latestnews';  // Site para onde o usuário vai ser redirecionado
$retorno_host = 'localhost'; // Local da base de dados MySql
$retorno_database = 'otserv'; // Nome da base de dados MySql
$retorno_usuario = 'root'; // Usuario com acesso a base de dados MySql
$retorno_senha = '';  // Senha de acesso a base de dados MySql

$lnk = mysql_connect($retorno_host, $retorno_usuario, $retorno_senha) or die ('não foi possível conectar ao MySql: ' . mysql_error());
mysql_select_db($retorno_database, $lnk) or die ('não foi possível ao banco de dados selecionado no MySql: ' . mysql_error());
require_once("retorno.php");
function retorno_automatico ($VendedorEmail, $TransacaoID, $Referencia, $TipoFrete,$ValorFrete, $Anotacao, $DataTransacao, $TipoPagamento,$StatusTransacao, $CliNome, $CliEmail, $CliEndereco,$CliNumero, $CliComplemento, $CliBairro, $CliCidade,$CliEstado, $CliCEP, $CliTelefone, $produtos, $NumItens) // Gravando DadosP 
{   
$quantidade = $produtos[0]['ProdQuantidade'];
mysql_query("INSERT into PagSeguroTransacoes SET    TransacaoID='$TransacaoID',    VendedorEmail='$VendedorEmail',    Referencia='$Referencia',      TipoFrete='$TipoFrete',    ValorFrete='$ValorFrete',      Extras='$Extras',      Anotacao='$Anotacao',      TipoPagamento='$TipoPagamento',    StatusTransacao='$StatusTransacao',    CliNome='$CliNome',    CliEmail='$CliEmail',      CliEndereco='$CliEndereco',    CliNumero='$CliNumero',    CliComplemento='$CliComplemento',      CliBairro='$CliBairro',    CliCidade='$CliCidade',    CliEstado='$CliEstado',    CliCEP='$CliCEP',      CliTelefone='$CliTelefone',    NumItens='$NumItens',      ProdQuantidade='$quantidade',    Data=now();");  
if ($StatusTransacao == 'Completo' OR $StatusTransacao == 'Aprovado')  
{
$query = "SELECT premium_points FROM accounts WHERE accounts.name = '$Referencia'";
$result = mysql_query($query);
$prem = mysql_fetch_array($result);$points = $prem['premium_points'] + $quantidade;  // 
$points = mysql_query($prem);
$qry2 = "UPDATE accounts SET premium_points = '$points' WHERE accounts.name = '$Referencia'";  
$result2 = mysql_query($qry2); }
}  echo "&lt;script type='text/javascript'>window.location = '/?subtopic=latestnews';</script> ?>";
}

O erro está sendo no retorno.php agora, o que eu mandei acima.

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,9k
×
×
  • Criar Novo...