Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Ustawianie danych połączeniowych bazy z formularza.
Forum PHP.pl > Forum > PHP
szubi95
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
irekk
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
szubi95
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
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.