Есть баги ?

Discussion in 'Песочница' started by Adio, 1 Dec 2014.

  1. Adio

    Adio Elder - Старейшина

    Joined:
    23 May 2005
    Messages:
    1,646
    Likes Received:
    148
    Reputations:
    18
    INDEX.PHP
    PHP:
    <?php
    require_once('city.php'); // подключаем список с городами

    $action = isset($_REQUEST['action']) ? $_REQUEST['action'] : '';

    // возвращаем список городов
    if ($action == 'getCity')
    {
        if (isset(
    $city[$_GET['region']]))
        {
            echo 
    json_encode($city[$_GET['region']]); // возвраащем данные в JSON формате;
        
    }
        else
        {
            echo 
    json_encode(array('Выберите область'));
        }

        exit;
    }

    // выводим пришедшие данные
    if ($action == 'postResult')
    {
        echo 
    '<pre>' htmlspecialchars(print_r($_POSTtrue)) . '</pre>';
        exit;
    }
    ?>
    <!DOCTYPE html>
    <html>
    <head>
        <title>Зависимые списки</title>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
        <style>
            body {font-family:Verdana; font-size:12px;}
        </style>
        <script type="text/javascript">
        // <![CDATA[
            function loadCity(select)
            {
                var citySelect = $('select[name="city"]');
                citySelect.attr('disabled', 'disabled'); // делаем список городов не активным
                
                // послыаем AJAX запрос, который вернёт список городов для выбранной области
                $.getJSON('index.php', {action:'getCity', region:select.value}, function(cityList){
                    
                    citySelect.html(''); // очищаем список городов
                    
                    // заполняем список городов новыми пришедшими данными
                    $.each(cityList, function(i){
                        citySelect.append('<option value="' + i + '">' + this + '</option>');
                    });
                    
                    citySelect.removeAttr('disabled'); // делаем список городов активным
                    
                });
            }
        // ]]>
        </script>
    </head>
    <body>
        <form action="index.php" method="post">
            <select name="region" onchange="loadCity(this)">
                <option></option>
                
                <?php
                
    // заполняем список областей
                
    foreach ($city as $region => $cityList)
                {
                    echo 
    '<option value="' $region '">' $region '</option>' "\n";
                }
                
    ?>
                
            </select>
            
            <select name="city" disabled="disabled">
                <option>Выберите область</option>
            </select>

            <input type="hidden" name="action" value="postResult" />
            <input type="submit" value="отправить" />
        </form>
        
    </body>
    </html>

    CITY.PHP
    PHP:
    <?php

    $city 
    = array (
      
    'Москва и Московская обл.' => array (
        
    => 'Москва',
        
    => 'Абрамцево',
        
    => 'Алабино',
        
    => 'Апрелевка',
        
    => 'Архангельское',
        
    => 'Ашитково',
        
    => 'Байконур',
        
    => 'Бакшеево',
        
    => 'Балашиха',
      ),
    );

    ?>
     
    2 people like this.
  2. Ravenous

    Ravenous Elder - Старейшина

    Joined:
    14 Jul 2012
    Messages:
    116
    Likes Received:
    29
    Reputations:
    26
    Нету
     
  3. Adio

    Adio Elder - Старейшина

    Joined:
    23 May 2005
    Messages:
    1,646
    Likes Received:
    148
    Reputations:
    18
    Ну там xss, и т д, просто тут очадовцы более практичны в этих делах на глаз скажут есть или нету :)
     
  4. yarbabin

    yarbabin HACKIN YO KUT

    Joined:
    21 Nov 2007
    Messages:
    1,663
    Likes Received:
    916
    Reputations:
    363
    CSRF :)
     
    _________________________
    1 person likes this.
  5. Adio

    Adio Elder - Старейшина

    Joined:
    23 May 2005
    Messages:
    1,646
    Likes Received:
    148
    Reputations:
    18
    Защита?
     
  6. Ravenous

    Ravenous Elder - Старейшина

    Joined:
    14 Jul 2012
    Messages:
    116
    Likes Received:
    29
    Reputations:
    26
    Забей, хня


    p.s. htmlspecialchars защитает от XXS даже лучше чем огонь
     
  7. Adio

    Adio Elder - Старейшина

    Joined:
    23 May 2005
    Messages:
    1,646
    Likes Received:
    148
    Reputations:
    18
    Вопрос, как подставить значение региона, что бы при заходе к примеру отображалась сразу область ?

    Т.е не выбирать первый селект, а потом во втором выпадают регионы.
    А сразу в коде подставить ИМЯ ОБЛАСТИ что бы при заходе, сразу выпадали регионы.

    Есть тут знатока яваквериаяксаджейсона