Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] includowanie hasel z pliku php
Forum PHP.pl > Forum > Przedszkole
piotrekkr
Witam pisze klase do ststystyk i ona wykorzystuje baze danych. Mam zamiar pisac wiecej klas ktore tez wykorzystuja baze nie chce gdy zmienie haslo zmieniac zmienych z haslem itp w kazdym pliku oddzielnie. Pomysalem ze mozna by zaincludowac te zmienne z pliku php:
  1. <?php
  2. private $db_password="jakies_haslo";
  3. private $db_adress="adres.do.bazy"
  4. //itd
  5.  
  6. ?>

moja klasa mniej wiecej tak wyglada:
  1. <?php
  2. class ststystyki{
  3. include("dane_bazy.php");
  4. private $jakas_zmienna=123;
  5. function jakas_funkcja(){
  6.  
  7. }
  8. function jakas_funkcja2(){
  9.  
  10. }
  11. } 
  12. ?>


chcialem spytac czy tak moge zrobic i czy to jest bezpieczne zeby w pliku php trzymac zmienne z haslem??
Kuziu
Jeśli tylko plik jest php i jest parsowany więc nic bez Twojej wiedzy nie zostanie wyświetlone to jest to bezpieczne
Master Miko
W ostateczności, jeśli nadal boisz się o bezpieczeństwo możesz zrobić tak.... :



plik index.php
  1. <?php
  2.  
  3. define( 'parametr', true ); 
  4. include ("hasla.php");
  5.  
  6. ?>




plik hasla.php
  1. <?php 
  2. if(!defined('parametr')) {
  3. header('HTTP/1.0 404 not found');
  4. exit();
  5. } else {
  6. $haslo = "haslo";
  7. }
  8.  ?>


W ten sposób hacker jeśli "trafi" w nazwę pliku i tak zobaczy go jako not found, również wtedy masz kontrolę, czy napewno chcesz jakiemuś plikowi udostępnić hasła...
piotrekkr
include() niestety nie dziala w klasie znaczy chyba go tam nie mozna uzyc dry.gif . dostaje error :
Kod
Parse error: syntax error, unexpected T_INCLUDE, expecting T_FUNCTION in /usr/local/apache2/htdocs/pliki/mod.statystyki.php on line 3

tak samo z require wie ktos jak to zrobic zeby do kazdego modulu nie wpisywac recznie hasel i adresow serwerow itp??
Master Miko
bo nie należy umieszczać include w klasie tylko w kontruktorze, jeśli Ci o to chodzi...
piotrekkr
aha rozumiem czyli powinienem utworzyc cos takiego :

plik dane_bazy.php:
  1. <?php
  2. private $haslo="jakieshaslo";
  3. private $adres_bazy="adres":
  4. //itd
  5. ?>


no i klasa:

  1. <?php
  2. class stats{
  3. public function __construct(){
  4. include("dane_bazy.php");
  5. };
  6. //inne procedury korzystajace ze zmiennych z pliku dane_bazy.php np:
  7. public function aaa(){
  8. echo $this->haslo;
  9. };
  10. //itd
  11. };
  12.  
  13. ?>


teraz pytanie czy moze powinno byc tak:

plik bazy_danych.php:

  1. <?php
  2.  $this->haslo="jakieshaslo";
  3. $this->adres="jakisadres";
  4. ?>


klasa stats:

  1. <?php
  2. class stats{
  3. private $haslo;
  4. private $adres;
  5. public function __construct(){
  6. include("dane_bazy.php");
  7. };
  8. //dalsza czesc klasy...
  9. }
  10.  
  11. ?>

czy moze obydwa sa zle sposoby??
Master Miko
raczej drugi sposób, poza tym najlepiej sam przetestuj smile.gif
pierwszy sposób chyba w ogóle nie zadziała
piotrekkr
teraz mam kolejne moze banalne pytanie mam klase:

  1. <?php
  2.  
  3. error_reporting(E_ALL | E_STRICT);
  4. class stats{
  5. private function jakas(){
  6. return TRUE;
  7. }
  8.  
  9. private function jakas2(){
  10. $zmienna=$this->jakas();
  11. echo $zmienna;
  12. }
  13. }
  14. ?>

i wywala mi parse error :
Kod
Parse error: syntax error, unexpected T_RETURN in /usr/local/apache2/htdocs/pliki/mod.statystyki.php on line 41


tzn ze nie dziala zwracanie wartosci przez funkcje wewnatrz klasy?? Nie rozumiem tego w manualu szukalem wzmianki jakiejs o return ale nie znalazlem dry.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.