← Tutoriais

[PHP] Simples Sistema de Doações via PayPal

Lida 9245 vezes

Offline

=IceBurn= 
Membro
Mensagens 897 Gostos 3
Feedback +3

Troféus totais: 32
Trófeus: (Ver todos)
Windows User Level 6 Linux User Mobile User Super Combination Combination Topic Starter Poll Voter Poll Starter Level 5

Há muito tempo que ninguem postava um tutorial, por isso elaborei este pequeno código para esta secção não perder o andamento! LoL

Uma forma simples mas eficaz de permitir aos utilizadores fazerem doações baseadas em valores fixos.

Basta fazer as configurações necessárias e está pronto a funcionar :)

Código: [Seleccione]
<?php
//////////////////////////////////////////////////////////
//    Simples Sistema em PHP para Doações via PayPal    //
//       * * *  Elaborado por =IceBurn=   * * *         //
// * * * * * * *   WWW.TENHAMEDO.NET  * * * * * * * *   //
//////////////////////////////////////////////////////////


##################### CONFIGURAÇÃO ########################

define &#40;"ASSUNTO",  
/*O texto que será mostrado como item*/
"Doação a www.teusite.com" 
&#41;; 

define &#40;"EMAIL",
/*O email associado á tua conta PayPal*/
"webmaster@teusite.com" 
&#41;; 

define &#40;"CANCELAR",
/*URL da página para onde o utilizador é redireccionado se cancelar a operação*/
"http&#58;//teusite.com/cancelado.php" 
&#41;; 

define &#40;"SUCESSO",
/*URL da página para onde o utilizador é redireccionado se efectuar a doação*/
"http&#58;//teusite.com/sucesso.php" 
&#41;;

define &#40;"MINIMO",
/*O valor mínimo de doação permitido em Euros*/
"5" 
&#41;; 

define &#40;"MAXIMO",
/*O valor máximo de doação permitido em Euros*/
"100" 
&#41;; 

########### A PARTIR DAQUI NÃO É NECESSÁRIO EDITAR ########



echo "<form action=\"https&#58;//www.paypal.com/row/cgi-bin/webscr\" method=\"post\">\n";

echo 
"<table width=\"100\" bgcolor=\"#01D52B\"  style=\"border&#58; solid blue 2px;\">\n";

echo 
"<tr><td bgcolor=\"blue\" align=\"center\" style=\"border&#58; solid white 1px;\">\n";

echo 
"<font color=\"white\" size=\"2\">Faça a sua doação!</font>\n";

echo 
"</td></tr>\n";

echo 
"<tr><td align=\"center\">\n";

echo 
"<select name=\"amount\">\n";

for &
#40;$v = MINIMO; $v < MAXIMO+1; $v++&#41; &#123;
echo  "<option value=\"".$v."\">&euro; ".$v.",00</option>\n";
&
#125;
echo "</select>\n";

echo 
"</td></tr>\n";

echo 
"<tr><td align=\"center\">\n";

echo 
"<input type=\"hidden\" name=\"cmd\" value=\"_xclick\">\n";
echo 
"<input type=\"hidden\" name=\"business\" value=\"".EMAIL."\">\n";
echo 
"<input type=\"hidden\" name=\"item_name\" value=\"".ASSUNTO."\">\n";
echo 
"<input type=\"hidden\" name=\"no_shipping\" value=\"2\">\n";
echo 
"<input type=\"hidden\" name=\"currency_code\" value=\"EUR\">\n";
echo 
"<input type=\"hidden\" name=\"return\" value=\"".SUCESSO."\">\n";
echo 
"<input type=\"hidden\" name=\"cancel_return\" value=\"".CANCELAR."\">\n";
echo 
"<input type=\"hidden\" name=\"no_note\" value=\"1\">\n";
echo 
"<input type=\"hidden\" name=\"currency_code\" value=\"EUR\">\n";
echo 
"<input type=\"hidden\" name=\"bn\" value=\"PP-DonationsBF\">\n";
echo 
"<input type=\"submit\" name=\"submit\" value=\"Submeter\">\n";
echo 
"</td></tr>\n";
echo 
"</table>\n";
echo 
"</form>\n";
?>


Votos de bons rendimentos :)
Offline

kingless 
Membro
Mensagens 857 Gostos 0
Troféus totais: 27
Trófeus: (Ver todos)
Super Combination Combination Topic Starter Poll Voter Poll Starter Level 5 Level 4 Level 3 Level 2 Level 1

