Ir ao conteúdo

PagSeguro com PHP


Rafael Biagione

Posts recomendados

Postado

Preciso criar um sistema do PagSeguro com PHP para um site de compras. Dei uma pesquisada no próprio site do PagSeguro e baixei a biblioteca, que são os arquivos em PHP, agora preciso adapta-los ao site. Na verdade, este modelo deverá ser utilizado em todos os sites que eu for utilizar, bastando adapta-lo.

No site do PagSeguro as explicações me parecem um pouco incompletas. Para quem tem poucos conhecimentos na linguagem PHP como eu, fica difícil entender como realizar essa adaptação.

  • Moderador
Postado

Realmente, entender a api do pagseguro não é mole. É verdade, a documentação do pagseguro é um pouco confusa.. entender como utilizar suas classes requer tempo. Por exemplo a api dispõe de uma classes para retornos, uma classe para carrinho de compras... o maior problema disso é como você é iniciante no php.. entender a orientação a objetos de primeira assim é complicado.

Sinceramente desssa vez não sei se posso te ajudar.. pois uma vez já tentei implementar o pagseguro em um site.. mas não consegui por falta de tempo para entender a api.

  • Moderador
Postado

tente entrar em contato com eles.. para ver se o suporte te esclaressa algumas duvidas geradas pela documentação deles.

  • Membro VIP
Postado

Você precisa entender como funciona o fluxo antes de tentar entender a classe deles. A documentação é meio ruim sim, e eu também já perdi horas e horas pra conseguir trabalhar com aquilo..

Mas com o tempo você vai pegando as manhas..

Se você estiver se referindo ao Retorno Automático, veja se o seguinte link lhe ajuda:

http://dourado.net/2011/06/09/retorno-automatico-de-dados-do-pagseguro-em-phpmysql-com-produtos-versao-2-0/

O ideal é tentar entende-lo e criar o seu próprio.. são todos ruins..

Se estiver se referindo ao envio de produtos (como carrinho) para o Pagseguro.. aí a documentação deles é suficiente basta se dedicar..

Postado

Ola amigos

tambem sou iniciante em PHP, apresento meu TCC do meu curso técnico esse mês, e meu tema foi implementar uma loja virtual no qual fiz integração com o Pagseguro, consegui fazer funcionar direitinho, mesmo testando em localhost esta funcionando perfeitamente, posso efetuar compras no meu sistema, escolher a forma de pagamento e tudo mais,

não achei muito complicado, por eu ser iniciante e consegui fazer tudo, gostei do Pagseguro indico para quem quiser usar,

segui as aulas do site UpInside onde mostra como fazer uma integração com o pagseguro, claro que tive que mudar um monte de coisa, tu só vai precisar de poucas linhas de código para fazer a integração. Da uma olhada nos videos da UpInside, talvez você consiga!

Abraço

Postado

Olá.

