<pedrocorreia.net ⁄>
corner
<mySearch ⁄> <mySearch ⁄>

corner
 
corner
<mySnippets order="rand" ⁄> <mySnippets order="rand" ⁄>

corner
 
corner
<myContacts ⁄> <myContacts ⁄>

<email ⁄>


pc@pedrocorreia.net

<windows live messenger ⁄>


pedrojacorreia@hotmail.com

<myCurriculum type="pdf" ⁄>


Download
corner
 
corner
<myBlog show="last" ⁄> <myBlog show="last" ⁄>

corner
 
corner
<myNews show="rand" ⁄> <myNews show="rand" ⁄>

corner
 
corner
<myNews type="cat" ⁄> <myNews type="cat" ⁄>

corner
 
corner
<myQuote order="random" ⁄> <myQuote order="random" ⁄>

corner
 
corner
<myPhoto order="random" ⁄> <myPhoto order="random" ⁄>

<pedrocorreia.net ⁄>
corner
 
corner
<myAdSense ⁄> <myAdSense ⁄>

corner
 
corner
<myVisitorsMap ⁄> <myVisitorsMap ⁄>

corner
 
 

<Guardar informação num ficheiro CSV ⁄ >




clicks: 12173 12173 2007-06-24 2007-06-24 goto mySnippets mySnippets php  Download  Bookmark This Bookmark This



Aqui vai um snippet simples e rápido. O objectivo é tentar demonstrar uma maneira de armazenar valores num ficheiro csv (poderá ser outro formato qualquer de plain text, para isso só basta configurar o delimitador), num snippet anterior tinha demonstrado como poderia ser lido um ficheiro csv, poderão por isso usar estes 2 snippets em conjunto, complementado-se um ao outro.

Para exemplificar melhor, este snippet vai usar um formulário como input de dados, no entanto a função poderá ser usado de outra maneira qualquer, visto que apenas recebe variáveis e processa-as, logo é indiferente se a sua proveniencia é um formulário ou outro tipo qualquer de fonte de dados.

nota: visto que não era o objectivo deste snippet, não é feito qualquer tipo validação dos dados do formulário (poderão ver este snippet que exibe alguns exemplos de como fazer a validação), porém claro que é muito importante fazer essa validação, tanto a nivel do cliente, como do servidor!

nota: o ficheiro csv ou a pasta terão de ter correctamente configuradas as permissões de escrita;



Vamos usar 2 ficheiros: funcoes.php e index.php

