Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] Jak zabezpieczyć skrypt exportujący do csv
Forum PHP.pl > Forum > PHP
kukix
Witam.

Przygotowuje własnie skrypt exportujący dane do pliku csv.


  1. <?php
  2. $nowe_dane = '';
  3. $wynik = sql("SELECT * FROM ".$dbprefix."prod");
  4. while ($row = mysql_fetch_assoc($wynik)) {
  5. $nowe_dane .= $row['id'].';'.addslashes($row['nazwa']).';'.$row['param1'].';'.$row['param2'].'' /n';
  6. }
  7. $fp = fopen('plik.csv', "w");
  8.  
  9. fputs($fp, $nowe_dane);
  10.  
  11. fclose($fp);
  12.  
  13. print('Export zostałwykonany);
  14. ?>



O czym powinienem pamiętać tworząc taki plik?

Co sie stanie, gdy w tekscie z bazy bedzie znak ";" ?
czy addslashes() albo htmlentities() wystarczy w tym przypadku?

Bardzo proszę o podpowiedź.
Będe bardzo wdzięczny za wszelkie wypowiedzi.
koodlaty
Cytat
O czym powinienem pamiętać tworząc taki plik?

Co sie stanie, gdy w tekscie z bazy bedzie znak ";" ?

Nic się nie stanie, najwyżej będziesz miał "rozjechany" plik csv smile.gif. Wszystko zależy jaki będzie później ceesfała interpreter. Jeśli obawiasz się, że dane zawierać mogą znaki, które mogą spowodować konflikt z separatorem - użyj innego, nawet bardziej złożonego (mniej prawdopodobnego) np: "|^|". Możesz też zapisywać znak separatora w ASCII albo dodać do niego slash, cudzysłowie lub cokolwiek innego co potem będzie odpowiednio interpretowane przy czytaniu danych. Jeśli nie ma przeciwwskazań - skomplikował bym separator.

PS Ohydny masz awatar smile.gif
kukix
Udało mi się usunąc wszystkie znaki ";" z nazwy i innych pól za pomoca malej funckji

  1. <?php
  2. function del($del) { 
  3. $del = str_replace(';','',$del); return $del;
  4. }
  5. ?>

Problem jest jednak z znakami nowej lini ... w miejscach, gdzie mam dane z pola <TEXTAREA> i ktoś dał enter, w pliku csv w tym miejscu daje znak nowej lini.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.