At 09:39 PM 5/2/00 +0700, you wrote:
>---
>ada data yang tidak diisi dan mungkin juga dobel. Kuncinya field nick,
diikuti dengan alamat, hobi , status
Halo bung meri,
Saya punya solusi, tapi dengan cara lain, begini
misal data field text anda -> NICK, ALAMAT, HOBI, STATUS
Berikut ini contoh isi data anda data.txt
Dodik|Kebon Sirih|Internet|Idle|
Budi||pindah-pindah kos|Idle|
Andi|Tebet||Kawin
Jadi solusinya :
Program TAMBAH.CGI (metode post)
----------------------------------------------
#!/usr/local/bin/perl
print "Content-type:text/html\n\n";
read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'});
# Ambil nilai dari submit form dg metode post
@pairs = split(/&/, $buffer);
foreach $pair (@pairs) {
($name, $value) = split(/=/, $pair);
$value =~ tr/+/ /;
$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
$FORM{$name} = $value;
}
# statement foreach diatas akan mengurai array @pairs ke dalam variabel
hash %FORM
# dan hasilnya akan sebagai berikut:
# $FORM{nick}="dodik"
# $FORM{alamat}="kebon sirih"
# $FORM{hobi}="internetan"
# $FORM{status}= "idle"
print "<html><head><title>Proses tambah data</title></head><body>";
open(OUTF,">>"/data1/hypermart.net/juniar79/language/perl/data.txt") or
&dienice("Tidak bisa open data.txt");
# Membuka file data.txt untuk tambah data
foreach $key (keys(%FORM)) {
print "$key = $FORM{$key}<br>";
print OUTF "$FORM{$key}|";
}
print OUTF "\n";
close(OUTF);
# Dodik|Kebon Sirih|Internet|Idle|
# perintah \n akan membuat posisi kursor pindah ke bawah dan ke pojok kiri
# (Line Feed dan Cariage Return)
print "</body></html>\n";
sub dienice {
($msg) = @_;
print "<h2>Error</h2>\n";
print $msg;
exit;
}
----------------------------------
TAMPIL.CGI (Tampil data berbentuk Tabel memecah separator | )
----------------------------------
#!/usr/local/bin/perl
print "Content-type:text/html\n\n";
print "<html><head><title>tampil data</title></head><body>\n";
open(INF,"/data1/hypermart.net/juniar79/languange/perl/data.txt") or
&dienice("Tidak bisa open data.txt");
# Membuka file data.txt untuk tambah data
@mydata = <INF>;
# variabel array ini menyimpan semua data yang ada difile data.txt
# satu baris dianggap satu variabel scalar
# Jadi, jika data sebanyak 4 baris maka variabel array menyimpan 4 variabel
scalar
close(INF);
print <<mulaiHTML
<body>
<h2>Tampil dalam bentuk tabel</h2>
<table border=1>
<tr><td>nama</td><td>email</td><td>order</td><td>telepon</td></tr>
MulaiHTML
;
# memecah pembatas | menjadi beberapa field
foreach $i (@mydata) {
chomp($i);
($nick,$alamat,$hobi,$status) = split(/\|/,$i);
print
"<tr><td>$nick</td><td>$alamat</td><td>$hobi</td><td>$status</td></tr>\n";
}
print "</table></body></html>\n";
sub dienice {
($msg) = @_;
print "<h2>Error</h2>\n";
print $msg;
exit;
}
referensi :
http://juniar79.hypermart.net/language/perl/Perl_text_database.htm
--------------------------------------------------------------------------------
Utk berhenti langganan, kirim email ke [EMAIL PROTECTED]
Informasi arsip di http://www.linux.or.id/milis.php3
Pengelola dapat dihubungi lewat [EMAIL PROTECTED]