首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >PHP -当语句为true时隐藏元素

PHP -当语句为true时隐藏元素
EN

Stack Overflow用户
提问于 2018-06-21 01:15:20
回答 3查看 64关注 0票数 0

我有这段代码来隐藏元素,但是第一部分是隐藏的,第二部分总是显示出来,不管我是以用户还是管理员身份登录。我不明白那里出了什么问题。

我希望当我像用户登录时显示第一下拉内容,当我像管理员登录时显示第二下拉内容,但当我像用户或管理员登录时只显示第二下拉内容。

代码:

代码语言:javascript
复制
<?php
if($parola == $data['parola'] && $data['admin'] == '0'){?>
<div class="dropdown">
  <button class="dropbtn"><?php echo $_SESSION['mail']; ?></button>
  <div class="dropdown-content">
    <a href="adauga.php">Adauga anunt</a>
    <a href="anunturi.php">Anunturile mele</a>
    <a href="edit.php">Editeaza profil</a>
	<a href="logout.php">Delogeaza-te</a>
  </div>
</div>	
<?php } else { ?>		
<div class="dropdown">
  <button class="dropbtn"><?php echo $_SESSION['mail']; ?></button>
  <div class="dropdown-content">
    <a href="/admin/index.php">Control Panel</a>
	<a href="logout.php">Delogeaza-te</a>
  </div>
</div>	
<?php } ?>

用户、管理员和禁用用户的登录。

代码语言:javascript
复制
<?php
	require 'config.php';
	if(isset($_POST['login'])) {
		$errMsg = '';
		// Get data from FORM
		$mail = $_POST['mail'];
		$parola = $_POST['parola'];
		if($mail == '')
			$errMsg = 'Introduceti adresa de mail.';
		if($parola == '')
			$errMsg = 'Introduceti parola.';
		if($errMsg == '') {
			try {
				$stmt = $connect->prepare('SELECT mail, parola, admin, banned FROM acc_table WHERE mail = :mail');		
				$stmt->execute(array(
					':mail' => $mail
					));
				$data = $stmt->fetch(PDO::FETCH_ASSOC);
				if($data == false){
					$errMsg = "Contul asociat cu mail-ul $mail nu a fost gasit.";
				}
				else {
					if($parola == $data['parola'] and $data['admin'] == '1') {
						$_SESSION['mail'] = $data['mail'];
						$_SESSION['parola'] = $data['parola'];
						$_SESSION['admin'] = $data['admin'];
						header('Location: ../admin/index.php');
						exit;
					}
					else
						$errMsg = 'Parola nu este buna.';
				}
				
					if($parola == $data['parola'] and $data['banned'] == '1') {
						$_SESSION['mail'] = $data['mail'];
						$_SESSION['parola'] = $data['parola'];
						$_SESSION['banned'] = $data['banned'];
						header('Location: ban.html');
						exit;
					}
					else
						$errMsg = 'Parola nu este buna.';
					
					if($parola == $data['parola'] and $data['admin'] == '0') {
						$_SESSION['mail'] = $data['mail'];
						$_SESSION['parola'] = $data['parola'];
						$_SESSION['admin'] = $data['admin'];
						header('Location: profile.php');
						exit;
					}
					else
						$errMsg = 'Parola nu este buna.';
									
			}
			catch(PDOException $e) {
				$errMsg = $e->getMessage();
			}
		}
	}

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2018-06-21 14:31:07

我得到了我的问题的解决方案。

他没有使用头重定向,而是使用JavaScript。我使用以下命令强制用户停留在页面上:

代码语言:javascript
复制
<?php
	if(['admin'] == '1')?>
		<script>
		window.location = 'admin/index.php';
		</script>

感谢您为帮助我解决这个问题所做的贡献。

票数 0
EN

Stack Overflow用户

发布于 2018-06-21 02:13:28

尝试以下代码,看看这是否适用于您。

如果这不起作用,请让我知道你得到了什么错误。

代码语言:javascript
复制
<?php
require 'config.php';

if (isset($_POST['login'])) {

    $errMsg = '';
    // Get data from FORM
    $mail = $_POST['mail'];
    $parola = $_POST['parola'];
    if ($mail == '') {
        $errMsg = 'Introduceti adresa de mail.';
    } else if ($parola == '') {
        $errMsg = 'Introduceti parola.';
    } else {
        if ($errMsg == '') {
            try {
                $stmt = $connect->prepare("SELECT mail, parola, admin, banned FROM acc_table WHERE mail = :mail");
                $stmt->bindParam(':mail', $var_mail);
                $var_mail = $_POST['mail'];
                $stmt->execute();
                if ($data = $stmt->fetch()) {
                    if ($parola == $data['parola'] and $data['admin'] == '0') {
                        $_SESSION['mail'] = $data['mail'];
                        $_SESSION['parola'] = $data['parola'];
                        $_SESSION['admin'] = $data['admin'];
                        header('Location: profile.php');
                        exit;
                    } else if ($parola == $data['parola'] && $data['admin'] == '1') {
                        $_SESSION['mail'] = $data['mail'];
                        $_SESSION['parola'] = $data['parola'];
                        $_SESSION['admin'] = $data['admin'];
                        header('Location: ../admin/index.php');
                        exit;
                    } else if ($parola == $data['parola'] && $data['banned'] == '1') {
                        $_SESSION['mail'] = $data['mail'];
                        $_SESSION['parola'] = $data['parola'];
                        $_SESSION['banned'] = $data['banned'];
                        header('Location: ban.html');
                        exit;
                    } else {
                        $errMsg = 'Parola nu este buna.';
                    }
                } else {
                    $errMsg = "Contul asociat cu mail-ul ".$var_mail." nu a fost gasit.";
                }
            }
            catch(PDOException $e) {
                $errMsg = $e->getMessage();
            }
        }
    }
}
票数 0
EN

Stack Overflow用户

发布于 2018-06-21 08:41:37

将if条件如下:-

代码语言:javascript
复制
if($data['admin'] === '0'){
    //The rest code runs here
}

让我知道这是否有效。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50953711

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档