나는 관리자 또는 사용자 (고용주)로 로그인 할 수있는 로그인 시스템을 만들었습니다. 관리자로 로그인 한 경우 다음 페이지에서 새 고용주를 업데이트하거나 삭제하거나 만들 수 있으며 고용주로 로그인 한 경우 해당 옵션을 사용할 수 없습니다. 이것은 잘 작동하지만, 오늘 내가 관리자 권한으로 로그인하지 않고 메시지를 받았을 때 : 새로운 사용자를 만들 수 없습니다 (이것은 내가 다른 성명서에 올린 메시지입니다).관리자로 로그인 할 수 없습니다.
이것은 내 homepage.php 스크립트입니다. 어떤 도움이 필요합니까?
<?php
require_once("connection.php");
$user_id = $_SESSION['userid'];
$role = $_SESSION['role'];
$sql = "SELECT * FROM login";
$stmt = $conn->query($sql);
?>
<html>
<head>
<link rel="stylesheet" href="css/bootstrap.min.css">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
</head>
<body>
<nav class="navbar navbar-default">
<div class="navbar-header">
<a class="navbar-brand" href="#"><?php echo $role ?></a>
</div>
<div class="container">
<?php if($role == 'admin') { ?>
<a href="new_emp.php"><button type="button" class="btn btn-default navbar-btn">New Employee</button></a>
<?php } else { }?>
<a href="info.php"><button type="button" class="btn btn-default navbar-btn">Employee</button></a>
<a href="logout.php"><button type="button" class="btn btn-default navbar-btn">Sign Out</button></a>
</div>
</nav>
<div class="box">
<div class="col-sm-4 col-md-6 col-md-offset-2">
<table class="table table-hover table-striped table bordered" border="1">
<thead>
<tr>
<th style="width:250px">UserName</th>
<th style="width:250px">User Password</th>
<th style="width:250px">User Role</th>
<th>Action</th>
</tr>
</thead>
<tbody>
<?php foreach($stmt as $row){ ?>
<tr>
<td><?php echo $row['user_name'] ?></td>
<td>*******</td>
<td><?php echo $row['user_role'] ?></td>
<?php if($role == "admin"){ ?>
<td>
<form action="delete.php" name="deleteForm" method="post">
<input type="hidden" name="delete_id" value="<?php echo $row['user_id'] ?>"/>
<button type="submit" name="delete_user" class="btn btn-info">Delete</button>
</form>
</td>
<td>
<form action="update.php" name="updForm" method="post">
<input type="hidden" name="update_id" value="<?php echo $row['user_id'] ?>"/>
<button type="submit" name="update_user" class="btn btn-info">Update</button>
</form>
</td>
<?php } ?>
</tr>
<?php } ?>
<?php if($role == "admin"){ ?>
<form action="add_user.php" method="POST" name="add_user">
<tr>
<td><input type="text" name="username" class="form-control"/></td>
<td><input type="text" name="password" class="form-control"/></td>
<td>
<select name="select_role" class="form-control">
<option value="admin">Admin</option>
<option value="emp">Employee</option>
</selet>
</td>
<td>
<button type="submit" name="sub_user" class="btn btn-danger">Add User</button>
</td>
</tr>
<?php } else{ ?>
<tr>
You can't add a new user!
</tr>
<?php } ?>
</form>
</tbody>
</table>
</div>
</div>
</body>
</html>
'else' 문에있는 코드가 실행 중이면'if' 문에있는 조건이 분명히 거짓입니다. 디버깅은 무엇을 드러내셨습니까? – David
그래서'$ role'에는 실제로 무엇이 들어 있습니까? – arkascha
세션에서'$ role' 만 설정합니다. '$ _SESSION [ 'role']'이 잘못된 값을 포함하고 있다면, 우리는 어디서 어떻게 설정해야 하는지를 알아야합니다. 이것은 이미 잘못된 값이 포함 된 후에 사용하는 것입니다. –