- funcoes.php
  1. <?php
  2. //nome do ficheiro csv
  3. define("CSV_FILENAME","pedidos.csv");
  4.  
  5. /**
  6. * Construir formulário
  7. *
  8. * @return String
  9. */
  10. function BuildForm(){
  11. return "
  12. <form id='frmSubmit' name='frmSubmit' method='post'>
  13. <fieldset><legend>Formulário de Pedido de Informações</legend>
  14. <label for='nome' title='Nome'>Nome</label>
  15. <input type='text' name='nome' size='30'>
  16. &nbsp;
  17. <label for='email' title='E-mail'>E-mail</label>
  18. <input type='text' name='email' size='25'>
  19. &nbsp;
  20. <label for='arte_marcial' title='Arte Marcial'>Arte Marcial</label>
  21. <select name='arte_marcial'>
  22. <optgroup label='Japonesa'>
  23. <option value='Aikido'>Aikido</option>
  24. <option value='Kendo'>Kendo</option>
  25. <option value='Sumo'>Sumo</option>
  26. <option value='Shurikenjutsu'>Shurikenjutsu</option>
  27. </optgroup>
  28. <optgroup label='Chinesa'>
  29. <option value='TaiChiChuan'>Tai chi chuan</option>
  30. <option value='ShaolinKungFu'>Shaolin kung fu</option>
  31. <option value='ShuaiJiao'>Shuai Jiao</option>
  32. <option value='WingChun'>Wing Chun</option>
  33. </optgroup>
  34. <optgroup label='Coreana'>
  35. <option value='Taekwondo'>Taekwondo</option>
  36. <option value='Hapkido'>Hapkido</option>
  37. <option value='Taekyon'>Taekyon</option>
  38. <option value='Soobak'>Soobak</option>
  39. </optgroup>
  40. </select>
  41. <br>
  42. <label for='observacoes' title='Observações adicionais'>Observações Adicionais</label>
  43. <textarea cols='55' rows='5' name='observacoes' id='observacoes' title='Observações Adicionais'></textarea>
  44. <br><br>
  45. <input type='submit' value='Efectuar Pedido' name='accao' id='accao'>
  46. </fieldset>
  47. </form>
  48. ";
  49. }
  50.  
  51. /**
  52. * Guardar informação no ficheiro
  53. *
  54. * @param String $path
  55. * @param String $file
  56. * @param String $content
  57. * @param String $mode
  58. * @return bool
  59. */
  60. function SaveContentToFile($path,$file,$content,$mode="a"){
  61. if(right($path,1)!="/") $path.="/";
  62. $file = $path.$file;
  63. if (!$file_handle = fopen($file,$mode)) {return false;}
  64. if (!fwrite($file_handle, $content)) {return false;}
  65. @fclose($file_handle);
  66. return true;
  67. }
  68.  
  69. /**
  70. * Converter para formato CSV
  71. *
  72. * @return bool
  73. */
  74. function Add(){
  75. $count=func_num_args();
  76. for($i=0;$i<$count;$i++){
  77. $var=func_get_arg($i);
  78. $txt="";
  79. if(is_array($var)){
  80. foreach($var as $value){
  81. $txt.=FormatStringCsv($value);
  82. }
  83. }
  84. else{
  85. $txt.=FormatStringCsv($var);
  86. }
  87.  
  88. $csv.=$txt;
  89. }
  90. $csv.="\r\n";
  91. return SaveContentToFile(".",CSV_FILENAME,$csv);
  92. }
  93.  
  94.  
  95. /**
  96. * Formatar conteúdo
  97. * @param String $str
  98. * @return String
  99. */
  100. function FormatStringCsv($str){
  101. $str = trim($str);
  102. $str = str_replace("\n", " ", $str);
  103. $str = str_replace("\r", " ", $str);
  104.  
  105. $str=(!strchr($str,";"))?$str:"\"$str\"";
  106. return $str.";";
  107. }
  108.  
  109. /**
  110. * Obter parte direita de uma string
  111. *
  112. * @param String $str
  113. * @param int $howManyCharsFromRight
  114. * @return String
  115. */
  116. function right ($str, $howManyCharsFromRight){
  117. $strLen = strlen ($str);
  118. return substr ($str, $strLen - $howManyCharsFromRight, $strLen);
  119. }
  120. ?>



- index.php
  1. <?php
  2. include_once("funcoes.php");
  3. $accao=$_POST["accao"];
  4. ?>
  5. <html>
  6. <head>
  7. <title>Formulário de Pedido de Informações</title>
  8. <style type="text/css">
  9. label {font-family: Tahoma, Verdana; font-size: 11px;vertical-align:top;}
  10. input{font-family: Tahoma, Verdana; font-size: 11px;}
  11. legend {font-family: Verdana, Tahoma; font-size: 14px;font-weight:bold;text-decoration: underline;}
  12. fieldset {width:620px;}
  13. </style>
  14. </head>
  15. <body>
  16. <?php
  17. if(!$accao){
  18. echo BuildForm();
  19. }
  20. else{
  21. //podemos guardar variáveis "simples"
  22. if(Add($_POST["nome"],$_POST["email"],$_POST["arte_marcial"],$_POST["observacoes"])){
  23. echo "Obrigado pelo pedido ...";
  24. }
  25. //ou arrays
  26. if(Add($_POST)){
  27. echo "<br>Obrigado pelo pedido ...";
  28. }
  29. //ou variáveis "simples" e arrays
  30. if(Add($_POST["nome"],$_POST["email"],$_POST["arte_marcial"],$_POST["observacoes"],$_POST)){
  31. echo "<br>Obrigado pelo pedido ...";
  32. }
  33. }
  34. ?>
  35. </body>
  36. </html>




Qualquer erro/ dúvida é só dizer!









clicks: 12173 12173 2007-06-24 2007-06-24 goto mySnippets mySnippets php  Download  Bookmark This Bookmark This