Category Archives

42 Articles

PHPMailer: Snadné posílání (HTML) e-mailů z PHP

by Zdeněk Večeřa 2 Comments

E-mail, obálka, dopis

Pokud potřebujete z webu, kde běží PHP, posílat e-maily, můžete sáhnout po funkci PHP mail(). Jsou s ní trochu starosti, protože musíte myslet na kódování a nesmíte zapomenout na správné uvedení hlaviček (headers).

PHPMailer: Pomocná ruka při posílání e-mailů

Na pomoc přichází PHP knihovna PHPMailer, která zastřešuje vše okolo posílání e-mailů. Můžete ji využít pro posílání nejen přes funkci mail(), ale můžete e-maily zasílat i skrz existující SMTP server (tedy reálnou e-mailovou adresu).

Kódování a HTML e-maily bez problému

S knihovnou PHPMailer jednoduše vytvoříte HTML e-maily s obrázky a přílohou. Nemusíte se ani obávat, že bude problém s kódováním, jako se stává, když bez znalostí pracujete přímo s funkcí mail(). PHPMailer se o vše postará za vás.

Vydán CKEditor 3.0: Nová generace wysiwyg editoru FCKeditor je tu

CKEditor, FCKEditor

Oblíbil jsem si kvalitní FCKeditor, se kterým je psaní a úprava textů v administraci hračka. Přestože bych mu několik drobností vytknul, tak největší problém vidím v jeho rychlosti. Ano, je rychlý, ale jeho načtení a zobrazení by mohlo být rychlejší.

FCKeditor a jeho 6 let úspěchu

Ani se to nezdá, ale FCKeditor je vyvíjen už šest let a za tu dobu si získal velkou oblibu nejen mezi uživateli, ale i vývojáři. Troufám si tvrdit, že spolu s TinyMCE patří mezi nejoblíbenější a nejznámější open-source editory.

CKEditor 3.0: Nová generace přichází

Šest let stáří FCKeditoru je mírně znát, proto vývojáři poslední téměř dva roky pilně pracovali na další verzi, která získala nové jméno: CKeditor.

Prakticky vzato, CKeditor je pokračování FCKeditoru, takže se nenechte zmást, že by zde byl další produkt.

Proč došlo k přejmenování?

Vývojáři se pro změnu názvu rozhodli kvůli jeho problémové výslovnosti v anglicky mluvících zemích.

MySQL: Rychlost UPDATE sloupce v závislosti na přítomnosti indexů

Nedávno jsme s Lukášem Churým a Ondrou Vašíčkem řešili rychlost operace UPDATE v závislosti na tom, jestli upravovaný sloupec má či nemá nastavený index.

Představte si, že máme v MySQL 5.0 tabulku o několika sloupcích, dva z nich jsou „id“ a „xy“. Nad sloupcem „id“ je přidělený index. Sloupec „xy“ index nemá. Rychlost UPDATE sloupce „xy“ trvá nějaký čas.

Otázka zní, jestli UPDATE zabere stejný čas i v případě, kdyby sloupec „xy“ měl přidělený index.

Udělal jsem jednoduchý test, který přináší odpověď.

Jak na to: SQL injection, magic_quotes_gpc, addslashes() a stripslashes()

V názvu článku jsem vyjmenoval slova, která jsou strašákem nejednoho PHP programátora. Strašák to je ale pouze uměle vytvořený, vycházející z neznalosti problematiky.

Dost často se ve spojení s SQL injection (typ útoku hackera) zmiňuje PHP konstanta magic_quotes_gpc. Prý, že pokud je zapnutá, tak se dá SQL injection předejít. A víte, že od PHP 5.3 bude standardně magic_quotes_gpc vypnutá?

Znamená to, že poté budou SQL dotazy napadnutelné pomocí SQL injection? Ale vůbec ne.

Konstanta magic_quotes_gpc totiž s ochranou SQL injection nemá v podstatě nic společného. Pouze zde existuje průsečík v možnosti jejího využití. Proto ji neznalí programátoři začali přisuzovat větší váhu, než má. Váha magic_quotes_gpc je samozřejmě nulová, zvláštně, když od PHP 5.3 bude vypnutá a v PHP 6 zanikne úplně.

