* Mapa strony

Projektowanie, optymalizacja stron

Porady dla webmasterów


* * Ile pozostało/minęło dni * *

Bywa że chcemy umieścić na stronie informację ile dni pozostało lub ile dni minęło do/od określonej daty.
Zaprezentuje jak coś takiego zrobić.

Funkcja

function ObliDni($data, $wersja) {
switch($wersja) {
case '1': $roznica=(strtotime($data)-time()); $napis='pozostało'; $komunikat='trwa'; break;
case '2': $roznica=(time()-strtotime($data)); $napis='minęło'; $komunikat='Nieodpowiednia data'; break;
}
$dni = floor($roznica / (60*60*24));
$godz = floor(($roznica / (60*60))-($dni*24));
$min = floor(($roznica / 60)-($godz*60)-($dni*24*60));
if($dni<0) { echo $komunikat; } else { echo "$napis: $dni dni $godz godz. $min min."; }
return $data; }

Funkcja jest wygodna w użyciu, tam gdzie chcemy wyświetlać info umieszczamy.

ObliDni('2011-12-31 23:59:59', 1);

Data jest podana przykładowa aby pokazać w jakim formacie wpisać datę do której chcemy policzyć pozostałe/minone dni. rrrr-mm-dd hh:mm:ss. Jako drugi parametr (po przecinku) podajemy czy chcemy obliczyć dni do czy od określonej daty, 1=ile pozostało dni, 2=ile minęło dni.

Demo * * Do nowego roku trwa * *

* * Zabezpieczenie przeciwko botom * *

Zabezpiecza przed automatycznym wysyłaniem.
Zabezpieczenie nie jest uciążliwe dla ludzi a w dużym stopniu zabezpiecza wysyłanie przez boty.

Funkcja


function zabezpieczenie() {
$znak = array('A','B','C','D','E','F','G','H','I','J','K','L','M', 'N','O','P','Q','R','S','T','U','V','W','X','Y','Z');
$ktory_znak = array('pierwszy', 'drugi', 'trzeci', 'czwarty', 'piąty', 'szósty', 'siódmy', 'ósmy', 'dziewiąty', 'dziesiąty'); $liczby = array('0', '1', '2', '3', '4', '5', '6', '7', '8', '9');
$los = array_rand($znak, 10);
$string_znaki = $znak[$los[0]].$znak[$los[1]].$znak[$los[2]].$znak[$los[3]] .$znak[$los[4]].$znak[$los[5]].$znak[$los[6]].$znak[$los[7]] .$znak[$los[8]].$znak[$los[9]]; $znak_los = array_rand($liczby, 2);

$a = '<input type="hidden" name="zabez-1" value="'.$string_znaki[$znak_los[0]].'" /> <p>Znaki: <b>'.$string_znaki.'</b></p>
<p>Wpisz odpowiedni znak aby wysłać. Znak to: <b>'.$ktory_znak[$znak_los[0]].'</b>.</p>
<p><input type="text" name="zabez-2" value="" /></p>'; return $a; }

W ramach formularza wpisujemy:

zabezpieczenie();

Przykładowy formularz:

echo '<form action="" method="post">
<fieldset><legend>Zabezpieczenie</legend>
'.zabezpieczenie().'
<input type="submit" value="Wyślij" name="wyslij" />
</fieldset>
</form>';

Oraz wysyłanie i sprawdzenie

if(isset($_POST["wyslij"])) {
if($_POST["zabez-2"] == $_POST["zabez-1"]) { echo '<p>Dobrze</p>'; } else { echo '<p>Źle</p>'; } }

Funkcja zabezpieczająca jest raczej dla tych co już mają niejakie pojęcie czym jest php.

Demo

* * Wyróżnienie nowości na stronie * *

Widuje na stronach takie wyróżniki nowości które po pewnym czasie znikają, można takie wyróżniki wstawiać ręcznie w kod ale praktyczniej jest zrobić to za pomocą php. Napisałem taką funkcję, ma to zaletę że po określeniu ile dni ma być widocznę znika.

function nowosc($sciezka, $data, $dni) {
$czas = ((strtotime($data)) + (60*60*24*$dni));
if(time()<$czas) { echo '<img src="'.$sciezka.'" alt="New" />'; }
return $data; }

Tam gdzie ma byś wyświetlana grafika wpisujemy

nowosc('grafika/new.gif','2011-07-05 15:50:00',10);

Pierwszy parametr określa ścieżkę do naszej grafiki, drugi to data naszej modyfikacji a trzeci określa ile dni ma być widoczna grafika

Demo:

* * Kalendarz na stronie * *

Zaprezentuje kalendarz który można umieścić na stronie, wskazuje on aktualny miesiąc i zaznacza aktualny dzień.

Kalendarz jest bardzo prosty do umieszczenia na Waszej stronie gdyż jest zrobiony w funkcji którą wklejamy gdzieś na początku strony a potem wywołujemy go króciutkim kodem.

Ten kod wyświetli aktualny miesiąc

kalendarz(date("Y"), date("m"));

Ten natomiast pozwoli wyświetlić dowolny miesiąc np. 2013.05.

kalendarz(2013, 05);

Bardziej szczegółowy opis instalacji znajduje się w pliku czytaj.txt który się znajduje po ściągnięciu skryptu w katalogu

demo
pobierz

* * AntyBot, działanie matematyczne * *

Na niektórych stronach spotyka się zabezpieczenie w postaci działania matematycznego, jest to skuteczne zabezpieczenia przeciwko botom.

Zabezpieczenie jest zrobione w postaci funkcji i dlatego instalacja jego prosta.

function zabezpieczenie($M) {
$L["1"]=rand(1, 10); $L["2"]=rand(1, 10);

if($L["1"]>$L["2"]) { $razem[1] = $L["1"]-$L["2"]; $znak = '-'; } else { $razem[1] = $L["1"]+$L["2"]; $znak = '+'; }
$Cr = Array(1 => 'I','II','III','IV','V','VI','VII','VIII','IX','X','XI','XII','XII','XIV','XV','XVI','XVII','XVIII','XIX','XX');

switch($M) {
case 1: $L["3"] = $L["1"]; $L["4"] = $L["2"]; $razem[2] = $razem[1]; break;
case 2: $L["3"] = $Cr[$L["1"]]; $L["4"] = $Cr[$L["2"]]; $razem[2] = $Cr[$razem[1]]; break;
}

$losowanie = rand(1,3);
switch($losowanie) {
case 1:
$a = '<input type="hidden" name="zabez-1" value="'.$razem[1].'" /> <p>'.$L["3"].' '.$znak.' '.$L["4"].' = <input type="text" name="zabez-2" size="3" /></p>'; break;
case 2:
$a = '<input type="hidden" name="zabez-1" value="'.$L["2"].'" /><p>'.$L["3"].' '.$znak.' <input type="text" name="zabez-2" size="3" /> = '.$razem[2].'</p>'; break;
case 3:
$a = '<input type="hidden" name="zabez-1" value="'.$L["1"].'" /><p><input type="text" name="zabez-2" size="3" /> '.$znak.' '.$L["4"].' = '.$razem[2].'</p>'; break;
}
return $a; }

Funkcja najlepiej wkleić na początku strony.

Następnie w ramach formularza wywołujemy naszą funkcje.

zabezpieczenie(1)

Przykładowy formularz:

echo '<form action="" method="post">
<fieldset><legend>Zabezpieczenie</legend>
'.zabezpieczenie(1).'
<input type="submit" value="Wyślij" name="wyslij" />
</fieldset>
</form>';

Na koniec umieszczamy sprawdzanie wpisania poprawnego znaku w pole formularza.

if(isset($_POST["wyslij"])) {
if($_POST["zabez-1"]==$_POST["zabez-2"]) { echo '<p>Dobrze</p>'; } else { echo '<p>Źle</p>'; }
}

Jest możliwość wybrania cyfr arabskich lub rzymskich przez wpisanie odpowiej cyfry w wywołaniu funkcji, 1 = arabskie, 2 = rzymskie.

Jednak w obu przypadkach wpisujemy cyfry arabskie w pole formularza.

Demo

Portfolio

projektowanie, optymalizacja

www.puma.pomorze.pl

2017 / 08 / 19
Po
Wt
Śr
Cz
Pi
So
Ni
1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31

Jeżeli skorzystałeś z moich porad,
będę wdzięczny za umieszczenie linka do mojej strony.

<a href="http://www.puma.pomorze.pl" title="Porady webmasterskie">Porady webmasterskie</a>
Konkurs WWW - forumweb.prv.pl :: 3 MIEJSCE
(2007.05)
Puma © 14.05.2006 Moje strony: Portfolio | Świat marzeń i prawdy | Aktualności - komentarze