koneksi Oracle

August 23, 2011

sebenarnya udah lama mau posting ini, karna satu dan lain hal jadi baru sekarang deh bisa postingnya πŸ˜€
oracle, database yang oke banget itu mau saya gunakan untuk penyimpanan data dan saya menggunakan program PHP sebagai interface.
langkah awal yang harus d lakukan sebelum coding adalah
hapus remark yang php_oci8 dan php_oracle yang ada pada apache\bin\php.ini (hapus semicolon dua line d bawah ini)

;extension=php_oracle.dll
;extension=php_oci8.dll

nah setelah itu restart apache dan mulailah berkreasi dengan PHP dan Oracle.
berikut salah satu contoh untuk koneksi PHP dengan Oracle :

index.php

<table>
<TR>
<TD ALIGN="left">customer id</TD>
<TD ALIGN="right">name</TD>
<TD ALIGN="right">country</TD>
</TR>
<?php
$koneksi=@oci_connect("username","password","database");
	if(!$koneksi) {
		$e = oci_error();
		echo htmlentities($e["message"]);
		exit();
		}
		
$query = "select customer_id,name,country";
$query .= " from tbl_customer order by customer_id";
$stmt = OCIparse($koneksi,$query);
OCIexecute($stmt,OCI_DEFAULT);
while (OCIfetchInto($stmt,&$userinfo)) {
?>
<TR>
<TD ALIGN="left"><? echo $userinfo[0]; ?></TD>
<TD ALIGN="right"><? echo $userinfo[1]; ?></TD>
<TD ALIGN="right"><? echo $userinfo[2]; ?></TD>
<TD ALIGN="right"><? echo $userinfo[3]; ?></TD>
<TD ALIGN="right"><? echo $userinfo[4]; ?></TD>
</TR>
<?php
} // endwhile
OCIFreeStatement($stmt);
OCILogoff($koneksi);
?>
</table>

setelah ini seperti biasa d jalankan pada browser dan selamat bercoding ria πŸ˜‰


print dengan PHP

March 30, 2009

waduh, di tempat kerja gw d haruskan pake PHP! (padahal waktu kuliah belajar PHP gw ga pernah ngerti.. emoticon ngertinya cuma HTML itu juga ga di perdalamin!!) biasa manusia klo udah tuntutan pasti usahanya keras dan alhamdulillah jd jatuh hati nih ke PHP!!hehehe..

mentok waktu di suruh buat laporan! maunya kaya crystal report, ternyata ga ada! jd pake HTML aja deh!!

masih aja ada masalah, walaupun boleh tanpa tombol print yaitu pake File -> Print.. tapi gw kurang puas dengan itu!

tanya-tanya temen an konsultasi sama mbah google ternyata dapet juga dengan ga habis 1 hari!

ni codingnya :

Buat tombolnya printnya di halamn preview report

<input type=”button” name=”btn_cetak” onClick=”cetak()” value=”Cetak”>

Buat script javascript diantara tag

function cetak(param){
window.open(“cetak.php?param=”+param,”cetak”,”width=500,heigth=500,scrollbars=1″)
}

Di cetak php

Sehingga jika cetak.php diload maka akan langsung muncul dialog priint

eh, itu dapet dari orang!(bukan gw yg buat) ini cuma media penyampaian aja.. (semoga membantu) maklum blom menguasai (masih ngeja nih)

tapi itu gw juga masih blom puas!! karena bisa ngeliat hasilnya kalo udah di print aja! ok akhirnya cari-cari lagi dan mbah google sangat amat baik ngasih gw script seprti ini :

<html>
<head>
<title>Tes</title>

<style type="text/css">
@media print {
input.noPrint { display: none; }
}
</style>

</head>
<body>

<?php
class orang {
var $nama = β€˜Nyoba Print’;
var $tinggal = β€˜Di HTML’;
}
$new_plesh=new orang();
echo "Tugas saya adalah ".$new_plesh->nama;
echo "<br>";
echo "Tinggal di :".$new_plesh->tinggal;

