[PHP][MySQL] Konfiguracja strony

Tworząc stronę www każdy napotka na jakieś trudności. Forumowicze na pewno pomogą!

[PHP][MySQL] Konfiguracja strony

Postprzez Future_Breeze » 2010-02-22, 21:43:19

Witam!

Mam pytanie odnośnie konfiguracji strony. Zawsze korzystałem z pliku conf.php gdzie były ustawienia teraz przyszła pora na zmienianie ustawień z poziomu panelu administracyjnego powiedzcie mi jak to najlepiej zrobić zapisywać w bazie danych czy plikach i jakby to mogło mniej więcej wyglądać :)
Avatar użytkownika
Future_BreezeNone specified
Expert
Expert
 
Posty: 1178
Dołączył(a): 2004-09-05, 15:09:10
Podziękował : 0 razy
Otrzymał podziękowań: 0 razy

Postprzez BlueMan » 2010-02-22, 22:41:37

Jeśli byś używał BD tylko do konfiguracji to nie ma to sensu - skorzystaj wtedy z plików.
Jak skorzystasz z BD to wtedy można mieć stukture z 2 kolumnami 'name' i 'value'. Przy ładowaniu strony - czytasz cały config i zapisujesz go w danej sesji.
Potem przy każdej potrzebnie skorzystania z configu nie wykonujesz dodatkowych zapytań z BD, a masz już to wszystko w sesji.

Jeśli dane konfiguracyjne masz trzymać w pliku - to pamiętaj, aby nie był on "dostępny" z zewnątrz. Aby po wejściu na www.strona.pl/inc/plik.config.txt nie pojawiły się wszystkie zmienne - można to zabezpieczyć przez htaccess, bądź po prostu zapisywać plik z <?php i ?> na końcu. Pamiętaj, aby jego wewnętrzna składnia PHP była prawidłowa.
Czytaj regulamin - unikniesz wielu problemów.
Korzystajcie z załączników na forum aby pliki nie ginęły w przyszłości w zewnętrznych serwisach.
Avatar użytkownika
BlueManMale
Administrator
Administrator
 
Posty: 19108
Dołączył(a): 2004-05-26, 17:34:59
Lokalizacja: Dabrowa Górn.
Podziękował : 6 razy
Otrzymał podziękowań: 5 razy
Imię: Szymon

Postprzez Future_Breeze » 2010-02-22, 22:55:37

Pliki konfiguracyjne są bezpieczne.

Powiedzmy, że mam wczytać do sesji ok. 40 konfiguracji czy to nie spowolni strony i czy z sesji nie będzie tego można wykraść ?
Avatar użytkownika
Future_BreezeNone specified
Expert
Expert
 
Posty: 1178
Dołączył(a): 2004-09-05, 15:09:10
Podziękował : 0 razy
Otrzymał podziękowań: 0 razy

Postprzez BlueMan » 2010-02-22, 23:07:14

Z sesji nie da się wykraść danych.

Na pewno nie spowolni ;) Frameworki (kochana, CI) oni dopiero mega dużo danych zapisują do sesji, obiektów, itp ;]
Czytaj regulamin - unikniesz wielu problemów.
Korzystajcie z załączników na forum aby pliki nie ginęły w przyszłości w zewnętrznych serwisach.
Avatar użytkownika
BlueManMale
Administrator
Administrator
 
Posty: 19108
Dołączył(a): 2004-05-26, 17:34:59
Lokalizacja: Dabrowa Górn.
Podziękował : 6 razy
Otrzymał podziękowań: 5 razy
Imię: Szymon

Postprzez Future_Breeze » 2010-02-22, 23:34:17

No to elegancko :)
Bo ja właśnie cały czas bałem się spowolnienia bo czytałem, że zmienne globalne w dodatku tablice jak $_SESSION spowalniają strony.
Avatar użytkownika
Future_BreezeNone specified
Expert
Expert
 
Posty: 1178
Dołączył(a): 2004-09-05, 15:09:10
Podziękował : 0 razy
Otrzymał podziękowań: 0 razy

Postprzez BlueMan » 2010-02-23, 10:46:13

Obrazek