Em vez de colocares  ".." coloca '...' para não teres que colocar  as barras \ porque isso só aumenta o tamanho do ficheiro e do código e deixa o código feio.
Offline

=IceBurn= 
Membro
Mensagens 897 Gostos 3
Feedback +3

Troféus totais: 32
Trófeus: (Ver todos)
Windows User Level 6 Linux User Mobile User Super Combination Combination Topic Starter Poll Voter Poll Starter Level 5

Citação de: "kingless"
Em vez de colocares  ".." coloca '...' para não teres que colocar  as barras \ porque isso só aumenta o tamanho do ficheiro e do código e deixa o código feio.


Sim, eu sei disso, mas agora repara, se entrares numa página com isto e quiseres ver o código fonte, da forma que eu utilizo vês o código todo alinhado, se fizesse como dizes, vias o código fonte todo seguido, sem "new line".
Ou seja,

Isto não funcionaria:
Código: [Seleccione]
<?php
echo 'teste\n';
?>


Mas isto já funciona da forma que pretendo:
Código: [Seleccione]
<?php
echo "teste\n";
?>


Por este motivo é que eu prefiro utilizar aspas duplas, e fazer sempre o \"escape\".
Claro, nem sempre o faço, tambem costumo utilizar '..' muitas vezes.
Mas é tudo uma questão de apresentação.

Algo aceitável seria tambem isto:
Código: [Seleccione]
<?php
echo "<a href='.....'>x</a>\n";
?>


Mas pronto é uma questão de hábito que me ficou desde que comecei a programar em php e como fiz isto para apresentar aqui como tutorial, quis prepositadamente que quando a pessoa visse o source code da página, visse uma coisa ordenada correctamente. Provalvelmente se fosse para eu utilizar, utilizaria apenas um print '......'; e pronto, tava o caso resolvido, mas assim....  :wink:
Offline

asturmas 
Administrador
Mensagens 19734 Gostos 50
Feedback +2

Troféus totais: 39
Trófeus: (Ver todos)
Mobile User Windows User Super Combination Combination Topic Starter 100 Poll Votes 50 Poll Votes 10 Poll Votes Poll Voter Poll Starter

ja agora tens 1 mini erro no scritp olha repara:


<?php
//////////////////////////////////////////////////////////
//    Simples Sistema em PHP para Doações via PayPal    //
//       * * *  Elaborado por =IceBurn=   * * *         //
// * * * * * * *   WWW.TENHAMEDO.NET  * * * * * * * *   //
//////////////////////////////////////////////////////////


##################### CONFIGURAÇÃO ########################

define ("ASSUNTO",
/*O texto que será mostrado como item*/
"Doação a www.teusite.com"
);

define ("EMAIL",
/*O email associado á tua conta PayPal*/
"webmaster@teusite.com"
);

define ("CANCELAR",
/*URL da página para onde o utilizador é redireccionado se cancelar a operação*/
"http://teusite.com/cancelado.php"
);

define ("SUCESSO",
/*URL da página para onde o utilizador é redireccionado se efectuar a doação*/
"http://teusite.com/sucesso.php"
);

define ("MINIMO",
/*O valor mínimo de doação permitido em Euros*/
"5"
);

define ("MAXIMO",
/*O valor máximo de doação permitido em Euros*/
"100"
);

########### A PARTIR DAQUI NÃO É NECESSÁRIO EDITAR ########



echo "<form action=\"https://www.paypal.com/row/cgi-bin/webscr\" method=\"post\">\n";

echo "<table width=\"100\" bgcolor=\"#01D52B\"  style=\"border: solid blue 2px;\">\n";

echo "<tr><td bgcolor=\"blue\" align=\"center\" style=\"border: solid white 1px;\">\n";

echo "<font color=\"white\" size=\"2\">Faça a sua doação!</font>\n";

echo "</td></tr>\n";

echo "<tr><td align=\"center\">\n";

echo "<select name=\"amount\">\n";

for ($v = MINIMO; $v < MAXIMO+1; $v++) {
echo  "<option value=\"".$v."\">&euro; ".$v.",00</option>\n";
}
echo "</select>\n";

echo "</td></tr>\n";

echo "<tr><td align=\"center\">\n";

