Jump to content
joeharie

Session Untuk Login Atau Sewaktu Dengannya

Recommended Posts

biasa nye dlm php.ini setting akan discard sumer session yg hang upon closing the browser. So server akan assume user dah logout...aku nyer masalah kat atas x settle lagi la amin007. Session aku mcm di 'unset' bila aku navigate ke page lain...FYI, aku pakai windows XP, php 4.4.4 configured with IIS

when you're using session trans sid ENABLED, and you perform redirect such as Header( "Location..." ), redirected client will SURELY loose his session.

to avoid this, you can use a modified version of redirect function, like this:

<?php

function Redirect302( $location )

{

$sname = session_name();

$sid = session_id();

if( strlen( $sid ) < 1 )

{

Header( $location );

return;

}

if( isset( $_COOKIE[ $sname ] ) || strpos( $location, $sname."=".$sid ) !== false )

{

Header( $location );

return;

}

else

{

if( strpos( $location, "?" ) > 0 )

$separator = "&";

else

$separator = "?";

$fixed = $location . $separator . $sname."=".$sid;

Header( $fixed );

return;

}

}

?>

expamle:

Redirect302( "Location: /YourPage/index.php" );

the function performs common redirect if no session is active, and appends session "name=sid" to query string when session is already started, like PHP parser does when outputting your page.

hope, you'll find it useful.

yours:)

ini aku jpe kat php official sites...sesapa leh tolong translate

Share this post


Link to post
Share on other sites

aku dah baca kat php.net pasal session ni

yang aku jumpa ialah

http://my2.php.net/manual/en/function.session-start.php

http://my2.php.net/manual/en/function.session-id.php

cade, kalau ko nak tahu, aku guna session ni untuk 2 aplikasi

1) nak login & kekalkan hingga logout

2) nak tahu sql selepas insert,update & delete

aku hanya daftar apa $_session[] yg aku nak,

lepas tu buat header('Location:link_papar.php?jadual=link&item=10')

ini kod sql

// hidupkan $_SESSION
$_SESSION['sql'] = $query;
$_SESSION['rekod'] = "Rekod Ditambah";
$_SESSION['jumlah'] = mysql_affected_rows();
header('Location:link_papar.php?jadual=link&item=10');
ni kod nak paparkan data dari database
<?
#####################
include "sesi.php"; #
#####################
?>
<html>
<head><title>View All [<?=$_GET[jadual];?>]</title></head>

<body>
<? 
echo "<fieldset><legend>SQL : ".$rekod.":".$jumlah."</legend>
<pre>SQL = {".$sql."}</pre></fieldset>\n";
$_SESSION['rekod'] = ""; $_SESSION['jumlah'] = "";

$myTable=$_GET[jadual];
if (!isset($_REQUEST['asing']) ) { 
$sql  = "SELECT * FROM ".$myTable." ORDER BY 1,3,4";}       
else {$sql = "SELECT * FROM ".$myTable." WHERE 
id_kategori_menu = '".$_REQUEST[id_kategori_menu]."' ";}

###############################
include "buka_db.php";// buka pangkalan data #
###############################
echo "<fieldset>";

################################
// ambil halaman semasa, jika tiada, cipta satu! #
if ( !isset($_REQUEST['page']) ){$page = 1;}
else {$page = $_REQUEST['page'];}                
################################

#--------Mula- query MySQL (LIMIT ".$dari_baris.", ".$baris_max.")
$baris_max = $_REQUEST['item']; // berapa item dalam satu halaman
$dari_baris = (($page * $baris_max) - $baris_max); 
// Tentukan had query berasaskan nombor halaman semasa.
$bil = $dari_baris+1; // nak tentukan berapa bilangan baris dlm satu muka suras

$query  = " ".$sql." LIMIT ".$dari_baris.", ".$baris_max." "; 

$result = @mysql_query($query) or die (mysql_error()."<hr>$query<hr>"); 
$fields = mysql_num_fields($result) or die("Num Fields Failed/ Nama Medan Takde");
$rows = mysql_num_rows($result);

// nak cari $rows
if ($rows=='0'): echo "<legend><font color=blue face=Wingdings size=5>L</font></legend>\n";
else: // mula kalau jumpa
    echo "<legend>Jadual :".$myTable."| Bil Brg=".$rows."\n</legend>\n";
    echo "<table border=1>\n";
    echo "<tr>\n";// dptkan nama medan
    echo "<td>Proses</td>\n";    $medan = mysql_field_name($result,0);
    for ( $f = 0; $f < $fields; $f++ )
    {  $name = mysql_field_name($result,$f); echo "<td>$f-".$name."</td>\n"; }
    echo "</tr>\n";
    
    while($row = mysql_fetch_array($result))
    {// mula papar imej
        echo ($bil++ % '2'=='0')? "<tr bgcolor='plum'>" : "<tr>";
        $medan2="jadual=$myTable&pilihan=$medan&carian=$row[0]";
        echo "<td bgcolor='skyblue'>".
        "\n<a href='link_ubah.php?$medan2'>U</a> | ".
        "\n<a href='link_buang.php?$medan2'>X</a>".
        "</td>\n";
        for ( $f = 0; $f < $fields; $f++ )
        {
        echo "<td>".$row[$f]."</td>\n";
        }
        echo "</tr>\n";
    }// tutup papar imej
    echo "</table>\n";
endif; //tamat jika jumpa
// tamat - cari $rows
#Tamat- query MySQL (LIMIT ".$dari_baris.", ".$baris_max.")

#Mula - Bina hyperlink untuk nombor halaman

$query  = " ".$sql." "; $result = mysql_query($query) or die (mysql_error()); 
$bil_semua  = mysql_num_rows ($result); // Tentukan bilangan baris di dalam DB:
$muka_surat = ceil($bil_semua / $baris_max);// Tentukan bilangan halaman. 
$senarai_medan="jadual=$myTable&item=$baris_max";
////////////////////////////////////////////////////////////////////////////////////////
echo "<div align=left>Jum Semua:($bil_semua). Pilih halaman <br>"; // Papar halaman
if($page > 1) // Bina halaman sebelum
{
$prev = ($page - 1); echo "\r<a href='?page=$prev&$senarai_medan'>Sebelum</a> |";
}
for($i = 1; $i <= $muka_surat; $i++) // Bina halaman terkini
{
if(($page) == $i){echo " ($i) |";}  else {echo "\r<a href='?page=$i&$senarai_medan'>$i</a>|";}
}

if($page < $muka_surat) // Bina halaman akhir
{
$next = ($page + 1); echo "\r<a href='?page=$next&$senarai_medan'>Lagi</a>";
}
echo "</div>\r";
////////////////////////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////////////////////////
echo "<a href='link_cari.php?jadual=$myTable'>Cari</a>";
echo "</fieldset>\r";$id=$bil_semua+1;
#Tamat - Bina hyperlink untuk nombor halaman
//---------------------------------------------------------------------
// Asing Ikut kategori_menu
echo "\r<form method='get' enctype='multipart/form-data' action='link_papar.php'>".
"\r<input type='hidden' value='$myTable' name='jadual'>".
"\r<input type='text' value='$baris_max' name='item'>".
"\r<select size='1' name='id_kategori_menu'>"; 

$query  = "SELECT id_kategori_menu, kategori_menu FROM ".$myTable."
GROUP BY 1 ORDER BY 1 ";

$result = mysql_query($query) or die (mysql_error()); 
$fields = mysql_num_fields($result) or die("Num Fields Failed/ Nama Medan Takde");
$rows  = mysql_num_rows($result);

// nak papar bil $rows
if ($rows=='0'): echo "\r<option>Data Belum Ada. :(</option>";
// kalau jumpa
else: 
 while($row = mysql_fetch_array($result))
 {echo "\r<option value='".$row[0]."'>".$row[0]."]".$row[1]."</option>";}
endif; //tamat jika jumpa
echo "\r</select>".
"\r<input type='submit' value='Asing' name='asing'>".
"\r</form>";
//---------------------------------------------------------------------

//---------------------------------------------------------------------
$query  = "SELECT kategori_menu, id_kategori_menu, count(*) as Jum FROM ".$myTable."
GROUP BY kategori_menu ORDER BY 2 ";

$result = mysql_query($query) or die (mysql_error()); 
$fields = mysql_num_fields($result) or die("Num Fields Failed/ Nama Medan Takde");
$rows  = mysql_num_rows($result);

// nak papar bil $rows
if ($rows=='0'): echo "\r<font color=white face=Wingdings size=5>L</font>";
// kalau jumpa
else: 
 echo "\r<hr><a href='link_tambah.php?jadual=$myTable&pilihan=$medan&id=$id'>Tambah Link</a> |<br>";
 while($row = mysql_fetch_array($result))
 { 
 echo "\r<a href='link_tambah.php?jadual=$myTable&pilihan=$medan&id=$id&menu=$row[0]&idmenu=$row[1]'>
 ".$row[1].")".$row[0]."</a>-".$row[2]." |<br>";
 }
endif; //tamat jika jumpa
//---------------------------------------------------------------------
?>
</body>
</html>

kalau ko orang perasan, aku tak guna session_start(); pun

aku letak kat dlm include "sesi.php";

kaedah yg sama juga aku guna untuk login juga.

ni contoh yg aku buat

https://amin007.org/penduduk/sirap/

kat sini, tiap2 fail aku letak include "sesi.php";

cuba ko orang masuk, username & password = user

ini ayat yg ko akan jumpa

Di bawah ini adalah link kepada sistem tersebut :

Peta Daerah Banci

Rangka BP

M3 - Penerangan Tentang Kawasan Peta Daerah Banci

L2A - Penyenaraian Tempat Kediaman (TK) Di Dalam Blok Penghitungan (BP)

L2B - Butir - butir Isi Rumah

SPDRB - Sistem Pangkalan Data Rangka Banci

kalau tak faham, .... :D tanya kat sini

setakat yg aku guna session jarang aku hilang data $_session[]

melainkan kalau masa dah tamat hehehe

jika guna kod yg aku pakai ni.

nak senang, ko paparkan nilai $_session[],

jadi ko akan tahu nilainya apa.

tapi kalau tiba2 hilang & masa ada lagi, tu .....

Edited by amin007

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

×
×
  • Create New...