Rabu, 23 Maret 2011

Membuat form komentar menggunakan captcha

Bagi para newbie-newbie yang baru belajar bikin website, kalian ga salah masuk blog ini, soalnya ane juga newbie http://www.smileycodes.info
Pada tutorial kali ini ane mau berbagi ilmu sedikit ni tentang cara membuat form komentar menggunakan captcha, yaaa walaupun tutorial ini agak mirip sama tutorial om Desrizal, soalnya ane juga belajar dari blognya om Desrizal, tapi codingnya udah ane kembangin lagi loohh http://www.smileycodes.info
Kalo ga percaya ente boleh kasih ane http://www.smileycodes.info klo masih ga percaya juga bandingin aja coding ane sama coding om Desrizal.
Okeh, teorinya seperti ini:
Mengapa menggunakan captcha? Karena kata om Desrizal supaya kita bisa tau yang komentar itu program spam atau manusia.
Karena dengan menggunakan captcha kita bisa memfilter komentar yang ada di website kita.
Biasanya captcha bisa berupa text berformat image akan tetapi supaya lebih menarik kali ini captcha-nya berupa kuis matematika.



Langkah pertama kita buat databasenya misalnya dengan nama comment
CREATE TABLE `comment` (
`id` int(3) NOT NULL auto_increment,
`nama` varchar(30) NOT NULL default '',
`email` varchar(30) default NULL,
`website` varchar(50) default NULL,
`komentar` varchar(250) NOT NULL default '',
UNIQUE KEY `id` (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=4 ;


Setelah itu buat file dengan nama form-komentar.php
<?php
session_start();
?>
<div style="width:360px;">
<div style="background:#333333; width:350px; padding:5px; text-align:left; color:#ffffff; font-weight:bold;">Komentar</div>
<table border="0" width="360" cellspacing="1">
<?php
include ('config.php');
$tampil = "SELECT * FROM comment ORDER BY id DESC";
$hasil = mysql_query($tampil);
while ($data = mysql_fetch_array($hasil))
{
?>
<tr>
<td align="right" width="70">Nama : </td>
<td align="left"><?=$data['nama'];?></td>
</tr>
<tr>
<td align="right" width="70">Email : </td>
<td align="left"><a href="mailto:<?=$data['email'];?>"><?=$data['email'];?></td> <!-- supaya bisa ngeLink langsung ke Ms.Outlook -->
</tr>
<tr>
<td align="right" width="70">Website : </td>
<td align="left"><a href="<?=$data['website'];?>"><?=$data['website'];?></a></td> <!-- supaya bisa ngeLink langsung ke websitenya -->
</tr>
<tr>
<td align="right" valign="top" width="70">Komentar : </td>
<td align="left"><?=$data['komentar'];?></td>
</tr>
<tr>
<td colspan="2" style="border-bottom:1px solid #0000FF;">
</tr>
<?php
}
?>
</table>
<form action="insert-komentar.php" method="post">
<table border="0" width="360" cellspacing="1">
<tr>
<td align="right">Nama : </td>
<td align="left" colspan="2"><input type="text" name="nama" maxlength="20" size="20"></td>
</tr>
<tr>
<td align="right">Email : </td>
<td align="left" colspan="2"><input type="text" name="email" maxlength="30" size="20"></td>
</tr>
<tr>
<td align="right">Website : </td>
<td align="left" colspan="2"><input type="text" name="website" maxlength="50" size="39" value="http://"></td>
</tr>
<tr>
<td align="right" valign="top">Komentar : </td>
<td align="left" colspan="2"><textarea name="komentar" rows="8" cols="31"></textarea></td>
</tr>
<tr>
<td>&nbsp;</td>
<td align="left"><input type="text" size="3" name="jawaban" style="text-align:center;"></td>
<td align="left" width="210">
<?php
//meng-generate angka random integer antara 20 - 50
$jx = rand(20,50);
//meregisterkan angka tersebut ke session
$_SESSION['captchakuis'] = $jx;
$kx = rand(1,19);
$yx = $jx - $kx;
//mencetak ke halaman
echo "<b><font size='4'> = ".$yx." + ".$kx."</font></b>";
?>
</td>
</tr>
<tr>
<td>&nbsp;</td>
<td align="left" colspan="2"><input type="submit"></td>
</tr>
</table>
</form>
</div>


Lalu yang terkahir buat file insert-komentar.php
<?php
session_start();
$host="localhost"; // Host name
$username="root"; // Mysql username
$password="mobius"; // Mysql password
$db_name="belajar"; // Database name

//Connect to server and select database.
mysql_connect("$host", "$username", "$password")or die("cannot connect to server");
mysql_select_db("$db_name")or die("cannot select DB");

//Buat variabel yang didapat dari method post
$nama = $_POST['nama'];
$email = $_POST['email'];
$website = $_POST['website'];
$komentar = $_POST['komentar'];
$jawaban = $_POST['jawaban'];

if(!isset($_SESSION['captchakuis'])){
die("isi form komentar dulu");
}
if($jawaban != $_SESSION['captchakuis']){
unset($_SESSION['captchakuis']);
die("Captcha Salah");
}
unset($_SESSION['captchakuis']);

if ($jawaban) {
$sql = "INSERT INTO comment SET nama='$nama', email='$email', website='$website', komentar='$komentar'";
$result = mysql_query($sql) or die ("Gagal query simpan ".mysql_error());
}
if ($result) {
echo "<meta http-equiv=\"refresh\" content=\"0;URL=form-komentar.php\">"; //supaya setelah mengisi kometarnya dan jawabannya itu benar maka akan kembali lagi ke halaman form-komentar.php
}
?>

Selesai deh..easy kan??

Budayakan komentar atau http://www.smileycodes.info
Selengkapnya...

Rabu, 16 Maret 2011

Membuat link flash di HTML

Dibikin pusing gue sama judul di atas, nanya-nanya ke forum ngga ada yg bisa.
Sekalinya ada yang jawab malah disuruhnya bikin link di dalam flash-nya.
Padahal kan gue mintanya bikin link-nya di HTML. Lagian kalo bikinnya pas di flash (macromedia) nya kan ga bisa di rubah lagi alamat link yg mau dituju.
Tapi akhirnya setelah ngoprek-ngoprek bareng temen berhasil juga ngedapetin caranya.
Okeh langsung aja gue kasih tau caranya.

Sama seperti membuat link untuk gambar, tinggal diapit aja coding <img src=""> sama coding <a href=""></a>.
Tapi untuk flash ada penambahan di CSS nya.

<a href="index.html">
<div style="position:absolute; width:110px; height:70px;"></div>
<embed src="backhist-thumb.swf" width="110" height="70" wmode="transparent" />
</a>


Keterangan:
Buka code link, masukan script CSS seperti diatas, lalu embed objek flash-nya, terakhir tutup dengan code link
Selengkapnya...

Kamis, 10 Maret 2011

Delete multiple dengan checkbox

Bismillahirrahmanirrahim
Mudah-mudahn tutorial yang akan gue terangkan kali ini berguna dan disukai oleh para pembaca.
Okeh, jika kita mempunyai sebuah website penjualan atau informasi, pasti di dalam halaman adminnya terdapat tool untuk menghapus data yang sudah tidak terpakai dan ingin kita hapus.
Contoh kasus, Anda mempunyai 1000 data, dan dari 1000 data tersebut ada beberapa data yang akan Anda hapus.
Tidak masalah kalau data yang akan dihapus 1 atau 2, akan tetapi bagaimana jika data yang akan dihapus mencapai 100 data??
Akan sangat cape dan membosankan jika Anda harus mendelete satu per satu data sampai 100 data.
Tapi nang nang ja..hehehehehe
Gue punya solusinya koq buat mengatasi masalah tersebut.
Tinggal buat aja file delete_multiple.php dengan menggunakan checkbox.

<?php
// Connect to server and select databse.
mysql_connect("$host", "$username", "$password")or die("cannot connect");
mysql_select_db("$db_name")or die("cannot select DB");

$sql="SELECT * FROM $tbl_name ORDER BY id";
$result=mysql_query($sql);
$count=mysql_num_rows($result);
?>
<table width="400" border="0" cellspacing="1" cellpadding="0">
<tr>
<td><form name="form1" method="post" action="">
<table width="400" border="0" cellpadding="3" cellspacing="1" bgcolor="#CCCCCC">
<tr>
<td bgcolor="#FFFFFF">&nbsp;</td>
<td colspan="4" bgcolor="#FFFFFF"><strong>Delete multiple rows in mysql</strong> </td>
</tr>
<tr>
<td align="center" bgcolor="#FFFFFF">#</td>
<td align="center" bgcolor="#FFFFFF"><strong>Id</strong></td>
<td align="center" bgcolor="#FFFFFF"><strong>Name</strong></td>
<td align="center" bgcolor="#FFFFFF"><strong>Lastname</strong></td>
<td align="center" bgcolor="#FFFFFF"><strong>Email</strong></td>
</tr>
<?php
while($rows=mysql_fetch_array($result)){
?>
<tr>
<td align="center" bgcolor="#FFFFFF"><input name="radio[]" type="radio" id="radio[]" value="<? echo $rows['id']; ?>"></td>
<td bgcolor="#FFFFFF"><? echo $rows['id']; ?></td>
<td bgcolor="#FFFFFF"><? echo $rows['name']; ?></td>
<td bgcolor="#FFFFFF"><? echo $rows['lastname']; ?></td>
<td bgcolor="#FFFFFF"><? echo $rows['email']; ?></td>
</tr>
<?php
}
?>
<tr>
<td colspan="5" align="center" bgcolor="#FFFFFF"><input name="delete" type="submit" id="delete" value="Delete"></td>
</tr>
<?
// Check if delete button active, start this
if($delete){
for($i=0;$i<$count;$i++){
$del_id = $radio[$i];
$sql = "DELETE FROM $tbl_name WHERE id='$del_id'";
$result = mysql_query($sql);
}

// if successful redirect to delete_multiple.php
if($result){
echo "<meta http-equiv=\"refresh\" content=\"0;URL=delete_multiple.php\">";
}
}
mysql_close();
?>
</table>
</form>
</td>
</tr>
</table>


Referensi: http://phpeasystep.com/mysql/8.html
Selengkapnya...

Selasa, 01 Maret 2011

PHP hit counter

Penasaran sama cara kerja hit counter membuat gue mencari-cari tutorial kesana kemari http://www.smileycodes.info
Dan akhirnya...
Taraaaaa http://www.smileycodes.info
This is it...

Langkah pertama buat dulu database nya dengan nama hitcounter, setelah itu buat tabelnya, bisa langsung menggunakan phpMyAdmin bisa juga dengan coding.
CREATE TABLE `visitor` (
`counter` int(9) NOT NULL default '0'
) TYPE=MyISAM;


Langkah kedua buat script counter.php
<?php
$host="localhost"; // Host name
$username="root"; // Mysql username
$password=""; // Mysql password
$db_name="hitcounter"; // Database name
$tbl_name="visitor"; // Table name

// Connect to server and select database.
mysql_connect("$host", "$username", "$password")or die("cannot connect to server ");
mysql_select_db("$db_name")or die("cannot select DB");
$sql = "SELECT * FROM $tbl_name";
$result = mysql_query($sql);

$rows = mysql_fetch_array($result);
$counter = $rows['counter'];

// if have no counter value set counter = 1
if(empty($counter)){
$counter = 1;
$sql1 = "INSERT INTO $tbl_name(counter) VALUES('$counter')";
$result1 = mysql_query($sql1);
}

echo "You 're visitors No. ";
echo "<b>".$counter."</b>";

// count more value
$addcounter = $counter + 1;
$sql2 = "update $tbl_name set counter = '$addcounter'";
$result2 = mysql_query($sql2);

mysql_close();
?>


Selesai deh..gampang kan??
Tolong dikembangin ye kalo bisa..
Ane juga lagi mau ngembangin lagi..
Kalo udah ada yang bisa kasih atu ane yee..
Intinya saling berbagi http://www.smileycodes.info aja..hehehe

Referensi = http://www.phpeasystep.com/phptu/7.html
Selengkapnya...