2

これが機能しない理由はわかりませんが、以下のコードで言いたいのは、ユーザーがログインしていないif ((!isset($username)) && (!isset($userid))){場合はフォームを表示し、ログインしている場合はログアウトする必要があることを示すメッセージを表示することですページを表示します。

問題は、ユーザーがログインしていても、メッセージではなくフォームが表示されることです。

以下はコードです:

        <?php
ini_set('display_errors',1); 
 error_reporting(E_ALL);
        session_start();

        include('member.php');

  $user = (isset($_POST['user'])) ? $_POST['user'] : '';
  $email = (isset($_POST['email'])) ? $_POST['email'] : '';

        if ((!isset($username)) && (!isset($userid))){

            echo "<form action='./forgotpass.php' method='post'>
            <table>
            <tr>
            <td></td>
            <td id='errormsg'>$errormsg</td>
            </tr>
            <tr>
            <td>Username</td>
            <td><input type='text' name='user' /></td>
            </tr>
            <tr>
            <td>Email</td>
            <td><input type='text' name='email' /></td>
            </tr>
            <tr>
            <td></td>
            <td><input type='submit' name='resetbtn' value='Reset Password' /></td>
            </tr>
            </table>
            </form>";

        }
        else
        {
        echo "Please Logout to view this Page.";    
        }
        ?>

上記のコードの上にmember.phpページを含めていますが、これが大きな違いを生むかどうかはわかりませんが、member.phpページのコードは次のとおりです。

<?php

if (isset($_SESSION['teacherforename'])) {

$_SESSION['teacherforename'] = $_SESSION['teacherforename'];

}

if (isset($_SESSION['teachersurname'])) {

$_SESSION['teachersurname'] = $_SESSION['teachersurname'];

}

if (isset($_SESSION['teacherid'])) {

      $userid = $_SESSION['teacherid'];

  }

if (isset($_SESSION['teacherusername'])) {

      $username = $_SESSION['teacherusername'];

  }

        ?>
4

3 に答える 3

1

あなたが試したこれをチェックしてください

<?php    
$user = (isset($_POST['user'])) ? $_POST['user'] : '';
  $email = (isset($_POST['email'])) ? $_POST['email'] : '';

        if ((!isset($username)) && (!isset($userid))){
       echo 'empty set';
}

上記は空のセットを出力します。これは、$user と $email が設定されていることを意味します

それを正しくするには、empty()

正しいもの

$user = (isset($_POST['user'])) ? $_POST['user'] : '';
  $email = (isset($_POST['email'])) ? $_POST['email'] : '';

        if ((!isset($username)) && !empty($username) &&  (!isset($userid) && !empty($email ))){
       echo 'empty set';
}
于 2012-10-09T18:03:02.737 に答える
1

設定されているかどうか、および値があるかどうかを確認します。

if ( (!isset($username) && empty($username)) && (!isset($userid) && empty($userid)) ){ 
于 2012-10-09T17:58:57.793 に答える
0
$user = (isset($_POST['user'])) ? $_POST['user'] : NULL;
$email = (isset($_POST['email'])) ? $_POST['email'] : NULL;

変数を '' に設定すると true が返されると思いますisset()

isset() Returns TRUE if var exists and has value other than NULL, FALSE otherwise.

于 2012-10-09T17:56:03.490 に答える