0

私はいくつかのウェブサイトをデザインしています。複数のif(isset($ _ GET ['type'])=='page'){}などの関数を使用しようとしています。彼らは働いていないようです誰かが私を啓発することができますか?

<?php
    if(isset($_GET['type']) == 'all') {
    // View All Pages Title
    echo '<h3>View All Pages</h3>';

        if($control1 == 'all') {
            echo '<table width="100%" border="0">';
            echo '<tr>';
            echo '<th scope="col">Page Name</th>';
            echo '<th scope="col">Time Created</th>';
            echo '<th scope="col">View</th>';
            echo '<th scope="col">Edit</th>';
            echo '<th scope="col">Delete</th>';
            echo '</tr>';                 
            $qry=mysql_query("SELECT * FROM page", $con);
            if(!$qry) {
                die("Query Failed: ". mysql_error());
        }
        while($row=mysql_fetch_array($qry)) {
            echo '<tr>';
            echo '<td height="38">'.$row['page_title'].'</td>';
            echo '<td>'.$row['page_updated'].'</td>';
            echo '<td><a href="page.php?view=page&page='.$row['page_link'].'">View</a></td>';
            echo '<td><a href="page.php?edit='.$row['page_link'].'">Edit</td>';
            echo '<td><a href="page.php?delete='.$row['id'].'">Delete</td>';
            echo '</tr>';
        }     
        echo '</table>';
    }
    else {
        echo "<p>You can't view all the pages. Your Account does not hold the correct priorirty</p>";   
    }
}
elseif(isset($_GET['type']) == 'add') {
    // Add New Page Title
    echo '<h3>Add New Page</h3>';
        if($control1 == 'all') {
            echo '<p><a href="pages.php?type=add&add=control" target="new">Click Here to add a new page</a></p>';
    }
    else {
        echo "<p>You can't add new pages. Your Account does not hold the correct priority.</p>";
    }
}
elseif(isset($_GET['type']) == 'edit') {
    // Edit Pages Title
    echo '<h3>Edit a Page</h3>';
        if($control1 == 'all') {
            echo '<table width="100%" border="0">';
            echo '<tr>';
            echo '<th scope="col">Page Name</th>';
            echo '<th scope="col">Edit</th>';
            echo '</tr>';
            $qry=mysql_query("SELECT * FROM page", $con);
                if(!$qry) {
                    die("Query Failed: ". mysql_error());
            }
            while($row=mysql_fetch_array($qry)) {
                echo '<tr>';
                echo '<td height="38">'.$row['page_title'].'</td>';
                echo '<td><a href="page.php?edit='.$row['page_link'].'">Edit</td>';
                echo '</tr>';
            }
            echo '</table>';
        }
        else {
            echo "<p>You can't edit any pages. Your Account does not hold the correct priority </p>";
        }
    }
?>

これは正確なコードです。私がそれを修正するために何ができるかを説明していただければ幸いです。前もって感謝します!

4

5 に答える 5

2

isset($_GET['type'])ブール値を返すため、そのブール値を同じブール値 ( ) ではないものと比較すると、isset($_GET['type']) == 'all'false が返されます。

やったほうがいい

if ( isset($_GET['type']) && $_GET['type'] == 'all' ) { // code }
于 2013-02-23T20:34:01.487 に答える
0

こんなはずじゃ

if(isset($_GET['type']) && $_GET['type'] == 'page')
于 2013-02-23T20:34:01.393 に答える
0

issetブール値を返します: true または false。したがって、あなたのコード:

if(isset($_GET['type']) == 'page')

動作しません。次のように変更できます。

if(isset($_GET['type']) and $_GET['type'] == 'page')
于 2013-02-23T20:34:06.650 に答える
0

問題は、関数がorisset()のみを返し、それを文字列と比較していることです。そのように使用してください:TRUEFALSE

if (isset($_GET['type']) {
   if ($_GET['type'] == 'page') {
      //...
   } elseif($_GET['type'] == 'add') {
      //and so on...
   }
}

isset最初に testを置いて、すべてのifステートメントでチェックしないようにすることをお勧めします。

于 2013-02-23T20:36:03.013 に答える
0

私が見たように、 isset() は、「すべて」、「追加」などと比較しているブール値 (true/false) を返しています。それはあなたが望むものではありません。

あなたができる:

if (isset($_GET['type']) && $_GET['type'] == "all") {
    #your code here
}
于 2013-02-23T20:36:58.670 に答える