?>
<form><input class="noPrint" type="button" value="Print" onclick="window.print()"></form>

</body>
</html>

dengan itu gw baru berasa puas!

pertamanya sih tombol printnya pun ikut ke print, tapi pas pake css itu selesai juga 1 masalah gw! alhamdulillah

nb : semoga berguna


download file dari mysql dengan PHP

February 20, 2009

kemarin telah saya post yang upload, dan sekarang saya ingin menampilkan dan mengambil file tersebut. menggunakan database kemarin, berikut source tampilannya.

<?php
$db_host = 'localhost'; // don't forget to change
$db_user = 'root';
$db_pwd = '';
$database = 'uts';
$table = 'transaksi';

if (!mysql_connect($db_host, $db_user, $db_pwd))
  die("Can't connect to database");
if (!mysql_select_db($database))
  die("Can't select database");

$result = mysql_query("SELECT id_file, nm_file, id_dosen, type_file, des_file from transaksi");

if(mysql_num_rows($result) == 0)
{
echo "Database is empty
";
}
else
{
while(list($id, $nm_file, $nm_dosen, $type_file, $des_file) = mysql_fetch_row($result))
{
// outputing list
		echo "
<tr>";
		echo "
<td align='left' width='22%'>";
		echo "
	<li>";
		echo "<a href='download.php?show={$id}' target='_blank'>{$nm_file}</a> &ndash; ";
		echo "<small>{$des_file}</small> &ndash; ";
		echo "<small>{$nm_dosen}</small></li>
";
		echo "</td>
";
		echo "</tr>
";
}
}
?>

dan beirkut download.php

<?php
$db_host = 'localhost'; // don't forget to change
$db_user = 'root';
$db_pwd = '';
$database = 'uts';
$table = 'transaksi';

if (!mysql_connect($db_host, $db_user, $db_pwd))
  die("Can't connect to database");
if (!mysql_select_db($database))
  die("Can't select database");

$strID=$_GET&#91;'show'&#93;;

$result = mysql_query("SELECT id_file, nm_file, ext, id_dosen, type_file, size_file, isi_file, des_file from transaksi where id_file=$strID");

$row = mysql_fetch_array( $result );
if (!empty($row&#91;"isi_file"&#93;))
{
// Output the MIME header - Force as Octet Stream
// You could get this from the FileType Column
header("Content-type: application/octet-stream");
header("Content-Length: " . strlen($row&#91;'isi_file'&#93;) );
header("Content-Type: application/octet-stream");
header('Content-Disposition: attachment; filename="'.$row&#91;'nm_file'&#93;.'.'.$row&#91;'ext'&#93;.'"');
header("Content-Transfer-Encoding: binary\n");
echo $row&#91;'isi_file'&#93;;
}
?>

ya, itu lah. Semoga bermanfaat πŸ™‚


upload file ke mysql dengan php

February 19, 2009

sebelumnya saya juga sudah buat unduh image ke dalam myswl, dan ada yang commend kalau file juga bisa masuk, pas d coba eh ternya ta bener bisa.

pertama buat tabelnya dulu,

CREATE TABLE `transaksi`
(`id_file` int(4) NOT NULL auto_increment,
`id_dosen` varchar(30) NOT NULL,
`nm_file` varchar(30) NOT NULL,
`ext` varchar(5) NOT NULL,
`type_file` varchar(30) default NULL,
`size_file` int(11) default NULL,
`isi_file` longblob,
`des_file` varchar(50) NOT NULL,
`tgl_krm` date default NULL,
`jam_krm` time default NULL,
PRIMARY KEY (`id_file`,`id_dosen`));

terus kita buat form.php

<html>
<title>Masukkan File</title>
<head></head>
<body>
<form name="iip" method="post" action="masuk.php?X=E" enctype='multipart/form-data'>
<table width="444" border="0" cellpadding="0" cellspacing="0" height="313" align="center">
<tr>
<td colspan='3' align="center"<font style="font-family: Arial,Verdana,Sans; font-size: 15pt; color: #000000"><b>ADD File</b></font></td>
</tr>
<tr>
<td>Judul File
<td>:</td>
</td>
<td>
<input name="judul"></td>
</tr>
<tr>
<td>File</td>
<td>:</td>
<td><input type="file" name="file" id="file" /></td>
</tr>
<tr>
<td>Deskripsi</td>
<td>:</td>
<td><textarea name="deskripsi" cols="25" rows="4"></textarea></td>
</tr>
<tr>
<td>Dosen</td>
<td>:</td>
<td><input name="dosen" size="33"></td>
</tr>
<tr>
<td><input type="submit" value="Save" name="simpan" style="font-family: Tahoma; font-size: 10pt; color: #000000"></td>
<td><input type="Reset" value="Reset" name="batal" style="font-family: Tahoma; font-size: 10pt; color: #000000"></td>
</tr>
</table>
<form>
</body>
</html>

dan terakhir baru deh masukin ke mysql ini masuk.php

<?php
$db_host = 'localhost'; // don't forget to change
$db_user = 'root';
$db_pwd = '';
$database = 'uts';
$table = 'transaksi';

if (!mysql_connect($db_host, $db_user, $db_pwd))
  die("Can't connect to database");
if (!mysql_select_db($database))
  die("Can't select database");

$strX=$_GET&#91;'X'&#93;;

$strJudul = '';
$strDeskripsi = '';
$strDosen = '';

if($strX==E)
{

if ($_FILES&#91;"file"&#93;&#91;"error"&#93; > 0)
  {
  echo "Error: " . $_FILES["file"]["error"] . "
";
  }
else
  {
     $strJudul = $_POST['judul'];
	$strType = $_FILES["file"]["type"];
	$strSize = ($_FILES["file"]["size"] / 1024);
	$strFile = $_FILES["file"]["tmp_name"];
	$nsf = $_FILES["file"]["name"];
	$strNama = strtolower(end(explode('.', $nsf)));
	$strDeskripsi = $_POST['deskripsi'];
	$strDosen = $_POST['dosen'];
	$strTgl = date('Y-m-d');
	$strJam = date('H:i:s');

	$fp      = fopen($strFile, 'r');
	$content = fread($fp, filesize($strFile));
	$content = addslashes($content);
	fclose($fp);

	mysql_query("INSERT INTO transaksi (id_dosen, nm_file, ext, type_file, size_file, isi_file, des_file, tgl_krm, jam_krm) value('".$strDosen."','".$strJudul."','".$strNama."','".$strType."','".$strSize."','".$content."','".$strDeskripsi."','".$strTgl."','".$strJam."')");

	echo "alhamdulillah";
  }
}
?>
<body onload="alert('Sukses dan Terima Kasih');window.location.assign('form.php');"></body>

ya, bisa juga buat file koneksi tersendiri, tapi biar cepet saya masukin d sini aja (kan cuma contoh) πŸ˜€


login ala Cpanel

February 17, 2009

hem….

dah mulai bungung nih mau nulis apa lagi d blog ini (walau isinya kebanyakan co-pas) hehehe…

ya, sekarang saya mau belajar lg OOP pada PHP (telat ga ya?) dulu pernah belajar, malah dah sempet buat aplikasi dengan java(J2SE) eh, pas kantor butuh PHP jd d lupain deh pacar pertama itu (karena masih pake prosedural)

lho..lho.. sebenernya ini bukan ngebahas OOP, tapi cuma tertarik aja buat login ala Cpanel, ternyata sourcenya dikit ya πŸ˜€ agak lucu nih, waktu coba sukses, kok pas coba lg aneh tampilannya beda bgt. eh ternyata beda browser itu beda tampilan (maklum tampilannya kan ga buat sendiri, melainkan langsung panggil aja) nih tampilan dengan IE

login

keliatannya keren kan? beda kalo pake mozilla (check sendiri ya) dan ini sourcenya.


<?php
if (!isset($_SERVER&#91;'PHP_AUTH_USER'&#93;)) {
header('WWW-Authenticate: Basic realm="Login ALA Cpanel"');
echo 'Anda membatalkan login !';
exit;
} else {
echo "Anda memasukkan username {$_SERVER&#91;'PHP_AUTH_USER'&#93;}.
";
echo "dan password {$_SERVER&#91;'PHP_AUTH_PW'&#93;}.
";
}
?>

dikit kan? oya, untuk arti dan maksud dari soource d atas saya blom bisa jelasin (kan masih belajar juga) πŸ˜€


session timeout

October 15, 2008

saya ingin membatasi waktu untuk user yang masuk ke dalam aplikasi PHP, bagaimana caranya ya? pertama saya gunakan session, saya kira sudah bisa logout bila idle, ternyata ga bisa. hehehehe…

ya setelah konsultasi d google ternyata banyak cara, bisa dengan menghapus chace dan ada yang d kasih waktu. saya coba yang pake waktu, misal 15 menit setelah user masuk maka otomatis logout dan harus kembali login. contohnya :

login.php

<?php
require_once 'Functions/functions.php';

$strUserName = $_POST&#91;'username'&#93;;
$strPassword = $_POST&#91;'password'&#93;;
$strPasswordHash = strtolower(md5($strPassword));

$strLogin = "SELECT * from db_kar where nik_kar='". $strUserName ."' AND user_hash='". $strPasswordHash ."'";

$login=mysql_query($strLogin,$conn);

if(mysql_num_rows($login)==1)
{
  $row=mysql_fetch_array($login);
  $strname = $row&#91;'nam_kar'&#93;;
  $strstat = $row&#91;'status_kar'&#93;;
  session_start();

  $_SESSION&#91;'last_access'&#93; = time();
  $_SESSION&#91;'logged'&#93; = 1;
  $_SESSION&#91;'nam_kar'&#93; = $strname;
  $_SESSION&#91;'username'&#93; = $strUserName;

 }
else
{echo "Wrong Username or Password";
?>
	<body onload="alert('ERROR,Wrong Username or Password');window.location.assign('../utama.php');"></body>
	<?
}
?>

ceksession.php

<?php

session_start();
if (isset($_SESSION&#91;'logged'&#93;) && $_SESSION&#91;'logged'&#93; == 1) {
if ($_SESSION&#91;'last_access'&#93; + (15*60) < time()) {
session_destroy();
header("location: ../utama.php");
 exit;
}
} else {
  $redirect = $_SERVER&#91;'PHP_SELF'&#93;;
  header("Refresh: 3; URL=../utama.php?redirect=$redirect");
   echo "Session Expired, Please Login again
";
  die();
}
?>

ya mudah mudahan ini bisa berguna untuk yang baca… πŸ˜€


menampilkan data per halaman

September 4, 2008

kalau saya punya data banyak bgt d tampilkan d halaman web dengan bentuk table maka akan panjang sekali k bawah. maka saya cari source yang bisa d tampilkan per halaman. waktu googling ternyata bnyak tapi menggunakan ASP (apa emang lg musim ASP ya). ternyata teman saya bisa yg dari ASP tersebut d jadikan k PHP (emang dya master :)) tapi codingnya banyak bgt, eh akhirnya dapet juga nih :

<?php
// how many rows to show per page
$rowsPerPage = 10;

// by default we show first page
$pageNum = 1;

// if $_GET&#91;'page'&#93; defined, use it as page number
if(isset($_GET&#91;'page'&#93;))
{
	$pageNum = $_GET&#91;'page'&#93;;
}

// counting the offset
$offset = ($pageNum - 1) * $rowsPerPage;

$link=open_connection();
$query  = "SELECT * FROM db_kar where nik_kar<>12345 LIMIT $offset, $rowsPerPage";
$result = mysql_query($query) or die('Error, salah');

// print the random numbers
while($row = mysql_fetch_array($result))
{
bla... bla..
}
?>

dan ada dua model tampilannya…
yg pertama seperti
sourcenya :

<?php
// how many rows we have in database
$query   = "SELECT COUNT(*) AS numrows FROM db_kar";
$result  = mysql_query($query) or die('Error, query failed');
$row     = mysql_fetch_array($result, MYSQL_ASSOC);
$numrows = $row&#91;'numrows'&#93;;

// how many pages we have when using paging?
$maxPage = ceil($numrows/$rowsPerPage);

// print the link to access each page
$self = $_SERVER&#91;'PHP_SELF'&#93;;
$nav = '';
for($page = 1; $page <= $maxPage; $page++)
{
	if ($page == $pageNum)
	{
		$nav .= " $page ";   // no need to create a link to current page
	}
	else
	{
		$nav .= " <a href=\"$self?page=$page\">$page</a> ";
	}
}

// creating previous and next link
// plus the link to go straight to
// the first and last page

if ($pageNum > 1)
{
	$page = $pageNum - 1;
	$prev = " <a href=\"$self?page=$page\">[Prev]</a> ";

	$first = " <a href=\"$self?page=1\">[First Page]</a> ";
}
else
{
	$prev  = '&nbsp;'; // we're on page one, don't print previous link
	$first = '&nbsp;'; // nor the first page link
}

if ($pageNum < $maxPage)
{
	$page = $pageNum + 1;
	$next = " <a href=\"$self?page=$page\">[Next]</a> ";

	$last = " <a href=\"$self?page=$maxPage\">[Last Page]</a> ";
}
else
{
	$next = '&nbsp;'; // we're on the last page, don't print next link
	$last = '&nbsp;'; // nor the last page link
}

// print the navigation link
echo ("<font style='font-family: Arial,Verdana,Sans; font-size: 10pt; color: #FFFFFF'>");
echo $first . $prev . $nav . $next . $last;
echo ("</font>");
?>

yg ke dua

sourcenya:

<?php
// how many rows we have in database
$query   = "SELECT COUNT(*) AS numrows FROM tbnom where nm_folder = '".$strfolder."'";
$res1=SQLQUERY($query,$conn);
$row     = mysql_fetch_array($res1);
$numrows = $row&#91;'numrows'&#93;;

// how many pages we have when using paging?
$maxPage = ceil($numrows/$rowsPerPage);

$self = $_SERVER&#91;'PHP_SELF'&#93;;

// creating 'previous' and 'next' link
// plus 'first page' and 'last page' link

// print 'previous' link only if we're not
// on page one
if ($pageNum > 1)
{
	$page = $pageNum - 1;
	$prev = " <a href=\"$self?show=$strfolder&page=$page\">[Prev]</a> ";

	$first = " <a href=\"$self?show=$strfolder&page=1\">[First Page]</a> ";
}
else
{
	$prev  = ' [Prev] ';       // we're on page one, don't enable 'previous' link
	$first = ' [First Page] '; // nor 'first page' link
}

// print 'next' link only if we're not
// on the last page
if ($pageNum < $maxPage)
{
	$page = $pageNum + 1;
	$next = " <a href=\"$self?show=$strfolder&page=$page\">[Next]</a> ";

	$last = " <a href=\"$self?show=$strfolder&page=$maxPage\">[Last Page]</a> ";
}
else
{
	$next = ' [Next] ';      // we're on the last page, don't enable 'next' link
	$last = ' [Last Page] '; // nor 'last page' link
}

// print the page navigation link
echo ("<font style='font-family: Arial,Verdana,Sans; font-size: 10pt; color: #FFFFFF'>");
echo $first . $prev . " Showing page <strong>$pageNum</strong> of <strong>$maxPage</strong> pages " . $next . $last;
echo ("</font>");
?>