Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MySQL]Prosty system logów v 1.3
Forum PHP.pl > Forum > Przedszkole
MrGregorix
Jest to prosty system logów. Jest to drugi temat bo pierwszy był w złym dziale.
Zaczynamy od tworzenia tabeli:
CODE
CREATE TABLE `users` (
`id` int NOT NULL auto_increment,
`ipuser` varchar(60) NOT NULL,
`data` varchar(60) NOT NULL,
`godz` varchar(60) NOT NULL,
`doddane` varchar(60) NOT NULL,
`gdzie` varchar(60) NOT NULL,
PRIMARY KEY (`id`)
)

Teraz tworzymy plik cdb.php w którym wpisujemy:
CODE
<?php
$host = "mysql.przyklad.pl"; //host bazy
$user = "root"; //nazwa usera bazy
$pass = "root"; // //haslo usera bazy
$baza = "dbes"; //nazwa bazy
$data = date('d-m-Y');
$godz = date('H:i:s');
$dd = $_SERVER['HTTP_USER_AGENT'];
$polaczenie = mysql_connect($host, $user, $pass) or die("Bład serwera bazy danych: " . mysql_error());
$baza = mysql_select_db($baza)or die("Bład bazy danych: " . mysql_error());
?>

Potem tworzymy logi.php i wpisujemy w pliku:
CODE
<?php
session_start();
require_once("cdb.php");
$insert = "INSERT INTO logiglowne(ipuser, data, godz, doddane, gdzie) VALUES('" . $_SERVER['REMOTE_ADDR'] ."', '" . $data ."', '" . $godz ."', '" . $dd ."', '" . $gdz ."')";
mysql_query($insert);
session_destroy();
?>

I teraz w kadym pliku na witrynie dodajemy na poczatku:
CODE
<?php
$gdz = "nazwa"; //zmieniamy nazwa na nazwe strony (np.Strona Glowna, Gry, AdminPanel)
require_once("logi.php");
?>
//dalsza czesc kodu

No i to na tyle, sprawdzamy czy dziala. Logi sprawdzemy w bazie MySQL
!*!
Nie jest to co prawda dział oceny, ale nie zalecałbym komukolwiek używanie powyższego skryptu.
nospor
`ipuser` varchar(60) NOT NULL,
`data` varchar(60) NOT NULL,
`godz` varchar(60) NOT NULL,
`doddane` varchar(60) NOT NULL,

Potrafisz używać jakiegoś innego typu niż VARCHAR? I to VARCHAR(60)?
Do dat używa się typu DATOWEGO.
Do IP od biedy, od bardzo wielkiej biedy można użyć VARCHAR, ale na pewno nie 60.... nie wiem gdzie widziałeś tak długie IP.

Przenosze do działu przedszkole, bo do gotowych rozwiązań to się zdecydowanie nie nadaje.
MrGregorix
Początkujący jestem, nie za bardzo się znam na MySQL.

Cytat(!*! @ 20.10.2012, 20:02:03 ) *
Nie jest to co prawda dział oceny, ale nie zalecałbym komukolwiek używanie powyższego skryptu.

Czemu?
nospor
Ale co to za wytłumaczenie? Każdy był kiedyś początkujący. A skoro jesteś początkujący to przed zabraniem się za pisanie wypadałoby wpierw poznać pewne podstawy.
Typy danych w mysql to są podstawy podstaw które należy znać.

Cytat
Czemu?
Bo jest napisany źle przez osobę o wiedzy niemal zerowej? Chciałbyś jeździć samochodem stworzonym przez osobę, która ledwo kojarzy co to kierownica i koło a o czymś takim jak hamulce to w życiu nie słyszała? wink.gif
MrGregorix
Może i nie jest zadobrze napisane ale przynajmniej działa.
nospor
No tak.... twórca samochodu z posta wcześniej powiedziałby dokładnie tak samo: działa. Ale mocno byś się zdziwił zjeżdzając z górki samochodem bez hamulców.... też już byś raczej nikomu tego nie polecał.
MrGregorix
Powiedz konkretnie o co ci chodzi.
nospor
Przecież ci napisałem jeden z konkretów w pierwszym moim poście. Twoim jedynym kontrargumentem było: nie znam się. A to już jest drugi konkret smile.gif

Napisałeś, pokazałes i super fajnie. Nikt cię za to nie gani. Stwierdzamy jedynie że jest to źle napisane. Z czasem pewnie napiszesz coś lepszego, gdy już trochę liźniesz wiedzy i doświadczenia.
MrGregorix
Źle mnie zrozumiałeś, chodzi o to co ci się w kodzie nie podoba.
CuteOne
Pewnie uznasz mnie za bezdusznika ale wskazałem w klonie tego tematu podstawowy błąd. Drugim jest brak odsiewania wszelkie rodzaju botów np. google/yahoo.

Dobra rada - kup sobie książkę, która nauczy cię podstaw napisz ze dwie strony dla zabawy lub jakąś prostą gierkę np. kółko krzyżyk. Gdy uznasz swoje dzieło za idealne sięgnij do wyższej półki traktującej o OOP

