Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> 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
 
Start new topic
Odpowiedzi
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

Posty w temacie


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: 14.08.2025 - 19:32