Nie jesteś zalogowany na forum.
[img src="http://www.pixelstalk.net/wp-content/uploads/2016/04/Landscape-wallpaper-hd-pictures-download-620x349.jpg"]
<b>asd</b>
Jak dla mnie trochę słabo wygląda te powiększanie się niektórych elementów po najechaniu na nie myszką - wszystkie elementy obok muszą się wtedy dostosować i leci domino.
Nazwy kategorii jako obrazki to też słaby pomysł (wiadomo czemu). Jak chcesz użyć niestandardowej czcionki to użyj @font-face albo jakiegoś JSowego wspomagacza.
No i te style inlinowe kłują w oczy, nie mówiąc już o center w niektórych miejscach
Baczus mówiąc "ergonomia" (w zasadzie mogłem pomyśleć nad jakimś lepszym słowem...) miałem na myśli ten "drewniany", archaiczny i niezbyt wygodny w użytkowaniu wygląd i budowę strony. Czyli to, co mówili już inni przede mną.
Przy tak niewielkiej ilości danych w bazie, prostych zapytaniach i praktycznie samym HTML+CSS w front-endzie musiałbyś się naprawdę postarać, żeby strona chodziła wolno
Screen wygasł, ale lepiej nie pokazuj nawet zahashowanych haseł z bazy.
Wciąż nie wiem jak te hasła tam trzymasz, powiem tylko, że lepiej nie używać md5 czy sha1.
Ogólnie to kwestia bezpieczeństwa przechowywania haseł to dosyć obszerny temat i warto o tym trochę poczytać. Gdzieś w swoich zakładkach znalazłem taki artykuł: https://crackstation.net/hashing-security.htm
Z tego co pamiętam to jest tam to fajnie wytłumaczone.
P.S. Taki mały tip - na większości wielkich serwisów logo jest klikalnym linkiem przekierowującym na str. główną.
Przez to nawet na małych stronach warto tak robić, bo większość ludzi ma taki nawyk, że po kliknięciu w logo idą na str. główną.
Jak na pierwszy taki system to jest OK, ale tak jak pisał kolega wyżej - albo całkiem odpuść sobie front-end, albo solidnie nad tym popracuj.
No ale czy masz jakieś zdolności graficzne czy nie, to i tak "ergonomia" powinna być trochę lepsza, ale to zawsze będziesz miał czas się nauczyć
No i bez kodu to trudno cokolwiek powiedzieć, ale mam jedno zasadnicze pytanie - rozumiem, że haseł w bazie nie przechowujesz jawnie?
Aaa widzisz, przyszedł mądrala i się wypowiada, a nie wie.
Spoczko
@pro14ab odnośnie Twojego kodu - dzisiaj zauważyłem, że na punie jest już domyślnie załączone jQuery, więc nie trzeba go samemu załączać
Wersja 2.1.1.
Mam dzisiaj dobry dzień, do tego niezbyt co do roboty, to skleiłem Ci parę linijek kodu.
Poniższy kod musisz wrzucić do stopki, na samej górze ustawiasz sobie jakie fora mają być wyłączone dla oglądania dla gości, ale widoczne na liście. W opcjach for musisz zaznaczyć opcję "Czytanie forum" dla gości.
Może dziwne, że ja to mówię (szczególnie jak już napisałem trochę tego kodu), ale lepiej jednak dać sobie spokój z tym dodatkiem i wyłączyć czytanie forum dla gości.
Wady skryptu:
jeśli ktoś wyłączy JS to nie będzie w stanie używać forum (przez ostatnią linijkę skryptu). "Zabezpieczenie" na chama, ale kto dzisiaj wyłącza JS...
Żadne zabezpieczenia w czystym JS nie są dużym problemem dla kogoś, kto się trochę zna i chce mu się poświęcić trochę czasu. Więc jeśli chcesz w tych forach trzymać kody do głowic atomowych - odpada.
Gdybym robił to dla siebie, dodałbym po prostu do drzewa DOM nowy TR na liście forów na stronie głównej. Nie byłoby liczby postów, wątków i ostatniego postu, no ale nie można mieć wszystkiego.
Zalety:
Dodaje funkcjonalność, o którą Ci chodziło.
...to by było na tyle.
<script type="text/javascript">
var ustawienia = {
ID_forow: [2, 5, 1342, 123],
przekierowanie: 'login.php'
};
/**
KODU PONIŻEJ NIE EDYTOWAĆ
Autor: Paweł Neścior
*/
var na_stronie = function (porownaj) {
porownaj = porownaj || false;
var ret = false;
if (porownaj) {
if (ustawienia.ID_forow.indexOf(porownaj) >= 0) {
ret = true;
}
}
else {
for (var i in ustawienia.ID_forow) {
if (location.search.indexOf('id=' + ustawienia.ID_forow[i]) >= 0) {
ret = true;
break;
}
}
}
return ret;
}
var zalogowany = function () {
var login_link = document.getElementById('navlogin');
if (login_link)
return false;
return true;
}
if (location.pathname.indexOf('viewforum') >= 0) {
if (!zalogowany() && na_stronie())
location = ustawienia.przekierowanie;
}
if (location.pathname.indexOf('viewtopic') >= 0) {
if (!zalogowany()) {
var crumbs = document.getElementsByClassName('crumbs'),
dzieci = crumbs[0].getElementsByTagName('li');
for (var i = 0; i < dzieci.length-1; i++) {
var linki = dzieci[i].childNodes;
if (linki.length == 2) {
var href = linki[1].attributes.getNamedItem('href').value;
if (na_stronie(parseInt(href.split('=')[1])))
location = ustawienia.przekierowanie;
}
}
}
}
</script>
<noscript><meta http-equiv="refresh" content="0; url=index.php" /></noscript>
(do stopki)
Jakby komuś się chciało zrobić to jak napisałem w pkt. 3 w wadach, byłoby spoko.
Pzdr.
P.S. Ten tekst "Kodu poniżej nie edytować bla bla bla" to dla tych, którzy się nie znają. Jak ktoś chcę może się babrać.
Mam kilka uwag co do logowania na Fluxie, a właściwie co do zabezpieczeń.
1. Ten dziwny komunikat jeśli system uzna, że jesteśmy botem bo za szybko wprowadziliśmy swoje dane do logowania. Pierwszy raz takie coś widzę i jest to trochę bez sensu - wystarczy, że ktoś ma zapisane hasło w przeglądarce i automatycznie jest już wszystko uzupełnione, wtedy wystarczy kliknąć "Zaloguj" i już jesteśmy botem, bo nie wpisujemy hasła za każdym razem ręcznie.
2.
The limit of errors in forms of input for yours IP is exceeded. Sorry for the inconvenience. Come later.
Nie wiem, czy "błędy" jako że niby jesteśmy botem z punktu pierwszego też się do tego wliczają, ale wyskoczyło mi to po kilku wylogowaniach i zalogowaniach się z powrotem (za każdym razem dane logowania były dobre).
Moim zdaniem takie rzeczy tylko utrudniają pracę zwykłym użytkownikom, a przeciwko botom jest masa innych zabezpieczeń, jak np. blokowanie logowania na X minut po iluś próbach nieudanego logowania itd.
Co o tym myślisz Tomku?
P.S. Właśnie teraz nie mogę używać swojego forum, bo przecież jestem botem skoro mam potrzebę wylogowania się i zalogowania z powrotem parę razy w ciągu 30 minut...
To, co znalazłeś to gotowy skrypt chata w jQuery. Na fluxie używany jest pewnie jakiś gotowy mod, który oryginalnie nie ma możliwości edycji wyglądu chata.
Można przerobić modyfikację tak, by dało się ustawić wygląd w panelu admina, można też znaleźć innego moda (jeśli jakieś są) z taką opcją, ale to już zależy od siły wyższej
Ale nie ma takiej potrzeby, bo ten input ma atrybut maxlength, który właśnie tak działa
A nie lepiej dać jakiegoś zdarzenia typu onKeyDown na pole do wpisywania wiadomości i w tym zdarzeniu dać tą funkcję już bez tego timeouta?
Bo tak to mamy niepotrzebnie co sekundę wywoływaną funkcję nawet, jeśli ktoś nie używa czata.
@edit:
trochę się nudziłem i napisałem własną wersję tego kodu:
<script type="text/javascript">
var dlugosc = document.formulaire.req_message.getAttribute('maxlength');
function znaki (ilosc) {
if ((spanID = document.getElementById('pozostalo_znakow'))) {
spanID.innerHTML = 'Pozostało ' + ilosc + ' znaków.';
}
else {
var span = document.createElement('span');
span.id = 'pozostalo_znakow';
span.appendChild(document.createTextNode('Pozostało ' + ilosc + ' znaków.'));
document.formulaire.appendChild(span);
}
}
znaki(dlugosc);
document.formulaire.req_message.onkeyup = function () {
var roznica = dlugosc - document.formulaire.req_message.value.length;
znaki(roznica <= 0 ? '<span style="color:red;">0</span>' : roznica);
}
</script>
do stopki
Jest polska wersja.
Link z pierwszego postu działa - są tam do wyboru wersje angielska i polska.