Archive for the ‘PHP’ Tag

Eh, PHP 5.3.2 di Lucid magic_qoutes_gpc Off

Baru nyadar, klo di Lucid nilai default magic_qoutes_gpc adalah Off, juga magic_qoutes_runtime. Pantas, dari tadi koq klo di-stripslashes() malah bermasalah ūüė¶

; Magic quotes are a preprocessing feature of PHP where PHP will attempt to
; escape any character sequences in GET, POST, COOKIE and ENV data which might
; otherwise corrupt data being placed in resources such as databases before
; making that data available to you. Because of character encoding issues and
; non-standard SQL implementations across many databases, it's not currently
; possible for this feature to be 100% accurate. PHP's default behavior is to
; enable the feature. We strongly recommend you use the escaping mechanisms
; designed specifically for the database your using instead of relying on this
; feature. Also note, this feature has been deprecated as of PHP 5.3.0 and is
; scheduled for removal in PHP 6.
; Default Value: On
; Development Value: Off
; Production Value: Off
; http://php.net/magic-quotes-gpc

Mengambil TEXT dalam XML WordPress dg PHP

Semalam ada request (kaya di radio saja), untuk mengambil data TEXT dari XML hasil export blog WordPress-nya. Hm, langsung buka-buka manual PHP, ketemu XML Parser.

http://localhost/doc/php-doc/html/book.xml.html

Dari sana ketemu contoh program, langsung copy-paste, sunting-2, simpan… dan jalankan!

Hanya tag2 berikut yg saya ambil:
TITLE = judul posting
PUBDATE =  tanggal publikasi
CONTENT:ENCODED = isi posting
WP:COMMENT_AUTHOR = komentator
WP:COMMENT_AUTHOR_EMAIL = email komentator
WP:COMMENT_DATE = tanggal komentar
WP:COMMENT_CONTENT = komen
tar

Untuk menjalankan:
$ php xml2txt.php > hasil.txt

Berkas XML (wordpress.2009-06-25.xml) dan xml2txt.php harus berada dlm direktori kerja.

Baca lebih lanjut

Pengantar PostgreSQL #2

SQL

Membuat tabel
# CREATE TABLE teriakannya (
nama VARCHAR(60) NOT NULL,
situs VARCHAR(256),
pesan TEXT NOT NULL,
waktu TIMESTAMP NOT NULL DEFAULT now()
);

Menambah baris rekaman
# INSERT INTO teriakannya VALUES ('ade','www.ade.web.id','Salam kenal');

Melihat isi table:
# SELECT * from teriakannya;

nama | situs | pesan | waktu
------+----------------+-------------+----------------------------
ade | http://www.ade.web.id | Salam kenal | 2008-12-06 22:26:59.217386
(1 row)

Memperbarui isi data
# UPDATE teriakannya SET nama='adesaja' WHERE nama='ade';

Menghapus baris rekaman
# DELETE FROM teriakannya where nama='ade';

Membuat view
# CREATE VIEW viewq AS SELECT nama,situs,pesan,waktu, to_char(waktu,'DD-MM-YYYY') as tgl, to_char(waktu,'HH24:MI:SS') as jam FROM teriakannya WHERE waktu>=current_timestamp - interval '2 days ORDER BY WAKTU DESC';

View digunakan sbg pengganti perintah SELECT yg berulang-2 atau untuk menutupi pekerjaan yg sebenarnya.

Menampilkan hasil view
# SELECT * FROM viewq;

Menyertakan bahasa prosedural PL/PGSQL
# CREATE LANGUAGE 'PLPGSQL';

Membuat fungsi PL/PGSQL
# create or replace function simpan_pesan (in_nama varchar, in_situs varchar, in_pesan text)
returns void as $$
begin
insert into teriakannya values (in_nama, in_situs, in_pesan);
end;
$$
language 'plpgsql';

Membuat fungsi trigger:
# CREATE OR REPLACE FUNCTION hapus_data()
RETURNS trigger AS
$BODY$
begin
delete from teriakannya where waktu
return NEW;
end;
$BODY$
LANGUAGE 'plpgsql' ;

