|
|
|
เกี่ยวกับ session ฟอร์มแสดงข้อมูลสมาชิก index.php $regis_user = "login_ok"; // |
|
|
|
|
|
|
|
ผมมองว่า ทำไมไม่ทำเป็น post ล่ะครับ ถ้าส่งแบบ get มันโชว์ไอดี แล้วอีกประการทำไมไม่เก็บลง session เอาล่ะครับ แล้วเรียกใช้
เช่น login completed => $_SESSION['id'] = $_POST['id'];
แล้วเวลาเราจะเช็คที่หน้า show เราก้อทำการเช็คว่า
Code (PHP)
if(!isset($_SESSION['id'])){
echo'<script>window.location="login.php";</script>';
}
เท่าที่ผมเข้าใจแล้วก้อใช้อยู่อะครับ....แหะๆ ผมเข้าใจผิดปรพการใดชี้แจงด้วยน่ะครับ
|
|
|
|
|
Date :
2009-11-24 22:05:20 |
By :
chubichane |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ของ เรป2 เด้งทุกกรณี ทั้งล็อกอินและไม่ล็อกอินครับ
|
|
|
|
|
Date :
2009-11-24 22:21:45 |
By :
sawet50 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ผมอ่านแล้วงงอะ อธิบายใหม่ได้ไหม เอาโค๊ดหน้าล็อกอิน กับ show มาดูด้วย
|
|
|
|
|
Date :
2009-11-24 22:26:56 |
By :
plakrim |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ผมยังมองไม่เห็นภาพอ่ะ แหะๆ
|
|
|
|
|
Date :
2009-11-24 22:32:19 |
By :
chubichane |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
login.php
<form name="form1" method="post" action="" style="margin:0px;">
<table width="100%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td height="3" colspan="2"></td>
</tr>
<tr>
<td width="24%"><div align="center" class="styleA1">User: </div></td>
<td width="76%"><input name="user" type="text" id="user" style="width:115px" autocomplete="off"></td>
</tr>
<tr>
<td height="2" colspan="2"></td>
</tr>
<tr>
<td><div align="center" class="styleA1">Pass: </div></td>
<td><input name="pass" type="password" id="pass" style="width:115px" autocomplete="off"></td>
</tr>
<tr>
<td height="2" colspan="2"></td>
</tr>
<tr>
<td> </td>
<td><div align="left">
<input type="submit" name="Submit" value="ล็อกอิน">
<input type="reset" name="Submit2" value="ยกเลิก">
</div></td>
</tr>
</table>
</form>
<?
include "member/config.inc.php";
$sql = "select * from member where user = '$user' and pass = '$pass' ";
$result = mysql_db_query($dbname,$sql) or die ("ไม่สามารถสั่งให้ database ทำงานได้ในขณะนี้");
$NRow = mysql_num_rows($result);
if ($NRow <= 0)
{
echo "<br><br><br><br><center>คุณกรอก username และ password ไม่ถูกต้อง</center>";
}
else
{
session_start();
$regis_user = "login_ok";
session_register("regis_user");
$arr = mysql_fetch_row( $result );
print "$arr[1<br>"; <-------------------------- ชื่อเจ้าของที่ล็อกอินเข้าสู่ระบบ
<a href='../member/show.php?id=$arr[0]'>profile</a>
}
?>
-------------------------------------------------------
show.php
<?
session_start();
if(!session_is_registered("regis_user"))
{
?>
<script>
window.location="login.php"; <--------- ถ้ายังไม่ล็อกอินให้กลับไปหน้าล็อกอินทันที
</script>
<?
exit();
}
include "config.inc.php";
$db = mysql_connect($host,$username,$password) or die ('ไม่สามารถติดต่อ database ได้ในขณะนี้');
$id = $_GET[$id];
$sql = "select * from member where id = ".$_GET["id"];
$result = mysql_db_query($dbname,$sql) or die ('ไม่สามารถสั่งให้ database ทำงานได้ในขณะนี้');
$NRow = mysql_num_rows($result);
$arr = mysql_fetch_row( $result );
print "$arr[0]$arr[1]$arr[2]$arr[3]$arr[4]";
?>
----------------
ผลลัพธ์
- เราคลิกไปหน้า show.php โดยไม่ผ่านการล็อกอิน มันจะเด้งให้กลับหน้าล็อกอินทันที <--------ทำงานถูกต้อง
- ล็อกอินแล้ว เราคลิกต้องการดูโปรไฟล์ จะแสดงผล show.php (ไม่เด้งกลับหน้าล็อกอิน) <--------ทำงานถูกต้อง
สมมติโปรไฟล์เราอยู่ที่ id=8 สมมติเป็นลิงค์ http://www.xxxxxx.com/show.php?id=8
ถ้าเราเปลี่ยนเลขไอดี หลังจากล็อกอินแล้ว มันจะรันข้อมูลสมาชิกคนอื่นๆที่ไม่ใช่ข้อมูลเราแสดงให้เราดูด้วย
แค่เปลี่ยนเลขไอดีจาก เลข8 เป็นเลขอื่นๆ เช่น
http://www.xxxxxx.com/show.php?id=9
http://www.xxxxxx.com/show.php?id=12
http://www.xxxxxx.com/show.php?id=15 เป็นต้น
ต้องการให้ล็อกอินแล้วสามารถดูโปรไฟล์ได้เฉพาะของตัวเองครับ เปลี่ยนเลขไอดีก็ดูของคนอื่นไม่ได้ ขอบคุณครับ
|
|
|
|
|
Date :
2009-11-24 22:47:07 |
By :
sawet50 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
จะส่ง $_GET ไปทำไมละครับ ก็เก็บค่า id ที่ session ก็จบ
login.php
$arr = mysql_fetch_row( $result );
$regis_user = $arr[0];
session_register("regis_user");
<a href='../member/show.php?id=$arr[0]'>profile</a> //ส่ง $_GET หลอกไปก็ได้
show.php
if($_GET[id] != $_SESSION[regis_user]){ echo "อย่าทำตัวฉลาดไม่เข้าเรื่อง"; return; } //หลอกด่าไป ผมเคยลองแฮกเล่นกับเว็ปใหญ่ๆ มาโดนด่าประมาณนี้ 55+
$id = $_SESSION[regis_user];
|
|
|
|
|
Date :
2009-11-24 22:56:59 |
By :
xbeginner01 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Code (PHP)
<?
ob_start();
session_start();
?>
<form name="form1" method="post" action="" style="margin:0px;">
<table width="100%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td height="3" colspan="2"></td>
</tr>
<tr>
<td width="24%"><div align="center" class="styleA1">User: </div></td>
<td width="76%"><input name="user" type="text" id="user" style="width:115px" autocomplete="off"></td>
</tr>
<tr>
<td height="2" colspan="2"></td>
</tr>
<tr>
<td><div align="center" class="styleA1">Pass: </div></td>
<td><input name="pass" type="password" id="pass" style="width:115px" autocomplete="off"></td>
</tr>
<tr>
<td height="2" colspan="2"></td>
</tr>
<tr>
<td> </td>
<td><div align="left">
<input type="submit" name="Submit" value="ล็อกอิน">
<input type="reset" name="Submit2" value="ยกเลิก">
</div></td>
</tr>
</table>
</form>
include "member/config.inc.php";
$sql = "select * from member where user = '$user' and pass = '$pass' ";
$result = mysql_db_query($dbname,$sql) or die ("ไม่สามารถสั่งให้ database ทำงานได้ในขณะนี้");
$NRow = mysql_num_rows($result);
if ($NRow <= 0)
{
echo "<br><br><br><br><center>คุณกรอก username และ password ไม่ถูกต้อง</center>";
}
else
{
$arr = mysql_fetch_row( $result );
$_SESSION["regis_id"] = $arr[0]; // อันนี้ผมเดาว่าเป็น id
$_SESSION["regis_user"] = $arr[1];
print "$arr[1]<br>"; <-------------------------- ชื่อเจ้าของที่ล็อกอินเข้าสู่ระบบ
<a href='../member/show.php'>profile</a> // ตรงนี้ไม่ต้องส่ง id เก็บไว้ใน session แล้ว
}
Code (PHP)
<?
session_start();
if(!isset($_SESSION["regis_user"])
{
?>
<script>
window.location="login.php"; <--------- ถ้ายังไม่ล็อกอินให้กลับไปหน้าล็อกอินทันที
</script>
<?
exit();
}
include "config.inc.php";
$db = mysql_connect($host,$username,$password) or die ('ไม่สามารถติดต่อ database ได้ในขณะนี้');
$sql = "select * from member where id = ".$_SESSION["regis_id"];
mysql_query("SET NAMES UTF8");
mysql_query("SET character_set_results=utf8");
mysql_query("SET character_set_client=utf8");
mysql_query("SET character_set_connection=utf8");
$result = mysql_db_query($dbname,$sql) or die ('ไม่สามารถสั่งให้ database ทำงานได้ในขณะนี้');
$NRow = mysql_num_rows($result);
$arr = mysql_fetch_row( $result );
print "$arr[0]$arr[1]$arr[2]$arr[3]$arr[4]";
?>
|
|
|
|
|
Date :
2009-11-24 22:57:09 |
By :
plakrim |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
file login.php ตรงนี้อ่ะ
Code (PHP)
session_start();
$regis_user = "login_ok";
session_register("regis_user");
$arr = mysql_fetch_row( $result );
print "$arr[1<br>"; <-------------------------- ชื่อเจ้าของที่ล็อกอินเข้าสู่ระบบ
<a href='../member/show.php?id=$arr[0]'>profile</a>
เปลี่ยนเป็น อย่างนี้ได้ไหมครับ
Code (PHP)
session_start();
$regis_user = "login_ok";
session_register("regis_user");
$arr = mysql_fetch_row( $result );
print "$arr[1<br>"; <-------------------------- ชื่อเจ้าของที่ล็อกอินเข้าสู่ระบบ
$_SESSION['id'] = $arr[0];
<a href='../member/show.php'>profile</a>
พอกดลิ้งแล้วอีกหน้า ก้อเปลี่ยนเป็นแบบนี้อ่ะ
Code (PHP)
$sql = "select * from member where id = '$_SESSION[id]' ";
ผมเข้าใจถูกไหมครับ ใช้ session เอาแทนการส่งแบบ get
|
|
|
|
|
Date :
2009-11-24 22:57:49 |
By :
chubichane |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
มัวแต่พิมพ์ xbeginner01 ตอบไปแล้ว
|
|
|
|
|
Date :
2009-11-24 22:58:08 |
By :
plakrim |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
แหะๆ ตอบช้าไปหน่อย อิอิ
|
|
|
|
|
Date :
2009-11-24 22:59:07 |
By :
chubichane |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ดีจัง มีคนมาช่วยกันตอบอีกแล้ว
|
|
|
|
|
Date :
2009-11-24 23:01:28 |
By :
plakrim |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
อยากมาลองแชร์ความคิดดูว่าถูกไหม อิอิ อ่ะครับ พี่ PlaKrim แหะๆ
|
|
|
|
|
Date :
2009-11-24 23:03:07 |
By :
chubichane |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
โทษครับไม่ได้ตั้งใจ
แต่อยากให้เห็นว่าเว็ปใหญ่ๆ เข้าป้องกันหลายอย่างมากเลย โดยเฉพาะการพยายามแฮกแบบเด็กๆครับ ผลของการทำคือคำพูดที่สวยหรู
|
|
|
|
|
Date :
2009-11-24 23:07:35 |
By :
xbeginner01 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 04
|