Wrox Programmer Forums
Go Back   Wrox Programmer Forums > PHP/MySQL > BOOK: PHP and MySQL: Create-Modify-Reuse ISBN: 978-0-470-19242-9
|
BOOK: PHP and MySQL: Create-Modify-Reuse ISBN: 978-0-470-19242-9
This is the forum to discuss the Wrox book PHP and MySQL: Create-Modify-Reuse by Timothy Boronczyk, Martin E. Psinas; ISBN: 9780470192429
Welcome to the p2p.wrox.com Forums.

You are currently viewing the BOOK: PHP and MySQL: Create-Modify-Reuse ISBN: 978-0-470-19242-9 section of the Wrox Programmer to Programmer discussions. This is a community of software programmers and website developers including Wrox book authors and readers. New member registration was closed in 2019. New posts were shut off and the site was archived into this static format as of October 1, 2020. If you require technical support for a Wrox book please contact http://hub.wiley.com
 
Old April 19th, 2012, 09:41 AM
Authorized User
 
Join Date: Mar 2012
Posts: 10
Thanks: 0
Thanked 0 Times in 0 Posts
Default Chapter 1 & 2 - Issue with double digit option values...

Hi folks,

This isn't exactly in the book, but since I was extending the original code from this book to make an admin panel based on the user class from chapter one and two, I was hoping someone on here could help me out.

I modified the user class, since for the time being I wasn't planning on a forum (although that might change in the future), to create admins and the like as such:

PHP Code:
class User
{
    
// Permission levels.
    
const HELPER = 2;
    const 
MODERATOR = 4;
    const 
VICE_ADMIN = 8;
    const 
ADMIN = 16;
// etc...
?> 
Now my problem occurs on my admin panel. Whenever I try to make an admin (value = 16) it returns a value of 1. In fact I've tried the code I use on other things as well as experiments and anything in double digits or greater is returning 1 (might return other single digit numbers as well - I can test further if necessary). I originally had the options hardcoded into the selection box. I then tried making a MySQL table with the values to see if it was something I may have overlooked and the same result.

The code for the admin panel:
PHP Code:
<?php

// Include shared code.
include_once 'admin_header.php';


// Generate user information form.
$user = User::getById($_SESSION['user_id']);
if (
$user->permission & User::ADMIN)
{
    echo 
'<h3>Administrator Panel</h3>';
    
// User Permission Panel
    
ob_start();
    
?>
<div id="wrapper">
<div id="admin_user_panel">
    <form action="<?php echo htmlspecialchars($_SERVER['PHP_SELF']); ?>" method="post">
            <table>
                <caption style="text-align: left;">Manage User Rights</caption>
                    <tr>
                            <td><label for="username">Username:</label></td>
                            <td><select name="username" id="username"><?php
                                                    $query 
= sprintf('SELECT user_id, username FROM %suser ORDER BY username ASC', DB_TBL_PREFIX);
                                                    
$result = mysql_query($query, $GLOBALS['DB']);
                                                    echo 
'<option value="-1">Please Select a User</option>';
                                                    while (
$row = mysql_fetch_assoc($result))
                                                    {
                                                        echo (
'<option value="' . $row['user_id'] . '">' . $row['username'] . '</option>');
                                                    }
                                                    
?></select></td>
                    </tr>
                    <tr>
                            <td><label for="permissions">Permissions:</label></td>
                            <td><select name="permissions" id="permissions"><?php
                                                    $query 
= sprintf('SELECT permission, permission_description FROM %spermissions ORDER BY permission ASC', DB_TBL_PREFIX);
                                                    
$result = mysql_query($query, $GLOBALS['DB']);
                                                    echo 
'<option value="-1">Please Select Role</option>';
                                                    while (
$row = mysql_fetch_assoc($result))
                                                    {
                                                        echo (
'<option value="' . $row['permission'] . '">' . $row['permission_description'] . '</option>');
                                                    }
                                                    
?>                                    
                                </select></td>
                    </tr>
                    <tr>
                            <td> </td>
                            <td align="right"><input type="submit" value="Update"/></td>
                            <td><input type="hidden" name="submitted" value="1"/></td>
                    </tr>
                    <tr>
                    </tr>
            </table>
    </form>
    <form action="<?php echo htmlspecialchars($_SERVER['PHP_SELF']); ?>" method="post">
            <table>
                <caption style="text-align: left;">Ban User</caption>
                    <tr>
                            <td><label for="ban">Ban:</label></td>
                            <td><select name="ban" id="ban"><?php
                                                    $query 
= sprintf('SELECT user_id, username FROM %suser ORDER BY username ASC', DB_TBL_PREFIX);
                                                    
$result = mysql_query($query, $GLOBALS['DB']);
                                                    echo 
'<option value="-1">Please Select a User to Ban</option>';
                                                    while (
$row = mysql_fetch_assoc($result))
                                                    {
                                                        echo (
'<option value="' . $row['user_id'] . '">' . $row['username'] . '</option>');
                                                    }
                                                    
?></select></td>
                    </tr>
                    <tr>
                            <td> </td>
                            <td align="right"><input type="submit" value="Update"/></td>
                            <td><input type="hidden" name="submitted1" value="1"/></td>
                    </tr>
                    <tr>
                    </tr>
            </table>
    </form>
    <form action="<?php echo htmlspecialchars($_SERVER['PHP_SELF']); ?>" method="post">
            <table>
                <caption style="text-align: left;">Warn User</caption>
                    <tr>
                            <td><label for="warn">Warn:</label></td>
                            <td><select name="warn" id="warn"><?php
                                                    $query 
= sprintf('SELECT user_id, username FROM %suser ORDER BY username ASC', DB_TBL_PREFIX);
                                                    
$result = mysql_query($query, $GLOBALS['DB']);
                                                    echo 
'<option value="-1">Please Select a User to Warn</option>';
                                                    while (
$row = mysql_fetch_assoc($result))
                                                    {
                                                        echo (
'<option value="' . $row['user_id'] . '">' . $row['username'] . '</option>');
                                                    }
                                                    
?></select></td>
                    </tr>
                    <tr>
                            <td> </td>
                            <td align="right"><input type="submit" value="Update"/></td>
                            <td><input type="hidden" name="submitted2" value="1"/></td>
                    </tr>
                    <tr>
                    </tr>
            </table>
    </form>
</div>
<div id="admin_user_view">
    <table>
        <caption style="text-align: right;">Banned Users</caption>
            <tr>
            </tr>
                    <tr><td>User ID</td><td>Username</td></tr>            
                    <?php
                                            $query 
= sprintf('SELECT user_id, banned FROM %sbanned WHERE banned = %d', DB_TBL_PREFIX, 1);
                                            
$result = mysql_query($query, $GLOBALS['DB']);
                                            while (
$row = mysql_fetch_assoc($result))
                                            {
                                                echo 
'<tr><td>' . $row['user_id'] . '</td><td>';
                                                
$query1 = sprintf('SELECT username FROM %suser WHERE user_id = %d', DB_TBL_PREFIX, $row['user_id']);
                                                
$result1 = mysql_query($query1, $GLOBALS['DB']);
                                                
$row1 = mysql_fetch_assoc($result1);
                                                echo 
$row1['username'] . '</td></tr>';
                                            }
                                            
?>
            <tr>
            </tr>
    </table><br /><br />
    <table>
        <caption style="text-align: right;">Warned Users</caption>
            <tr>
            </tr>
                    <tr><td>User ID</td><td>Username</td></tr>            
                    <?php
                                            $query 
= sprintf('SELECT user_id, warned FROM %sbanned WHERE warned = %d', DB_TBL_PREFIX, 1);
                                            
$result = mysql_query($query, $GLOBALS['DB']);
                                            while (
$row = mysql_fetch_assoc($result))
                                            {
                                                echo 
'<tr><td>' . $row['user_id'] . '</td><td>';
                                                
$query1 = sprintf('SELECT username FROM %suser WHERE user_id = %d', DB_TBL_PREFIX, $row['user_id']);
                                                
$result1 = mysql_query($query1, $GLOBALS['DB']);
                                                
$row1 = mysql_fetch_assoc($result1);
                                                echo 
$row1['username'] . '</td></tr>';
                                            }
                                            
?>
            <tr>
            </tr>
    </table>
</div>
</div>
    <?php 
    $form 
= ob_get_clean();

    
// Show the form if this is the first time the page is viewed.
    
if (!isset($_POST['submitted']) && !isset($_POST['submitted1']) && !isset($_POST['submitted2']))
    {
            
$GLOBALS['TEMPLATE']['content'] = $form;
    }
    
// Otherwise process the incoming data.
    
else if (isset($_POST['submitted']))
    {
        
$user_id = $_POST['username']['user_id'];
        
$permission = $_POST['permissions']['permission'];
        
        
$query = sprintf("UPDATE %suser SET permission = %d WHERE user_id = '$user_id'", DB_TBL_PREFIX, $permission);
        
mysql_query($query, $GLOBALS['DB']);
        echo 
mysql_error();

        
$GLOBALS['TEMPLATE']['content'] = '<p><strong>The user\'s status has been modified successfully.</strong></p>';

    }
    else if (isset(
$_POST['submitted1']))
    {
        
$user_id = $_POST['ban']['user_id'];
        
        
$query = sprintf("INSERT INTO %sbanned (user_id, banned, warned) VALUES (%d, %d, %d)", DB_TBL_PREFIX, $user_id, 1, 0);
        
mysql_query($query, $GLOBALS['DB']);
        echo 
mysql_error();

        
$GLOBALS['TEMPLATE']['content'] = '<p><strong>The user\'s status has been modified successfully.</strong></p>';

    }
    else if (isset(
$_POST['submitted2']))
    {
        
$user_id = $_POST['warn']['user_id'];
        
        
$query = sprintf("INSERT INTO %sbanned (user_id, banned, warned) VALUES (%d, %d, %d)", DB_TBL_PREFIX, $user_id, 0, 1);
        
mysql_query($query, $GLOBALS['DB']);
        echo 
mysql_error();

        
$GLOBALS['TEMPLATE']['content'] = '<p><strong>The user\'s status has been modified successfully.</strong></p>';

    }
}
else
{
    
header('HTTP/1.0 401 Authorization Error');
    
ob_start();
    
?>
    <script type="text/javascript">
    window.seconds = 5;
    window.onload = function()
    {
        if (window.seconds != 0)
        {
            document.getElementById('secondsDisplay').innerHTML = '' + window.seconds + ' second' + ((window.seconds > 1) ? 's' : '');
            window.seconds--;
            setTimeout(window.onload, 1000);
        }
        else
        {
            window.location = '../index.php';
        }
    }
    </script>
    <?php
    $GLOBALS
['TEMPLATE']['extra_head'] = ob_get_contents();
    
ob_clean();
    
?>
    <p>The credentials you have supplied do not authorize you for access.</p>
    <p><strong>You will be redirected to the main page in <span id="secondsDisplay">5 seconds</span>.</strong></p>
    <p>If you are not automatically redirected there, please click on the following link: <a href="../index.php">Home</a></p>
    
    <?php
    $GLOBALS
['TEMPLATE']['content'] = ob_get_clean();
}



// Display the page
include 'templates/admin_template.php';
?>
Any help would be greatly appreciated
 
Old April 26th, 2012, 06:46 AM
Authorized User
 
Join Date: Mar 2012
Posts: 10
Thanks: 0
Thanked 0 Times in 0 Posts
Default

I've done some more testing, and it seems no matter what value I give the option field (be it numbers or letters) it always returns the first number or letter of the value...

I honestly am running out of ideas for testing this further... Some help would be greatly appreciated...
 
Old April 26th, 2012, 01:32 PM
Authorized User
 
Join Date: Mar 2012
Posts: 10
Thanks: 0
Thanked 0 Times in 0 Posts
Default [SOLVED] Chapter 1 & 2 - Issue with double digit option values...

Finally managed to solve the problem...

I changed:
PHP Code:
$user_id = $_POST['username']['user_id'];
        
$permission = $_POST['permissions']['permission']; 
to:
PHP Code:
$user_id = $_POST['username'];
        
$permission = $_POST['permissions']; 
and it seems to be taking double digit values so far...
If anyone can explain to me why removing what I did manages to solve this issue I would be most greatful!!





Similar Threads
Thread Thread Starter Forum Replies Last Post
Double display of html:select option cesarv JSP Basics 6 July 20th, 2009 05:49 AM
Double values andyetisay Java Basics 1 February 5th, 2008 12:15 AM
option values hastikeyvan Dreamweaver (all versions) 3 October 13th, 2005 01:19 AM
option values hastikeyvan Dreamweaver (all versions) 6 September 23rd, 2005 11:56 PM
Option Button & Macro jvanhalderen Excel VBA 2 November 28th, 2004 04:09 PM





Powered by vBulletin®
Copyright ©2000 - 2020, Jelsoft Enterprises Ltd.
Copyright (c) 2020 John Wiley & Sons, Inc.