* * 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() {
global $zabezpieczenie;
$t_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');
$t_ktory_znak = array('pierwszy', 'drugi', 'trzeci', 'czwarty', 'piąty', 'szósty', 'siódmy', 'ósmy', 'dziewiąty', 'dziesiąty');
$t_liczby = array('0', '1', '2', '3', '4', '5', '6', '7', '8', '9');
$los = array_rand($t_znak, 10);
$string_znaki = $t_znak[$los[0]].$t_znak[$los[1]].$t_znak[$los[2]].$t_znak[$los[3]] .$t_znak[$los[4]].$t_znak[$los[5]].$t_znak[$los[6]].$t_znak[$los[7]] .$t_znak[$los[8]].$t_znak[$los[9]];
$znak_los = array_rand($t_liczby, 2);
$znaki = array($string_znaki[$znak_los[0]], $string_znaki[$znak_los[1]]);
$zabezpieczenie = '
<input type="hidden" name="zabez-1" value="'.$znaki[0].'" />
<p>Znaki: <b>'.$string_znaki.'</b></p><p>Wpisz odpowiedni znak aby wysłać. Znak to: <b>'.$t_ktory_znak[$znak_los[0]].'</b>.</p>';
}
Przed formularzem wywołujemy funkcje
zabezpieczenie();
Właściwy formularz
echo '<form action="" method="post">
<fieldset><legend>Zabezpieczenie</legend>
'.$zabezpieczenie.'
<input type="text" name="zabez-2" value="" /><br/>
<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>Nasz kod wysyłania. Dobrze</p>'; } else { echo '<p>Informacja o błędzie. Źle</p>'; } }
Funkcja zabezpieczająca jest raczej dla tych co już mają niejakie pojęcie czym jest php.
* * 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:
* Wiadomość do 500 znaków
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>