To co prawda nie jest tylko $_SESSION, a cały obiekt sesji jaki tworzy CodeIgniter. Musi być gdzieś trzymany, prawda? :)
No właśnie - więc nie ma co się bać używać RAMu ;)
Czytaj regulamin - unikniesz wielu problemów.
Korzystajcie z załączników na forum aby pliki nie ginęły w przyszłości w zewnętrznych serwisach.
Avatar użytkownika
BlueManMale
Administrator
Administrator
 
Posty: 19108
Dołączył(a): 2004-05-26, 17:34:59
Lokalizacja: Dabrowa Górn.
Podziękował : 6 razy
Otrzymał podziękowań: 5 razy
Imię: Szymon

Re: [PHP][MySQL] Konfiguracja strony

Postprzez Future_Breeze » 2010-02-23, 12:50:56

Witam mam jeszcze jedno pytanie nie chce zakładać kolejnego tematu.

Skrypt sprawdza czy wszystkie pola zostały uzupełnione funkcją required_fields jeżeli nie generuje błąd set_error('wiadomość', 'przekierowanie', 'czy dobra czy zła wiadomość') ale żeby nie musieć wypełniać wszystkich pól od nowa po przekierowaniu funkcja save_fields() zapamiętuje wszystko do zmiennych sesyjnych.

Mój problem objawia się tak po przekierowaniu pola są puste dopiero po odświeżeniu pojawiają się w nich dane, jeżeli uzupełnię kolejne pole źle po przekierowaniu jest takie jakie było a dopiero po odświeżeniu pokazuje się wartość jaka była wysłana.

Otóż, mam taką prostą walidację formularza:

Kod: Zaznacz cały
function required_fields($f) {
 if(is_array($f))
  foreach($f as $v) {
   if(!$_POST[$v])
    exit(set_message('musisz wypelnic wszytskie pola', 'news.php', bad'));
   else
    $r[$v] = sqlite_escape_string($_POST[$v];
  }
 return $r;
}

function set_message($m, $b, $s) {
  $_SESSION['message'] = $m;
  $_SESSION['status'] = $s;
  header('location: '.$b);
}

function save_fields($f) {
 if(is_array($f))
  foreach($f as $v) {
   $_SESSION['form_'.$f] = $_POST[$v];
  }
}


tak działa to na stronie

Kod: Zaznacz cały
 $fields = array('title','stext','ftext');

 save_fields($fields);

 $clean = required_fields($fields);


strona działa na systemie smarty więc w szablonie wygląda to następująco

Kod: Zaznacz cały
<input type="text" ... value="{$smarty.session.form_title}" />
Avatar użytkownika
Future_BreezeNone specified
Expert
Expert
 
Posty: 1178
Dołączył(a): 2004-09-05, 15:09:10
Podziękował : 0 razy
Otrzymał podziękowań: 0 razy

Postprzez BlueMan » 2010-02-23, 14:43:37

Myślałem, że sesje działają tak jak ciasteczka - że do dopiero po odświeżeniu strony są widoczne, ale jednak nie :)
Kod: Zaznacz cały
<?php

session_start();

print_r($_SESSION);

$_SESSION['test'] = 'testowe dane';

print_r($_SESSION);

?>

Array ( )
Array ( [test] => testowe dane )
Czytaj regulamin - unikniesz wielu problemów.
Korzystajcie z załączników na forum aby pliki nie ginęły w przyszłości w zewnętrznych serwisach.
Avatar użytkownika
BlueManMale
Administrator
Administrator
 
Posty: 19108
Dołączył(a): 2004-05-26, 17:34:59
Lokalizacja: Dabrowa Górn.
Podziękował : 6 razy
Otrzymał podziękowań: 5 razy
Imię: Szymon

Postprzez Future_Breeze » 2010-02-23, 16:06:06

Tak są dostępne od razy bo sama funkcja set_message() działa bez problemowo i od razu wyświetla dane z funkcji save_fields() wyświetlają się dopiero po odświeżeniu strony jest na to jakiś złoty środek ?
Avatar użytkownika
Future_BreezeNone specified
Expert
Expert
 
Posty: 1178
Dołączył(a): 2004-09-05, 15:09:10
Podziękował : 0 razy
Otrzymał podziękowań: 0 razy


  • Inne

Powrót do Webmasterka

Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 50 gości