Ogłoszenie


Zapraszam serdecznie na strone DARMOWYCH FILMÓW I SERIALI. Każdy znajdzie coś dla siebie. Mam w bazie artykuły dot. webmasteringu, hackeringu i wiele wiele innych. Dodatkowo forum :) Nie czekaj zarejestruj się już dziś : www.Ogladamy.xorg.pl

#1 2008-11-02 15:46:33

RedEagle

Admin

status RedEagle
891470
Zarejestrowany: 2008-09-04
Posty: 1047
Komputer: Windows XP
Gra: GTA VC
Książka: Jim C.Hines-,,Zadanie Goblina"
Muzyka: Green Day

Pozostałe ciekawe funkcje

Funkcji jest cała masa, których nie poruszono w tym kursie. Bardziej ciekawe postaram się właśnie w tej lekcji omówić. Na pewno wielu z Was, czeka z niecierpliwością na funkcję wysyłającą maile z poziomu strony, bez potrzeby używania klientów pocztowych, czy logowania się na pocztę. Co ciekawe, funkcja pozwala na wysyłanie maili z dowolnego konta pocztowego bez logowania się. Pamiętajmy także, że zwykle nie możemy wysyłać maili z domowego serwera – wiele serwerów pocztowych wymaga uwierzytelniania...
Ale umieszczając skrypt na zdalnym serwerze mamy 99% szans, że mail dotrze na miejsce bez problemu. Jest odpowiedzialna za to funkcja mail() składająca się z czterech argumentów – adres e-mail odbiorcy, temat e-maila, treść e-maila i adres e-mail nadawcy.


Wysyłanie maili za pomocą funkcji mail()


Oto najprostszy przykład funkcji mail():

<?php

mail("admin@witrna.pl","Temat",

"Treść maila",

"From: Redaktor redaktor @witryna.pl");

?>

Uwaga: nie używajmy z temacie wiadomości polskich ogonków – zamiast nich ujrzymy wielką literę X.

Uwaga: równoznacznie w czwartym argumencie mógłby być sam adres e-mail, ale w praktyce polecam używać tego przykładu, umieszczając adres nadawcy w tagach.

Oto przykład bramki internetowej e-mail, którą stworzymy w oparciu o PHP, ale bez oparcia o inne serwery:


<?php

if ($_POST[adresat] == TRUE && $_POST[nadawca] == TRUE &&

$_POST[temat] == TRUE && $_POST[tresc] == TRUE) {

mail("$_POST[adresat]","$_POST[temat]",

"$_POST[tresc] \n\n Autor maila: $_SERVER[REMOTE_ADDR]",

"From: Bramka <$_POST[nadawca]>"); }

else { echo

"<FORM ACTION=\"index.php\" METHOD=\"post\">

Adresat: <INPUT TYPE=\"text\" NAME=\"adresat\"><br />

Nadawca: <INPUT TYPE=\"text\" NAME=\"nadawca\"><br />

Temat: <INPUT TYPE=\"text\" NAME=\"temat\"><br />

Treść:<br />

<TEXTAREA NAME=\"tresc\"></TEXTAREA><br />

<INPUT TYPE=\"submit\" VALUE=\"Zapamiętaj mnie\">

</FORM>"

; }

?>

Uwaga: w treści wiadomości znajdują się znaki specjalne - \n, odpowiadające za przejście do nowej linijki. Pamiętajmy, że list to nie strona www – nie ma sensu wysyłać html-owych BR itp. gdyż w zwykłym formacie wiadomości nic się nie zmieni. Przy okazji jest tam jedna zmienna z tablicy superglobalnej, jakiej jeszcze nie poznaliśmy pokazująca IP autora.


IP, Refferer, przeglądarka odwiedzającego


Za pomocą PHP możemy wyświetlić np. IP gościa, także nazwę jego przeglądarki itp. Służą do tego zmienne z superglobalnej tablicy $_SERVER:




$_SERVER[REMOTE_ADDR] - IP osoby odwiedzającej stronę

$_SERVER[HTTP_REFERER] - adres poprzedniej strony

$_SERVER[HTTP_USER_AGENT] - pełna nazwa przeglądarki