ps. nie zniechęcaj się, po prostu brak ci jeszcze doświadczenia, które nabędziesz z czasem smile.gif
MrGregorix
Dzięki
!*!
Cytat(MrGregorix @ 20.10.2012, 21:01:34 ) *
Źle mnie zrozumiałeś, chodzi o to co ci się w kodzie nie podoba.


- złe typy jeśli chodzi o budowę mysql
- mieszanie nazw zmiennych polskich z angielskimi, w informatyce piszemy tylko po angielsku
- używanie nazw zmiennych które nic nie mówią
- wszędzie gdzie nie wykonywany jest kod w deklaracji zmiennej używamy apostrofa
- brak mechanizmu wyłączenia, filtracji np. przed botami, systemu cache czy "ale to już było".
- brak PDO

Poza tym, taki system logów jest mało praktyczny, bo czemu miałby służyć? Logi w bazie? jakoś nigdy mnie to nie przekona IMO zaśmiecanie bazy.
Zainteresuj się pierw jakimś kursem PHP np. http://pl.wikibooks.org/wiki/PHP poczytaj tematy w dziale oceny, jest tam wymienionych kilka błędów najczęściej powielanych, uzupełnij wiedzę i popraw skrypt.
Zielonkawy18
Ja swoje 5 groszy tylko dam:

"w informatyce piszemy tylko po angielsku"

to dobry zwyczaj, aczkolwiek nie wyznacznik. Konwencje nazewnicta ustala zespół programistów i nic nie stoi na przeszkodzie by przyjąć inny język. Ważne aby zachować istotne cechy takie jak nazwy funkcji ( czasowniki ), nazwy zmiennych ( rzeczowniki, czasem przymiotniki ) - To podpiera książka "Czysty kod Robert C. Martin .

Odnośnie kodu to nie wiem nie znam się zarobiony jestem tongue.gif

Zamiast Vachar daj text, varchar2(60) uniemożliwia wyjści po za maksymalną przestrzeń znakową ( zdeklarowaną ) np. pole OPIS dasz varchar2(100) kiedy użytkownik programu wklei dam treść pochodzącą w viki mającą 4 tys znaków.

Pozdrawiam.

//Komenarz jeszcze do Twojego podpisu: nie zmienia to faktu, że C# to świetny język smile.gif
!*!
Cytat(Zielonkawy18 @ 20.10.2012, 21:54:18 ) *
to dobry zwyczaj, aczkolwiek nie wyznacznik. Konwencje nazewnicta ustala zespół programistów i nic nie stoi na przeszkodzie by przyjąć inny język. Ważne aby zachować istotne cechy takie jak nazwy funkcji ( czasowniki ), nazwy zmiennych ( rzeczowniki, czasem przymiotniki ) - To podpiera książka "Czysty kod Robert C. Martin .

Nie. Angielski jest standardem. Pracowałeś kiedyś w grupie międzynarodowej w której kod był pisany po Czesku? Przyjęcie innego języka to zamykanie się na rozwój. - to weryfikuje życie wink.gif A do standardu nazewnictwa polecam PSR-2

Cytat(Zielonkawy18 @ 20.10.2012, 21:54:18 ) *
Zamiast Vachar daj text, varchar2(60) uniemożliwia wyjści po za maksymalną przestrzeń znakową ( zdeklarowaną ) np. pole OPIS dasz varchar2(100) kiedy użytkownik programu wklei dam treść pochodzącą w viki mającą 4 tys znaków.

To chyba pasuje idealnie do tego co napisałeś wyżej
Cytat(Zielonkawy18 @ 20.10.2012, 21:54:18 ) *
Odnośnie kodu to nie wiem nie znam się

Zielonkawy18
Już nie rób z siebie guru w temacie smile.gif

"Nie. Angielski jest standardem. Pracowałeś kiedyś w grupie międzynarodowej "

Tak, ale nie każdy system informatyczny jest tworzony w międzynarodowej grupie. Nic nie stoi na przeszkodzie przyjąć język Polski kiedy coś tworzą polacy smile.gif Widziałem budowe systemów informatycznych np. w szpitalach oczywiście egzystowały nazwy polskie. Co do standardów nazw to dzięki za link, ale sporo się już o tym dowiedziałem z "Czysty kod, podręcznik dobrego programisty"

"To chyba pasuje idealnie do tego co napisałeś wyżej"

Skoro do notatki np. Nie dasz pola text to co dasz? Poucz mnie, a zapamiętam :-) Negować łatwo, istotny kontrprzykład smile.gif Ja dałem koledzę wyżej kiedy może stosować varchar-y a kiedy np. Text smile.gif Rozumiem, że dla peselu varchar2(11) także jest wynikiem mojego zdania "nie wiem nie znam się" :-)

Pozdrawiam szczególnie !*!

//Edycja

Lepiej w swoich projektach przyjąć język Polski niż używać nazw angielskich nie znając angielskiego i pierniczyć kod w każdej linijce smile.gif

