Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Ustawianie danych połączeniowych bazy z formularza.
szubi95
post 22.09.2014, 22:11:49
Post #1





Grupa: Zarejestrowani
Postów: 30
Pomógł: 0
Dołączył: 3.06.2012

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


Witam wszystkich!

Jakiś czas temu, pytałem który format jest lepszy do przechowywanie danych połączeniowych z bazą: json, xml, ini, czy zwykły php.
Dzisiaj na szybko naskrobałem pseudo klasę(zarys, bez sprawdzania poprawności danych i kilku innych rzeczy). Czy mógłby mi ktoś powiedzieć, czy pomysł jest dobry, czy można by w jakiś inny sposób zapisywać same dane np. do istniejącej już tablicy. tzn:

Mamy plik config.php a w nim:

  1. <?php
  2.  
  3. $data['host'] = ' ';
  4. $data['user'] = ' ';


i teraz w miejsce pustych apostrofów dodawać bezpośrednio dane konfiguracyjne.

Cała koncepcja tyczy się, tak jak wspomniałem w temacie instalacji jakiegoś systemu ze strony poprzez formularz, bez grzebania w plikach.

A tak napisałem obecnie(cały plik nadpisywany jak widać):

  1.  
  2. <?php
  3.  
  4. class DbData
  5. {
  6. private $fileName;
  7. private $host;
  8. private $user;
  9. private $password;
  10. private $database;
  11. private $config;
  12.  
  13. public function __construct($host, $user, $password, $database)
  14. {
  15. $this->setHost($host);
  16. $this->setUser($user);
  17. $this->setPassword($password);
  18. $this->setDatabase($database);
  19. $this->createArray();
  20. $this->setToFile('config.php');
  21. }
  22.  
  23. private function setToFile($fileName)
  24. {
  25. $this->fileName = $fileName;
  26. if (file_exists($this->fileName)) {
  27. file_put_contents($this->fileName, $this->config, FILE_TEXT | LOCK_EX);
  28. }
  29. }
  30.  
  31. private function createArray()
  32. {
  33. $this->config = '<?php $data = [
  34. \'host\' => \''.$this->host.'\',
  35. \'user\' => \''.$this->user.'\',
  36. \'password\' => \''.$this->password.'\',
  37. \'database\' => \''.$this->database.'\',
  38. ];';
  39. }
  40.  
  41. protected function setHost($host)
  42. {
  43. $this->host = $host;
  44. }
  45.  
  46. protected function setUser($user)
  47. {
  48. $this->user = $user;
  49. }
  50.  
  51. protected function setPassword($password)
  52. {
  53. $this->password = $password;
  54. }
  55.  
  56. protected function setDatabase($database)
  57. {
  58. $this->database = $database;
  59. }
  60. }
  61.  
  62. $a = new DbData('localhost', 'root', '', 'db');
  63.  



Pozdrawiam,
szubi
Go to the top of the page
+Quote Post
irekk
post 23.09.2014, 07:08:46
Post #2





Grupa: Zarejestrowani
Postów: 64
Pomógł: 10
Dołączył: 2.08.2012
Skąd: DW

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


IMO dane tak krytyczne jak ustawienia bazy danych nie powinny byc nadpisywalne. Z reszta po co zmieniać te dane? Myślę że nie zmieniasz haseł użytkowników bazy danych na tyle często aby nie móc ręcznie wyedytować pliku konfiguracyjnego.

Natomiast co do metody createArray, użyj funkcji var_export

Ten post edytował irekk 23.09.2014, 07:09:22
Go to the top of the page
+Quote Post
szubi95
post 23.09.2014, 17:02:25
Post #3





Grupa: Zarejestrowani
Postów: 30
Pomógł: 0
Dołączył: 3.06.2012

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


One nie mają być edytowalne/nadpisywalne. Jedyne do czego ja to potrzebuję, to do instalacji systemu jak wcześniej wspomniałem. Czyli najprostsza instalacja jaka chyba może być dla każdego. Po zainstalowaniu systemu plik ten będzie po prostu usuwany, żeby nie można było nadpisywać danych itp.

Dzięki za funkcję var_export smile.gif Ułatwiło życie tongue.gif
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 27.04.2024 - 23:09