Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php] Jak zabezpieczyć skrypt exportujący do csv, addslashes(). htmlentities() ? czy jeszcze coś?
kukix
post
Post #1





Grupa: Zarejestrowani
Postów: 600
Pomógł: 2
Dołączył: 1.09.2002
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
koodlaty
post
Post #2





Grupa: Zarejestrowani
Postów: 118
Pomógł: 3
Dołączył: 6.07.2006
Skąd: Dublin

Ostrzeżenie: (0%)
-----


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 (IMG:http://forum.php.pl/style_emoticons/default/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 (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Ten post edytował koodlaty 27.06.2008, 07:28:55
Go to the top of the page
+Quote Post
kukix
post
Post #3





Grupa: Zarejestrowani
Postów: 600
Pomógł: 2
Dołączył: 1.09.2002
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


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.

Ten post edytował kukix 27.06.2008, 11:18:05
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 24.08.2025 - 17:20