//Edycje2

I traktujmy forum jak forum smile.gif Czerpmy od siebie ile się da, oraz z życia aby każdego dnia być coraz lepszym smile.gif
!*!
Cytat(Zielonkawy18 @ 21.10.2012, 12:25:26 ) *
Już nie rób z siebie guru w temacie smile.gif

Jestem zbyt skromny na to... Proponuje określenie BógBajtu.

Cytat(Zielonkawy18 @ 21.10.2012, 12:25:26 ) *
Tak, ale nie każdy system informatyczny jest tworzony w międzynarodowej grupie. Nic nie stoi na przeszkodzie przyjąć język Polski kiedy coś tworzą polacy smile.gif Widziałem budowe systemów informatycznych np. w szpitalach oczywiście egzystowały nazwy polskie.

Oczywiście, są koderzy i są klepacze kodu. Trzymanie się tego, upadnie podczas zmiany ekipy.

Cytat(Zielonkawy18 @ 21.10.2012, 12:25:26 ) *
Skoro do notatki np. Nie dasz pola text to co dasz? Poucz mnie, a zapamiętam :-) Negować łatwo, istotny kontrprzykład smile.gif Ja dałem koledzę wyżej kiedy może stosować varchar-y a kiedy np. Text smile.gif

Może jestem już stary i ślepy, ale nie widzę tam nic, co mogłoby być uznane w mysql jako TEXT.

Cytat(Zielonkawy18 @ 21.10.2012, 12:25:26 ) *
Rozumiem, że dla peselu varchar2(11) także jest wynikiem mojego zdania "nie wiem nie znam się" :-)

Tak, ponieważ pesel to liczba.

Cytat(Zielonkawy18 @ 21.10.2012, 12:25:26 ) *
Lepiej w swoich projektach przyjąć język Polski niż używać nazw angielskich nie znając angielskiego i pierniczyć kod w każdej linijce smile.gif

Czyli jesteś klepaczem kodu.
Zielonkawy18
"Tak, ponieważ pesel to liczba."

Ale gdy pesel zacznie się na cyfrę 0, np. Baza danych oracle nie zignoruje tego "0"??

"Oczywiście, są koderzy i są klepacze kodu. Trzymanie się tego, upadnie podczas zmiany ekipy."

Wszystko zależy, zgodzę się że nazwy angielskie są bardzo dobre, ale nazwy polskie nie są złe, aczkolwiek masz większe doświadczenie i pewnie masz rację, aczkolwiek moim zdaniem dużo znaczenie ma czy programujemy w małym, średnim zespole czy ogromnej koorporacji. Aczkolwiek na pewno masz masakrycznie dużo racji.

"Może jestem już stary i ślepy, ale nie widzę tam nic, co mogłoby być uznane w mysql jako TEXT."

Poucz, w w/w przykładzie u kolegi to nic, ale odniosłem się do innego exampl-a.

"Czyli jesteś klepaczem kodu."

Od ponad roku programuję w C# czytam dużo książek i staram się nabierać dobre cechy programowania i myślę, że całkiem mi to wychodzi smile.gif Moje funkcję są krótkie, zrozumiałe, wykonują pojedyńcze operację, a całość jest spójna i logiczna. Rok to nie wiele, ale musimy popełniać błędy, aby w końcu dojść do perfekcji smile.gif Czasem w niektórych małych swoich projektach/programach osobistych przyjmuję nazwy angielskie, ale częściej polskie takie, które jestem w stanie wymówić smile.gif

Pozdrawiam serdecznie!

//Edit

Zajmowałem się przy pisaniu tego posta wieloma rzeczami naraz i używałem zby często "aczkolwiek" tongue.gif
!*!
Cytat(Zielonkawy18 @ 21.10.2012, 13:02:51 ) *
Ale gdy pesel zacznie się na cyfrę 0, np. Baza danych oracle nie zignoruje tego "0"??

Nie znam się na bazach oracle, ale nie sądzę, aby jakakolwiek baza miała ignorować ciąg cyfr, a jeśli już trzeba nadać jej odpowiednią wartość pola.

Cytat(Zielonkawy18 @ 21.10.2012, 13:02:51 ) *
Czasem w niektórych małych swoich projektach/programach osobistych przyjmuję nazwy angielskie, ale częściej polskie takie, które jestem w stanie wymówić smile.gif

Często sam, jak i inny pracodawcy (firmy) proszą o przesłanie próbek kodu, aby zweryfikować umiejętności kandydata. Jak myślisz jaki kod ma szansę wygrać?
Zielonkawy18
To zależy od Twoich podtrzeb i firmy, ale moim zdaniem nie winno się dyskwalifikować kogoś kto nadał zmiennym polskie nazwy, ale koduje ładnie, spójnie i logicznie, nie tracąc przy tym kontroli nad projektem smile.gif To też ważne.

Zawsze uważałem, że 0 jest ignorowane przy typie int, i rzeczywiście Oracle 0 ignoruje, przy ciągu: 01234, przy selecie otrzymujemy 1234.
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.