Słowem wstępu:
Kącik ten powstał w celu gromadzenia informacji, zapytań, porad, a także jako miejsce publikacji i oceny witryn stworzonych przez forumowiczów GOLa. Wszystko powinno znajdować się w jednym miejscu, aby można było łatwiej i przyjemniej odnaleźć informacje związane z tworzeniem stron www. Liczymy na to, że kącik będzie bardzo często odwiedzany :)
-----------------------------------------------------------------------------------------------------------------
NARZĘDZIA WEBMASTERSKIE:
Edytory graficzne - WYSIWYG:
- Macromedia Dreamwaver MX - http://www.macromedia.com
- Amaya - http://www.w3.org/amaya
- Adobe GoLive - http://www.adobe.com
- Microsoft FrontPage
- Microsoft FrontPage Express
- Pajaczek
- CoffeeCup Free
- Free HTML 6.0
- 1st page 2000
Edytory tekstowe:
- Macromedia Dreamwaver MX - www.macromedia.com
- Notatnik
- Webmajster
- Pajaczek pro
- Zajaczek
- HotDog Pro
- ezHTML
- NoteTab Light
- Website Pro
- Notepad ++
- EditPlus
Programy do obróbki grafiki i animacji:
- Flash MX
- 3D Flash Animator
- Ulead GIF Animator
- Adobe Photoshop
- Paint Shop Pro
- GIMP
- Corel Draw
Narzędzia do publikacji stron na serwerach:
- CuteFTP
- Total Commander
- WS_FTP
- FlashFXP
- Filezilla
Domeny
- http://home.pl
- http://az.pl
- http://nazwa.pl
- http://domeny.pl
Płatne serwery
- http://webd.pl
- http://home.pl
- http://nazwa.pl
- http://netmark.pl
- http://netarteria.pl
- http://ovh.org
Spis darmowych serwerów
- http://forum.webhelp.pl/viewtopic.php?t=1145
Najlepsze kursy HTML
- http://www.kurshtml.boo.pl
- http://webmaster.helion.pl/kurshtml/
Manual
BŁĘDY W TWORZENIU STRON - koniecznie przeczytaj!
- http://pornel.net/bledy
- http://www.kreativ.pl/10_zasad/
Ciekawe strony dla webmasterów:
- http://ezhtml.bydnet.com.pl/
- http://www.webhelp.pl/
- http://www.siteql.net/
- http://www.kess.snug.pl/
- http://osiolki.net/tabelki/
- http://www.kailastudio.com.pl/design/
- http://netdesign.wroclaw.pl/
- http://mimas.ceti.pl/dia/
- http://www.typografia.ogme.pl/index.php/artykuly-mainmenu-4/6-typografia-internetowa/6-451-czyli-typografia-bez-papieru
- http://colorschemedesigner.com/
Za darmo dla webmasterów:
- http://www.4free.pl/
- http://www.ksiegi.emix.net.pl/
- http://www.free4web.pl/
- http://www.dhost.info/
Nasze strony:
wi3dzmin
- http://www.brokilon.aplus.pl
hotDog
- http://www.lookas.prv.pl
Slowik
- http://fotografia.gry-online.pl/
================================
Archiwum Kącika:
================================
cz. 01: http://forumarchiwum.gry-online.pl/S043archiwum.asp?ID=282993
cz. 01: http://forumarchiwum.gry-online.pl/S043archiwum.asp?ID=1724087 REIKARNACJA
cz. 02: http://forumarchiwum.gry-online.pl/S043archiwum.asp?ID=293434
cz. 03: http://forumarchiwum.gry-online.pl/S043archiwum.asp?ID=561138
cz. 04: http://forumarchiwum.gry-online.pl/S043archiwum.asp?ID=681039
cz. 05: http://forumarchiwum.gry-online.pl/S043archiwum.asp?ID=709817
cz. 06: http://forumarchiwum.gry-online.pl/S043archiwum.asp?ID=778829
cz. 07: http://forumarchiwum.gry-online.pl/S043archiwum.asp?ID=860865
cz. 08: http://forumarchiwum.gry-online.pl/S043archiwum.asp?ID=987171
cz. 09: http://forumarchiwum.gry-online.pl/S043archiwum.asp?ID=1348213
cz. 10: http://forumarchiwum.gry-online.pl/S043archiwum.asp?ID=1966148
cz. 11: http://forumarchiwum.gry-online.pl/S043archiwum.asp?ID=2031618
cz. 12: http://forumarchiwum.gry-online.pl/S043archiwum.asp?ID=2059468
cz. 13: http://forumarchiwum.gry-online.pl/S043archiwum.asp?ID=2160961
cz. 14: http://forumarchiwum.gry-online.pl/S043archiwum.asp?ID=2219048
cz. 15: http://forumarchiwum.gry-online.pl/S043archiwum.asp?ID=2305650
cz. 16: http://forumarchiwum.gry-online.pl/S043archiwum.asp?ID=2374934
cz. 17: http://forumarchiwum.gry-online.pl/S043archiwum.asp?ID=2404162
cz. 18: http://forumarchiwum.gry-online.pl/S043archiwum.asp?ID=2479809
cz. 19: http://forumarchiwum.gry-online.pl/S043archiwum.asp?ID=2531725
cz. 20: http://forumarchiwum.gry-online.pl/S043archiwum.asp?ID=2661899
cz. 21: http://forumarchiwum.gry-online.pl/S043archiwum.asp?ID=2739264
cz. 22: http://forumarchiwum.gry-online.pl/S043archiwum.asp?ID=2940573
cz. 23: http://forumarchiwum.gry-online.pl/S043archiwum.asp?ID=3283908
cz. 24: http://forumarchiwum.gry-online.pl/S043archiwum.asp?ID=3713891
cz. 25: http://forumarchiwum.gry-online.pl/S043archiwum.asp?ID=4000035
cz. 26: http://forumarchiwum.gry-online.pl/S043archiwum.asp?ID=4101026
cz. 27: http://forumarchiwum.gry-online.pl/S043archiwum.asp?ID=4177593
cz. 28: http://forumarchiwum.gry-online.pl/S043archiwum.asp?ID=4379688
cz. 29: http://forumarchiwum.gry-online.pl/S043archiwum.asp?ID=4722727
cz. 30: http://forumarchiwum.gry-online.pl/S043archiwum.asp?ID=4979111
cz. 31: http://forumarchiwum.gry-online.pl/S043archiwum.asp?ID=5179288
cz. 32: http://forumarchiwum.gry-online.pl/S043archiwum.asp?ID=5566907
cz. 33: http://forumarchiwum.gry-online.pl/S043archiwum.asp?ID=5880745
cz. 34: http://forumarchiwum.gry-online.pl/S043archiwum.asp?ID=6280629
cz. 35: http://forumarchiwum.gry-online.pl/S043archiwum.asp?ID=6280629
cz. 36: http://forumarchiwum.gry-online.pl/S043archiwum.asp?ID=7016083
cz. 37: http://forumarchiwum.gry-online.pl/S043archiwum.asp?ID=8042674
cz. 38: http://forumarchiwum.gry-online.pl/S043archiwum.asp?ID=9012594
cz. 39: http://forumarchiwum.gry-online.pl/S043archiwum.asp?ID=9868816
cz. 40: https://www.gry-online.pl/S043.asp?ID=10374114
Katane, Tuminure ==> Dzięki! Ślepym :)
Edit:
Ostatnie pytanie - jak najlepiej ograniczyć w takim ifie 13 wariantów?
Mam 13 id, które będą w miejscu tego 'quiz'. Jest w php łączenie porównań?
Coś na Andach czy Orach?
Może switch?
A co do łączenia warunków, to tak jak wszędzie
if ($a==1&&$b==1)
else if (($a==3&&$b==3)||$c==3)
[4]
edit: aaaa, takie coś. No to rozwiązanie Katane'a jest chyba najlepsze, ewentualnie bez zmiennej tymczasowej:
if (in_array($mod->modname, array("id1","id2")) ...
Nie wiem, czy dobrze rozumiem, ale:
robisz sobie zmienną:
$ids = array('id1', 'id2', 'id3', ...);
if (in_array($mod->modname, $ids)) ...
Dzięki, sprawdzam :)
Edit:
Zastosowałem in_array i wszystko pięknie gra. Dzięki Panowie!
legrooch - weź tam wyrzuć ze wstępniaka mój link - aż wstyd :P
od 7 lat ten link wisi we wstępniaku :O
ile to czasu....
pytanie z mysql
mam tabele news, galerie i zdjęcia
jak napisać zapytanie, aby wyszukiwało 4 najnowsze news'y i ewentualnie zdjęcie główne, jeżeli istnieje takowe dla galerii połączonej z newsem (w galerii jest pole "glowne")
SELECT pola...
FROM news
LEFT JOIN galerie
ON news.news_id=galerie.news_id
LEFT JOIN zdjecia
ON galeria.galeria_id=zdjecia.galeria_id
WHERE ... ?
naprowadzi mnie ktoś?
nie wydaje mi się, żeby to było to... chcę, żeby zdjęcie podawało tylko w wypadku, jeżeli wartosc glowne=1, przy order by DESC zacznie od 1, ale poda tez te z zerami, tylko je ustawi w kolejności... limit 4 (dla sql TOP) juz uzywam, dla wyrzucenia 4 news'ów, czy zupełnie się mylę?
w sumie to źle napisałem to pierwsze pytanie, część z wybraniem 4 najnowszych news'ów ogarniam spokojnie, tylko nie mogę uzyskać tylko głównych zdjęć...
chyba na razie będę musiał to zrobić "na około"
SELECT * FROM (news LEFT JOIN galerie ON news.news_id=galerie.news_id) LEFT JOIN zdjecia ON galeria.galeria_id=zdjecia.galeria_id
DO tego oczywiście warunek odnośnie zdjęcia głównego
w sensie na końcu warunek WHERE? takie rozwiązanie da mi newsy tylko ze zdjęciami głównymi, a nie o to mi chodzi
SELECT * FROM (news LEFT JOIN galerie ON news.news_id=galerie.news_id) LEFT JOIN zdjecia ON (galeria.galeria_id=zdjecia.galeria_id AND zdjecia.glowne=true)
Albo jakkolwiek masz to zapisane (EDIT: mam na myśli flage oznaczającą zdjęcie główne :P). Powinno być ok
dzieki wielkie, teraz działa, ale będe musiał popatrzeć na to dłużej, żeby skumać o co chodzi :D
edit. a już kumam! ale tej konstrukcji sam bym nie wymyślił ...
Mam pytanie dotyczące Outline w HTML5.
Chciałbym umieścić logo w <header>. Jak wiadomo ten znacznik tworzy nową sekcję, więc musi zawierać nagłówek. Okey. Przy czym logo jest obrazkiem a zatem:
<header>
<h1><img src="..." alt="..." /></h1>
</header>
Nie daje poprawnej nazwy sekcji w outline. Dotychczas ustawiałem dla h1 text-indent na minusową wartość. Niby technika spamerska itd. ale niektórzy uważają, że jeżeli 'chowany' tekst zawiera treść z obrazka, to nie ma problemu. Ano nie do końca bo samo ukrycie tekstu wg. forum google zapala 'czerwoną lampkę'.
Zatem chciałbym tego uniknąć, jakieś porady w jaki sposób wrzucić obrazek bez zostawiania sekcji bez nazwy?
edit: problem odnosi się nie tylko do tej sytuacji. No ale np. mamy znacznik tworzący nową sekcję gdzie zwyczajnie nie ma gdzie wstawić nagłówka. Co wtedy?
https://developer.mozilla.org/en/Sections_and_Outlines_of_an_HTML5_document
W akapicie Sections outside the outline jest napisane, ze aside, nav, footer i header sa poza outlinem, wiec albo korzystasz bez outlina, albo wpakuj to logo do czegos innego.
Osobiscie nigdy tego nie uzywalem, wiec nie do konca rozumiem zamysl, chodzi o tworzenie rozdzialow, podrozdzialow i podpodrozdzialow tak? To po co umieszczac logo posrod nich? :>
Czy się da - a jeżeli tak to jak:
Chciałbym stworzyć własne obramowanie, tzn linie pionowe i poziome, zapisane jako obrazki (rozciągają się) oraz 4x narożniki. Wszystko zmieniałoby się w zależności od wielkości div'a.
Dzięki wielkie! Wpisywałem różne hasła w google i nic. A to było tak proste ;)
kolejny problem, tym razem z php.
Ta strona działała na komputerze na zajęciach, w domu już nie chce działać (w ogóle nie ma obszarów klikalnych):
<body>
<?php
$k=$_GET['klucz'];
if (!isset($_GET['klucz'])) $k=0;
echo "k wynosi $k <br />";
$l=$_GET['lina'];
if (!isset($_GET['lina'])) $l=0;
echo "l wynosi $l <br />";
if ($k==1 and $l==1) $pic="11.jpg";
if ($k==0 and $l==1) $pic="01.jpg";
echo "Pic wynosi $pic <br />";
echo "<img src=\"$pic\" />";
if($k==0 and $l==0) $mapa="00";
if($k==0 and $l==1) $mapa="01";
echo "<img src=\"$pic\" usemap=\"$mapa\" />";
?>\
<map name="m01">
<area shape="rect" coords="273,587,430,726" href="dupa.html" />
<area shape="rect" coords="573,602,920,753" href="dupa2.html" />
</map>
</body>
obrazki są typu 01.jpg, 11.jpg - np przy 01.jpg znaczy ze k=0 i l=1
więc jeżeli wpiszę w przeglądarce localhost/1.php?klucz=0&lina=1 powinno cokolwiek działać, a nie działa nic :( wyświetlają się tylko informacje typu "l wynosi 0" i pojawia obrazek, ale na nic kliknąć nie mogę.
z góry dziękuję za pomoc!
if($k==0 and $l==0) $mapa="00";
if($k==0 and $l==1) $mapa="01";
powinno być raczej:
if($k==0 and $l==0) $mapa="m00";
if($k==0 and $l==1) $mapa="m01";
edit ;)
albo:
<map name="01">
mam mały problem z blogiem a dokładnie ze znalezieniem skryptu odpowiedzialnym za wstawianie niepożądanej rameczki pod wpisami a dokładnie.. dam na przykład: http://rowerowelove.blogspot.com/2012/06/najlzszejsze-hamulce-formula-one.html
i mowie o ramce pokazanej obok ---->
przeszukałem cały kod w edycji szablonu lecz niczego nie znalazłem lecz po wejściu w ten wpis i kliknięciu PPM "pokaż źródło strony" w 810 linijce widać budowę tej niepożądanej ramki.
może mi ktoś pomoc pozbyć się tego?
Ciekaw jestem czy ktoś z Was pracuje na Python/Django?
Polecacie jakiś przyzwoicie skalujący się komercyjny hosting dla Django? Skalujący się tzn. z tanim małym planem i możliwością powiększenia go?
@domin12
Osobiście zastanowiłbym się nad używaniem tego szablonu. Dlaczego? Kliknij w link na dole swojej strony (Template by: Urangkurai).
Żeby pozbyć się tego, musiałbyś mieć dostęp do plików szablonu - masz taki dostęp?
tego podpisu na końcu już się pozbyłem.. wydawało mi się, że już to zrobiłem na początku:)
tak mam dostęp do niego.
<b:if cond='data:blog.pageType == "item"'>
<div class='box-admin'>
<h4>Penulis : <b><a expr:href='data:blog.homepageUrl'><data:post.author/></a></b> ~ Sebuah blog yang menyediakan berbagai macam informasi</h4>
<div class='kontainer'>
<div class='photo-admin'> </div>Artikel <b><a expr:href='data:post.url'><data:post.title/></a></b> ini dipublish oleh <b><data:post.author/></b> pada hari <b><data:post.dateHeader/></b>. Semoga artikel ini dapat bermanfaat.Terimakasih atas kunjungan Anda silahkan tinggalkan komentar.sudah ada <b><b:if cond='data:post.numComments == 1'>1<data:commentLabel/>:<b:else/><data:post.numComments/> komentar:</b:if></b> di postingan <b><a expr:href='data:post.url'><data:post.title/></a></b>
<div style='clear:both;'/>
</div>
</div>
</b:if>
</div>
usunięcie tej części powinno załatwić sprawę po moich oględzinach całości
No i pomogło :(
Po co pozbywasz się tego podpisu? Przecież to nie Twój szablon, tylko kogoś innego - usuwając taką stopkę bez zgody autora łamiesz prawo.
Jak się formalnie nazywa podpinanie pod pole tekstowe listy wyników, które pasują z bazy? Tak, jak ma to google zaimplementowane w wyszukiwarce?
Siema, czy ktoś z was odpalał aplikację railsową na hostingu linuxpl.com? Potrzebuje zmigrować tam serwis i coś nie chce banglać.
Czy możliwe jest stworzenie takiego zapytania do bazy SQLite (przez PDO)?
Mam wyraz: abecadło.
W bazie mam tabelę Kawalki z polem Zawiera, która ma ileś tam rekordów, w tym np. dło oraz beca czy ad (czyli części wyrazu abecadło) oraz części jakichś innych wyrazów, które nie pasują do tego abecadła, np. hron, ni, skr...
I teraz chcę z pola Zawiera wyciągnąć wszystkie takie pasujące części danego wyrazu.
SELECT Zawiera FROM Kawalki WHERE ...
PS. znaleźć tutaj coś na forum przez tę golową szukarkę to niezły wyczyn.
PS2. Idzie powiesić wątek bezpośrednio z tego wątku? Czy mogę to zrobić tylko na stronie głównej forum?
Niestety nigdy nie pracowałem na SQLite, więc nie jestem pewien czy zadziała ale na MySQLu da się to zrobić tak:
SELECT `zawiera`
FROM `kawalki`
WHERE 'abecadło'
LIKE CONCAT('%', `zawiera`, '%');
Wydaje mi się, że działa jak powinno, przynajmniej w MySQLu :P.
@PS2 - pod komenatrzami jest "podwieś wątek".
Dzięki, będę próbował.
Z tym podwieszeniem to chyba nie byłem zalogowany wyświetlając wątek, a zalogowałem się dopiero klikając Odpowiedź, bo teraz to widzę.
Jak zaimplementować w funkcję prostego slidera automatyczne przesuwanie slajdów co np. 5 sekund, ale gdy użytkownik kliknie kropkę z innym slajdem przesuwanie automatyczne wyłącza się?
<script type="text/JavaScript">
$(document).ready(function ()
$('#paginacja a').click(function()
var integer = $(this).attr('rel');
$('#myslide .cover').animate(left:-900*(parseInt(integer)-1)) /*----- Width of div mystuff (here 160) ------ */
$('#paginacja a').each(function()
$(this).removeClass('active');
if($(this).hasClass('paginacja'+integer))
$(this).addClass('active')
);
);
);
</script>
Drugie pytanie, jak ustawić cookie w js? :P Jak sądzę jest ono potrzebne by po kliknięciu [x] na pasku, który ma załączone showhide() nie pojawiał się po przeładowaniu strony.
Poquelin --> zmienianie slajdów definiujesz używając setInterval, zwracaną wartośc zapisujesz w zmiennej. Po kliknięciu przez usera wywołujesz clearInterval z tą zmienną.
Cookiesy - są do tego pluginy do jQuery, ale możesz tez to zrobić ręcznie, choć mało to wygodne: <a href=https://developer.mozilla.org/en-US/docs/DOM/document.cookie target=_blank>https://developer.mozilla.org/en-US/docs/DOM/document.cookie
[41] Whoa, moja wiedza z zakresu js ogranicza się do prostych przeróbek istniejącego kodu. Podasz przykład użycia w działającym kodzie czy mam sam spędzić najbliższą godzinę na próbowaniu metodą prób i błędów? :P
piszesz sobie coś takiego:
zegar=setInterval('przewijaj()',5000);
która uruchamia co 5 sekund funkcję przewijaj() - w której sobie piszesz wszystko co ma się wydarzyć przy zmianie obrazka.
Teraz wystarczy podłączyć do przycisku coś takiego:
clearTimeout(zegar);
by zatrzymać automatyczne uruchamianie funkcji.
Oczywiście możesz pójść o kroczek dalej i np. przywracać przewijanie, ponownie wywołując pierwszy przykład z mojego postu (nawet bezpośrednio po wyczyszczeniu zegara)
Dobra, będę próbował i dam znać co z tego wyjdzie.
Nigdy wcześniej nie zakładałem strony, a zależy mi, aby była wysoko w wynikach Google. Branża na tyle wąska, że Google samo z siebie nawet nie zapełnia pierwszej strony odpowiednimi wynikami. Mógłby ktoś wytłumaczyć w jaki sposób zrobić tak, aby wszystko działało jak należy? Gdzie co wpisać, gdzie zapłacić..
Niech się jakiś spec od js wypowie - czemu to #$# nie działa? Czemu nie tworzy mi ciastka o nazwie jezyk, z zawartoscią zależną od klikniętego linku i parametru name="" ?
<script language = "JavaScript">
function writeCookie()
;
var waznosc = new Date()
waznosc.setMonth(waznosc.getMonth()+12)
var c = "jezyk" + document.getElementsByName(a) + ";expires=" + waznosc;
document.cookie = c;
;
</script>
I HTML (fragment)
<a name="pl" onClick="writeCookie();" onMouseOver="overlib('<br /><center>Kliknij aby wybrać język polski.</center>', TEXTSIZE, '11px', FGCOLOR, '#667C94', BGCOLOR, '#00FFFF', TEXTCOLOR, '#FFFFFF', HEIGHT, 40)" onMouseOut="nd();" href=""><img style="margin-top:2px;" width="16" height="11" src="flags/pl.png" /></a>
<a name="ru" onMouseOver="overlib('<br /><center>Нажмите, чтобы выбрать русский.</center>', TEXTSIZE, '11px', FGCOLOR, '#667C94', BGCOLOR, '#00FFFF', TEXTCOLOR, '#FFFFFF', HEIGHT, 40)" onMouseOut="nd();" href=""><img style="margin-left:10px;margin-top:2px;" width="16" height="11" src="flags/ru.png" /></a>
pytanie do golowiczów - iloma tabelami w bazie obsługujecie galerie? gdzie określacie zdjęcia główne? przechowujecie gdzieś liczbę zdjęć, czy za każdym razem je liczycie? jakoś specjalnie zmieniacie nazwy plików?
chodzi o takie ogólne podejście do galerii...
postanowiłem zrobić na stronie okienko "najnowsze galerie" z wybieranym zdjęciem głównym + liczoną liczbą zdjęć w jednym zapytaniu MySQL
SELECT *,COUNT(zdjecia.galeria_id) AS liczba_zdjec FROM galerie LEFT JOIN zdjecia ON (galerie.galeria_id = zdjecia.galeria_id) GROUP BY galerie.galeria_id
wcześniej, bez liczenia zdjęć do ON dodawałem "AND zdjecia.glowne=1", no ale z nie przejdzie
jest jakaś opcja do sortowania tej części zapytania?
edit.
OK, wydaje mi się, że zrobiłem to...
SELECT *,COUNT(zdjecie_id) AS liczba_zdjec
FROM
(
SELECT
galerie.galeria_id,zdjecia.filename,zdjecia.zdjecie_id,zdjecia.glowne
FROM galerie LEFT JOIN zdjecia ON (galerie.galeria_id = zdjecia.galeria_id)
ORDER BY zdjecia.glowne DESC
) AS galerie_temp
GROUP BY galeria_id
i teraz pytanie dodatkowe - co bardziej zamula bazę? takie zapytanie w zapytaniu, czy 2 normalne zapytania?
Ciekaw jestem czy ktoś z Was pracuje na Python/Django?
Polecacie jakiś przyzwoicie skalujący się komercyjny hosting dla Django? Skalujący się tzn. z tanim małym planem i możliwością powiększenia go?
jiser - polecam Azure od Microsoft'u. Oferują wirtualne maszyny, na których można zainstalować zarówno Windows Server, bądź jedne z popularniejszych dystrybucji Linuksa (coś co pewnie bardziej zainteresuje developerów tworząch w Pythonie). Ich plan jest zależny od zużytego bandwitch'u - można ustawić maksymalną miesięczną kwotę - ale płacisz tylko za zużyty transfer i miejsce.
Chce sobie zmierzyć czas wykonania zapytania. Aplikacja w PHP, baza w MSSQL/MySQL/PostGreSQL/Oracle. Jak to uczynić? Pobieranie czasu przed wykonaniem query i po wykonaniu raczej działa słabo.
Vodahmin ~~~>
Dzięki. Nie widziałem wcześniej Twojej odpowiedzi. Mocno skalowalne, zapamiętam.
Panowie, bo już głupieję...
Potrzebuję regexpa na następujący zestaw znaków (dozwolone dwie kombinacje w polu tekstowym)
xx-1111 (dwie litery, myślnik, cztery cyfry)
oraz
xxx-xx-11111 (trzy litery, myślnik, dwie litery, myślnik, 5 cyfr)
Pomoże mi ktoś?
Tzn. chciałbyś to załatwić jednym regexprem bez "ora" w środku? Nie sądzę, żeby to było możliwe, bo musiałbyś uzależnić ostatni "składnik" regexpa od pierwszego (zależnie od ilości liter na początku dopasuj inną ilość cyfr na końcu). Ja bym to po prostu zrobił tak:
(^\w2-\d4$)|(^\w3-\w2-\d5$)
Jeśli \w nie odpowiada Ci, bo zawiera za dużo znaków, to naturalnie proponuję wymianę na [a-z] ;)
EDIT: Oczywiście GOL rozwalił składnię - widzę, że w tej kwestii bez zmian od 2002... Nawiasy klamrowe, a nie trójkątne...
[47] Zagnieżdżone zapytania to zbrodnia na wydajności i generalnie zły zwyczaj. Odradzam. Jeśli nie jesteś w stanie załatwić sprawy pojedynczym zapytaniem (nie wnikałem w kod, nie bardzo mam czas), to zrób to "łopatologicznie" + cache'owanie frontendu. Albo zliczaj zdjęcia w galerii triggerami odpalanymi przy operacjach na tabeli ze zdjęciami. Opcji jest sporo, zależnie od tego czy mówimy o małej stronce na pojedynczym serwerze, czy o jakiejś rozproszonej "kobyle" obsługujących miliony odsłon dziennie.
[49] Wypluwaj sobie takie informacje do logów - w Postgresie to kwestia zmiany w configu. Potem masz narzędzia do analizowania tych zapytań i robienia statystyk - co zajęło najwięcej czasu itp.
[50] Zbadaj Amazon Web Services. Ogólnie, rozwiązań cloudowych jest obecnie multum ;)
Regis ==> Jedno uruchomienie na 2-5 godzin i sprawdzenie formularza z identyfikatorem, więc wisi mi wydajność w tym przypadku :)
Dzięki, o to mi chodziło :)
Regis -> dzięki wielkie, a jak to jest z łączeniem dwa razy do tej samej tabeli pod aliasem? też tak żre zasoby?
zapytanie wyglądałoby tak:
SELECT
galerie.*,
zdjecie.*,
COUNT(licz.zdjecie_id) AS liczba_zdjec
FROM galerie
LEFT JOIN zdjecia AS zdjecie ON (galerie.galeria_id = zdjecie.galeria_id AND zdjecie.glowne = '1')
LEFT JOIN zdjecia AS licz ON (galerie.galeria_id = licz.galeria_id)
GROUP BY galerie.galeria_id
;
W ciemno powiem, opierając się tylko na tym, jak wygląda zapytanie i na własnym doświadczeniu (wyczuciu), że ta opcja na pewno będzie nieporównywalnie lepsza. A jak jeszcze do tego założysz odpowiednie indeksy, to już w ogóle nie będzie problemu (zakładając nie–skrajne obciążenie serwisu ;-)).
BTW. Polecam zaprzyjaźnić się z poleceniami do analizy złożoności zapytań – poszukaj informacji o EXPLAIN ANALYZE lub czymś analogicznym dla bazy, której używasz :-) A potem po prostu sprawdź oba zapytania, tak z indeksami jak i bez, i wyciągnij wnioski ;-)
Znacie może jakąś literaturę poświęconą badaniu wydajności baz danych? Pracę sobie magisterską piszę i muszę mieć coś do rozdziału teoretycznego.
Głupieję z SQL...
Mam dwie tabele:
1)
id_kodu
id_osoby
id_punktow
2)
id_osoby
imie
nazwisko
itd....
Potrzebuję otrzymać następujący zakres:
komplet id_kodu
tam gdzie jest id_osoby
tam gdzie jest id_punktow
tam gdzie jest imie
tam gdzie jest nazwisko
tam gdzie jest itd
pomoże ktoś? :)
Edit:
Dobra, nieważne.... :] Głupieję już jak zaznaczyłem na wstępie. Zrobione :)
Witajcie
Tworzę pewien projekt, który zakłada min. stronę w 4 językach - polskim (domyślny), angielskim, rosyjskim i niemieckim.
Problem w tym, że nie wiem jak się za to zabrać od strony technicznej. Wymyśliłem sobie, że poszczególne zestawy stron w innych językach znajdą się w głównym folderze ze stroną czyli
/ru/
/en/
/de/
index_polski_domyslny.php
Za zmianę języka zaś będzie odpowiadał plik lang.php, tworzący ciastko jezyk z zawartym weń skrótem języka. Tylko nie wiem co teraz - jak odwoływać się do tych podfolderów językowych. A może moje rozwiązanie jest zwyczajnie złe?
@up
Czy strona po angielsku to inna strona, niż po polsku - inna struktura, inne linki, inne ceny (jeżeli dotyczy), inne opcje?
Jeżeli strona różni się tylko tekstami, to dobrze by było nie powielać widoków (jeżeli tworzysz zgodnie z mvc) i po prostu podmieniać teksty na stronie. Ja wielojęzykową stronę tworzyłem ostatnio przy użyciu frameworku Kohana, gdzie wstawiałem
echo __('register_new_user_save');
zamiast
echo 'Zapisz';
co później było tłumaczone w pliku pl.php na
array('register_new_user_save' => 'Zapisz');
albo w pliku en.php na
array('register_new_user_save' => 'Save');
Jeżeli strona różni się funkcjonalnością, to Twoje rozwiązanie wydaje się ok.
Rozwiązanie z ciasteczkami jest złe, ponieważ strona będzie źle indeksowana przez Google. Nie jestem jakimś specem od pozycjonowania i nie wiem jak bot od Google traktuje cookies, jednak strona będzie zaindeksowana albo tylko w polskim języku albo w losowych językach. Działoby się tak dlatego, że tak naprawdę pod adresem /index.php miałbyś 4 różne strony, które powinny być zaindeksowane. Najlepszym rozwiązaniem jest zrobić po prostu www.<adres>.com/pl/, www.<adres>.com/en/, www.<adres>.com/ru/ itd.
Na potwierdzenie tego, nie chcę szukać żadnych dowodów z for internetowych - po prostu sugerowałbym brać przykład z największych korporacji - www.microsoft.com/pl-pl/ http://www.apple.com/pl/ http://www.samsung.com/pl/ http://www.lg.com/pl i tak dalej, i tak dalej...
lub jeżeli stać Cię na utrzymywanie kilku domen, skorzystać z rozwiązania SONY (www.sony.net, www.sony.pl, www.sony.ru)
Jeżeli tworzysz projekt, który ma być dostępny dla osób wyszukujących w Google, to musisz zmienić koncepcję.
Jeżeli tworzysz projekt, który jest aplikacją jakiejś firmy (albo po prostu użytkownicy nie będą wchodzić z googli), to teoretycznie możesz stosować cookies do tego, jednak... czy nie lepiej mimo tego napisać stronę, która będzie przyjazna dla wyszukiwarki?
jw. Projektujesz router w taki sposób, żeby pierwszy parametr odpowiadał za język.
http://www.domena.com/pl/
http://www.domena.com/en/
Powinieneś otrzymać parametr lang=pl/en. Na tej podstawie ładujesz odpowiednie pliki lokalizacyjne.
Mam pewien problem. Muszę napisać kod do witrynki, w której użytkownicy mogą się logować i dodawać pewną treść. Swoją treść mogą obejrzeć w czymś w stylu "moje konto", natomiast na normalnym front-endzie tę samą treść sortuje się wg np. daty.
To wszystko jest strasznie proste o ile korzysta się przynajmniej z php i mysql, gdzie wszystko samo się robi. Sprawa jednak jest taka, że muszę z mysqla nie korzystać.
No i teraz mam zagwozdkę, jak do tego usiąść. Wiadomo, że całą treść trzeba w takim wypadku przechowywać w plikach. Nie oczekuję w ogóle gotowca, tylko nakierowanie jak to dość sensownie zaplanować :)
'Sprawa jednak jest taka, że muszę z mysqla nie korzystać. '
Tzn. w ogóle bez BD? Na plikach?
EDIT: dopiero doczytałem następną linijkę... Trochę karkołomne, ostatnio robiłem coś podobnego. Miałem cachować duże ilości danych relacyjnych, bez BD.
Rozwiązałem to w ten sposób, że każdemu rekordowi BD odpowiadał obiekt zawierający arraye z relacjami. Obiekty były serializowane i zapisywane do takiej struktury katalogów, która pozwalała na następne jednoznaczne zlokalizowanie plików na podstawie relacji zawartych w w/w tablicach.
Odszukiwanie rekordów wykonywałem za pomocą operacji na tablicach - array_intersect, array_merge itp.
Właśnie chodzi o to, że nie mogę użyć żadnej bazy danych. Jedyny problem pobierania pliku z arrayami jest taki, że trzeba byłoby je pobierać przy każdym otwarciu strony.
Albo może trzymać w strukturze folderów wg użytkowników i tylko modyfikować dodatkowo plik z listą na "główną" jako ściągawka, które pliki pobierać a które nie?
[64] np coś takiego (prosty przykład dla użytkowników i newsów)
1. Struktura katalogów
/data
../users
..../user1id.data
..../user2id.data
../news
..../news1id.data
..../news2id.data
..../newsList.data
Każdy user ma arraya z IDkami jego newsów (vel. relacja jeden-do-wielu - array oprócz parentId bo w przeciwnym wypadku musiałbyś otwierać wszystkie newsy żeby odszukać te które należą do użytkowników).
Każdy news ma parentId.
NewsList podstawowe dane newsów (na potrzeby paginacji, sortowania itp. w zależności od tego co jest potrzebne).
Wiadomo - rozwiązanie bardziej problematyczne od bazodanowych, ale to jest raczej oczywiste :)
Hej
Czy ktoś z Was miał styczność z testami A/B ? Jakie narzędzie proponujecie? Tutoriale mile widziane.
kolejne pytanie :)
przez AddHandler w .htaccess mogę zmienić wersję php wykorzystywaną na serwerze?
próbuję
AddHandler application/x-httpd-php53 .php .php5 .php4 .php3
ale to powoduje jedynie ściągnięcie skryptu na dysk podczas próby otworzenia strony...
serwer to kei.pl, w info na stronie jest informacja, że zmiana php na 5.3 była obligatoryjna w grudniu 2011, ale u mnie działa 5.2.17, dostępu do panelu klienta nie mam, bo przejmuje to od innej osoby a login i hasło są inne niż do serwera
@up
Obawiam się, że bez kontaktem z serwerownią nie dasz rady odpalić php 5.3. Swoją drogą, też mam na kei.pl wersję php 5.2.17.
Mógłby mi ktoś pomóc ze znalezieniem pluginu do Joomla 1.5, który pozwoliłby na wyświetlanie na jednej stronie zgrabnie wizytówek osób?
Sam jeszcze nie wiem, jak miałoby to wyglądać. Wiem na pewno, że potrzebuję wyświetlić zdjęcie i opis na podstawie danych w bazie.
Dobrze by było, gdyby dało się wyświetlić po kliknięciu w wizytówkę nowego nałożonego diva ze szczegółami.
Ogólna lista by przypominała forum/komentarze.
sorry za banalne pytanie, ale jak zrobic w htmlu, zeby po kliknieciu na przycisk otwieral sie link (w tym samym oknie)
mam np <input type="button" value="idz do innej strony">
Rodro -> Wykorzystaj element 'a'.
Np:
<a href="nazwa_strony.html">Nazwa odnośnika</a>
Elementy input wykorzystujesz w formularzach. Np:
<form action="" method="POST">
<input type="text" name="nazwa_pola" value="" />
<input type="submit" value="Wyślij" />
</form>
Dzieki, ale chce, zeby to byl przycisk. podpialem funkcje z linijka kodu:
window.location = "link.html";
@up
Korzystając z takich funkcji, uniemożliwiasz dostęp do strony osobom, które mają wyłączony w przeglądarce javascript.
Lepiej zrobić <a href="link.html>[tu obrazek, który wygląda jak przycisk]</a> i w cssie zrobić "animację klikania".
Pomocy z wiedzą Panowie i Panie :)
Szukam do WordPressa jakiejś ładnej galerii. Plugin + Theme.
Założenie:
- wyświetlenie tego w jakiś przystępny sposób za pomocą losowego zdjęcia jako album, a następnie wyświetlenie listy + ładne przewijanie zdjęć
- możliwość uploadu wielu plików na raz
Witam wszystkich.
Czy mógł by ktoś mi przybliżyć kwestie związane z lokalizacją po numerze IP. Chodzi mi głównie o to jak dokładnie można określić położenie użytkownika który wchodzi na stronę i czy strona po numerze IP może sama zadecydować w jakim języku ma być wyświetlona, chodzi tu o możliwość wyświetlania danej strony w wielu językach w zależności od tego w jakim kraju znajduje się użytkownik.
Dwie różne sprawy:
1. Do określania informacji nt. lokalizacji użytkownika możesz użyć biblioteki GeoIP (a dokładnie jakichś bindingów do niej, zależnie od tego z jakiego języka programowania korzystasz). Np. dla Pythona jest to python-geoip. W PHP też jest coś używającego GeoIP.
2. Do określenia języka, który będzie dla usera najlepszy, należy raczej użyć czegoś, co znajduje się w nagłówkach HTTP - pewnie są nawet jakieś biblioteki do tego. Nie jestem z tym na bieżąco, ale ja dawno temu korzystałem z HTTP_ACCEPT_LANGUAGE i wydaje mi się, że skoro taka informacja jest wysyłana przez przeglądarkę, to powinno się jej używać. Ja np. mam ustawiony system na język angielski, mimo że mieszkam PL i niechciałbym, żeby strony chciały mi "podsuwać" na siłę" j. polski, skoro sam im "mówię", że chcę j. angielski ;-)
Koledzy starzy wyjadacze, potrzebuję dobrej porady.
We firmie pracujemy na takim systemie oprogramowania w którym jedna aplikacja generuje raporty html które sobie drukujemy, a inna aplikacja zaczytuje te html i po pierwsze dodaje sobie kilka wpisów do własnej bazy danych a po drugie pozwala na podgląd tego html w dowolnym momencie nawet jak zniknie z dysku.
Obie aplikacje pochodzą od różnych producentów i ta wczytująca jest lekko beznadziejna ale nie o to chodzi. Jeśli was ciekawi co to za apki to jedna to TruTOPS a druga Comarch CDN XL.
Doszedłem do tego jak przerobić oryginalny html (zrobiłem własny szablon i podstawiłem go pierwszej aplikacji) ale ta pierwsza aplikacja nie przewidzi nigdy jakie dodatkowe informacje trzeba dopisać długopisem do wydrukowanego htmla nim zostanie posłany na warsztat, po prostu jest tu sporo zależności które w tej aplikacji nie są brane pod uwagę bo są (jeszcze na tym etapie) zbędne.
Zaszyłem w szablonie htmla trzy formularze :
2 listy rozwijane <form><select><option> ...
i pole edycji <form> <input> ...
- tuż przed wydrukiem w oknie przeglądarki można sobie rozwinąć te listy z dodatkowymi danymi, a w polu wpisać uwagę. Dzięki temu mamy mniej pisania długopisami - wszystko się ładnie drukuje.
Teraz potrzebuję sposobu aby wybrane w listach opcje i wpisany text w inpucie zapisać z powrotem do tego html'a by pokazywały się za każdym kolejnym otwarciem. Nie mają tu powstawać kolejne pliki - ma się to zapisać w tym pliku który akurat jest oglądany/drukowany.
Wyobrażam sobie że działałoby to jak TiddlyWiki czyli potrzebuję sprytny skrypt w js, tylko że nie mogę na niego nigdzie w sieci wpaść. Jeśli to ułatwi sprawę to potrzeba tylko 2 zmienne liczbowe (odpowiadające pozycji na liście) i jedna string. No ale ten mechanizm zapisu to już dla mnie wyższa szkoła.
Niestety nie wchodzi w rachubę każdorazowe otwieranie źródła html w notatniku i edytowanie bo dla niektórych korzystanie z comboboxów to była druga rewolucja informatyczna w życiiu :D (pierwsza to otwieranie plików html z dysku a nie z internetu...)
Z góry dzięki za każdą pomoc.
Myślę, że mógłbyś z powodzeniem wykorzystać do tego ciasteczka. Albo przez document.cookie, albo przez któryś framework, który ułatwia zapisywanie ciastek, bo nie musisz wtedy pisać własnej ich obsługi (choć oczywiście są gotowce)
Dzięki za sugestię ale zapomniałem dodać że ma to działać na dowolnym komputerze, i w przeglądarkach IE9 IE8 i Firefoxie.
Myślałem o ciasteczkach ale to działa tylko na jednym kompie. Dlatego zasugerowałem się TiddlyWiki, bo w poprzedniej firmie zrobiłem takie wewnętrzne Wiki na tym dla mojego działu. W tiddly działa dynamiczne tworzenie pozycji - nowych tiddlerów, w tym co ja chcę uzyskać nie potrzeba aż takiego bajeru, ilość danych będzie stała.
Serwerowanie odpada, php odpada, na MS sharepoint nie ma co liczyć .
Zostaje w takim razie jakiś prosty osadzony flash, localstorage.
Kiedyś miałem patent do IE, który zapisywał dany plik, ale trzeba było potwierdzić zapis na dysku - nadpisywałem ciągle ten sam plik, który był podłączony jako plik javascript i odczytywany przez tę samą stronę.
Tylko że to na około.
Serwerowanie odpada, php odpada, na MS sharepoint nie ma co liczyć .
Nie mam w takim razie zielonego pojęcia jak chcesz zrealizować ten fragment:
Myślałem o ciasteczkach ale to działa tylko na jednym kompie.
maviozo - nawet takie rozwiązanie na około się sprawdzi - może powstawać do każdego html'a dodatkowy mały pliczek, automatycznie wczytywany onLoad a zapisywany onButtonClick :)
tuminure - ciasteczka nie.
Dlatego dalej upieram się przy TiddlyWiki, nie wiem czy kojarzycie, ale to jest jedyna rzecz robiąca to co teraz chcę uzyskać i trzymam się tego wzorca póki nie wykombinuje czegoś innego.
TiddlyWiki jest pojedynczym plikiem html w 99% wypełnionym kodem js. Trzymasz go gdziekolwiek na dysku, otwierasz w przeglądarce (najwyżej zgadasz się na działanie skryptów). Tworzysz nowy tiddler (nową notatkę), gdy klikniesz link "zapisz" tiddly zapisuje notatkę wewnątrz tego samego pliku html (wewnątrz siebie) i odświeża stronę (odświeża siebie) już z tym wpisem. Voila - tak bym chciał, rozwiązanie idealne. Możesz zabrać ten plik na pendrive, wrzucić na dropboxa, każdy tekst się w nim zmieści, gdzie go nie otworzysz to będziesz miał.
A jak się nie da to może jakieś js'owe save_to_file i if_file_exist_then_read_from_file?
Wszystkie pliki są w sieci firmowej na zmapowanych dyskach z pełnymi uprawnieniami, z tym nie ma problemu.
--------------
Znalazłem wreszcie chwilę i wpadłem na kilka tropów SPA (Single Page Application), i rozwiązań self-saving. Rozbija się to o jquery.twfile i inne rzeczy których nie ogarniam :D
Bri - to Tiddly w takim razie działa tak samo, jak to co ja opisałem. Klikasz na przycisk, ale IE wyświetla okienko w którym wskazujesz plik.
Szukaj w googlu czegoś takiego:
if( d.execCommand( 'SaveAs', null, name ) )
Nic z tego jednak nie będzie, za skomplikowane to jquery.twfile.
To już łatwiej aplikacje napisać w której wskazujesz html zaznaczasz kilka chekboxów i po nacisnięciu buttona odpowiednie rzeczy są dopisywane do pliku.
Fajne narzedzie dla piszacych css (jak sie ma dwa monitory to juz calkiem)
edytorek jest prosty jak barszcz, ale ma uzupelnianie skladni i niektorym to wystarczy.
Najwazniejsze ze jest bezposrednie lacze z chrome i wszystkie zmiany css widac od razu (nawet nie trzeba zapisywac pliku), ogromna oszczednosc czasu.
Hej, może ktoś z was zerknąłby na tych kilkadziesiąt linijek i powiedział mi co jest nie tak? Tracę już nerwy.
Skrypt generujący ankietę umozliwiającą głosowanie bez przeładowania strony. Próbuję to zaadaptować u siebie i tym bardziej się wkurwiam, bo nie jest to jakis skomplikowany kod. Ankieta generuje się poprawnie. Gdy nie wybiorę odpowiedzi i kliknę vote, pojawia się stosowny komunikat. Natomiast gdy wybieram odpowiedź i klikam vote, koło loading zaczyna się kręcić i skrypt staje w miejscu...
poll.js
$(document).ready(function() ;
$("#pollAjaxLoader").hide(); //hide the ajax loader
$("#pollMessage").hide(); //hide the ajax loader
$("#pollSubmit").click(function() ;
var pollAnswerVal = $('input:radio[name=pollAnswerID]:checked').val();//Getting the value of a selected radio element.
if ($('input:radio[name=pollAnswerID]:checked').length) ;
$("#pollAjaxLoader").show(); //show the ajax loader
$.ajax(;
type: "POST",
url: "../functions/functions_poll.php",
statusCode: ;
404: function() ;
alert("page not found");
;;,
data: ; pollAnswerID: pollAnswerVal, action: "vote" ;,
success: function(theResponse) ;
//the functions.php returns a response like "1|13|#ffcc00-2|32|#00ff00-3|18|#cc0000-63" which the first number is the answerID, second is the points it has and third is the color for that answer's graph. The last number is the sum of all points for easilt calculating percentages.
if (theResponse == "voted") ;
$("#pollAjaxLoader").hide(); //hide the ajax loader
$("#pollMessage").html("sorry, you already voted.").fadeTo("slow", 1);
; else ;
var numberOfAnswers = (theResponse).split("-").length-2;//calculate the number of answers
var splittedResponse = (theResponse).split("-");
var pollAnswerTotalPoints = splittedResponse[numberOfAnswers+1];
for (i=0;i<=numberOfAnswers;i++)
;
var splittedAnswer = (splittedResponse).split("|");
var pollAnswerID = (splittedAnswer[0]);
var pollAnswerPoints = (splittedAnswer[1]);
var pollAnswerColor = (splittedAnswer[2]);
var pollPercentage = (100 * pollAnswerPoints / pollAnswerTotalPoints);
$(".pollChart" + pollAnswerID).css("background-color",pollAnswerColor);
$(".pollChart" + pollAnswerID).animate(;width:pollPercentage + "%";);
$("#pollAnswer" + pollAnswerID).html(" (" + Math.round(pollPercentage) + "% - " + pollAnswerPoints + " votes)");
$("#pollRadioButton" + pollAnswerID).attr("disabled", "disabled"); //disable the radio buttons
;
$("#pollAjaxLoader").hide(); //hide the ajax loader again
$("#pollSubmit").attr("disabled", "disabled"); //disable the submit button
;
;
;);
return false;
; else ;
$("#pollMessage").html("please select an answer.").fadeTo("slow", 1, function();
setTimeout(function() ;
$("#pollMessage").fadeOut("slow");
;, 3000);
;);
return false;
;
;);
;);
functions/functions_poll.php
//GETTING VARIABLES START
if (isset($_POST['action'])) ;
$action = $_POST['action'];
;
if (isset($_POST['pollAnswerID'])) ;
$pollAnswerID = $_POST['pollAnswerID'];
;
//GETTING VARIABLES END
function getPoll($pollID);
$result = sql("SELECT * FROM polls LEFT JOIN pollanswers ON polls.pollID = pollanswers.pollID WHERE polls.pollID = " . $pollID . " ORDER By pollAnswerListing ASC");
$pollStartHtml = '';
$pollAnswersHtml = '';
while($row = mysql_fetch_array($result))
;
$pollQuestion = $row['pollQuestion'];
$pollAnswerID = $row['pollAnswerID'];
$pollAnswerValue = $row['pollAnswerValue'];
if ($pollStartHtml == '') ;
$pollStartHtml = '<div id="pollWrap"><form name="pollForm" method="post" action="../functions/functions_poll.php?action=vote"><h3>' . $pollQuestion .'</h3><ul>';
$pollEndHtml = '</ul><input type="submit" name="pollSubmit" id="pollSubmit" value="Vote" /> <span id="pollMessage"></span><img src="images/ajaxLoader.gif" alt="Ajax Loader" id="pollAjaxLoader" /></form></div>';
;
$pollAnswersHtml = $pollAnswersHtml . '<li><input name="pollAnswerID" id="pollRadioButton' . $pollAnswerID . '" type="radio" value="' . $pollAnswerID . '" /> ' . $pollAnswerValue .'<span id="pollAnswer' . $pollAnswerID . '"></span></li>';
$pollAnswersHtml = $pollAnswersHtml . '<li class="pollChart pollChart' . $pollAnswerID . '"></li>';
;
echo $pollStartHtml . $pollAnswersHtml . $pollEndHtml;
;
function getPollID($pollAnswerID);
$query = "SELECT pollID FROM pollAnswers WHERE pollAnswerID = ".$pollAnswerID." LIMIT 1";
$result = sql($query);
$row = mysql_fetch_array($result);
return $row['pollID'];
;
function getPollResults($pollID);
$colorArray = array(1 => "#ffcc00", "#00ff00", "#cc0000", "#0066cc", "#ff0099", "#ffcc00", "#00ff00", "#cc0000", "#0066cc", "#ff0099");
$colorCounter = 1;
$query = "SELECT pollAnswerID, pollAnswerPoints FROM pollAnswers WHERE pollID = ".$pollID."";
$result = sql($query);
while($row = mysql_fetch_array($result))
;
if ($pollResults == "") ;
$pollResults = $row['pollAnswerID'] . "|" . $row['pollAnswerPoints'] . "|" . $colorArray[$colorCounter];
; else ;
$pollResults = $pollResults . "-" . $row['pollAnswerID'] . "|" . $row['pollAnswerPoints'] . "|" . $colorArray[$colorCounter];
;
$colorCounter = $colorCounter + 1;
;
$query = "SELECT SUM(pollAnswerPoints) FROM pollAnswers WHERE pollID = ".$pollID."";
$result = sql($query);
$row = mysql_fetch_array( $result );
$pollResults = $pollResults . "-" . $row['SUM(pollAnswerPoints)'];
echo $pollResults;
;
//VOTE START
if ($action == "vote");
if (isset($_COOKIE["poll" . getPollID($pollAnswerID)])) ;
echo "voted";
; else ;
$query = sql("UPDATE pollAnswers SET pollAnswerPoints = pollAnswerPoints + 1 WHERE pollAnswerID = ".$pollAnswerID."");
setcookie("poll" . getPollID($pollAnswerID), 1, time()+259200, "/", ".domena.pl");
getPollResults(1);
;
;
//VOTE END
if (intval($_GET['cleanCookie']) == 1);
setcookie("poll1", "", time()-3600, "/", ".domena.pl");
header('Location: http://domena.pl);
;
Zgodnie z nową śmieszną ustawą, powinna być informacja o ciastkach. Na moich stronach generalnie z nich nie korzystam, mam jedynie zainstalowany analitycs - jak wiadomo ono korzysta z cookies. Strony to żadne portale społecznościowe, wyłącznie reklama prywatnych biznesów.
Analitycs jednak mi się przydaje.
Jakbym uczciwie podszedł do tematu, to powinienem generować kod analitycs dopiero po tym, jak ludek zaakceptuje ciasteczka, jednak wiadomo, że wymuszenie tego na nim może zaowocować opuszczeniem strony, z drugiej strony skromne info może być przeoczone - dzięki czemu nie będzie analitycsa. Poza tym wymagałoby to przeładowanie strony, żeby php wygenerowało kod do analitycsa. Penwie da się to załadować i przez ajaxa, ale to dodatkowe schody.
Poza tym nie ma chyba żadnej innej możliwości zabronienia analitycsowi korzystania z ciastek na mojej witrynie, czy nie tak?
Jak to rozwiązujecie?
maviozo -> informacja, że nie wyłączenie opcji ciasteczek oznacza ich akceptację. Tak więc analytics działa tak jak dotychczas do czasu aż ktoś wyłączy ciasteczka.
btw.
Sam komunikat wrzucany AJAXem, żeby google nie indeksował niepotrzebnej treści.
"Serwis internetowy abc.pl wykorzystuje pliki cookie, które umożliwiają i ułatwiają Ci korzystanie z jego zasobów. Korzystając z serwisu wyrażasz jednocześnie zgodę na wykorzystanie plików cookie. Możesz wyłączyć pliki cookie w opcjach swojej przeglądarki internetowej.
Szczegółowe informacje znajdziesz na stronie Ciasteczka"
chickenom: maszt o gdzieś wystawione? Jeśli nie, to możesz wkleić kod gdzieś, gdzie się da go przeczytać? :)
Panowie - jest jakaś nowa część kącika?? ten "umarł" rok temu...
Ja mam pytanko - wiemy że pewne ikonki od razu przywodzą na myśl pewne cechy - np. kłódka sugeruje "bezpieczeństwo", pięść sugeruje "siłę" albo "uderzenie", koperta to "email".
A ja potrzebuję dobrać ikonki do cech przedmiotu takich jak: trwałość, elegancja, praktyczność - możecie mi coś zasugerować? Jakieś podobnie uniwersalne symbole?