在電腦上可執行,但無法在手機遊覽器上運作
直接丟碼
-->
index.php
<?
session_start();
if($_SESSION['login']!='t'){
header('Location: ./login.php');
}
?>
login.php
<?
session_start();
if($_SESSION['login']!='f'){
header('Location: ./');
}
?>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>請先登入-管理者頁面</title>
<!-- Bootstrap -->
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css" crossorigin="anonymous">
<style>
.container-d{
height: 100vh;
}
.row-d{
height: 100%;
}
</style>
</head>
<body>
<!-- body code goes here -->
<div class="container container-d ">
<div class="row align-items-center row-d ">
<div class="col-3"></div>
<div class="col-6">
<div class="card">
<div class="card-body">
<form method="post" action="login_auth.php">
<div class="form-group">
<label for="Password">密碼</label>
<input type="password" class="form-control" id="Password" name="Password" placeholder="密碼">
</div>
<button type="submit" class="btn btn-outline-primary">驗證</button>
</form>
</div>
</div>
</div>
<div class="col-3 "></div>
</div>
</div>
<!-- jQuery (necessary for Bootstrap's JavaScript plugins) -->
<script src="https://code.jquery.com/jquery-3.5.1.slim.min.js" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.1/dist/umd/popper.min.js" crossorigin="anonymous"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/js/bootstrap.min.js" crossorigin="anonymous"></script>
</body>
</html>
login_auth.php
<?
session_start();
if($_POST["Password"]=="000000"){
$_SESSION['login']='t';
header('Location: ./');
}else{
header('Location: ./login.php');
}
?>
你也不說不能運做的情況是什麼。
有先在pc上模擬手機版過嘛?
不能操作,什麼東西不能操作??不能動?白頁?沒作用??
手機有上網嘛??
顯示:重新導向過多
有...
沒有在模擬器上運作過
沒裝
你沒考慮到 $_SESSION['login']
還沒被設定任何值的情況
(它既不是 't'
也不是 'f'
)
我用的是 "!="吧
如果"登入狀態"不等於"t"--->導向至login.php
但是你從來沒設定過 $_SESSION['login']
是什麼阿。
就像「如果你不是女生,請去男廁」「如果你不是男生,請去女廁」但是今天有個連自己性別都不知道的,不就被踢來踢去?
login.php 可以改這樣
<?
session_start();
//如果已登入就回 index.php
if($_SESSION['login']=='t'){
header('Location: ./');
}
?>
喔,懂了,那為啥電腦可執行 ?
._.
我很好奇在電腦可以執行的原因,
如同淺水員大大說的,
當它不是t也不是f的時候,
就在兩個頁面之間踢來踢去...
試試
<?
session_start();
if($_SESSION['login']!='t'){
header('Location: ./login.php');
exit;
}
?>
(每一個header("location: 都要比照辦理)