Vysvětleme si tedy, oč jde. SQL injection je vážný problém.

mPDF: Snadný export HTML stránek do PDF

by Zdeněk Večeřa 7 Comments

FDFDoposud jsem neznal nějaký snadný a efektivní způsob exportu HTML stránek do PDF formátu, za pomocí PHP. Ano, existuje PHP třída FPDF, ale něco v ní vytvořit mi zrovna jako efektivní nepřijde. Viz kus kódu. Pokud byste FPDF přece jen použili, mrkněte k Zaachimu na blog. Radí tam, jak na české znaky.

Nad touto třídou existuje nástavba, troufám si říct „naštěstí“. Jmenuje se mPDF a nabízí přímý export z HTML stránek do PDF za podpory UTF-8 kódování, tedy s bezproblémovou interpretací českých znaků.

FCKeditor: získání obsahu a vložení textu

by Zdeněk Večeřa 0 Comments

Vytvoření formuláře FCKeditoru pomocí PHP

<?php
$oFCKeditor = new FCKeditor('body') ;
$oFCKeditor->Value = $form['body'];
$oFCKeditor->Create();
?>

Získání obsahu formuláře FCKeditoru:

<input type="button" onclick="alert(FCKeditorAPI.GetInstance('body').GetData());" value="Submit" />

Vložení textu do formuláře FCKeditoru:

<input type="button" onclick="FCKeditorAPI.GetInstance('body').InsertHtml('<strong>ahoj</strong>');" value="Submit" />

phpMyAdmin 3.0.1: blesková správa MySQL databáze

Při vývoji většinou pracuji přímo s databází na webhostingu (přes vzdálený přístup). Pokud je vyvíjená aplikace přístupná pro úzký okruh testerů, je daleko snazší, když webová aplikace využívá stejnou databázi, a to jak z localhostu, tak i přímo na serveru. Vždy mám totiž přístup ke stejným datům.

Proto nějaká lokální databáze, databáze na serveru, synchronizace, atp., jsou pro mě spíše zdržování. Abych si usnadnil práci a nemusel se připojovat na phpMyAdmina na serveru, využívám u sebe na localhostu lokální instalaci phpMyAdmin. Instalace je ale dosti nadnesené slovo. Stačí stáhnout, rozbalit, nastavit pět hodnot a spustit.

Doposud jsem využíval phpMyAdmin ve verzi 2.9.2. Nyní jsem přešel na phpMyAdmin 3.0.1.1. A co že přináší? Nejmarkantnější rozdíl oproti předchozí používané verzi je v rychlosti. Ta se totiž zvýšila, ale rapidně.

Nový NetBeans IDE 6.5: nástroj pro PHP a JavaScriptové vývojáře

Vyšel nový NetBeans 6.5. Nabízí podporu pro skriptovací jazyk PHP, automatické dokončování funkcí, jejich napovídání s provázaností na třídy, kontrolu syntaxe a zvýraznění klíčových slov.

Součástí je ladící nástroj Xdebug. Nová verze dále přichází se vylepšenou podporou JavaScriptu, CSS a techniky AJAX. Můžete také například využít ladění JavaScriptu na Firefoxu a Internet Exploreru.

PHP a XML: „Na začátku externí entity chybí procesní instrukce xml“

by Zdeněk Večeřa 3 Comments

A zase ty hvězdičky! Přes AJAX mám řešené hodnocení něčeho. Kliknu na hodnocení, pošlou se data na zpracování, server vygeneruje XML, který se vrátí ke zpracování JavaScriptem (pro změnu stavu na stránce). Nutné je zdůraznit, že data jsou ve formátu XML vrácena zcela korektně. Přesto Firebug vypisuje chybu:

Na začátku externí entity chybí procesní instrukce xml
undefined

Aby se nám to ještě trochu zamotalo, tak se tato chyba vyskytuje pouze, pokud script spouštím na localhostu. Na serveru funguje bez problémů. Chyba byla způsobena includovanými soubory.