ระบบ login ก่อนเข้าถึงไฟล์ ,กำหนดรหัสผ่าน2ชุดอย่างไร ให้แยกหน้าไป

เริ่มโดย Fallen, 23 เมษายน 2017, 22:45:31

หัวข้อก่อนหน้า - หัวข้อถัดไป

0 สมาชิก และ 1 ผู้มาเยือน กำลังดูหัวข้อนี้

Fallen

ผมทำระบบ login ก่อนเข้าใช้ถึงไฟล์

ไฟล์ lohin.php ผมกำหนดให้มีรหัส 2 ชุด เพื่อ redirect ไป หน้าที่ต้องการ page1.php หรือ page2.php
ไฟล์ page1.php กับ page2.php ใช้ ไฟล์ login.php อันเดียวกัน (โค๊ดด้านล่าง)

แต่เมื่อเข้ารหัสชุดใดชุดหนึ่งได้ กลับทำให้ เว็บอีกหน้า เข้าได้ด้วยซะงั้น (อยากให้มันใช้ได้กับรหัสชุดของมัน)
ต้องแก้อย่างไรครับ ในโค๊ด login.php ผมเขียนผิดตรงไหนเหรอครับ?

:wanwan001:


login.php

<?php
session_start
();

if (
$_POST[op] != "ds") {
$display_block "

..........
form login
..........

"
;

} else {
$adminuser "1";
$adminpass "1";
$redirectpage "page1.php";

$adminuser1 "2"
$adminpass1 "2"
$redirectpage1 "page2.php";


if ($_POST['username'] == "$adminuserAND $_POST['password'] == "$adminpass") {
$_SESSION[login] = "true";
$_SESSION[username] = "$adminuser";
header("Location: $redirectpage");
}
elseif ($_POST['username'] == "$adminuser1AND $_POST['password'] == "$adminpass1") {
$_SESSION[login] = "true";
$_SESSION[username] = "$adminuser1";
header("Location: $redirectpage1");


        
exit;
} else {
.
.
.
[direct=https://www.cymiz.com/]ประกันภัย[/direct]
[direct=https://www.cymiz.com/promotion/]ประกันรถยนต์ พรบ มอเตอร์ไซต์ ราคาสมาชิก[/direct]
[direct=http://cymiz.com/].[direct=http://vir9.com].[/direct][/direct]

zang11015

อ้างถึงจาก: Fallen ใน 23 เมษายน 2017, 22:45:31
ผมทำระบบ login ก่อนเข้าใช้ถึงไฟล์

ไฟล์ lohin.php ผมกำหนดให้มีรหัส 2 ชุด เพื่อ redirect ไป หน้าที่ต้องการ page1.php หรือ page2.php
ไฟล์ page1.php กับ page2.php ใช้ ไฟล์ login.php อันเดียวกัน (โค๊ดด้านล่าง)

แต่เมื่อเข้ารหัสชุดใดชุดหนึ่งได้ กลับทำให้ เว็บอีกหน้า เข้าได้ด้วยซะงั้น (อยากให้มันใช้ได้กับรหัสชุดของมัน)
ต้องแก้อย่างไรครับ ในโค๊ด login.php ผมเขียนผิดตรงไหนเหรอครับ?

:wanwan001:


login.php

<?php
session_start
();

if (
$_POST[op] != "ds") {
$display_block "

..........
form login
..........

"
;

} else {
$adminuser "1";
$adminpass "1";
$redirectpage "page1.php";

$adminuser1 "2"
$adminpass1 "2"
$redirectpage1 "page2.php";


if ($_POST['username'] == "$adminuserAND $_POST['password'] == "$adminpass") {
$_SESSION[login] = "true";
$_SESSION[username] = "$adminuser";
header("Location: $redirectpage");
}
elseif ($_POST['username'] == "$adminuser1AND $_POST['password'] == "$adminpass1") {
$_SESSION[login] = "true";
$_SESSION[username] = "$adminuser1";
header("Location: $redirectpage1");


        
exit;
} else {
.
.
.


ลองดูครับ

<?php
session_start
();

if (!
$_POST['op']) {
?>

<form name="form1" method="post">
  Login<br>
  <table border="1" style="width: 300px">
    <tbody>
      <tr>
        <td> &nbsp;Username</td>
        <td>
          <input name="username" type="text" id="txtUsername">
        </td>
      </tr>
      <tr>
        <td> &nbsp;Password</td>
        <td><input name="password" type="password" id="txtPassword">
        </td>
      </tr>
    </tbody>
  </table>
  <br>
  <input type="submit" name="op" value="Login">
</form>
<?

} else {
$adminuser = "1";
$adminpass = "1";
$redirectpage = "page1.php";

$adminuser1 = "2";
$adminpass1 = "2";
$redirectpage1 = "page2.php";


if ($_POST['username'] == "$adminuser" AND $_POST['password'] == "$adminpass") {
$_SESSION['login'] = "true";
$_SESSION['username'] = "$adminuser";
header( "Location: $redirectpage");
}else if($_POST['username'] == "$adminuser1" AND $_POST['password'] == "$adminpass1"){
$_SESSION['login'] = "true";
$_SESSION['username'] = "$adminuser1";
header("Location: $redirectpage1");
}

}
?>


Fallen

ลองแล้วเหมือนเดิม ครับ ถ้าlogin เข้า page1.php ได้ อีกอัน page2.php มันก็จะเข้าได้อัตโนมัติเลย แม้จะใช้ password คนละชุด

ผมเข้าใจว่าน่าจะเกิดจากการที่ ทั้ง 2 ไฟล์
ใช้ ไฟล์ login.php ร่วมกัน (เขียนไว้บนสุดของไฟล์)

ซึ่งเขียนไว้แบบนี้ครับ

<?php
session_start
();
// ถ้าไม่ได้ Login ให้ส่งไปหน้า URL login.php
if (!isset($_SESSION[login])) {
     
header("Location: login.php");
     exit;
}
?>


แต่ถ้าจะแก้ได้อาจจะต้องใช้ login1.php login2.php .....

แต่ไฟล์จะเยอะเต็มไปหมดเลย เพราะ 1 หน้า page ใช้ต่อ 1 login.php
จึงอยากจะเขียนให้มีแค่ไฟล์เดียวกัน อย่างที่เห็นแต่ก็ติดว่า มันจะทำให้ หน้าอื่นๆเข้าได้อัตโนมัติด้วย

ไม่รู้ว่าผมเข้าใจถูกไหม พอมีวิธีแก้ไหมครับ

ขอบคุณสำหรับน้ำใจ +
:P
[direct=https://www.cymiz.com/]ประกันภัย[/direct]
[direct=https://www.cymiz.com/promotion/]ประกันรถยนต์ พรบ มอเตอร์ไซต์ ราคาสมาชิก[/direct]
[direct=http://cymiz.com/].[direct=http://vir9.com].[/direct][/direct]

tanutsun

เป็นการกำหนด $_SESSION['page'] ได้ไหมครับ
เช่น
page1.php  ก็กำหนด $_SESSION['page'] = 'page1';
แล้วก็เช็คว่า มีสิทธิ์ เข้าหน้าเพจนี้ไหม

newnakab

หน้า Login

if ($_POST['username'] == "$adminuser" AND $_POST['password'] == "$adminpass") {
$_SESSION[login] = "true";
$_SESSION[username] = "$adminuser";
$_SESSION[userType] = "page1";  // <<<< เพิ่มตรงนี้
header("Location: $redirectpage");
}
elseif ($_POST['username'] == "$adminuser1" AND $_POST['password'] == "$adminpass1") {
$_SESSION[login] = "true";
$_SESSION[username] = "$adminuser1";
$_SESSION[userType] = "page2";  // <<<< เพิ่มตรงนี้
header("Location: $redirectpage1");
}


Page1

<?php
session_start
();

if (!isset(
$_SESSION[userType])) {
 if ( $_SESSION[userType] != 'page1' ) {
     
header("Location: login.php");
     exit;
 }
}
?>



Page2

<?php
session_start
();

if (!isset(
$_SESSION[userType])) {
 if ( $_SESSION[userType] != 'page2' ) {
     
header("Location: login.php");
     exit;
 }
}
?>



ลองดู

Arale1994


Fallen

อ้างถึงจาก: tanutsun ใน 24 เมษายน 2017, 14:28:36
เป็นการกำหนด $_SESSION['page'] ได้ไหมครับ
เช่น
page1.php  ก็กำหนด $_SESSION['page'] = 'page1';
แล้วก็เช็คว่า มีสิทธิ์ เข้าหน้าเพจนี้ไหม

ไม่ได้นะ
[direct=https://www.cymiz.com/]ประกันภัย[/direct]
[direct=https://www.cymiz.com/promotion/]ประกันรถยนต์ พรบ มอเตอร์ไซต์ ราคาสมาชิก[/direct]
[direct=http://cymiz.com/].[direct=http://vir9.com].[/direct][/direct]

Fallen

อ้างถึงจาก: newnakab ใน 24 เมษายน 2017, 14:38:45
หน้า Login

if ($_POST['username'] == "$adminuser" AND $_POST['password'] == "$adminpass") {
$_SESSION[login] = "true";
$_SESSION[username] = "$adminuser";
$_SESSION[userType] = "page1";  // <<<< เพิ่มตรงนี้
header("Location: $redirectpage");
}
elseif ($_POST['username'] == "$adminuser1" AND $_POST['password'] == "$adminpass1") {
$_SESSION[login] = "true";
$_SESSION[username] = "$adminuser1";
$_SESSION[userType] = "page2";  // <<<< เพิ่มตรงนี้
header("Location: $redirectpage1");
}


Page1

<?php
session_start
();

if (!isset(
$_SESSION[userType])) {
 if ( $_SESSION[userType] != 'page1' ) {
     
header("Location: login.php");
     exit;
 }
}
?>



Page2

<?php
session_start
();

if (!isset(
$_SESSION[userType])) {
 if ( $_SESSION[userType] != 'page2' ) {
     
header("Location: login.php");
     exit;
 }
}
?>



ลองดู

ลองแล้วไม่ได้นะ เป็นไปได้ไหม เพราะว่ามันใช้ login.php อันเดียวกัน จึงทำให้ ถ้าเข้าอันใดอันหนึ่งได้ อีกหน้าจะเข้าได้อัตโนมัติ เพราะมันผ่านเงื่อนไขของ login.php นั้นแล้ว
+ :P

ทำได้เเล้วครับ
แก้ให้ ชื่อ seesion ที่ส่งค่า ให้ตรงกับ ไฟล์ที่รับค่า

login.php
$_SESSION[login] = "true";

ตรงนี้ให้ตั้งเป็น

$_SESSION[login1] = "true";

$_SESSION[login2] = "true";


แล้วไฟล์ที่รับค่า page1 และ page2 ให้ตั้งชื่อตรงกัน

if (!isset($_SESSION[login1])) {

if (!isset($_SESSION[login2])) {


ขอบคุณสำหรับความมีน้ำใจครับ
:'(
[direct=https://www.cymiz.com/]ประกันภัย[/direct]
[direct=https://www.cymiz.com/promotion/]ประกันรถยนต์ พรบ มอเตอร์ไซต์ ราคาสมาชิก[/direct]
[direct=http://cymiz.com/].[direct=http://vir9.com].[/direct][/direct]

Fallen

อ้างถึงจาก: Fallen ใน 24 เมษายน 2017, 15:26:20
อ้างถึงจาก: tanutsun ใน 24 เมษายน 2017, 14:28:36
เป็นการกำหนด $_SESSION['page'] ได้ไหมครับ
เช่น
page1.php  ก็กำหนด $_SESSION['page'] = 'page1';
แล้วก็เช็คว่า มีสิทธิ์ เข้าหน้าเพจนี้ไหม

ไม่ได้นะ

ทำได้นะ แต่ต้องกำหนดในไฟล์ login.php ให้ตรงกับหน้าด้วย

เผอิญท่านบอกไม่หมด ผมเลยทำไม่ได้  เพราะไปแก้เฉพาะไฟล์ ที่รับค่า (อันที่จริงผมไม่เป็น php เลย)
ไปหาข้อมูลมาเพิ่ม มาอ่านย้อนหลัง ก็ว่าพบทำได้

+ให้นะคับ อิอิ

:P

[direct=https://www.cymiz.com/]ประกันภัย[/direct]
[direct=https://www.cymiz.com/promotion/]ประกันรถยนต์ พรบ มอเตอร์ไซต์ ราคาสมาชิก[/direct]
[direct=http://cymiz.com/].[direct=http://vir9.com].[/direct][/direct]