首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Session if Session语句

Session if Session语句
EN

Stack Overflow用户
提问于 2016-07-18 14:41:05
回答 2查看 9.3K关注 0票数 3

我试图显示信息A如果登录为用户和信息B如果登录作为管理。这里的问题是,我只能执行第一个if statementelse statement,这意味着我能够登录。然而,它永远不会进入else if statement。有人能帮我吗,我不知道这里有什么问题。

代码语言:javascript
复制
<?php
$dbhost = "localhost";
$dbuser = "root";
$dbpassword = "";
$dbdatabase = "test";
$db = mysql_connect($dbhost, $dbuser, $dbpassword);
mysql_select_db($dbdatabase, $db);
?>

somewhere.php

代码语言:javascript
复制
<?php
if(!isset($_SESSION)){
    session_start();
}
include("configuration.php");
?>
<html>
<body>
<?php

    if (isset($_SESSION['SESS_EXIST']) == true && isset($_SESSION['SESS_TYPE']) == 'A' ){ ?>
            //this is the user html information form
        <?php } 
    else if (isset($_SESSION['SESS_EXIST']) == true && isset($_SESSION['SESS_TYPE1']) == 'B' ){ ?>
            //this is the admin html information form
    <?php } else { ?>
            //ask user/admin to login html form
            <form action ="login.php">
               <button type="submit" name="login" class="btn-primary">Sign Up</button>
            </form>
    <?php } ?>
</body>
</html>

login.php

代码语言:javascript
复制
<?php
session_start();
require("configuration.php");
if(isset($_SESSION['SESS_EXIST']) == TRUE) {
header("Location: somewhere.php");
die();
}
$email = $_POST['Email'];
$pass =  $_POST['Pass'];

$sql = "SELECT * FROM user WHERE Email='$email' and Pass ='$pass' " ;
$res = mysql_query($sql);
$rows = mysql_num_rows($res);

$sql1 = "SELECT * FROM admin WHERE Email='$email' and Pass ='$pass' " ;
$res1 = mysql_query($sql1);
$rows1 = mysql_num_rows($res1);

if($rows == 1)
{
$row = mysql_fetch_assoc($res);
$_SESSION['SESS_EMAIL'] = $row['Email'];
$_SESSION['SESS_NAME'] = $row['Name'];
$_SESSION['SESS_PASS'] = $row['Pass'];
$_SESSION['SESS_TYPE'] = 'A';
$_SESSION['SESS_LOGGED'] = 1;
header("Location: somewhere.php");
die();

}
else if($rows1 == 1)
{
$row1 = mysql_fetch_assoc($res1);
$_SESSION['SESS_EMAIL1'] = $row['Email'];
$_SESSION['SESS_NAME1'] = $row['Name'];
$_SESSION['SESS_PASS1'] = $row['Pass'];
$_SESSION['SESS_TYPE1'] = 'B';
$_SESSION['SESS_LOGGED'] = 1;
header("Location: somewhere.php");
die();
}
else {
echo '<script language = "javascript">';
echo 'alert("Fail login")';
echo '</script>';
echo "<script>window.location.assign('somewhere.php')</script>";
die();
}
?>
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-07-18 14:59:31

我想当你注销的时候你不会重设你的会话。试试这个:

Login.php

代码语言:javascript
复制
<?php
session_start();
require("configuration.php");
if(isset($_SESSION['SESS_EXIST']) == TRUE) {
header("Location: somewhere.php");
die();
}
session_unset();
$email = $_POST['Email'];
$pass =  $_POST['Pass'];

$sql = "SELECT * FROM user WHERE Email='$email' and Pass ='$pass' " ;
$res = mysql_query($sql);
$rows = mysql_num_rows($res);

$sql1 = "SELECT * FROM admin WHERE Email='$email' and Pass ='$pass' " ;
$res1 = mysql_query($sql1);
$rows1 = mysql_num_rows($res1);

if($rows == 1)
{
$row = mysql_fetch_assoc($res);
$_SESSION['SESS_EMAIL'] = $row['Email'];
$_SESSION['SESS_NAME'] = $row['Name'];
$_SESSION['SESS_PASS'] = $row['Pass'];
$_SESSION['SESS_TYPE'] = 'A';
$_SESSION['SESS_LOGGED'] = 1;
header("Location: somewhere.php");
die();

}
else if($rows1 == 1)
{
$row1 = mysql_fetch_assoc($res1);
$_SESSION['SESS_EMAIL1'] = $row['Email'];
$_SESSION['SESS_NAME1'] = $row['Name'];
$_SESSION['SESS_PASS1'] = $row['Pass'];
$_SESSION['SESS_TYPE1'] = 'B';
$_SESSION['SESS_LOGGED'] = 1;
header("Location: somewhere.php");
die();
}
else {
echo '<script language = "javascript">';
echo 'alert("Fail login")';
echo '</script>';
echo "<script>window.location.assign('somewhere.php')</script>";
die();
}
?>

您的If-语句也不正确。正如其他答案所述,应该是这样的:

somewhere.php编辑

代码语言:javascript
复制
<?php
if(!isset($_SESSION)){
    session_start();
}
include("configuration.php");
?>
<html>
    <body>
    <?php
    if(isset($_SESSION['SESS_EXIST'])){
        if ($_SESSION['SESS_EXIST'] == true && $_SESSION['SESS_TYPE'] == 'A' ){
            ?> //this is the user html information form <?php
        } 
        else if ($_SESSION['SESS_EXIST'] == true && $_SESSION['SESS_TYPE1'] == 'B' ){
            ?> //this is the admin html information form <?php
        }
    } else { ?> //ask user/admin to login html form
        <form action ="login.php">
            <button type="submit" name="login" class="btn-primary">Sign Up</button>
        </form>
    <?php
    }
    ?>
    </body>
</html>
票数 1
EN

Stack Overflow用户

发布于 2016-07-18 14:58:42

嗨,你的情况永远不会变成真的。

代码语言:javascript
复制
if (isset($_SESSION['SESS_TYPE']) && $_SESSION['SESS_TYPE'] == 'A') {
   // your   code here
}


  `isset` — Determine if a `variable` is set and is not `NULL`. `Returns` `TRUE` if var exists and has value other than NULL, FALSE otherwise. 
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38439575

复制
相关文章

相似问题

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