Poslanie e-mailu z PHP skriptu
Na poslanie e-mailu z PHP skriptu doporučujeme použiť triedu Mail z PEAR balíka Mail.php.
require_once 'Mail.php'; $mail = Mail::factory('mail'); $body = 'Toto je text spravy...'; $hdrs = array( 'From' => 'odosielatel@example.com', 'Subject' => 'Predmet spravy' ); $mail->send('prijemca@example.com', $hdrs, $body);
Pre viac konfiguračných možností si prečítajte dokumentáciu k tejto triede:
http://pear.php.net/package/Mail/docs
Na stiahnutie stránky zo vzdialeného servera je najjednoduchšie a najefektívnejšie použiť PEAR triedu HTTP_Request z balíka HTTP/Request.php.
require_once 'HTTP/Request.php'; $url = 'http://platon.sk/'; $req =& new HTTP_Request($url); if (PEAR::isError($req->sendRequest())) { die('chyba pri stahovani stranky'); } $content = $req->getResponseBody();
Pre viac možností a funkcií si prečítajte dokumentáciu k tejto triede:
http://pear.php.net/package/HTTP_Request/docs
Presmerovanie na jedinú doménu
Pokiaľ vaša stránka beží pod viacerými doménami, je vhodné vybrať jednu hlavnú doménu a z ostatných na túto vybranú presmerovávať. Túto časť kódu umiestnite hneď na začiatok vášho PHP skriptu.
$redirect = 'platon.sk'; $http_host = @$_SERVER['HTTP_HOST']; $req_uri = @$_SERVER['REQUEST_URI']; if (strlen($http_host) > 0 && strcasecmp($http_host, $redirect)) { header("Location: http://$redirect$req_uri"); exit; }
Výhody tohto riešenia sú predovšetkým z oblasti optimalizácie pre vyhľadávače (SEO):
- ten istý obsah sa nachádza len na jednej webstránke (doméne), čo majú vyhľadávače radi;
- hodnota Google PageRank sa nedelí medzi viacero stránok, ale sa "spočítava" dokopy pre jednu hlavnú stránku;
- dôsledkom týchto opatrení by mala byť lepšia indexácia stránky a vyššie umiestnenie vo vyhľadávačoch.
Ak chcete aby sa vaša stránka zobrazovala výhradne s bezpečným HTTPS protokolom, môžete do súboru .htaccess pridať nasledujúce riadky. Apache bude presmerovávať všetky požiadavky z HTTP na HTTPS.
<IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteCond %{ENV:HTTPS} !^on$ RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,NE,L] </IfModule>
Ďalšie .htaccess presmerovania
Ak presmerovávame viacero rôznych adries podľa query adresy na konkrétnu rovnakú adresu, prípadne potrebujeme špeciálne pravidlá, nižšie uvádzame tipy s vysvetlením, ktoré sú dobre využiteľné.
- Príznak [OR] znamená že sa vyhodnocujú aj ďalšie pravidlá, bezprostredne nasledujúce, ak dané pravidlo bolo vyhodnotené ako nepravdivé (nesúhlasí vzor so vstupom)
- %{QUERY_STRING} je to, čo je na konci url za otáznikom - napríklad ako v príklade nižšie - ak URL vyzerá ako https://domain.ext/hocijaka-cesta/?kontakt tak to, čo sa vytiahne na porovnanie je slovo "kontakt" (bez úvodzoviek)
- RewriteRule prepíše URL podľa schémy. Najprv je pravidlo pre pôvodnú cestu - napríklad len ^ - čo znamená že sa pripojí začiatok protokol, doména a RewriteBase.
Ak je RewriteBase / tak to môže vyzerať nasledovne: http(s)://domain.ext/ - čo znamená, že pravidlo platí len pre url s jedným lomítkom za názvom domény (ak je nastavené RewriteBase /)
Ďalšia položka je cesta novej URL. Môže byť absolútna (nezačína lomítkom) - napríklad http(s)://new-domain.ext/super-content, alebo relatívna (začína lomítkom) - Príznak L ako last znamená, že vyhodnocovanie pri tomto pravidle končí.
- R ako redirect znamená, že stránka sa má presmerovať. Používa sa 301 pre trvalé presmerovanie, alebo 302 pre dočasné. 301 je dobré ak máme nejakú vyhľadávaciu službu so štatistikami (napríklad google) a táto využíva štatistiky pre konkrétne URL. V prípade 301 sa štatistiky novej URL pripoja k starej. Ak je ale 302, tak sa toto neudeje a čaká sa až bude existovať pravidlo s kódom 301. Taktiež 302 sa neuchováva v "cache" a dá sa preto jednoducho meniť na rozdiel od typu 301.
- Príznak [NE] znamená, že URL sa nemá prekódovavať - napríklad medzera sa konvertuje na %20 a v prípade, že sa v URL nachádza medzera a nieje príznak NE tak miesto "URL/nie co" sa pošle "URL/nie%20co" ak ale je nastavený príznak NE tak sa pošle "URL/nie co".
- V RewriteRule sa môže Regulérny výraz ozátvorkovať a použiť pre výslednu url - napríklad ak chceme zmeniť iba časť url, môžeme použiť ako v príklade nižšie na konci (.*) - zátvorky nám uložia tieto údaje do premennej a použijeme ju pomocou $1 v cieľovej url.
#URL, ktora suhlasi je http(s)://domain.ext/?kontakt(y) - presmeruje na http(s)://domain.ext/kontakt/ RewriteCond %{QUERY_STRING} ^kontakt$ [OR] RewriteCond %{QUERY_STRING} ^kontakty$ RewriteRule ^ /kontakt/ [L,R=301]#Presmerovava z http(s)://domain.ext/?sidlo na http(s)://domain.ext/kontakt/#sidlo RewriteCond %{QUERY_STRING} ^sidlo$ RewriteRule ^ /kontakt/#sidlo [NE,L,R=301]
#Presmerovava z http(s)://domain.ext/kontakt/bratislava?pobocka na #http(s)://domain.ext/kontakt/#bratislava pomocou 302 presmerovania (docasne) RewriteCond %{QUERY_STRING} ^pobocka$ RewriteRule ^kontakt/bratislava /kontakt/#bratislava [L,R=302]
#Presmerovava z http(s)://domain.ext/kontakt/sidlo na http(s)://domain.ext/kontakt/ RewriteRule ^kontakt/sidlo /kontakt/ [L,R=301]
#Presmerovava vsetko co zacina na http(s)://domain.ext/cz/kontakt/ a presmeruje na #http(s)://domain.ext/kontakt/cz/ - za posledne lomitko sa pripoji zvysok URL RewriteCond %{QUERY_STRING} ^extra$ RewriteRule ^cz/kontakt/(.*)$ /kontakt/cz/$1 [NE,L,R=301]
Ak by ste na tomto mieste privítali ďalšie programátorské tipy, dajte nám o nich vedieť na e-mailovej adrese podpora@platon.sk