CatatanKecilUntukKu

Life is Life For a Live in Allah

Fungsi Header Redirect

tinggalkan komentar »

Kepada pengelola situs, sekedar masukan, kenapa shortcut untuk masuk ke layanan webmail, direktori rootnya dibuka untuk umum…? alangkah lebih simpel silahkan untuk menggunakan script ini :
<?php
$host  = $_SERVER['HTTP_HOST'];
$uri   = rtrim(dirname($_SERVER['PHP_SELF']), ‘/\\’);
$extra = ‘webmail’;
header(“Location: http://$host$uri/$extra”);
exit;
?>

Deskripsi :

$host = $_SERVER['HTTP_HOST']; /*adalah redirect alamat host yang digunakan server*/

$uri =   rtrim(dirname($_SERVER['PHP_SELF']), ‘/\\’);/* adalah fungsi redirect ke direktori*/

$extra = ‘webmail’;/* adalah direktori kerja*/

header(“Location: http://$host$uri/$extra”); /* nah ini baru shortcut redirect alamat*/

exit; /*selesai perintah dikerjakan maka dihentikan */

atau lebih singkat lagi menjadi :
<?php
header(“Location: http://mail.dephut.go.id/webmail/”);
exit;
?>
Save as sebagai index.php dengan file sistem php, letakan di direktori kerja webmail yakni :
http://mail.dephut.go.id/
semoga membantu
Terima Kasih

Written by Wildan Thoyib

[September] [26] [2007] at [3:04 am]

Ditulis dalam Coding dan Programming

Prambanan

tinggalkan komentar »

Prambanan

Written by Wildan Thoyib

[Agustus] [21] [2007] at [7:31 am]

Ditulis dalam Hikmah

Fungsi Optimasi Dengan PHP

tinggalkan komentar »

Saya akan menuliskan sedikit tentang php hack, atau membuat celah dengan php, php adalah bahasa standar yang dibangun untuk web programming. beberap fungsi akan saya tulis dibawah yaitu :

  1. Fungsi Debugging variable :

function ss_array_as_string (&$array, $column = 0) {
$str = “Array(<BR>\n”;
while(list($var, $val) = each($array)){
for ($i = 0; $i < $column+1; $i++){
$str .= ” “;
}
$str .= $var.’ ==> ‘;
$str .= ss_as_string($val, $column+1).”<BR>\n”;
}
for ($i = 0; $i < $column; $i++){
$str .= ” “;
}
return $str.’)';

}

function ss_object_as_string (&$object, $column = 0) {
if (empty($object->classname)) {
return “$object”;

}
else {
$str = $object->classname.”(<BR>\n”;
while (list(,$var) = each($object->persistent_slots)) {
for ($i = 0; $i < $column; $i++){
$str .= ” “;
}
global $$var;
$str .= $var.’ ==> ‘;
$str .= ss_as_string($$var, column+1).”<BR>\n”;
}
for ($i = 0; $i < $column; $i++){
$str .= ” “;
}
return $str.’)';
}

}
function ss_as_string (&$thing, $column = 0) {
if (is_object($thing)) {
return ss_object_as_string($thing, $column);
}
elseif (is_array($thing)) {
return ss_array_as_string($thing, $column);
}
elseif (is_double($thing)) {
return “Double(“.$thing.”)”;
}
elseif (is_long($thing)) {
return “Long(“.$thing.”)”;
}
elseif (is_string($thing)) {
return “String(“.$thing.”)”;
}
else {
return “Unknown(“.$thing.”)”;
}
}

2. Fungsi Menciptakan Log :

$ss_log_level = 0;

$ss_log_filename = ‘/tmp/ss-log’;

$ss_log_levels = array(

NONE => 0,
ERROR => 1,
INFO => 2,
DEBUG => 3);

function ss_log_set_level ($level = ERROR) {
global $ss_log_level;
$ss_log_level = $level;

}

function ss_log ($level, $message) {
global $ss_log_level, $ss_log_filename;
if ($ss_log_levels[$ss_log_level] < $ss_log_levels[$level]) {// no logging to be done
return false;

}

$fd = fopen($ss_log_filename, “a+”);
fputs($fd, $level.’ – ['.ss_timestamp_pretty().'] – ‘.$message.”\n”);
fclose($fd);
return true;

}

function ss_log_reset () {

global $ss_log_filename;

@unlink($ss_log_filename);

}

Terdapat 4 log level yang dapat diambil. pesan log akan dimunculkan jika tingkatan pemasangan dari pemasangan sebelumnya.sehingga kita bisa mematikan log dengan perintah

ss_log_set_level(INFO);

Sekarang pesan log dari tingkatan ERROR atau INFO akan direkam, pesan DEBUGGING akan dilanjutkan, kita bsa memiliki pesan2 log seperti yang kita inginkan, yakni

ss_log(ERROR, “testing level ERROR”);

ss_log(INFO, “testing level INFO”);

ss_log(DEBUG, “testing level DEBUG”);

Sehingga dari keluaran log yang kita buat akan menghasilkan :

ERROR – [August 18, 2007 20:58:17] – testing level ERROR

INFO – [August 18, 2007 20:58:17] – testing level INFO

Untuk itu kita bisa mengosongkan kembali log yang kita buat dengan mereset ulang :

ss_log_reset();

3. Menciptakan Fungsi Optimasi :

function ss_timing_start ($name = ‘default’) {
global $ss_timing_start_times;
$ss_timing_start_times[$name] = explode(‘ ‘, microtime());

}

function ss_timing_stop ($name = ‘default’) {
global $ss_timing_stop_times;
$ss_timing_stop_times[$name] = explode(‘ ‘, microtime());

}

function ss_timing_current ($name = ‘default’) {
global $ss_timing_start_times, $ss_timing_stop_times;
if (!isset($ss_timing_start_times[$name])) {
return 0;
}

if (!isset($ss_timing_stop_times[$name])) {
$stop_time = explode(‘ ‘, microtime());

}

else {
$stop_time = $ss_timing_stop_times[$name];

}

// do the big numbers first so the small ones aren’t lost
$current = $stop_time[1] – $ss_timing_start_times[$name][1];
$current += $stop_time[0] – $ss_timing_start_times[$name][0];
return $current;

}

4.Debugging dan Fungsi menciptakan optimasi database :

function query($Query_String, $halt_on_error = 1) {
$this->connect();
ss_timing_start();
$this->Query_ID = @mysql_query($Query_String,$this->Link_ID);
ss_timing_stop();
ss_log(INFO, ss_timing_current().’ Secs – ‘.$Query_String);
$this->Row = 0;
$this->Errno = mysql_errno();
$this->Error = mysql_error();
if ($halt_on_error && !$this->Query_ID) {
$this->halt(“Invalid SQL: “.$Query_String);

}
return $this->Query_ID;

}

5. Menggunakan tag Inline dengan ECHO

<h2>Test Inline Tags vs echo</h2>

<p>

<?php ss_timing_start(‘echo’); ?>

<?php

for ($i=0; $i<1000; $i++) {
echo $i.”<br>”;

}

?>

<?php ss_timing_stop(‘echo’); ?>

<p>

<?php ss_timing_start(str); ?>

<?php

$str = ”;

for ($i=0; $i<1000; $i++) {
$str .= $i.”<br>”;

}

echo $str;

?>

<?php ss_timing_stop(str); ?>

<p>

<?php ss_timing_start(inline); ?>
<?php

for ($i=0; $i<1000; $i++) {

?>
123<br>
<?php
}
?>
<?php ss_timing_stop(inline); ?>
<p>
<br>
<h2>Results</h2>
echo – <?php echo ss_timing_current(‘echo’) ?>
<p>
str – <?php echo ss_timing_current(str) ?>
<p>
inline – <?php echo ss_timing_current(inline) ?>

6. Menciptakan Fungsi str_replace vs ereg_replace

<h2>Test str_replace vs ereg</h2>

<p>

<?php $string = ‘Testing with <i>emphasis</i>’; ?>

<?php ss_timing_start(’str_replace’); ?>

<?php

for ($i=0; $i<1000; $i++) {
str_replace(‘i>’, ‘b>’, $string).’<br>’;

}

?>

<?php ss_timing_stop(’str_replace’); ?>

<p>

<?php ss_timing_start(ereg); ?>

<?php

for ($i=0; $i<1000; $i++) {
ereg_replace(‘i>’, ‘b>’, $string).’<br>’;

}

?>

<?php ss_timing_stop(ereg); ?>

<p>

<?php ss_timing_start(ereg_pattern); ?>

<?php

for ($i=0; $i<1000; $i++) {
ereg_replace(‘<([/]*)i>’, ‘<\1b>’, $string).’<br>’;

}

?>

<?php ss_timing_stop(ereg_pattern); ?>

<p>

<br>

<h2>Results</h2>

str_replace – <?php echo ss_timing_current(str_replace) ?>

<p>

ereg – <?php echo ss_timing_current(ereg) ?>

<p>

ereg_pattern – <?php echo ss_timing_current(ereg_pattern) ?>

7. Fungsi Optimasi Query : Menggabungkan tabel

$db->query(“select * from doel”);

0.032273 secs

$db->next_record();

0.00048999999999999 secs

$db->query(“insert into doel values (NULL)”);

0.019506 secs

$db->query(“select * from doel as a, doel as b”);

17.280596 secs

$db->query(“select * from doel as a,doel as b where a.id > b.id”);

14.645251 secs

$db->query(“select * from doel as a, doel as b where a.id = b.id”);

0.041269 secs

$db->query(“select * from doellah”);

25.393672 sec

8. Memanggil Fungsi Method yang tersembunyi :

class A {
function A() { }
function A_dspTwo() {
echo “A: Two<br>”;

}

function dspTwo() {
return $this->A_dspTwo(); // Memanggil kelas method A dspTwo

}

}

class B extends A {
function B() {
$this->A(); // memanggil konstruktor induk.

}

function B_dspTwo() {
$this->A_dspTwo();
echo “B: Two<br>”;

}

function dspTwo() {
return $this->B_dspTwo();

}

}

$object = new B();

$object->dspTwo();

9. Menuntaskan masalah dengan tipe data :

<h2>Test String Integer Comparisons</h2>

<?php

$a = 1;

$b = ‘2′;

if ($a < $b) {

echo ss_as_string($a).’ < ‘.ss_as_string($b);

}

else {

echo ss_as_string($a).’ >= ‘.ss_as_string($b);

}

?>

<p>

<?php

$a = 2;

$b = ‘2′;

if ($a == $b) {
echo ss_as_string($a).’ == ‘.ss_as_string($b);

}

else {
echo ss_as_string($a).’ != ‘.ss_as_string($b);

}

?>

<p>

<?php

$a = array(2, ‘1′);

if ($a[0] > $a[1]) {
echo ss_as_string($a[0]).’ > ‘.ss_as_string($a[1]);

}

else {

echo ss_as_string($a[0]).’ <= ‘.ss_as_string($a[1]);

}

?>

<p>

<?

$a = array(‘2′, ‘1′);

echo ss_as_string($a).’<br>sorts to<br>’;

sort($a);

echo ss_as_string($a);

?>

<p>

<?

$a = array(2, 1);

echo ss_as_string($a).’<br>sorts to<br>’;

sort($a);

echo ss_as_string($a);

?>

<p>

<?

$a = array(‘2′, 1);

echo ss_as_string($a).’<br>sorts to<br>’;

sort($a);

echo ss_as_string($a);

?>

<p>

<?

$a = array(2, ‘1′);

echo ss_as_string($a).’<br>sorts to<br>’;

sort($a);

echo ss_as_string($a);

?>

Sehingga dapat disederhanakan :

Long(1) < String(2)

Long(2) == String(2)

Long(2) > String(1)

Array(
0 ==> String(2)
1 ==> String(1)
)
sorts to
Array(
0 ==> String(1)
1 ==> String(2)
)

Array(
0 ==> Long(2)
1 ==> Long(1)
)
sorts to
Array(
0 ==> Long(1)
1 ==> Long(2)
)

Array(
0 ==> String(2)
1 ==> Long(1)
)
sorts to
Array(
0 ==> Long(1)
1 ==> String(2)
)

Array(
0 ==> Long(2)
1 ==> String(1)
)
sorts to
Array(
0 ==> Long(2)
1 ==> String(1)

)

10. Fungsi Include dan Require :

Include :

if($something){

include(“somefile”);

}

Include dengan looping/pengulangan:

$i = 1;

while ($i < 3) {

include(“somefile.$i”);

$i++;

}

require dengan looping :

$i = 1;

while ($i < 3) {

require(“somefile.$i”);

$i++;

}

11. Fungsi Echo dan Print

Fungsi Echo :

echo expression [, expression[, expression] … ]

Fungsi Print :

$ret = print “Hello World”;

dan $ret akan 1

Written by Wildan Thoyib

[Agustus] [20] [2007] at [10:02 am]

Ditulis dalam Coding dan Programming