Dogłębne manipulowanie czasem - funkcja date()


Funkcja date() (ang. data) za pomocą specjalnych znaków pozwala na wyświetlenie daty i innych ciekawych datowych ciekawostek. Aby wyświetlić datę w formacie DD.MM.RRRR używamy kodu:


<?php

$data = date("d.m.Y");

echo $data;

?>

Uwaga: gdyby nie cudzysłowy wewnątrz funkcji date() nie moglibyśmy wyświetlić separatorów, w tym przypadku kropek – zostałby pominięte.

Uwaga: data jest wyświetlana zgodnie z ustawieniami serwera, a nie lokalnego komputera.

Jeżeli nie podoba nam się, że przez dniem, jest czasami zero (do dziesiątego dnia miesiąca), możemy łatwo to zero usunąć np. tak:


<?php

$data1 = date("d");

$data2 = date(".m.Y");

$data1 = str_replace("0","",$data1);

echo "$data1$data2";

?>

Innymi ciekawymi znakami dla funkcji date() są (w kolejności alfabetycznej):




a - wyświetla am, lub pm

A - wyświetla AM, lub PM

D - trzy pierwsze litery angielskiej nazwy dnia tygodnia

F - pełna nazwa angielskiej nazwy miesiąca

g - godzina w 12-godzinnym formacie bez zera na początku (od 1 do 12)

G - godzina w 24-godzinnym formacie z zerem na początku (od 00 do 24)

h - godzina w 12 godzinnym formacie z zerem na początku (od 01 do 12)

i - minuta (od 00 do 59)

I - wyświetla 1 w przypadku czasu letniego, 0 w przypadku czasu zimowego

j - dzień bez zera na początku

l - pełna nazwa angielskiej nazwy dnia tygodnia

L - wyświetla 1 w przypadku roku przestępnego, 0 w przypadku standardowego roku

M - trzy pierwsze litery angielskiej nazwy miesiąca

n - miesiąc bez zera na początku

s - sekundy (od 00 do 59)

t - liczba dni danego miesiąca (od 28 do 31)

w - dzień tygodnia - 0 - niedziela, 1 - poniedziałek, 6 - sobota

y - rok w formacie RR (od 00 do 99)

z - dzień roku (od 00 do 365)




Zabezpieczanie aplikacji: maskowanie błedów i okrajanie kodu


W celu zabezpieczenia skryptu warto zabezpieczyć go przed wprowadzaniem tagów, albo po prostu ciekawości cwaniaczków. Za pomocą funkcji strip_tags(), którą już poznaliśmy usuniemy wszystkie tagi i znaki znajdujące się pomiędzy nimi. Nie znamy jednak funkcji htmlspecialchars() (ang. znaki specjalne HTML), która wszystkie znaki specjalne zamieni na &znak;, czyli np. zamiast tagu ujrzymy jego html-owy odpowiednik.

Uwaga: nie możemy dopuścić do pojawienia się błędów na stronie www. Początkowy internauta może się przerazić, jak zobaczy jakieś warningi itp. Czasami coś może się zdarzyć, nie z naszej winy, aby skrypt działał niepoprawnie. Możemy jednak nie martwić się o to, poprzedzając nazwę danej funkcji znakiem @. Dla przykładu, użyjmy takiego kodu, oczywiście nie tworząc najpierw pliku o całkiem bujnej nazwie...:


<?php

include "dadarr3w32221da.php";

?>


Teraz użyjmy tego kodu:


<?php

@include "dadarr3w32221da.php";

?>

Uwaga: oczywiście jeżeli znalazłby się w danej lokalizacji plik dadarr3w32221da.php oczywiście funkcja zostałaby wykonana. Znak @ zapobiega tylko wyświetleniu błędów z wykluczeniem błędów prasowania kodu (błędy z nawiasami, cudzysłowami itp.).


http://i37.tinypic.com/sbm42f.png
http://i38.tinypic.com/29x82na.png

Offline

 

Stopka forum

RSS
Powered by PunBB
© Copyright 2002–2008 PunBB
Polityka cookies - Wersja Lo-Fi


Darmowe Forum | Ciekawe Fora | Darmowe Fora