0

フレームを含む html に php を追加する際に問題があります。これが私のコードです。

    <?php
    session_start();
if (($_SESSION['accesslevel'] != "normal") ||($_SESSION['accesslevel'] != "admin" )) {
?>
    <meta http-equiv="refresh" content="0; url=./login.html">
    <?php}else {?>

<!DOCTYPE HTML>
<html lang="en">
<head>
<title>METU 3D Panaromic View</title>
<meta name="description" content="File Upload widget with multiple file selection, drag&amp;drop support, progress bar and preview images for jQuery. Supports cross-domain, chunked and resumable file uploads. Works with any server-side platform (Google App Engine, PHP, Python, Ruby on Rails, Java, etc.) that supports standard HTML form file uploads.">
<meta name="viewport" content="width=device-width">
<!-- Bootstrap CSS Toolkit styles -->
<link rel="stylesheet" href="http://blueimp.github.com/cdn/css/bootstrap.min.css">
<!-- Generic page styles -->
<link rel="stylesheet" href="upload/css/style.css">
<!-- Bootstrap styles for responsive website layout, supporting different screen sizes -->
<link rel="stylesheet" href="http://blueimp.github.com/cdn/css/bootstrap-responsive.min.css">
<!-- Bootstrap CSS fixes for IE6 -->
<!--[if lt IE 7]><link rel="stylesheet" href="http://blueimp.github.com/cdn/css/bootstrap-ie6.min.css"><![endif]-->
<!-- Bootstrap Image Gallery styles -->
<link rel="stylesheet" href="http://blueimp.github.com/Bootstrap-Image-Gallery/css/bootstrap-image-gallery.min.css">
<!-- CSS to style the file input field as button and adjust the Bootstrap progress bars -->
<link rel="stylesheet" href="upload/css/jquery.fileupload-ui.css">
<!-- Shim to make HTML5 elements usable in older Internet Explorer versions -->
<!--[if lt IE 9]><script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script><![endif]-->
    <frameset rows="40px,94%" BORDER=2 >
        <frame src="./normal_menu.html" noresize="noresize" scrolling="no" name="menu"/>
        <frameset cols="25%,75%" BORDER=2>
           <frame src="./map3.php?type=1" name="MAP" />
           <frame src="./view.html?fileName=findik.den.jpg" name="VIEW"/>
        </frameset>
    </frameset>
</head>
<body>
</body>
</html>
<?php}?>

PHP の場合は認識されないため、常に login.html にリダイレクトされます。フレームをあきらめずに処理するにはどうすればよいですか。

ありがとう。

4

4 に答える 4

1

HTMLタグの代わりにPHP関数を実際に使用する必要があります。header<meta>

header('Location:login.html');

現在行っている方法では、クライアントがアクセスしてはならないコンテンツをクライアントに送信してからリダイレクトするリスクがあります。

それとは別に、あなたの実際の問題はブール論理だと思います.ORではなくブールANDを使用する必要があるようです:

if (($_SESSION['accesslevel'] != "normal") && ($_SESSION['accesslevel'] != "admin" )) {
于 2012-05-04T22:48:46.050 に答える
1

ここでの条件は意味がありません:

if (($_SESSION['accesslevel'] != "normal") ||($_SESSION['accesslevel'] != "admin" )) {

これら 2 つの条件のいずれかが常にtrue$_SESSION['accesslevel']になります。つまり、常に「通常」と等しくないか、「管理者」と等しくないかのいずれかになります。(両方に等しくすることはできません。)

おそらく次のような意味です。

if (!($_SESSION['accesslevel'] == "normal" || $_SESSION['accesslevel'] != "admin")) {
于 2012-05-04T22:51:22.283 に答える
0

私はあなたのコードを試しました。配列 $_SESSION が空です! PHPマニュアル(session_startセクション)によると、「読み取りコールバックは、既存のセッションデータ(特別なシリアル化された形式で保存されている)を取得し、シリアル化されず、読み取りコールバックが保存されたセッションデータを返すときに $_SESSION スーパーグローバルを自動的に設定するために使用されます。 PHP セッション処理に。」そのため、以前のセッションが行われていない場合は、配列 $_SESSION が取り込まれず、それに対して行ったテストは有用な結果をもたらさないようです。

于 2012-05-04T23:19:57.867 に答える
-1
<?php
session_start();
if (isset($_SESSION['accesslevel']) && !(($_SESSION['accesslevel'] == "normal") || ($_SESSION['accesslevel'] == "admin" ))) {
?>
于 2012-05-04T22:54:14.463 に答える