Fiz uma videoaula do curso da UpInside onde fiz uma vitrine virtual, mas ela não está sendo exibida. O código é este:


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<?php
include ('conexao.php');
$conecta = new Recordset();
$conecta->conexao();
?>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Vitrine de produtos</title>
<style type="text/css">
body{margin:0px; background-color:#CCCCCC;}
#conteudo-master{width:100%; margin:0px; padding:0px;}
#conteudo{width:960px; display:block; margin:25px auto; padding:15px; background-color:#ebebeb; position:relative; font-family:Arial, Helvetica, sans-serif;}
#conteudo h1{font-size:20px; color:333333; display:block; border-bottom:double 2px #999999; padding-bottom: 1px;}
</style>
</head>

<body>
<div id="conteudo-master">
<div id="conteudo">
<h1>Vitrine de produtos - html</h1>
<table cellpadding="8" cellspacing="10" border="0" width="100%">
<tr>
<td align="center" valign="top" bgcolor="FFFFFF"><img src="image/notebook_01.jpg" width="200" height="150" alt="" /></td>
<td align="center" valign="top" bgcolor="FFFFFF"><img src="image/notebook_02.jpg" width="200" height="150" alt="" /></td>
<td align="center" valign="top" bgcolor="FFFFFF"><img src="image/notebook_03.jpg" width="200" height="150" alt="" /></td>
</tr>

<tr>
<td align="center" valign="top" bgcolor="FFFFFF"><img src="image/notebook_04.jpg" width="200" height="150" alt="" /></td>
<td align="center" valign="top" bgcolor="FFFFFF"><img src="image/notebook_05.jpg" width="200" height="150" alt="" /></td>
<td align="center" valign="top" bgcolor="FFFFFF"><img src="image/notebook_06.jpg" width="200" height="150" alt="" /></td>
</tr>
</table>
</div>

<div id="conteudo">
<h1>Vitrine de produtos - dinâmico PHP</h1>
<table cellpadding="8" cellspacing="10" border="0" width="100%">
<tr>
<?php
$LoopH = 3;
$res = $conecta->seleciona("SELECT * FROM cadastro");
$registro = mysql_num_rows($res);
$i = 1;
while($list = mysql_fetch_array($res)){
if($i < $LoopH){
echo '
<td align="center" valign="top" bgcolor="FFFFFF">'.$i.'
<img src="'.$list['caminho_foto'].$list['foto'].'" width="200" height="150" alt="" />
</td>
';
}elseif($i = $LoopH){
echo '
<td align="center" valign="top" bgcolor="FFFFFF">'.$i.'
<img src="'.$list['caminho_foto'].$list['foto'].'" width="200" height="150" alt="" />
</td>
</tr>
<tr>
';
$i = 0;
}
$i++;
}
?>
</tr>
</table>

</div>
</div>
</body>
</html>

O problema está na linha 6, no recordset... Acho que o arquivo conexao.php também deve estar com erro...

conexao.php


<?
$host = "localhost";//caso esteja usando o xampp ou wamp

$user = "root";// padrão para xampp ou wamp é root

$pass = "";// padrão para xampp ou wamp é ""

$db = "test";// é o nome do banco que você criou no phpmyadmin

$conn = mysql_connect($host, $user, $pass) or die (mysql_error());
$dados = mysql_select_db($db);
?>

Postado

Para você conseguir fazer toda essa vitrine e depois o carrinho de compras e depois a integração com o pagseguro, seguindo as video aulas da UpInside, tem 4 video aulas só sobre Class e Functions, que é exatamente essa recordset que esta dando erro, tu não chegou ver não é mesmo? vou postar aqui os 4 links dessas aulas, da uma olhada pra você entender melhor...

http://www.upinside.com.br/video-aulas/php/class-e-functions-com-php-parte-01

http://www.upinside.com.br/video-aulas/php/class-e-function-em-php-parte-2

http://www.upinside.com.br/video-aulas/php/class-e-function-com-php-parte-2-continuacao

http://www.upinside.com.br/video-aulas/php/class-e-function-em-php-parte-3-final

mas eu tenho aqui o arquivo funcoes pronto, que essas quatro aulas ensinao, crie um arquivo chamado funcoes.php junto com o index que foi ensinado na aula da vitrine de produtos e cole esse codigo

funcoes.php


<?php
//Criar a Class
class recordset{
//Declarar varias publicas
public $banco = 'SEU_BANCO';
public $usuario = 'root';
public $senha = '';
public $hostname = 'localhost';

//função para conectar com o banco de dados
function conexao(){
$conn = mysql_connect($this->hostname, $this->usuario, $this->senha);
mysql_select_db($this->banco) or die ('Nao foi possivel conectar com o banco'.mysql_error());

mysql_query("SET NAMES 'utf8'");
mysql_query("SET character_set_connection=utf8");
mysql_query("SET character_set_client=utf8");
mysql_query("SET character_set_results=utf8");
}

//Função para selecionar os dados do banco
function seleciona($sql){
$result = mysql_query($sql) or die ('Nao foi possivel conectar');
return $result;
}
//Inserir dados
function inserir($tabela, $dados){
//Pegar campos da array
$arrCampo = array_keys($dados);
//Pega valores da array
$arrValores = array_values($dados);
//Contar os campos da array
$numCampo = count($arrCampo);
// Contar os valores da array
$numValores = count($arrValores);
//Validação dos Campos
if($numCampo == $numValores){
$SQL = "INSERT INTO ".$tabela."(";
foreach($arrCampo as $campo){
$SQL .= "$campo, ";
}
$SQL = substr_replace($SQL, ")", -2,1);
$SQL .=" VALUES (";
foreach($arrValores as $valores){
$SQL .= "'".$valores."', ";
}
$SQL = substr_replace($SQL, ")", -2,1);
}
else{
echo 'Erro ao checar os valores';
}
$this->seleciona($SQL);
}
//Alterar dados
function alterar($tabela, $dados, $string){
//Pegar campos da array
$arrCampo = array_keys($dados);
//Pega valores da array
$arrValores = array_values($dados);
//Contar os campos da array
$numCampo = count($arrCampo);
// Contar os valores da array
$numValores = count($arrValores);
// Construção da string
if($numCampo == $numValores && $numValores > 0){
$SQL = "UPDATE ".$tabela." SET ";
for($i = 0; $i < $numCampo; $i++){
$SQL .= $arrCampo[$i]." = '".$arrValores[$i]."',";
}
$SQL = substr_replace($SQL, " ", -1,1);
$SQL .= "WHERE $string";
}
else{
echo 'Erro ao checar o update';
}
$this->seleciona($SQL);
}
}
?>

Postado

sim são 2 arquivos separados

para montar a vitrine de produtos basta esses 2 arquivos e as imagens,

depois tu vai ter que assistir as videos aulas sobre carrinho de compras, que é um pouco mais complexo, mas acho que é tranquilo, quando assisti nao tinha muitos conhecimentos em php, e consegui fazer funcionar o sistema todo,

bom estudo!

Postado

Fiz as videoaulas de Class e Function na UpInside e o arquivo atividade.php não está funcionando. Creio ser erro na funcoes.php. O formulário da atividade.php é exibido normalmente, mas as ações do PHP não estão sendo executadas. Vou colar o código das duas páginas para vocês verem como foram feitas.

atividade.php


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<?php
include 'funcoes.php';
$conecta = new recordset();
$conecta->conexao();
?>
<?php
if(isset($_POST['acao']) && $_POST['acao'] == 'update'){
$id = $_POST['id'];
$string = "id = $id";
$dados = array(
'nome'=>$_POST['nome'],
'email'=>$_POST['email'],
'cidade'=>$_POST['cidade']
);
$conecta->alterar(contato, $dados, $string);
unset($_POST['acao']);
echo 'Dados atualizados com sucesso!';

}
?>
<?php
if(isset($_POST['acao']) && $_POST['acao'] == 'gravar'){
$tabela = 'contato';
$dados = array(
'nome'=>$_POST['nome'],
'email'=>$_POST['email'],
'cidade'=>$_POST['cidade']
);
$conecta->inserir($tabela, $dados);
echo 'Seus dados foram gravados.';
}elseif(isset($_POST['acao']) && $_POST['acao'] == 'gravar'){
$id = $_POST['id'];
$conecta->seleciona("DELETE FROM contato WHERE id= $id");
echo 'Arquivo deletado com sucesso!';
}
?>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Atividade PHP -CLASS</title>
</head>

<body>
<?php
if(isset($_POST['acao']) && $_POST['acao'] == 'gravar'){
$id = $_POST['id'];
$up = $conecta->seleciona("SELECT * FROM contato WHERE id = $id");
$obj = mysql_fetch_array($up);
echo '
<table cellpadding="4" cellspacing="4" width="500" border="0">
<form name="formClass" action="" method="post" enctype="multipart/form-data">
<tr>
<td>Nome:</td>
<td><input type="text" name="nome" size="30" value="'.$obj['nome'].'"/></td>
</tr>

<tr>
<td>E-mail:</td>
<td><input type="text" name="email" size="30" value="'.$obj['email'].'"/></td>
</tr>

<tr>
<td>Cidade:</td>
<td><input type="text" name="cidade" size="30" value="'.$obj['cidade'].'"/></td>
</tr>

<tr>
<td>
<input type="hidden" nome="acao" value="update"/>
<input type="hidden" nome="acao" value="'.$obj['id'].'"/>
</td>

<td><input type="submit" nome="submit" value="update"/></td>
</tr>
</form>
</table>
';
}else{
?>
<table cellpadding="4" cellspacing="4" width="500" border="0">
<form name="formClass" action="" method="post" enctype="multipart/form-data">
<tr>
<td>Nome:</td>
<td><input type="text" name="nome" size="30"/></td>
</tr>

<tr>
<td>E-mail:</td>
<td><input type="text" name="email" size="30"/></td>
</tr>

<tr>
<td>Cidade:</td>
<td><input type="text" name="cidade" size="30"/></td>
</tr>

<tr>
<td><input type="hidden" nome="acao" value="gravar"/></td>
<td><input type="submit" nome="submit" value="enviar"/></td>
</tr>
</form>
</table>
<?php
}
?>
<br />

<table cellpadding="4" cellspacing="4" width="650" border="0">
<?php
$res = $conecta->seleciona("SELECT * FROM contato");
while($list = mysql_fetch_array($res)){
?>
<tr bgcolor="#ebebeb">
<td>Nome: <?php echo $list['nome'];?></td>
<td>E-mail: <?php echo $list['email'];?></td>
<td>Cidade: <?php echo $list['cidade'];?></td>
<td>
<form action="" method="post" enctype="multipart/form-data">
<input type="hidden" name="acao" value="del" />
<input type="hidden" name="id" value="<?php echo $list['id'];?>" />
<input type="submit" name="enviar" value="deletar" />
</form>
</td>
<td>
<form action="" method="post" enctype="multipart/form-data">
<input type="hidden" name="acao" value="alterar" />
<input type="hidden" name="id" value="<?php echo $list['id'];?>" />
<input type="submit" name="enviar" value="alterar" />
</form>
</td>
</tr>
<?php
}
?>
</table>
</body>
</html>

funcoes.php


<?php
//Criar a Class
class recordset{
//Declarar variaveis publicas
public $banco = 'test';
public $usuario = 'root';
public $senha = '';
public $hostname = 'localhost';

//função para conectar ao banco de dados
function conexao(){
$conn = mysql_connect($this->hostname, $this->usuario, $this->senha);
mysql_select_db($this->banco) or die ('Não foi possível conectar.'.mysql_error());

mysql_query("SET NAMES 'utf8'");
mysql_query("SET character_set_connection=utf8");
mysql_query("SET character_set_client=utf8");
mysql_query("SET character_set_results=utf8");
}

//Função para selecionar os dados do banco
function seleciona($sql){
$result = mysql_query($sql) or die ('Não foi possível conectar.');
return $result;
}
//Inserir dados
function inserir($tabela, $dados){
//Pegar campos da array
$arrCampo = array_keys($dados);
//Pega valores da array
$arrValores = array_values($dados);
//Contar os campos da array
$numCampo = count($arrCampo);
//Contar os valores da array
$numValores = count($arrValores);
//Validação dos Campos
if($numCampo == $numValores){
$SQL = "INSERT INTO ".$tabela."(";
foreach($arrCampo as $campo){
$SQL .= "$campo, ";
}
$SQL = substr_replace($SQL, ")", -2,1);
$SQL .=" VALUES (";
foreach($arrValores as $valores){
$SQL .= "'".$valores."', ";
}
$SQL = substr_replace($SQL, ")", -2,1);
}
else{
echo 'Erro ao checar os valores.';
}
$this->seleciona($SQL);
}
//Alterar dados
function alterar($tabela, $dados, $string){
//Pegar campos da array
$arrCampo = array_keys($dados);
//Pega valores da array
$arrValores = array_values($dados);
//Contar os campos da array
$numCampo = count($arrCampo);
// Contar os valores da array
$numValores = count($arrValores);
// Construção da string
if($numCampo == $numValores && $numValores > 0){
$SQL = "UPDATE ".$tabela." SET ";
for($i = 0; $i < $numCampo; $i++){
$SQL .= $arrCampo[$i]." = '".$arrValores[$i]."',";
}
$SQL = substr_replace($SQL, " ", -1,1);
$SQL .= "WHERE $string";
}
else{
echo 'Erro ao checar o update';
}
$this->seleciona($SQL);
}
} //Fim da CLASS recordet
?>

Postado

Ola Rafael Biagione

para tua sorte eu tenho esses arquivos funcionando perfeitamente, hehe

o teu funcoes.php, esta correto

no teu atividades.php que tem alguns "erros", vou te mostrar eles depois vou colocar o meu arquivo inteiro, caso ainda não de certo

1° - na sua linha 18, voce colocou contato, mas tem que colocar entre aspas simples, assim 'contato'.

2° - no seu arquivo na linha 33

}elseif(isset($_POST['acao']) && $_POST['acao'] == 'gravar'){

não é 'gravar' é 'deletar'.

3° -na linha 45

if(isset($_POST['acao']) && $_POST['acao'] == 'gravar'){

não é 'gravar' é 'alterar'.

4° - na linha 49 até a 77 você usa um echo que no meu arquivo eu nao fiz isso.

eu fiz assim


<?php
if(isset($_POST['acao'])&& $_POST['acao'] == 'alterar'){
$id = $_POST['id'];
$up = $conecta->seleciona("SELECT * FROM contato WHERE Id = $id");
$obj = mysql_fetch_array ($up);
?>
<table cellpadding="4" cellspacing="4" width="500" border="0">
<form name="formClass" action="" method="post" enctype="multipart/form-data">
<tr>
<td>Nome:</td>
<td><input type="text" name="nome" size="30" value="<?php echo $obj['nome']; ?>" /></td>
</tr>
<tr>
<td>Email:</td>
<td><input type="text" name="email" size="30" value="<?php echo $obj['email']; ?>" /></td>
</tr>
<tr>
<td>Cidade:</td>
<td><input type="text" name="cidade" size="30" value="<?php echo $obj['cidade']; ?>" /></td>
</tr>
<tr>
<td>
<input type="hidden" name="acao" value="update" /></td>
<input type="hidden" name="id" value="<?php echo $obj['id']; ?>" />
</td>
<td><input type="submit" name="submit" value="update" /></td>
</tr>
</form>
</table>
<br />
<?php
}
else{
?>

5° - na linha 119 você colocou value como del e é deletar

a principio foi esses erros que encontrei

mas segue os meus arquivos que estão funcionando perfeitamente

atividades.php


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<?php
include 'funcoes.php';
$conecta = new recordset();
$conecta->conexao();
?>
<?php
if(isset($_POST['acao'])&& $_POST['acao'] == 'update'){
$tabela = "contato";
$id = $_POST['id'];
$string = "Id = $id";
$dados = array('nome'=>$_POST['nome'], 'email'=>$_POST['email'], 'cidade'=>$_POST['cidade']);
$conecta->alterar($tabela, $dados, $string);
unset($_POST['acao']);
echo 'Dados alerados com sucesso';
}
?>
<?php
if(isset($_POST['acao'])&& $_POST['acao'] == 'gravar'){
$tabela = "contato";
$nome = $_POST['nome'];
$email = $_POST['email'];
$cidade = $_POST['cidade'];

$dados = array('nome'=>$nome, 'email'=>$email, 'cidade'=>$cidade);
$conecta->inserir($tabela, $dados);
echo 'Seus dados foram gravados';
}
else if(isset($_POST['acao'])&& $_POST['acao'] == 'deletar'){
$id = $_POST['id'];
$conecta->seleciona("DELETE FROM contato WHERE Id= $id");
echo 'arquivo deletado com sucesso';
}
?>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Atividade PHP - Class</title>
</head>

<body>
<?php
if(isset($_POST['acao'])&& $_POST['acao'] == 'alterar'){
$id = $_POST['id'];
$up = $conecta->seleciona("SELECT * FROM contato WHERE Id = $id");
$obj = mysql_fetch_array ($up);
?>
<table cellpadding="4" cellspacing="4" width="500" border="0">
<form name="formClass" action="" method="post" enctype="multipart/form-data">
<tr>
<td>Nome:</td>
<td><input type="text" name="nome" size="30" value="<?php echo $obj['nome']; ?>" /></td>
</tr>
<tr>
<td>Email:</td>
<td><input type="text" name="email" size="30" value="<?php echo $obj['email']; ?>" /></td>
</tr>
<tr>
<td>Cidade:</td>
<td><input type="text" name="cidade" size="30" value="<?php echo $obj['cidade']; ?>" /></td>
</tr>
<tr>
<td>
<input type="hidden" name="acao" value="update" /></td>
<input type="hidden" name="id" value="<?php echo $obj['id']; ?>" />
</td>
<td><input type="submit" name="submit" value="update" /></td>
</tr>
</form>
</table>
<br />
<?php
}
else{
?>
<table cellpadding="4" cellspacing="4" width="500" border="0">
<form name="formClass" action="" method="post" enctype="multipart/form-data">
<tr>
<td>Nome:</td>
<td><input type="text" name="nome" size="30" /></td>
</tr>
<tr>
<td>Email:</td>
<td><input type="text" name="email" size="30" /></td>
</tr>
<tr>
<td>Cidade:</td>
<td><input type="text" name="cidade" size="30" /></td>
</tr>
<tr>
<td><input type="hidden" name="acao" value="gravar" /></td>
<td><input type="submit" name="submit" value="enviar" /></td>
</tr>
</form>
</table>
<?php
}
?>
<br />

<table cellpadding="4" cellspacing="4" width="650" border="0">
<?php
$res = $conecta->seleciona("SELECT * FROM contato");
while($list = mysql_fetch_array($res)){
?>
<tr bgcolor="#ebebeb">
<td>Nome:<?php echo $list['nome']; ?></td>
<td>Email:<?php echo $list['email']; ?></td>
<td>Cidade:<?php echo $list['cidade']; ?></td>
<td>
<form name="form" method="post" enctype="multipart/form-data" action="">
<input type="hidden" name="acao" value="deletar" />
<input type="hidden" name="id" value="<?php echo $list['id']; ?>" />
<input type="submit" name="submit" value="deletar" />
</form>
</td>
<td>
<form name="form" method="post" enctype="multipart/form-data" action="">
<input type="hidden" name="acao" value="alterar" />
<input type="hidden" name="id" value="<?php echo $list['id']; ?>" />
<input type="submit" name="submit" value="alterar" />
</form>
</td>
</tr>
<?php
}
?>
</table>
<br /><br />


</body>
</html>


funcoes.php


<?php
//Criar a Class
class recordset{
//Declarar varias publicas
public $banco = 'upinside';
public $usuario = 'root';
public $senha = '12345';
public $hostname = 'localhost';

//função para conectar com o banco de dados
function conexao(){
$conn = mysql_connect($this->hostname, $this->usuario, $this->senha);
mysql_select_db($this->banco) or die ('Nao foi possivel conectar com o banco'.mysql_error());

mysql_query("SET NAMES 'utf8'");
mysql_query("SET character_set_connection=utf8");
mysql_query("SET character_set_client=utf8");
mysql_query("SET character_set_results=utf8");
}

//Função para selecionar os dados do banco
function seleciona($sql){
$result = mysql_query($sql) or die ('Nao foi possivel conectar');
return $result;
}
//Inserir dados
function inserir($tabela, $dados){
//Pegar campos da array
$arrCampo = array_keys($dados);
//Pega valores da array
$arrValores = array_values($dados);
//Contar os campos da array
$numCampo = count($arrCampo);
// Contar os valores da array
$numValores = count($arrValores);
//Validação dos Campos
if($numCampo == $numValores){
$SQL = "INSERT INTO ".$tabela."(";
foreach($arrCampo as $campo){
$SQL .= "$campo, ";
}
$SQL = substr_replace($SQL, ")", -2,1);
$SQL .=" VALUES (";
foreach($arrValores as $valores){
$SQL .= "'".$valores."', ";
}
$SQL = substr_replace($SQL, ")", -2,1);
}
else{
echo 'Erro ao checar os valores';
}
$this->seleciona($SQL);
}
//Alterar dados
function alterar($tabela, $dados, $string){
//Pegar campos da array
$arrCampo = array_keys($dados);
//Pega valores da array
$arrValores = array_values($dados);
//Contar os campos da array
$numCampo = count($arrCampo);
// Contar os valores da array
$numValores = count($arrValores);
// Construção da string
if($numCampo == $numValores && $numValores > 0){
$SQL = "UPDATE ".$tabela." SET ";
for($i = 0; $i < $numCampo; $i++){
$SQL .= $arrCampo[$i]." = '".$arrValores[$i]."',";
}
$SQL = substr_replace($SQL, " ", -1,1);
$SQL .= "WHERE $string";
}
else{
echo 'Erro ao checar o update';
}
$this->seleciona($SQL);
}
}
?>

Postado

Terminei o sistema.

Só que não está funcionando 100%.

Quando vou finalizar a compra, não sou redirecionado para o site do PagSeguro... Acredito que haja problemas na seleção do banco de dados...

  • mês depois...
Postado
Ola Rafael Biagione

para tua sorte eu tenho esses arquivos funcionando perfeitamente, hehe

o teu funcoes.php, esta correto

no teu atividades.php que tem alguns "erros", vou te mostrar eles depois vou colocar o meu arquivo inteiro, caso ainda não de certo

1° - na sua linha 18, voce colocou contato, mas tem que colocar entre aspas simples, assim 'contato'.

2° - no seu arquivo na linha 33

}elseif(isset($_POST['acao']) && $_POST['acao'] == 'gravar'){

não é 'gravar' é 'deletar'.

3° -na linha 45

if(isset($_POST['acao']) && $_POST['acao'] == 'gravar'){

não é 'gravar' é 'alterar'.

4° - na linha 49 até a 77 você usa um echo que no meu arquivo eu nao fiz isso.

eu fiz assim


<?php
if(isset($_POST['acao'])&& $_POST['acao'] == 'alterar'){
$id = $_POST['id'];
$up = $conecta->seleciona("SELECT * FROM contato WHERE Id = $id");
$obj = mysql_fetch_array ($up);
?>
<table cellpadding="4" cellspacing="4" width="500" border="0">
<form name="formClass" action="" method="post" enctype="multipart/form-data">
<tr>
<td>Nome:</td>
<td><input type="text" name="nome" size="30" value="<?php echo $obj['nome']; ?>" /></td>
</tr>
<tr>
<td>Email:</td>
<td><input type="text" name="email" size="30" value="<?php echo $obj['email']; ?>" /></td>
</tr>
<tr>
<td>Cidade:</td>
<td><input type="text" name="cidade" size="30" value="<?php echo $obj['cidade']; ?>" /></td>
</tr>
<tr>
<td>
<input type="hidden" name="acao" value="update" /></td>
<input type="hidden" name="id" value="<?php echo $obj['id']; ?>" />
</td>
<td><input type="submit" name="submit" value="update" /></td>
</tr>
</form>
</table>
<br />
<?php
}
else{
?>

5° - na linha 119 você colocou value como del e é deletar

a principio foi esses erros que encontrei

mas segue os meus arquivos que estão funcionando perfeitamente

atividades.php


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<?php
include 'funcoes.php';
$conecta = new recordset();
$conecta->conexao();
?>
<?php
if(isset($_POST['acao'])&& $_POST['acao'] == 'update'){
$tabela = "contato";
$id = $_POST['id'];
$string = "Id = $id";
$dados = array('nome'=>$_POST['nome'], 'email'=>$_POST['email'], 'cidade'=>$_POST['cidade']);
$conecta->alterar($tabela, $dados, $string);
unset($_POST['acao']);
echo 'Dados alerados com sucesso';
}
?>
<?php
if(isset($_POST['acao'])&& $_POST['acao'] == 'gravar'){
$tabela = "contato";
$nome = $_POST['nome'];
$email = $_POST['email'];
$cidade = $_POST['cidade'];

$dados = array('nome'=>$nome, 'email'=>$email, 'cidade'=>$cidade);
$conecta->inserir($tabela, $dados);
echo 'Seus dados foram gravados';
}
else if(isset($_POST['acao'])&& $_POST['acao'] == 'deletar'){
$id = $_POST['id'];
$conecta->seleciona("DELETE FROM contato WHERE Id= $id");
echo 'arquivo deletado com sucesso';
}
?>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Atividade PHP - Class</title>
</head>

<body>
<?php
if(isset($_POST['acao'])&& $_POST['acao'] == 'alterar'){
$id = $_POST['id'];
$up = $conecta->seleciona("SELECT * FROM contato WHERE Id = $id");
$obj = mysql_fetch_array ($up);
?>
<table cellpadding="4" cellspacing="4" width="500" border="0">
<form name="formClass" action="" method="post" enctype="multipart/form-data">
<tr>
<td>Nome:</td>
<td><input type="text" name="nome" size="30" value="<?php echo $obj['nome']; ?>" /></td>
</tr>
<tr>
<td>Email:</td>
<td><input type="text" name="email" size="30" value="<?php echo $obj['email']; ?>" /></td>
</tr>
<tr>
<td>Cidade:</td>
<td><input type="text" name="cidade" size="30" value="<?php echo $obj['cidade']; ?>" /></td>
</tr>
<tr>
<td>
<input type="hidden" name="acao" value="update" /></td>
<input type="hidden" name="id" value="<?php echo $obj['id']; ?>" />
</td>
<td><input type="submit" name="submit" value="update" /></td>
</tr>
</form>
</table>
<br />
<?php
}
else{
?>
<table cellpadding="4" cellspacing="4" width="500" border="0">
<form name="formClass" action="" method="post" enctype="multipart/form-data">
<tr>
<td>Nome:</td>
<td><input type="text" name="nome" size="30" /></td>
</tr>
<tr>
<td>Email:</td>
<td><input type="text" name="email" size="30" /></td>
</tr>
<tr>
<td>Cidade:</td>
<td><input type="text" name="cidade" size="30" /></td>
</tr>
<tr>
<td><input type="hidden" name="acao" value="gravar" /></td>
<td><input type="submit" name="submit" value="enviar" /></td>
</tr>
</form>
</table>
<?php
}
?>
<br />

<table cellpadding="4" cellspacing="4" width="650" border="0">
<?php
$res = $conecta->seleciona("SELECT * FROM contato");
while($list = mysql_fetch_array($res)){
?>
<tr bgcolor="#ebebeb">
<td>Nome:<?php echo $list['nome']; ?></td>
<td>Email:<?php echo $list['email']; ?></td>
<td>Cidade:<?php echo $list['cidade']; ?></td>
<td>
<form name="form" method="post" enctype="multipart/form-data" action="">
<input type="hidden" name="acao" value="deletar" />
<input type="hidden" name="id" value="<?php echo $list['id']; ?>" />
<input type="submit" name="submit" value="deletar" />
</form>
</td>
<td>
<form name="form" method="post" enctype="multipart/form-data" action="">
<input type="hidden" name="acao" value="alterar" />
<input type="hidden" name="id" value="<?php echo $list['id']; ?>" />
<input type="submit" name="submit" value="alterar" />
</form>
</td>
</tr>
<?php
}
?>
</table>
<br /><br />


</body>
</html>


funcoes.php


<?php
//Criar a Class
class recordset{
//Declarar varias publicas
public $banco = 'upinside';
public $usuario = 'root';
public $senha = '12345';
public $hostname = 'localhost';

//função para conectar com o banco de dados
function conexao(){
$conn = mysql_connect($this->hostname, $this->usuario, $this->senha);
mysql_select_db($this->banco) or die ('Nao foi possivel conectar com o banco'.mysql_error());

mysql_query("SET NAMES 'utf8'");
mysql_query("SET character_set_connection=utf8");
mysql_query("SET character_set_client=utf8");
mysql_query("SET character_set_results=utf8");
}

//Função para selecionar os dados do banco
function seleciona($sql){
$result = mysql_query($sql) or die ('Nao foi possivel conectar');
return $result;
}
//Inserir dados
function inserir($tabela, $dados){
//Pegar campos da array
$arrCampo = array_keys($dados);
//Pega valores da array
$arrValores = array_values($dados);
//Contar os campos da array
$numCampo = count($arrCampo);
// Contar os valores da array
$numValores = count($arrValores);
//Validação dos Campos
if($numCampo == $numValores){
$SQL = "INSERT INTO ".$tabela."(";
foreach($arrCampo as $campo){
$SQL .= "$campo, ";
}
$SQL = substr_replace($SQL, ")", -2,1);
$SQL .=" VALUES (";
foreach($arrValores as $valores){
$SQL .= "'".$valores."', ";
}
$SQL = substr_replace($SQL, ")", -2,1);
}
else{
echo 'Erro ao checar os valores';
}
$this->seleciona($SQL);
}
//Alterar dados
function alterar($tabela, $dados, $string){
//Pegar campos da array
$arrCampo = array_keys($dados);
//Pega valores da array
$arrValores = array_values($dados);
//Contar os campos da array
$numCampo = count($arrCampo);
// Contar os valores da array
$numValores = count($arrValores);
// Construção da string
if($numCampo == $numValores && $numValores > 0){
$SQL = "UPDATE ".$tabela." SET ";
for($i = 0; $i < $numCampo; $i++){
$SQL .= $arrCampo[$i]." = '".$arrValores[$i]."',";
}
$SQL = substr_replace($SQL, " ", -1,1);
$SQL .= "WHERE $string";
}
else{
echo 'Erro ao checar o update';
}
$this->seleciona($SQL);
}
}
?>

Olá

Estou testando esta aplicação. O código que deixou disponível está acusando este erro:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1

Tanto para deletar quanto para update. A gravação está OK. Saberia me dizer do que se trata? Me parece que o erro esta na linha SQL do DELETE e do UPDATE

Postado
Terminei o sistema.

Só que não está funcionando 100%.

Quando vou finalizar a compra, não sou redirecionado para o site do PagSeguro... Acredito que haja problemas na seleção do banco de dados...

Você fez as duas ultimas aulas da Upinsede? que é a integração com o pagseguro

esta dando algum erro? o que esta acontecendo?

antes de mais nada é necessario habilitar a biblioteca cURL para poder fazer a integração, aqui mostra como fazer

http://blog.thiagobelem.net/tutorial-basico-de-curl-instalacao-configuração-e-uso/

Estou testando esta aplicação. O código que deixou disponível está acusando este erro:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1

Tanto para deletar quanto para update. A gravação está OK. Saberia me dizer do que se trata? Me parece que o erro esta na linha SQL do DELETE e do UPDATE

não sei exatamente o que pode ser isso, tu tambem esta seguindo as aulas da Upinside? esse erro deve estar relacionado a sintaxe do mysql, deve estar errado alguma coluna no banco ou algo do tipo, como você montou o banco e a tabela?

Postado

Olá. O banco e a tabela está ok. Conforme as aulas da UpInside orientam.

Estou usando as seguintes versões

Apache Version : 2.2.17

PHP Version : 5.3.5

MySQL Version : 5.5.8

E, o erro parece ser na linha: DELETE FROM contato WHERE Id = $id

Se eu coloco entre aspas simples a variavel $id = '$id'... Ele acusa que foi deletado, apesar de não deletar.

Postado
Olá. O banco e a tabela está ok. Conforme as aulas da UpInside orientam.

Estou usando as seguintes versões

Apache Version : 2.2.17

PHP Version : 5.3.5

MySQL Version : 5.5.8

E, o erro parece ser na linha: DELETE FROM contato WHERE Id = $id

Se eu coloco entre aspas simples a variavel $id = '$id'... Ele acusa que foi deletado, apesar de não deletar.

Olá. Caso puderem me ajudar, procurei pelo erro neste código centenas de vezes, pensando nisso, vou disponibilizar o código para darem uma olhada. https://www.dropbox.com/sh/b2b7uoqivfjy2cl/qeppepoelq Me digam que estão vendo o erro?

Postado

lfl1984

o 2 arquivos teu nao estão iguais ao meu, o meu esta funcionando pelo menos aqui no meu pc, e em todos os pc que testei

nao sei o porque dos erros, então vou postar os 2 arquivos aqui

funcoes.php


<?php
//Criar a Class
class recordset{
//Declarar varias publicas
public $banco = 'upinside';
public $usuario = 'root';
public $senha = '12345';
public $hostname = 'localhost';

//função para conectar com o banco de dados
function conexao(){
$conn = mysql_connect($this->hostname, $this->usuario, $this->senha);
mysql_select_db($this->banco) or die ('Nao foi possivel conectar com o banco'.mysql_error());

mysql_query("SET NAMES 'utf8'");
mysql_query("SET character_set_connection=utf8");
mysql_query("SET character_set_client=utf8");
mysql_query("SET character_set_results=utf8");
}

//Função para selecionar os dados do banco
function seleciona($sql){
$result = mysql_query($sql) or die ('Nao foi possivel conectar');
return $result;
}
//Inserir dados
function inserir($tabela, $dados){
//Pegar campos da array
$arrCampo = array_keys($dados);
//Pega valores da array
$arrValores = array_values($dados);
//Contar os campos da array
$numCampo = count($arrCampo);
// Contar os valores da array
$numValores = count($arrValores);
//Validação dos Campos
if($numCampo == $numValores){
$SQL = "INSERT INTO ".$tabela."(";
foreach($arrCampo as $campo){
$SQL .= "$campo, ";
}
$SQL = substr_replace($SQL, ")", -2,1);
$SQL .=" VALUES (";
foreach($arrValores as $valores){
$SQL .= "'".$valores."', ";
}
$SQL = substr_replace($SQL, ")", -2,1);
}
else{
echo 'Erro ao checar os valores';
}
$this->seleciona($SQL);
}
//Alterar dados
function alterar($tabela, $dados, $string){
//Pegar campos da array
$arrCampo = array_keys($dados);
//Pega valores da array
$arrValores = array_values($dados);
//Contar os campos da array
$numCampo = count($arrCampo);
// Contar os valores da array
$numValores = count($arrValores);
// Construção da string
if($numCampo == $numValores && $numValores > 0){
$SQL = "UPDATE ".$tabela." SET ";
for($i = 0; $i < $numCampo; $i++){
$SQL .= $arrCampo[$i]." = '".$arrValores[$i]."',";
}
$SQL = substr_replace($SQL, " ", -1,1);
$SQL .= "WHERE $string";
}
else{
echo 'Erro ao checar o update';
}
$this->seleciona($SQL);
}
}
?>

atividades.php


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<?php
include 'funcoes.php';
$conecta = new recordset();
$conecta->conexao();
?>
<?php
if(isset($_POST['acao'])&& $_POST['acao'] == 'update'){
$tabela = "contato";
$id = $_POST['id'];
$string = "Id = $id";
$dados = array('nome'=>$_POST['nome'], 'email'=>$_POST['email'], 'cidade'=>$_POST['cidade']);
$conecta->alterar($tabela, $dados, $string);
unset($_POST['acao']);
echo 'Dados alerados com sucesso';
}
?>
<?php
if(isset($_POST['acao'])&& $_POST['acao'] == 'gravar'){
$tabela = "contato";
$nome = $_POST['nome'];
$email = $_POST['email'];
$cidade = $_POST['cidade'];

$dados = array('nome'=>$nome, 'email'=>$email, 'cidade'=>$cidade);
$conecta->inserir($tabela, $dados);
echo 'Seus dados foram gravados';
}
else if(isset($_POST['acao'])&& $_POST['acao'] == 'deletar'){
$id = $_POST['id'];
$conecta->seleciona("DELETE FROM contato WHERE Id= $id");
echo 'arquivo deletado com sucesso';
}
?>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Atividade PHP - Class</title>
</head>

<body>
<?php
if(isset($_POST['acao'])&& $_POST['acao'] == 'alterar'){
$id = $_POST['id'];
$up = $conecta->seleciona("SELECT * FROM contato WHERE Id = $id");
$obj = mysql_fetch_array ($up);
?>
<table cellpadding="4" cellspacing="4" width="500" border="0">
<form name="formClass" action="" method="post" enctype="multipart/form-data">
<tr>
<td>Nome:</td>
<td><input type="text" name="nome" size="30" value="<?php echo $obj['nome']; ?>" /></td>
</tr>
<tr>
<td>Email:</td>
<td><input type="text" name="email" size="30" value="<?php echo $obj['email']; ?>" /></td>
</tr>
<tr>
<td>Cidade:</td>
<td><input type="text" name="cidade" size="30" value="<?php echo $obj['cidade']; ?>" /></td>
</tr>
<tr>
<td>
<input type="hidden" name="acao" value="update" /></td>
<input type="hidden" name="id" value="<?php echo $obj['id']; ?>" />
</td>
<td><input type="submit" name="submit" value="update" /></td>
</tr>
</form>
</table>
<br />
<?php
}
else{
?>
<table cellpadding="4" cellspacing="4" width="500" border="0">
<form name="formClass" action="" method="post" enctype="multipart/form-data">
<tr>
<td>Nome:</td>
<td><input type="text" name="nome" size="30" /></td>
</tr>
<tr>
<td>Email:</td>
<td><input type="text" name="email" size="30" /></td>
</tr>
<tr>
<td>Cidade:</td>
<td><input type="text" name="cidade" size="30" /></td>
</tr>
<tr>
<td><input type="hidden" name="acao" value="gravar" /></td>
<td><input type="submit" name="submit" value="enviar" /></td>
</tr>
</form>
</table>
<?php
}
?>
<br />

<table cellpadding="4" cellspacing="4" width="650" border="0">
<?php
$res = $conecta->seleciona("SELECT * FROM contato");
while($list = mysql_fetch_array($res)){
?>
<tr bgcolor="#ebebeb">
<td>Nome:<?php echo $list['nome']; ?></td>
<td>Email:<?php echo $list['email']; ?></td>
<td>Cidade:<?php echo $list['cidade']; ?></td>
<td>
<form name="form" method="post" enctype="multipart/form-data" action="">
<input type="hidden" name="acao" value="deletar" />
<input type="hidden" name="id" value="<?php echo $list['id']; ?>" />
<input type="submit" name="submit" value="deletar" />
</form>
</td>
<td>
<form name="form" method="post" enctype="multipart/form-data" action="">
<input type="hidden" name="acao" value="alterar" />
<input type="hidden" name="id" value="<?php echo $list['id']; ?>" />
<input type="submit" name="submit" value="alterar" />
</form>
</td>
</tr>
<?php
}
?>
</table>
<br /><br />


</body>
</html>

Postado

IMPOSSIVEL. Copie o código que gentilmente disponibilizou. Apenas a inserção funciona. Delete e Update Dá Erro de Conexão no SELECIONA. Os códigos que disponibilizei acima, ao menos funcionam o INSERIR, DELETAR e o UPDATE apenas o resgate das informações a atualização não funciona. Ja tem quase um ano vire e volta pego esse código para aprendizado, mas não funciona.

Postado
IMPOSSIVEL. Copie o código que gentilmente disponibilizou. Apenas a inserção funciona. Delete e Update Dá Erro de Conexão no SELECIONA. Os códigos que disponibilizei acima, ao menos funcionam o INSERIR, DELETAR e o UPDATE apenas o resgate das informações a atualização não funciona. Ja tem quase um ano vire e volta pego esse código para aprendizado, mas não funciona.

Não vou poder te ajudar nessa, pois os arquivos que postei estão funcionando, eu nao modifiquei nada, fui apenas seguindo as aulas, talvez o erro esteja no seu banco, talvez a versao, ou o proprio comando para criação da tabela, eu criei a minha assim


CREATE TABLE contato (

id int(10) NOT NULL auto_increment,

nome varchar(50) default NULL,

email varchar(255) default NULL,

cidade varchar(255) default NULL,

PRIMARY KEY (id)

) ENGINE=InnoDB DEFAULT CHARSET=latin1;

  • 2 semanas depois...
Postado

Cara estou terminando isso, consegui enviar os dados para o pagseguro numa boa


/*
************************************************************************
Copyright [2011] [PagSeguro Internet Ltda.]

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

[url]http://www.apache.org/licenses/LICENSE-2.0[/url]

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
************************************************************************
*/




require_once "../PagSeguroLibrary/PagSeguroLibrary.php";

/**
* Class with a main method to illustrate the usage of the domain class PagSeguroPaymentRequest
*/
class createPaymentRequest {

public static function main () {

// Instantiate a new payment request
$paymentRequest = new PagSeguroPaymentRequest();

// Sets the currency
$paymentRequest->setCurrency("BRL");


include"../../conn.php";
$sessao = $_POST['sessao'];
$sql="SELECT * FROM tbl_carrinho WHERE sessao ='$sessao'";
$resultado=mysql_query($sql)or die (mysql_error()) ;
while($query = mysql_fetch_array($resultado)){
$id = $query['id'];
$titulo = $query['titulo'];
$preco = $query['preco'];
$qtd= $query['qtd'];
// Add an item for this payment request

$paymentRequest->addItem($id, $titulo, $qtd, $preco);
}

// Sets a reference code for this payment request, it is useful to identify this payment in future notifications.
$paymentRequest->setReference("REF1234");

// Sets shipping information for this payment request
$CODIGO_SEDEX = PagSeguroShippingType::getCodeByType('SEDEX');
$paymentRequest->setShippingType($CODIGO_SEDEX);

$id_end = $_POST['id'];$rua = $_POST['rua'];$cep = $_POST['cep'];$numero = $_POST['numero'];$bairro = $_POST['bairro'];$cidade = $_POST['cidade'];$estado= $_POST['estado'];//$apto= $_POST['apto'];

$paymentRequest->setShippingAddress($cep, $rua, $numero, 'apto', $bairro, $cidade, $estado, 'BRA');

$nome= $_POST['nome'];$email= $_POST['email'];$tel= $_POST['tel'];$ddd_tel= $_POST['ddd_tel'];
// Sets your customer information.
$paymentRequest->setSender($nome, $email, $ddd_tel, $tel);

$paymentRequest->setRedirectUrl("http://www.lojamodelo.com.br");

try {

/*
* #### Crendencials #####
* Substitute the parameters below with your credentials (e-mail and token)
* You can also get your credentails from a config file. See an example:
* $credentials = PagSeguroConfig::getAccountCredentials();
*/
$credentials = new PagSeguroAccountCredentials("[email protected]", "08A5E2737F66432EA032FEC16D144154");


// Register this payment request in PagSeguro, to obtain the payment URL for redirect your customer.
$url = $paymentRequest->register($credentials);

self::printPaymentUrl($url);

} catch (PagSeguroServiceException $e) {
die($e->getMessage());
}

}

public static function printPaymentUrl($url) {
if ($url) {
header('Location:'.$url.'');

}
}

}

createPaymentRequest::main();

?>
<?php

O codigo recebe as variaveis no metodo POST e envia para a /PagSeguroLibrary/PagSeguroLibrary.php ;)

espero ter ajudado !

Arquivado

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

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...