echo "<input type=\"hidden\" name=\"cmd\" value=\"_xclick\">\n";
echo "<input type=\"hidden\" name=\"business\" value=\"".EMAIL."\">\n";
echo "<input type=\"hidden\" name=\"item_name\" value=\"".ASSUNTO."\">\n";
echo "<input type=\"hidden\" name=\"no_shipping\" value=\"2\">\n";
echo "<input type=\"hidden\" name=\"currency_code\" value=\"EUR\">\n";
echo "<input type=\"hidden\" name=\"return\" value=\"".SUCESSO."\">\n";
echo "<input type=\"hidden\" name=\"cancel_return\" value=\"".CANCELAR."\">\n";
echo "<input type=\"hidden\" name=\"no_note\" value=\"1\">\n";
echo "<input type=\"hidden\" name=\"currency_code\" value=\"EUR\">\n";
echo "<input type=\"hidden\" name=\"bn\" value=\"PP-DonationsBF\">\n";
echo "<input type=\"submit\" name=\"submit\" value=\"Submeter\">\n";
echo "</td></tr>\n";
echo "</table>\n";
echo "</form>\n";
?>



Tinhas trocado os endereços de ccancelar e sucesso..
cumps
Offline

=IceBurn= 
Membro
Mensagens 897 Gostos 3
Feedback +3

Troféus totais: 32
Trófeus: (Ver todos)
Windows User Level 6 Linux User Mobile User Super Combination Combination Topic Starter Poll Voter Poll Starter Level 5

Tens razão Asturmas, obrigado.
Já corrigi.
Offline

asturmas 
Administrador
Mensagens 19734 Gostos 50
Feedback +2

Troféus totais: 39
Trófeus: (Ver todos)
Mobile User Windows User Super Combination Combination Topic Starter 100 Poll Votes 50 Poll Votes 10 Poll Votes Poll Voter Poll Starter

De nada  8)
Offline

kingless 
Membro
Mensagens 857 Gostos 0
Troféus totais: 27
Trófeus: (Ver todos)
Super Combination Combination Topic Starter Poll Voter Poll Starter Level 5 Level 4 Level 3 Level 2 Level 1

@=IceBurn=

Eu sei que isto não funcionaria ->

Código: [Seleccione]

<?php
echo 'teste\n';
?>



Da mesma forma que uma variavel não funcionaria

Código: [Seleccione]

<?php
$var 
'bbb';
echo 
'$var\n';
?>



Mas existem varias formas de se revolver este problema vou mostrar aqui alguns exemplos

Código: [Seleccione]

<?php
echo '<form action="" method="">'"\n";
echo 
'<input type="text" name="teste">'"\n";
....
// Em vez de se tar a meter um monte de barras \ \
?>



OU:


Código: [Seleccione]

<?php
$var 
= array&#40;&#41;;
$var[&#93; = '<form action="" method="POST">';
$var[&#93; = '<input type="text" name="teste">';
....
$var join&#40; "\n", $var &#41;;

echo $var;
?>

Offline

=IceBurn= 
Membro
Mensagens 897 Gostos 3
Feedback +3

Troféus totais: 32
Trófeus: (Ver todos)
Windows User Level 6 Linux User Mobile User Super Combination Combination Topic Starter Poll Voter Poll Starter Level 5

Ou então (Voltando a bater na mesma tecla):
Código: [Seleccione]
<php
echo "<input name=\"teste\" type=\"text\" />\n";
?>

LoL


Kingless, são apenas formas diferentes que produzem os mesmos resultados, é tudo uma questão hábito.

Não é coisa que se possa dizer que desta forma está errado e da outra está correcto, é aí que eu quero chegar.

Mas claro, é sempre bom referir esses promenores, assim, para quem não sabe sempre vai aprendendo mais alguma coisa. ;)
Offline

kingless 
Membro
Mensagens 857 Gostos 0
Troféus totais: 27
Trófeus: (Ver todos)
Super Combination Combination Topic Starter Poll Voter Poll Starter Level 5 Level 4 Level 3 Level 2 Level 1

Citar

Não é coisa que se possa dizer que desta forma está errado e da outra está correcto, é aí que eu quero chegar.

Não disse que estava errado, só disse que em vez de colocares  "..." para colocares '...' para não teres que colocar as barras \ \ porque isto estraga o aspecto do código e só aumenta o tamanho do código.

Foi apenas uma sugestão não queria que levasses a mal isto.
Offline

=IceBurn= 
Membro
Mensagens 897 Gostos 3
Feedback +3

Troféus totais: 32
Trófeus: (Ver todos)
Windows User Level 6 Linux User Mobile User Super Combination Combination Topic Starter Poll Voter Poll Starter Level 5

Não levei a mal Kingless, como referi, até é bom que as pessoas fiquem a par de outras possibilidades e métodos de 'codar' em php.  :wink: