我對 html、JS 和 php 很陌生。我創建了一個頁面,它只有一個帶有一些選項的側邊選單,并且有一些用戶登錄(在登錄階段我使用 php 和 mySQL 作為我在另一個檔案中的基礎):
<div id="mySidenav" class="sidenav">
<a href="javascript:void(0)" class="closebtn" onclick="closeNav()">×</a>
<a id="concerts"href="#">Concerts</a>
<a id="favorites"href="#">Favorites</a>
<a id="organizer"href="#">Orginizer</a>
<a id="admin"href="#">Administration</a>
</div>
<span style="font-size:30px;cursor:pointer" onclick="openNav()">☰ </span>
<script>
function openNav() {
document.getElementById("mySidenav").style.width = "250px";
}
function closeNav() {
document.getElementById("mySidenav").style.width = "0";
}
document.getElementById("concerts").onclick = function () {
location.href = "concerts.php";
};
我的問題是,我需要通過單擊選單中的“音樂會”選項來排除某些用戶,讓我們根據他們的姓名進行發言。我怎樣才能在 javascript 中做到這一點?
我想到了 php SESSION,但似乎沒有任何效果。
任何幫助都是有價值的,如果答案太明顯,我真的很抱歉。
uj5u.com熱心網友回復:
我稍微修改了你的原始代碼。我添加了一個 PHP 代碼來向您展示如何使用用戶名來確定用戶的注冊狀態。然后我修改了 JS 以向您展示如何獲取和使用注冊狀態來允許或拒絕訪問您的音樂會頁面。
考慮通過以下方式改進您的代碼: 1) 使用會話變數來保存用戶名。2)為注冊用戶查詢您的資料庫并將其填充到陣列中。3)與其使用名稱作為篩選標準,不如考慮使用他們的 id。
<?php
//session_start();
//$name = $_SESSION['name'];
// Create 2 variables $name and $registered_names
$name = 'Jane';
$registered_names = ['John', 'Rose', 'Steve', 'James', 'Jane'];
// Check if name of current user is among the array of registered names
$is_registered = is_int(array_search($name, $registered_names));
?>
<div id="mySidenav" class="sidenav">
<a href="javascript:void(0)" class="closebtn" onclick="closeNav()">×</a>
<a id="concerts" href="#">Concerts</a>
<a id="favorites" href="#">Favorites</a>
<a id="organizer" href="#">Orginizer</a>
<a id="admin" href="#">Administration</a>
</div>
<span style="font-size:30px;cursor:pointer" onclick="openNav()">☰ </span>
<!----------Attach the registration status to an hidden input field-------->
<input id="registration-status" type="hidden" value="<?php echo $is_registered ?>">
<script>
const
is_registered = document.getElementById('registration-status').value
function openNav() {
document.getElementById("mySidenav").style.width = "250px";
}
function closeNav() {
document.getElementById("mySidenav").style.width = "0";
}
document.getElementById("concerts").onclick = function() {
// Finally check the registration status before giving them access
if (is_registered) {
location.href = "concerts.php";
}
};
</script>
uj5u.com熱心網友回復:
使用客戶端(JS)來限制對資源的訪問是一種不好的做法。因為任何用戶都可以修改 JS 代碼并修改/繞過您的邏輯。
PHP session 是一件好事,可以驗證和管理前端用戶將訪問或不訪問的部分。
您可以使用session_start()php 檔案的頂部來檢查用戶是否已登錄。
[編輯] 要限制用戶訪問某些內容,您可以使用PHP 手冊之類的內容:
if ( isset( $_SESSION['user'] ) ) {
// restricted to login user
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/370097.html
標籤:javascript php html
上一篇:使用preg_split()在第一次出現特定數字時提取數字的一部分
下一篇:在woocommerce的單個產品頁面上使用wp_enqueue_script的Javascript和WordpressUncaughtSyntaxError
