Cytat
No tak ale to jest płatne :
A co do Gogola to nie podobają mi się te wykresy ani troszkę.
A ja szukam darmowej biblioteki.
Znalazłem coś takiego jak phplot - ale troszkę ma słabe możliwości. Jednak pobawię się tym.
Jak znacie jeszcze coś darmowego do tworzenia wykresów to proszę o info.
////////////////////////
Ciąg dalszy zmagańNo mam w końcu to czego szukałem :
open_flash_chart
Odpaliłem to ale pojawiły mi się problemy z kodowaniem.
Tak wygląda tablica - miesiące
Kod
$miesiace = array( 'styczeń' , 'luty' , 'marzec' , 'kwiecień' , 'maj' , 'czerwiec' , 'lipiec' , 'sierpień' , 'wrzesień' , 'październik' , 'listopad' , 'grudzień' );
konwertuje ją na UTF-8 bo zakładam, że dane przelatują przez ajax który obsługuje utf-8
Kod
$miesiace = array( 'styczeń' , 'luty' , 'marzec' , 'kwiecień' , 'maj' , 'czerwiec' , 'lipiec' , 'sierpień' , 'wrzesień' , 'październik' , 'listopad' , 'grudzień' );
for($m=0; $m <= count($miesiace); $m++){
$miesiace2[$m] = iconv('UTF-8', 'ISO-8859-2', $miesiace[$m]);
}
Potem wywalam te miesiące do tablicy.
Kod
$g -> set_x_labels ( $miesiace2 );
No i efektem jest to, że nie ma polskich znaków.
Strona wyświetlana jest w utf-8 i dla testów zrobiłem
Kod
<meta http-equiv="Content-type" content="text/html; charset=iso-8859-2">
Ktoś wie jak to obejść ? Bo chcę mieć polskie miesiące .
//////////////////////////////////////////////////////////////////////////////////////////
CIĄG DALSZYZ kodowaniem sobie poradziłem.
Miałem jeszcze problem z przekazywaniem danych do pliku php, z który generuje dane do wykresu. Zmuszony byłem użyć $_GET co nie bardzo mi się podoba. Jednak stwierdziłem, że będę filtrował dane i problem bezpieczeństwa raczej z głowy.
Ostatnia sprawa bezpieczeństwa to to, że plik danych należy zabezpieczyć przed bezpośrednim wywołaniem, bo ktoś niepowołany będzie oglądał nasze dane.
Pytanie tylko jak ? Bo dane są zaczytywane tak jak z zewnętrznego źródła .
w zasadzie mamy plik dane.php
do pliku przekazujemy wszystkie zmienne przez $_GET np. dane.php?limit=1&okres=tydzien
Normalnie do takich danych można wykluczyć dostęp stosując coś takiego :
Kod
$p = strrpos($_SERVER['PHP_SELF'],'/');
//określa pozycję ostatniego wystąpienia ciągu
$akualna_strona = substr($_SERVER['PHP_SELF'], $p+1 );
if ("dane.php" == $akualna_strona ) {
// dane do których ma być dostęp
}
else {
echo "brak dostępu";
}
Powyższy kod chroni przed bezpośrednim wywołaniem kodu php.
Problem jednak w tym, że z tą statystyką tak nie można zrobić bo ona wczytuje dane w sposób bezpośredni i to ona przeczyta napis brak dostępu.
Można jeszcze generować w zmiennej $_GET tak zwany akceskey, ale to już jest mało bespieczne rozwiązanie.
Przykładowo mogę wygenerować do pliku dane.php?akces=19201345654kda&limit=1&okres=tydzien
dostęp do danych mógłby być wtedy ograniczony.
Kod
if ($_GET[akces] == '19201345654kda' ) {
// dane do których ma być dostęp
}
else {
echo "brak dostępu";
}
W taki sposób mogę wywołać stronę podając stosowny klucz przez $_GET. Problem jest w tym , że to mało bezpieczne.
Ma ktoś inny pomysł jak zabezpieczyć dane ?
/////////////////////////
Część dalsza No to już rozwiązałem problem z niepowołanym dostępem . Generuję 2 klucze identyczne w obu skryptach. Czas przekazuję zmienną superglobalną $_GET do drugiego skryptu, który generuje dane i który posiada drugą identyczną sumę kontrolną dla funkcji md5(). W efekcie nie można zobaczyć już tych danych, a oba skrypty mają za każdym razem inny klucz.
Kod
$time_pare_key = microtime();
$key =md5('1456refasdfasdfgasdfasda5'.$time_pare_key.'sdfasdfasdfasdt557ujhfdgt');
echo $key;
Jeśli ktoś sądzi , że nie trzeba zabezpieczyć danych przekazywanych w tle przez $_GET to się myli. Wystarczy ściągnąć sobie pod firefox wtyczkę friebug i elegancko widać wszystkie dane przekazywane w tle za pośrednictwem ajax.
Jak widać udało się wcielić ładne statystyki. A przy okazji dane są bezpieczne (jeśli nie liczyć dziur , które posiada flash i które są w samym skrycpice).
Storna projektu
http://teethgrinder.co.uk/open-flash-chart/