Membuat trigger:
# CREATE TRIGGER on_insert
AFTER INSERT
ON teriakannya
FOR EACH ROW
EXECUTE PROCEDURE hapus_data()

Pengantar PostgreSQL #1

Melanjutkan tulisan-2 sebelumnya ttg postgres, kali ini adalah tulisan tentang (seri) Pengantar PostgreSQL. Bahasannya tidak mendalam (saya juga baru belajar) dari proses instalasi sampai mebuat aplikasi web berbasis PHP-Postgre-Ajax.

Yuk kita mulai….

Apa itu PostgreSQL?

PostgreSQL atau postgres adalah salah satu RDMS open¬≠source dg lisensi BSD yg paling banyak digunakan di dunia. Penjelasan lebih lengkap tentu bisa baca di situsnya. ūüėÄ

Fitur utama yg dimiliki adalah:

  • complex queries
  • foreign keys
  • triggers
  • views
  • transactional integrity
  • multiversion concurrency control

Selain itu postgres bisa dikembangkan oleh pengguna dg menambahkan:

  • data types
  • functions
  • operators
  • aggregate functions
  • index methods
  • procedural languages

Instal PostgreSQL di Ubuntu

Dg. baris perintash (Terminal) ketik saja:

$ sudo apt-get install postgresql postgresql-common postgresql-client
(disarankan juga untuk menginstal: postgresql-doc)

Untuk Linux-Apache-PHP-Postgre instal paket-2 berikut:
apache2
php5
php5-pgsql

(disarankan juga untuk menginstal: php-doc)

Tool
pgadmin3
phppgadmin

Agar bisa diakses dari luar (server) maka perlu mengisi kata sandi pengguna postgres di sistem database (bukan pengguna di Linux).

Masuk ke sistem database sbg pengguna Linux, postgres:
$ sudo ­u postgres psql postgres
Ganti kata sandi postgres di sistem database:
# ALTER USER postgres WITH PASSWORD 'KaTa54nd1';
\q

Cobalah masuk ke sistem database:
$ psql -U postgres -h localhost
lalu masukkan kata sandi di atas. Bisa?

Membuat pengguna baru, database dengan baris perintah

Membuat database baru:
$ sudo -u postgres createdb
Membuat pengguna baru:
$ sudo -u postgres createuser --superuser $USER

Membuat database untuk pengguna Linux:
$ createdb $USER

Membuat database baru dari baris perintah:
$ createdb dbq

Membuat pengguna ‚Äúbiasa‚ÄĚ
$ createuser -D -R -P penggunaq

Membuat database untuk pengguna lain
$ createdb -O penggunaq dbnya

Masuk ke database
$ psql dbq
atau
$ psql -U penggunaq -h localhost dbnya

https://help.ubuntu.com/community/PostgreSQL

Gara-gara Spasi, muncul Warning

Sebagaimana dimaklumi, untuk mengirim header HTTP, perintah header() di PHP harus diletakkan di paling atas atau sebelum PHP mencetak / memberikan keluaran apapun. Jika tidak maka akan muncul peringatan spt. di bawah ini di halaman perambah:

Warning: Cannot modify header information – headers already sent by (output started at /home/sihab/Documents/myWeb/etc/pgdbconn.inc.php:11) in /home/sihab/Documents/myWeb/etc/alfonso.php on line 217

Seperti kasus yg saya alami. Perintah header() sudah saya letakkan di bagian (yg menurut saya) belum ada memberikan keluaran apapun. Namun ternyata muncul peringatan (warning) di atas.

Pesan peringatan di atas sebetulnya sudah menunjukkan dari mana masalah muncul, yakni pd 'pgdbconn.inc.php' baris 11. Ya, sebelum header() ada perintah require_once('pgdbconn.inc.php') namun saya tidak menemukan bahwa telah mencetak sesuatu di sana.

Ternyata, pada akhir tag ?> masih ada karakter spasi….. Duh!

%d blogger menyukai ini: