Rabu, 17 Juni 2009

Joomla 1.5: Mengganti Judul Welcome to the Frontpage

Pada Joomla! 1.5 kita akan mendapat judul 'Welcome to the Frontpage' pada Frontpage. Bagaimana mengganti judul ini?

Masuk ke situs Joomla! 1.5 Administration and login. Pada situs administration masuk ke:

  • Menus - Main Menu (sekarang kita di: Menu Item Manager: mainmenu).
  • klik pada link 'Home' untuk mengedit link ini (sekarang kita di: Menu Item: Edit).
  • klik pada Parameters System dan ganti atau hapus Page title.
  • jika Page Title diganti, maka judul yang baru akan muncul pada Frontpage
  • jika Page Title dihapus, maka Menu link akan muncul sebagai judul Frontpage (dalam hal ini 'Home' yang akan ditampilkan, karena 'Home' adalah nama link pada Frontpage).
  • jika tidak ingin ada judul maka buat Show Page Title dibawah parameter Page title menjadi 'No'.
  • Jangan lupa nge-save perubahan yang sudah dilakukan.

 

Akhmad Daniel Sembiring

vITraining.com

Ligarwangi.com - toserba online

Joomla 1.5: Mengganti Footer

Edit file file sbb: Languages - en-GB.mod_footer.ini ganti baris berikut ini.

FOOTER=Footer
FOOTER_LINE1=Copyright © %date% %sitename%. All Rights Reserved.
FOOTER_LINE2=<a href="http://www.joomla.org">Joomla!</a> is Free Software released under the <a href="http://www.gnu.org/licenses/gpl-2.0.html">GNU/GPL License.</a>
MOD_FOOTER=<em>mod_footer</em>
THIS MODULE SHOWS THE JOOMLA! COPYRIGHT INFORMATION=This Module shows the Joomla! Copyright information

Atau cara lainnya adalah pada file <yourtemplate>/index.php di bagian paling bawah ganti baris berikut ini.

<p id="power_by">
<?php echo JText::_('Powered by') ?> <a href="http://www.joomla.org">Joomla!</a>.
<?php echo JText::_('Valid') ?> <a href="http://validator.w3.org/check/referer">XHTML</a> <?php echo JText::_('and') ?> <a href="http://jigsaw.w3.org/css-validator/check/referer">CSS</a>
</p>

Akhmad Daniel Sembiring

vITraining.com

Ligarwangi.com - toserba online

Membaca Halaman Web dengan C#

HTTP classes pada .NET framework adalah HTTPWebRequest dan HTTPWebResponse.  Langkah yang diperlukan  untuk menggunakannya adalah menentukan halaman web yang akan dibaca menggunakan HTTPWebRequest object, melakukan request yang dibutuhkan, dan menggunakan HTTPWebResponse object untuk menerima halaman web.  Untuk itu kita perlu menggunakan operasi stream untuk meng-ekstrak informasi pada halaman tersebut. Berikut contoh program yang memperlihatkan bagaimana proses tersebut berlangsung.

 

using System;
using System.IO;
using System.Net;
using System.Text;

/// <summary>
/// Fetches a Web Page
/// </summary>
class WebFetch
{
static void Main(string[] args)
{
// untuk menyimpan data input
StringBuilder sb = new StringBuilder();

// untuk menampung setiap operasi pembacaan data
byte[] buf = new byte[8192];

// siapkan halaman web yang akan dibaca
HttpWebRequest request = (HttpWebRequest)
WebRequest.Create("http://www.vitraining.com/cms");

// jalankan request
HttpWebResponse response = (HttpWebResponse) request.GetResponse();

// baca data melalui response stream
Stream resStream = response.GetResponseStream();

string tempString = null;
int count = 0;

do
{
// isi buffer dengan data
count = resStream.Read(buf, 0, buf.Length);

// pastikan ada data yang dibaca
if (count != 0)
{
// translate dari bytes ke ASCII text
tempString = Encoding.ASCII.GetString(buf, 0, count);

// simpan string
sb.Append(tempString);
}
}
while (count > 0); // masih ada data yang perlu dibaca?

// tampilkan output
Console.WriteLine(sb.ToString());
}
}



Program pada Listing 1 akan me-request halaman web dan menampilkan HTML pada layar.  Dikarenakan data dari halaman web berupa bytes, kite perlu set sebuah byte array, yang diberinama buf, untuk menampung byte tersebut.



Langkah pertama adalah membuat HttpWebRequest object.  Ini terjadi ketika kita memanggil method Create() dari WebRequest.  Parameter method Create() adalah string yang berisi URL web page yang akan dibaca. Method Create() return object berjenis WebRequest , jadi kita perlu melakukan cast ke jenis HttpWebRequest sebelum meng-assign-nya ke variabel request .  Berikut ini baris programnya:



		HttpWebRequest  request  = (HttpWebRequest)
WebRequest.Create("http://www.mayosoftware.com");




Ketika request object sudah terbentuk, kita tinggal gunakan untuk membuat response object.  Object response dibuat menggunakan method GetResponse() dari  request object yang baru saja dibuat.  Method GetResponse() tidak membutuhkan parameters dan return object berjenis WebResponse yang harus di-cast menjadi HttpWebResponse sebelum kita bisa meng-assign-nya kepada response object.  Baris berikut ini menampilkan bagaimana memperoleh HttpWebResponse object.




		HttpWebResponse response = (HttpWebResponse) request.GetResponse();




Object response digunakan untuk mendapatkan Stream object, yang merupakan member dari namespace System.IO .  Method GetResponseStream() dari response dipanggil untuk mendapatkan stream ini sebagai berikut:




		Stream resStream = response.GetResponseStream();




Sekarang kita akan menggunakan object byte array yang sudah didefinisikan diatas, yaitu melalui method Read() dari object stream untuk menerima data dari web page.  Method Read() memiliki 3 arguments:  yang pertama adalah byte array yang akan menampung data, yang kedua adalah posisi awal array yang akan diisi, dan yang ketiga adalah jumlah maximum byte yang akan dibaca.  Return-nya adalah jumlah byte yang berhasil dibaca.  Berikut ini bagaimana membaca data dari web page:




		count = resStream.Read(buf, 0, buf.Length);




Sekarang array of bytes buf sudah terisi dengan data dari web page. Namun data bytes ini perlu dikonversi terlebih dahulu menjadi string agar kita dapat memanfaatkan semua method untuk memanipulasi string yang tersedia pada  .NET.  Disini kita gunakan class ASCII yang terdapat pada class Encoding pada namespace System.Text.  Class ASCII memiliki method GetString() yang mempunyai tiga parameter mirip seperti method  Read() .  Parameter pertama adalah byte array yang akan dibaca yaitu buf .  Parameter kedua adalah posisi awal yang akan dibaca pada buf .  Parameter ketiga adalah jumlah bytes pada buf yang akan dibaca, yang dalam hal ini adalah count, yang merupakan jumlah bytes hasil method Read() yang akan menjamin bahwa hanya sejumlah itu byte yang akan dikonversi.  Berikut ini program yang menkonversi bytes pada buf menjadi string dan menyimpan hasilnya pada object StringBuilder.




		tempString = Encoding.ASCII.GetString(buf, 0, count);

sb.Append(tempString);


Ukutan diset 8192, yang sangat kecil bahkan untuk menampung halaman web yang sederhana.  Untuk mensiasati hal ini, baris program yang membaca response stream harus dibuat menjadi loop yang terus membaca sampai tidak ada lagi data bytes.  Listing 1 program di atas menggunakan loop do karena kita paling tidak perlu melakukan satu kali pembacaan. Ingat bahwa setiap kali pemanggilan  read() hasilnya adalah jumlah byte yang berhasil dibaca.  Kondisi pada while dari loop do mengecek jumlah tersebut untuk memastikan bahwa sesuatu telah berhasil dibaca.  Juga perhatikan adanya statement if yang memastikan bahwa kita tidak menkonversi bytes ketika tidak ada data yang dibaca.  Karena kita menggunakan loop, kita perlu mengumpulkan hasil pembacaan pada setiap perulangan, yang dalam hal ini di-append pada object StringBuilder.



Akhmad Daniel Sembiring


vITraining.com



Ligarwangi.com - toserba online

SQL Express: meng-enable koneksi remote melalui TCP/IP

Protokol networking secara default di-disabled pada SQL Server Express. Karena itu, jika kita meng-installs Express dan memilih defaults, maka SQL Server Express hanya akan dapat menerima koneksi yang berasal komputer local dimana SQL Server ter-installed.

Untuk meng-enable SQL Server Express agar dapat menerima koneksi dari komputer remote kita perlu melakukan hal-hal dibawah ini:

STEP 1: Enabling TCP/IP

KIta harus memerintahkan SQL Server Express untuk listen pada TCP/IP, hal ini dilakukan dengan langkah-langkah sebagai berikut:

  • Jalankan SQL Server Configuration Manager dari Program Menu - Microsoft SQL Server 2005 CTP
  • Klik pada node "Protocols for SQLEXPRESS"
  • Klik kanan pada "TCP/IP"  di daftar Protocols dan pilih "Enable"

STEP 2: To Browse or not to Browse

Selanjutnya kita perlu menentukan apakah kita perlu SQL Browser service berjalan atau tidak. Keuntungan dari berjalannya service ini adalah bahwa user yang terkoneksi secara remote tidak perlu menentukan port pada connection string.

Catatan: Untuk alasan security disarankan tidak menjalankan SQLBrowser service.

OPTION A:

Jika kita ingin selalu menentukan TCP port ketika melakukan koneksi (yaitu tidak menggunakan SQL Browser service) lakukan langkah dibawah ini:

  • Jalankan SQL Server Configuration Manager dari Program menu - Microsoft SQL Server 2005 CTP
  • Klik pada node "Protocols for SQLEXPRESS"
  • Klik pada child node "TCP/IP"
  • Perhatikan entry pada panel bagian kanan untuk "IPAll", klik kanan dan pilih "Properties"
  • Kosongkan "TCP Dynamic Ports"
  • Isikan nomor Tcp Port yang akan digunakan ketikan membuat remote connections, misalnya "1433"

Pada langkah ini kita harus restart SQL Server Express service, dan kita akan dapat melakukan koneksi secara remote ke SQL Express.  Untuk mengeceknya gunakan perintah SQLCMD dari komputer remote dan lakukan koneksi seperti berikut:

SQLCMD -E -S YourServer\SQLEXPRESS,1433

Tanda "," pada nama server artinya adalah nomor port.

Jika masih ada error, lihat Step 3.

OPTION B:

Jika kita menggunakan SQL Browser service lakukan langkah berikut:

Catatan:
Kita perlu melakukan perubahan pada registry key jika menggunakan CTP versi sebelum April.

Untuk meng-enable sqlbrowser service listen pada port 1434, registry key berikut ini harus di-set menjadi 1

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\90\SQL
Browser\Ssrplistener

Selanjutnya restart sqlbrowser service.

  • Jalankan SQL Browser Service

STEP 3: Firewall..?

Pada titik ini kita seharusnya sudah dapat melakukan koneksi secara remote. Jika masih juga belum berhasil, kemungkinan ada pada masalah firewall yang diset pada komputer dimana SQL Express berjalan. Langkah berikut ini digunakan untuk men-setting firewall pada Windows XP SP2.
Untuk meng-enable firewall agar mengizinkan trafik SQL Server Express:

  • Jalankan Windows Firewall configuration tool dari Control Panel.
  • Klik pada Tab Exceptions
  • Klik pada tombol "Add Programs."  dan pilih "sqlservr.exe" dari lokasi dimana kita meng-install SQL Server Express

Kita seharusnya sudah bisa melakukan koneksi secara remote. Kita bisa juga men-set firewall yang lebih ketat dengan mengetikkan port number yang diperbolehkan, misalnya 1433 (baik sekali digunakan pada konfigurasi Option A).

Jika kita memilik menggunakan SQL Browser service, kita juga harus menambahkan sqlbrowser service executable pada Tab Exception karena program tersebut listens pada port UDP 1434.

Akhmad Daniel Sembiring
vITraining.com
Ligarwangi.com - toserba online

Koneksi MS SQL Server dengan C-Sharp

Class C# untuk keperluan akses database SQL Server yang meliputi connection, command, dan adapter classes dapat dilihat pada tabel di bawah. Class tersebut didefinisikan pada namespace System.Data.SqlClient .

Table SQL Server Database Classes

Class   Description
SqlConnection   Koneksi fisik ke Database SQL Server
SqlDataCommand   Menjalankan perintah / command SQL pada database
SqlDataAdapter   Moves data between the DataSet and the physical Database using a connection and a command
SqlDataReader   Untuk meng-iterasi hasil yang dikeluarkan oleh suatu command

Pada SQL Server ketika diinstall terdapat database Northwind Trader. Contoh di bawah ini kita akan menggunakan database tersebut.

Pada contoh ini kita menggunakan command object secara langsung. Program memanggil methodExecuteReader object SqlCommand, yang return-nya adalah SqlReader object. Kemudian kita menggunakan SqlReader untuk membaca seluruh record yang dihasilkan.

 

using System;
using System.Data;
using System.Data.SqlClient;

namespace csbook.ch15 {

class Example15_3 {
static void Main(string[] args) {
// create an open the connection
SqlConnection conn =
new SqlConnection("Data Source=DESKTOP;"
+ "Initial Catalog=Northwind;"
+ "Persist Security Info=True;"
+ "User ID=jeff;Password=password");

conn.Open();

// create a SqlCommand object for this connection
SqlCommand command = conn.CreateCommand();
command.CommandText = "Select * from Customers";
command.CommandType = CommandType.Text;

// execute the command that returns a SqlDataReader
SqlDataReader reader = command.ExecuteReader();

// display the results
while (reader.Read()) {
string output = reader["CompanyName"].ToString();
Console.WriteLine(output);
}

// close the connection
reader.Close();
conn.Close();
}
}
}





Akhmad Daniel Sembiring


vITraining.com


Ligarwangi.com - toserba online

Koneksi MS SQL Server dengan C-Sharp

Class C# untuk keperluan akses database SQL Server yang meliputi connection, command, dan adapter classes dapat dilihat pada tabel di bawah. Class tersebut didefinisikan pada namespace System.Data.SqlClient .

Table SQL Server Database Classes

Class   Description
SqlConnection   Koneksi fisik ke Database SQL Server
SqlDataCommand   Menjalankan perintah / command SQL pada database
SqlDataAdapter   Moves data between the DataSet and the physical Database using a connection and a command
SqlDataReader   Untuk meng-iterasi hasil yang dikeluarkan oleh suatu command

Pada SQL Server ketika diinstall terdapat database Northwind Trader. Contoh di bawah ini kita akan menggunakan database tersebut.

Pada contoh ini kita menggunakan command object secara langsung. Program memanggil methodExecuteReader object SqlCommand, yang return-nya adalah SqlReader object. Kemudian kita menggunakan SqlReader untuk membaca seluruh record yang dihasilkan.

 

using System;
using System.Data;
using System.Data.SqlClient;

namespace csbook.ch15 {

class Example15_3 {
static void Main(string[] args) {
// create an open the connection
SqlConnection conn =
new SqlConnection("Data Source=DESKTOP;"
+ "Initial Catalog=Northwind;"
+ "Persist Security Info=True;"
+ "User ID=jeff;Password=password");

conn.Open();

// create a SqlCommand object for this connection
SqlCommand command = conn.CreateCommand();
command.CommandText = "Select * from Customers";
command.CommandType = CommandType.Text;

// execute the command that returns a SqlDataReader
SqlDataReader reader = command.ExecuteReader();

// display the results
while (reader.Read()) {
string output = reader["CompanyName"].ToString();
Console.WriteLine(output);
}

// close the connection
reader.Close();
conn.Close();
}
}
}





Akhmad Daniel Sembiring


vITraining.com


Ligarwangi.com - toserba online

Function Membuat MD5 di C#

Kode C# dibawah ini berguna untuk membuat MD5 hash —string 32-character angka hexadecimal— dari sebuah string. Biasanya digunakan untuk menyimpan password di databases sebagai hash code. MD5 hash—yang didefinisikan pada RFC 1321:MD5 Message-Digest Algorithm—merupakan algoritma hash yang umum yang dapat digunakan dengan mudah di oleh programmer C# .
Untuk menggunakannya, cukup dipanggil sebagai berikut:

string md5hash = CreateMD5Hash
("abcdefghijklmnopqrstuvwxyz");
md5hash akan berisi string "C3FCD3D76192E4007DFB496CCA67E13B".


using System;
using System.Security.Cryptography;
using System.Text;

public string CreateMD5Hash (string input)
{
// Use input string to calculate MD5 hash
MD5 md5 = System.Security.Cryptography.MD5.Create();
byte[] inputBytes = System.Text.Encoding.ASCII.GetBytes (input);
byte[] hashBytes = md5.ComputeHash (inputBytes);

// Convert the byte array to hexadecimal string
StringBuilder sb = new StringBuilder();
for (int i = 0; i < hashBytes.Length; i++)
{
sb.Append (hashBytes[i].ToString ("X2"));
// To force the hex string to lower-case letters instead of
// upper-case, use he following line instead:
// sb.Append(hashBytes[i].ToString("x2"));
}
return sb.ToString();
}



Akhmad Daniel Sembiring

vITraining.com


Ligarwangi.com - toserba online







Memanggil DLL secara dinamic di C#

Tulisan ini menjelaskan bagaimana cara memanggil function yang terdapat pada sembarang file MFC DLL dari C# code.  Disini kita menggunakan Reflection namespace, dan untuk dapat memanfaatkannya diperlukan:

using System.Reflection.Emit;
using System.Reflection;


Misalnya kita memiliki file MFC DLL (getmyversion.dll) dengan suatu function int GetDllversion(char* verstr) yang mengeluarkan hasil berupa versi DLL yang terletak pada verstr.



Function dibawah ini membuat dynamic assembly object, dan DefinePInvokeMethod method membuat method yang akan kita gunakan untuk meng-access function DLL. Untuk melengkapi operasi pemanggilan dynamic module, panggil CreateGlobalFunctions. Menggunakan function GetMethod dari created method yang baru dibuat, kita dapat memanggil function yang ada di MFC DLL.





public  object DynamicDllFunctionInvoke( string DllPath, string EntryPoint )
{
// Version string definition

byte[] verstr = new byte[1024];
//Define return type of your dll function.

Type returnType = typeof(int);
//out or in parameters of your function.

Type [] parameterTypes = {typeof(byte[])};
object[] parameterValues = {verstr};
string entryPoint = entrypoint;

// Create a dynamic assembly and a dynamic module

AssemblyName asmName = new AssemblyName();
asmName.Name = "tempDll";
AssemblyBuilder dynamicAsm = AppDomain.CurrentDomain.DefineDynamicAssembly(asmName,
AssemblyBuilderAccess.Run);
ModuleBuilder dynamicMod = dynamicAsm.DefineDynamicModule("tempModule");

// Dynamically construct a global PInvoke signature

// using the input information

MethodBuilder dynamicMethod = dynamicMod.DefinePInvokeMethod(
entryPoint, DllPath, MethodAttributes.Static | MethodAttributes.Public
| MethodAttributes.PinvokeImpl , CallingConventions.Standard,
returnType, parameterTypes, CallingConvention.Winapi,
CharSet.Ansi);

// This global method is now complete

dynamicMod.CreateGlobalFunctions();

// Get a MethodInfo for the PInvoke method

MethodInfo mi = dynamicMod.GetMethod(EntryPoint);
// Invoke the static method and return whatever it returns

object retval = mi.Invoke(null, parameterValues);
// Filled verstr paramter.

MessageBox.Show(System.Text.ASCIIEncoding.ASCII.GetString(verstr));
return retval;
}


Contoh pemanggilan function di atas:







DynamicDllFunctionInvoke(@"c:\getmyversion.dll","GetDllVersion");




Akhmad Daniel Sembiring

vITraining.com


Ligarwangi.com - toserba online

Restore MySQL database, stored procedure missing ?

Backing up and Restoring mysql database could be done through several ways. You can backup and restore by exporting SQL script using MySQL command line or copying MySQL data directory from the original server to the destination server.

Backup and Restore using MySQL command line

You can backup mysql database using mysqldump command line. Using this method, you can backup and restore all information on the database, including the triggers and the stored procedures that you have on the database.

This command line has many parameters, but there are only some of them that we are interested. For example to backup database ialfdb, you use the command:

mysqldump ialfdb –u root –p --add-drop-table > ialfdb.sql

The above command instruct the system to export SQL statements from the database ialfdb, connecting using username root (-u root), with password that will be asked later (-p), add drop table statement for every table that will be recreated again (—add-drop-table), save the resulting SQL statement to a file named ialfdb.sql in the current directory ( > ialfdb.sql ).

If the system was failed to executed mysqldump program then try to run it using the full path (typing the program’s exact location), for example: c:\xampp\mysql\bin\mysqldump or c:\program files\mysql\bin\mysqldump.

You can specify the destination directory for SQL file for the output by typing the file with it’s full path, for example c:\data\ialfdb.sql.

When the command is executed, it will ask you for a password, that is the password for user specified by –u parameter (root).

Enter password:

Just type the user’s password. Depending to the size of the database, it will take a while to process your request. After the process is done, you will be back to the command prompt.

Below is a screen capture of the command line session. I used it on Windows operating system, but there will be no big different on other operating system.

image

 

To restore the database, you should use the command line mysql. Again we are only interested in a few of all the parameter that the program has. To restore our backup file above (ialfdb.sql), use the command line:

mysql ialfdb –u root –p < ialfdb.sql

The command line above tell the system to restore the SQL scripts on the file ialfdb.sql ( < ialfdb.sql ), using user root to connect to the database ( –u root ), with password that will be asked later.

If the system was failed to executed mysql program then try to run it using the full path (typing the program’s exact location), for example: c:\xampp\mysql\bin\mysql or c:\program files\mysql\bin\mysql.

You can specify the source directory of the SQL script file by typing the file with it’s full path, for example c:\data\ialfdb.sql.

When the command is executed, it will ask you for a password, that is the password for user specified by –u parameter (root).

Enter password:

Just type the user’s password. Depending to the size of the database, it will take a while to process your request. After the process is done, you will be back to the command prompt.

Below is a screen capture of the command line session. I used it on Windows operating system, but there will be no big different on other operating system.

image

Backup and Restore by Copying the Data Directory

You could also backup and restore MySQL database by copying the data directory from a server to other server. By default, MySQL data directory resides on the data directory below the server installation path, for example c:\program files\mysql\data or c:\xampp\mysql\data. There will be directories for your database, in our case is the ialfdb directory.

Simply copy the data directory from the source server to the destination server using Windows Explorer.

Location of database directory of MySQL database

The problem is when your database contains stored procedures and functions. You cannot simply the database directory, but you need also to copy the proc tables under the mysql directory. The files for that tables are: proc.myi, proc.myd, and proc.frm.

The proc table files

Of course, other stored procedure and function which are belong to (created at) other database will be copied also in the new database.

That’s all, hope this article is useful for you. Please leave me a comment if you have something to discuss.

Akhmad Daniel Sembiring
vITraining.com
Ligarwangi.com - toserba online

Selasa, 16 Juni 2009

Koneksi MS SQL Server dengan C-Sharp

Class C# untuk keperluan akses database SQL Server yang meliputi connection, command, dan adapter classes dapat dilihat pada tabel di bawah. Class tersebut didefinisikan pada namespace System.Data.SqlClient .

Table SQL Server Database Classes

Class   Description
SqlConnection   Koneksi fisik ke Database SQL Server
SqlDataCommand   Menjalankan perintah / command SQL pada database
SqlDataAdapter   Moves data between the DataSet and the physical Database using a connection and a command
SqlDataReader   Untuk meng-iterasi hasil yang dikeluarkan oleh suatu command

Pada SQL Server ketika diinstall terdapat database Northwind Trader. Contoh di bawah ini kita akan menggunakan database tersebut.

Pada contoh ini kita menggunakan command object secara langsung. Program memanggil methodExecuteReader object SqlCommand, yang return-nya adalah SqlReader object. Kemudian kita menggunakan SqlReader untuk membaca seluruh record yang dihasilkan.

Listing 15.3

// Example15_3.cs
using System;
using System.Data;
using System.Data.SqlClient;

namespace csbook.ch15 {

class Example15_3 {
static void Main(string[] args) {
// create an open the connection
SqlConnection conn =
new SqlConnection("Data Source=DESKTOP;"
+ "Initial Catalog=Northwind;"
+ "Persist Security Info=True;"
+ "User ID=jeff;Password=password");

conn.Open();

// create a SqlCommand object for this connection
SqlCommand command = conn.CreateCommand();
command.CommandText = "Select * from Customers";
command.CommandType = CommandType.Text;

// execute the command that returns a SqlDataReader
SqlDataReader reader = command.ExecuteReader();

// display the results
while (reader.Read()) {
string output = reader["CompanyName"].ToString();
Console.WriteLine(output);
}

// close the connection
reader.Close();
conn.Close();
}
}
}





Akhmad Daniel Sembiring


vITraining.com


Ligarwangi.com - toserba online

Function Membuat MD5 di C#

Kode C# dibawah ini berguna untuk membuat MD5 hash —string 32-character angka hexadecimal— dari sebuah string. Biasanya digunakan untuk menyimpan password di databases sebagai hash code. MD5 hash—yang didefinisikan pada RFC 1321:MD5 Message-Digest Algorithm—merupakan algoritma hash yang umum yang dapat digunakan dengan mudah di oleh programmer C# .
Untuk menggunakannya, cukup dipanggil sebagai berikut:

string md5hash = CreateMD5Hash
("abcdefghijklmnopqrstuvwxyz");




md5hash akan berisi string  "C3FCD3D76192E4007DFB496CCA67E13B".




using System;
using System.Security.Cryptography;
using System.Text;

public string CreateMD5Hash (string input)
{
// Use input string to calculate MD5 hash
MD5 md5 = System.Security.Cryptography.MD5.Create();
byte[] inputBytes = System.Text.Encoding.ASCII.GetBytes (input);
byte[] hashBytes = md5.ComputeHash (inputBytes);

// Convert the byte array to hexadecimal string
StringBuilder sb = new StringBuilder();
for (int i = 0; i < hashBytes.Length; i++)
{
sb.Append (hashBytes[i].ToString ("X2"));
// To force the hex string to lower-case letters instead of
// upper-case, use he following line instead:
// sb.Append(hashBytes[i].ToString("x2"));
}
return sb.ToString();
}



Akhmad Daniel Sembiring

vITraining.com


Ligarwangi.com - toserba online





Bagaimana Cara Setup PayPal Modul di Zen Cart (tm)

Instruksi Setup Account PayPal™

PADA PAYPAL™ WEBSITE

  1. Log in.
  2. Klik  Profile.
    Email Address Belum Di Konfirmasi
  3. Klik Email.
  4. Pastikan Email address yang digunakan di atas sudah Verified.Email Address Belum di Konfirmasi
    Email Address Sudah di Konfirmasi
  5. Catat primary email address (Utama) , perhatikan huruf besar dan huruf kecil nya UppErcAse LettERS (jika ada). Anda harus menggunakan email address yang betul-betul sama pada Zen Cart™  yang akan dijelaskan pada bagian berikutnya di bawah ini.
  6. Klik pada Back to Profile Summary.
  7. Klik pada Instant Payment Notification Preferences.Menu Konfigurasi IPN
  8. Klik Edit.
  9. Aktifkan (contreng pada kontak).
  10. Set URL ke: http://www.namatoko.com/ipn_main_handler.php. (URL selengkapnya dapat dilihat pada bagian Admin di informasi setting PayPal payment module.)Aktifasi IPN
  11. Klik Save.
  12. Klik pada Website Payment Preferences.Menu Website Payment Preference
  13. Aktifkan Auto Return for Website Payments .
    • Isikan Return URL (lihat URL yang betul pada Zen Cart admin ... bentuknya mirip seperti contoh): http://www.namatoko.com/index.php?main_page=checkout_process (untuk toko nonSSL ) atau
    • https://www.namatoko.com/index.php?main_page=checkout_process (untuk toko yang memiliki SSL Certificates sendiri) atau
    • https://namadomain.secureserver.net/namatoko/index.php?main_page=checkout_process (untuk toko yang memiliki shared SSL)
      Konfigurasi Website Payment Preference
  14. Setting-an lain pada halaman ini berdasarkan pada preferences acckunt yang anda miliki.  Lihat pada PayPal™ untuk lebih jelasnya.
    • Payment Data Transfer ... Jika anda menggunakan PDT, pastikan bahwa anda memiliki token yang sama pada Zen Cart dan PayPal.
    • Encrypted Website Payments ... non-aktifkan / OFF. Zen Cart belum support opsi ini.
    • PayPal™ Account Optional ... jika anda memperbolehkan pelanggan membayar dengan credit card tanpa membuat account PayPal™  terlebih dahulu, aktifkan / ON
  15. Klik Save.
  16. Jika toko anda berbahasa selain Western/European, klik Language Encoding dan tentukan bahasa yang digunakan pada toko.
  17. Non aktifkan semua setting tax dan shipping pada PayPal™ account. Hal ini akan menyebabkan jumlah transaksi tidak sama dengan jumlah pada Zen Cart™ , akibatnya pesanan tidak akan bisa dikeluarkan.

Zen Cart: mengganti Welcome Message

Kata HURUFBESAR menandakan folder atau bahasa yang anda pilih. Disini digunakan template CUSTOM dan bahasa ENGLISH. Istilah tersebut harap disesuaikan dengan template/language yang anda gunakan.


Untuk menghilangkan semua kata-kata “Welcome Guest!” Would you like to log yourself in?” non-aktifkan Customer Greeting pada Admin -> Configuration -> Layout settings -> Customer Greeting -> Show on Index Page dan set menjadi 0.

Untuk mengganti kata-kata tersebut editlah file includes/languages/ENGLISH/index.php pada baris-baris berikut ini:

if (STORE_STATUS == '0') {
define('TEXT_GREETING_GUEST', 'Welcome <span class="greetUser">Guest!</span> Would you like to <a href="%s">log yourself in</a>?');
} else {
define('TEXT_GREETING_GUEST', 'Welcome, please enjoy our online showcase.');
}
define('TEXT_GREETING_PERSONAL', 'Hello <span class="greetUser">%s</span>!');




Seperti terlihat, ada dua baris Welcome messages tergantung dari apakah anda ingin Zen Cart berfungsi sebagai toko-online seutuhnya atau hanya sebagai showroom.



Edit kata-kata yang dimulai dari “Welcome” tetapi hati-hati jangan sampai mengganti kata-kata yang ada di dalam kurung atau tanda kurung itu sendiri. Pastikan tanda petik satu nya tidak tertinggan. Jika ingin menampilkan tanda petik satu pada kata-kata tersebut, misalnya  “Lucy's Store”, anda perlu menambahkan escape character sebelum petik satu tersebut, misalnya  “Lucy\'s Store”.



Simpan file tersebut pada includes/languages/ENGLISH/CUSTOM/index.php dan upload ke server.





Akhmad Daniel Sembiring


vITraining.com


Ligarwangi.com - toserba online



Sumber: zen-cart tutorial

Mengakses INI File dengan C Sharp

Pendahuluan

Class C# di bawah ini berguna untuk mengakses file Ini yang memanfaatkan 2 functions dari KERNEL32.dll, yaitu : WritePrivateProfileString dan GetPrivateProfileString

Namespaces yang diperlukan System.Runtime.InteropServices dan System.Text

Class

using System;
using System.Runtime.InteropServices;
using System.Text;

namespace Ini
{
/// <summary>
/// Create a New INI file to store or load data
/// </summary>

public class IniFile
{
public string path;

[DllImport("kernel32")]
private static extern long WritePrivateProfileString(string section,
string key,string val,string filePath);
[DllImport("kernel32")]
private static extern int GetPrivateProfileString(string section,
string key,string def, StringBuilder retVal,
int size,string filePath);

/// <summary>
/// INIFile Constructor.
/// </summary>
/// <PARAM name="INIPath"></PARAM>

public IniFile(string INIPath)
{
path = INIPath;
}

/// <summary>
/// Write Data to the INI File
/// </summary>
/// <PARAM name="Section"></PARAM>
/// Section name
/// <PARAM name="Key"></PARAM>
/// Key Name
/// <PARAM name="Value"></PARAM>
/// Value Name

public void IniWriteValue(string Section,string Key,string Value)
{
WritePrivateProfileString(Section,Key,Value,this.path);
}

/// <summary>
/// Read Data Value From the Ini File
/// </summary>
/// <PARAM name="Section"></PARAM>
/// <PARAM name="Key"></PARAM>
/// <PARAM name="Path"></PARAM>
/// <returns></returns>

public string IniReadValue(string Section,string Key)
{
StringBuilder temp = new StringBuilder(255);
int i = GetPrivateProfileString(Section,Key,"",temp,
255, this.path);
return temp.ToString();

}
}
}


Menggunakan class



Langkah yang diperlukan untuk menggunakan class Ini:




  1. Pada definisi project namespace tambahkan:



    using Ini;



  2. Buat object berjenis INIFile seperti ini:




    INIFile ini = new INIFile("C:\\test.ini");



  3. Gunakan IniWriteValue untuk menulis nilai baru pada suatu key dalam sebuah section atau gunakan IniReadValue untuk membaca suatu value dari sebuah key dalam suatu Section.


  4. Misalnya isi dari test.ini adalah sbb:
    [database]
    conn=mssql



  5. Maka untuk membaca nilai dari key conn, dapat digunakan perintah sbb:
    string conn = ini.IniReadValue("database", "conn");




Akhmad Daniel Sembiring

vITraining.com


Ligarwangi.com - toserba online



 



Sumber: www.codeproject.com

Setup vITraining OMS Gateway

Tulisan ini menjelaskan bagaimana cara men-setup vITraining.com OMS Gateway, yang merupakan sistem yang dapat digunakan untuk mengirimkan SMS melalui MS Outlook 2007 melalui berbagai SMS service provider.

Persiapan

Berikut ini persyaratan yang diperlukan:

  1. IIS 6 running di Windows 2003
  2. Windows 2003 Service Pack 1
  3. SSL Certificate (bisa menggunakan Self Signed Certificate)
  4. IIS Resource Kit untk membuat Self Signed Certificate
  5. ASP.NET 3.5 Framework

Arsitektur

Berikut ini gambaran arsitektur sistem OMS.

MS Outlook 2007 yang telah disetting memiliki Account Outlook Mobile Service dapat mengirimkan SMS sama seperti ketika akan mengirim email. Pesan SMS tersebut dikirimkan melalui perantara OMS Gateway. Gateway ini akan melalukan routing (penentuan melalui channel mana SMS akan dikirimkan) tergantung dari prefix number. Sebagai contoh diatas, terdapat tiga channel : BulkSMS2u yang menggunakan HTTP API, serta dua channel model melalui serial/usb modem untuk model GSM dan CDMA.

Pengiriman SMS dapat dilakukan secara instan maupun dengan menggunakan scheduler untuk mengirimkan SMS secara terjadwal.

OMS Gateway juga menyediakan tampilan untuk reporting SMS (outbox) dan sent, halaman sign-up untuk pendaftaran user account baru, dan halaman user account management.

Membuat Self Signed Certificate

Self Signed Certificate diperlukan agar server IIS6 dapat menjalankan SSL (https) dan browser dapat mengakses server secara benar tanpa adanya warning bahwa sertificate server tidak benar. Namun setiap client yang akan mengakses server perlu melalukan import certificate server terlebih dahulu (akan dijelaskan lebih lanjut di bawah).

Untuk membuat Self Signed Certificate, kita perlu download dan install IIS Resource Kit dari Microsoft. Download URL nya dari sini http://www.microsoft.com/downloads/details.aspx?FamilyID=56FC92EE-A71A-4C73-B628-ADE629C89499&displaylang=en .

Setelah berhasil install, jalankan program SelfSSL dari menu Start - IIS Resources – SelfSSL.

Selanjutnya muncul window command prompt. Ketikkan perintah selfssl /n:cn=namaserver /k:1024 /v:356 /s:1 /p:443 seperti terlihat di gambar:

Flag yang perlu diperhatikan sbb:

/N:cn Common name certificate, gunakan nama komputer server windows2003
/k:1024 Ukuran panjang key certificate, gunakan 1024
/v:356 Validitas certificate, gunakan 356 hari supaya agak lama
/s:1 ID dari website yang ada di IIS, gunakan 1 untuk Default Site
/p:443 SSL port, gunakan 443

Mengaktifkan Port SSL pada IIS

Selanjutknya setup IIS6 supaya berjalan pada port SSL sehingga dapat diakses oleh browser dengan menggunakan https. Caranya dengan membuka IIS Manager. Right-click pada Default Website, dan isikan SSL Port: 443.

Untuk memastikan bahwa IIS sudah jalan pada port SSL 443, buka browser dan masukkan URL https://namaserver, misalnya sbb:

Perhatikan bahwa kita mendapatkan pesan error Certificate. Klik Continue to this website. Perhatikan lagi bawah address bar IE berwarna merah yang menandakan bahwa certificate server dianggap tidak valid oleh brwoser.

Klik pada box Certificate Error kemudian klik View Certificate, sehingga muncul informasi sbb:

Pastikan bahwa certificate tersebut adalah benar certificate server. Klik OK untuk menutup window.

Meng-export Server Certificate

Langkah selanjutnya kita perlu meng-export Certificate server agar dapat digunakan oleh browser sehingga browser menganggap bahwa certificate server adalah valid.

Dari IIS Manager, right-click Default Website, klik pada tab Directory Security, dan klik tombol Server Certificate…

Selanjutnya muncul kotak dialog, klik Next pada kotak dialog tersebut, sehingga muncul kotak dialog sbb:

Pilih Export the current certificate to a .pfx file dan klik Next. Selanjutnya muncuk kotak dialog sbb:

Pada Path and file name, isikan lokasi direktori tempat menyimpan file export certificate, misalnya C:\inetpub\wwwroot. Klik Next. Selanjutnya muncul kotak dialog sbb:

Isikan password Certificate dan klik Next.

Klik Next.

Klik Finish. File Certificate sudah bisa digunakan oleh browser untuk diimport.

Meng-import Certificate Server

Pada sisi komputer client , download atau copy terlebih dahulu file PFX certificate server hasil export di atas, dan simpan pada suatu direktori pada komputer client.

Jalankan CERTMGR.MSC dari menu Run.


Sehingga muncul program Certificate Manager sbb:

Arahkan pada Trusted Root Certification Authorities – Certificates – All Tasks – Import … untuk mengimport file certificate server. Selanjutnya muncul kotak dialog sbb, klik Next.

Selanjutnya klik tombol browse untuk menententukan lokasi file certificate server yang sudah di download atau dicopy dari server.

Pastikan pada saat Browse, jenis file yang dipilih adalah Personal Information Exchange (*.pfx, *.p12). Selanjutnya klik Next.

Masukkan password certificate yang sama dengan pada saat meng-export di server. Lalu klik Next.

Ini yang paling penting. Pada kotak dialog selanjutnya:

  1. Pilih pilihan "Place all certificates in the following store",
  2. Klik Browse.. untuk memilih lokasi store
  3. Klik "Show physical stores"
  4. Pilih Local Computer (anda harus login sebagai Administrator agar pilihan ini muncul)

Klik OK. Selanjutnya muncuk kotak konfirmasi sbb:

Klik Finish, sehingga muncul kotak dialog sbb:

Kembali ke window Certificates Manager, pastikan certificate server sudah berada pada tree "Trusted Root Certification Authorities – Certificates". Klik icon refresh pada toolbar jika diperlukan.

Jika semua sudah ok, anda boleh tutup window Certificates manager.

Kembali ke IE browser, masukkan lago alamat https://<namaserver> dan pastikan tidak ada lagi pesan error certificate. Tandanya address bar IE tidak lagi berwarna merah dan ada gambar gembok, tandanya certificate server dianggap sudah valid. Jika masih ada error tersebut, ulangi lagi langkah-langkah diatas, mulai dari proses export.

Install DOTNET 3.5 Framework

Langkah ini hanya perlu dilakukan jika server Windows 2003 anda belum ada Dotnet 3.5 Framework nya. Download dari URL http://www.microsoft.com/downloads/details.aspx?FamilyId=333325FD-AE52-4E35-B531-508D977D32A6&displaylang=en.

Untuk install DOTNET 3.5 Framework, anda perlu install DOTNET 2.0 Framework dan Windows 2003 SP1 terlebih dahulu. Berikut ini URL nya masing-masing:

Setup Aplikasi OMS di Server

Langkah selanjutnya, jika semua step diatas sudah sukses, adalah menginstall aplikasi web vITraining OMS Gateway.

Copy kan file-file aplikasi OMS Gateway pada suatu direktory, misalnya di "c:\inetpub\oms2". Anda boleh simpan file-file aplikasi web tersebut pada sembarang direktori, tidak mesti di bawah "c:\inetpub".

Dari Windows Explorer, klik kanan direktori "c:\inetpub\oms2\".

Langkah yang perlu dilakukan:

  1. Klik kanan pada direktori c:\inetpub\oms2\
  2. Klik tab Web Sharing, dan klik Share this folder
  3. Pastikan isian Alias adalah oms2, lalu klik OK

Buka IIS Manager.

  • Klik kanan pada Default Web Site.
  • Klik tab ASP.NET.
  • Pastikan pada pilihan ASP.NET version adalah 2.0.50727
  • Klik OK

Pastikan oms2 sudah ada di tree dibawah Default Website.

Kemudian:

  1. Klik kanan pada oms2.
  2. Klik pada tab Directory Security
  3. Klik Edit
  4. Klik pada Enable Anonymous Access
  5. Klik OK

Mantap. Sekarang saat nya testing apakah aplikasi OMS gateway sudah bisa jalan. Dari IE masukkan URL https://namaserver/oms2/Default.aspx. Tampilannya harus sbb:

Dari sini anda sudah bisa membuat account jika belum, atau login menggunakan account anda.

Setup Account OMS di Outlook 2007

Langkah terakhir adalah setup account OMS di MS Outlook 2007. Jalankan Outlook, klik menu Tools – Account Settings…

Selanjutnya muncul kotak dialog sbb:

Klik Next

Pada kotak dialog ini:

  1. Web service address: isikan /oms2/omsservice.asmx">https://<namaserver>/oms2/omsservice.asmx, misalnya https://vitraining2003/oms2/omsservice.asmx.
  2. Login information: User ID dan Password, isikan dengan user account anda pada OMS Gateway

Klik Test Account Setting… sampai muncul kotak dialog:

Kalau masih muncul pesan error, berarti masih ada yang salah dengan setting OMS Gateway. Cek lagi hal-hal berikut ini:

  1. HTTPS di server sudah berjalan dengan benar, kalau di test dari IE sudah tidak ada pesan error certificate.
  2. Koneksi ke OMS server tidak ada masalah
  3. Lihat di Event Viewer untuk informasi lebih detail penyebab masalah

Kalau sudah muncul pesan sukses seperti di atas, coba klik Yes untuk testing pengiriman SMS ke nomor HP yang digunakan pada saat registrasi account di OMS Gateway.

Kalau proses pengiriman SMS tidak ada masalah, maka muncul pesan dialog sbb:

Berarti secara aplikasi, OMS Gateway sudah tidak ada masalah. Tinggal menunggu SMS diterima di HP. Jika tidak/ belum diterima berarti masalah ada di channel pengiriman, apakah itu HTTP API atau modem serial/usb.

Klik OK pada Account Setting, selanjutnya muncul dialog sbb:

Restart Outlook. Jalankan lagi. Selanjutnya test pengiriman SMS melalui menu New – Text Message…

Lalu akan muncul kotak dialog untuk mengirim SMS sbb:

Cara pengiriman SMS melalui Outlook sama dengan cara pengirima email biasa. Isikan nomor HP tujuan pada kolom To:…., gunakan tanda titik koma untuk mengirim lebih dari satu nomor, ketikkan pesan SMS pada bagian body message, dan kita dapat langsung melihat preview pesan SMS pada bagian sebelah kiri.

Sama halnya dengan pengiriman email, nomor tujuan pengiriman SMS bisa juga diambil dari data Contacts dan Distribution List.

Arsip pengiriman SMS juga tersimpan pada folder Sent, sementara SMS yang masih menunggu pengiriman akan tersimpan pada folder Outbox.

Selesai..

Akhmad Daniel Sembiring
vITraining.com
Ligarwangi.com - toserba online

How to bypass WPA (Windows Activation) on Windows XP

Tested on Windows XP Professional SP2 and Windows Server 2003 R2.
First, click "Run..." on your start menu, type "regedit" and press enter.
The Registry Editor opens up, and you are presented with a long list of keys on the left.
Browse through the list to HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\WPAEvents.
On the right, you should see a stringz value named OOBETimer.
This is the activation stuff. If you change it, Windows will change it back within a few seconds.
Whatever its value is, change it to FF D5 71 D6 8B 6A 8D 6F D5 33 93 FD. Type the hex number on the editor and delete any remaining original values.
After you've changed it, right-click WPAEvents and choose "Permissions..."
A little window opens up with a list of user names. Click SYSTEM, and in the list below ("Permissions for SYSTEM") check every box under "Deny". Click OK to own windows. You don't even have to reboot lol.
If you're too slow windows might change it back, so just hit F5 to refresh and make sure it got saved.
If not, just try again.
The problem most of you are probably having is when you get to the "Permissions" section, so i expand on this tricky area.
Under "Permissions..." for WPAEvents, Go into the Advanced settings.
UNCHECK "Inhereit from parent the permission entries that apply to child objects. Include these with entries explicitly defined here"
When prompted what course of action to take from here, click "COPY"
From there, Highlight the SYSTEM line, and click edit.
Deny all options, apply, and run a free copy of windows.
Really works I Tried This.