Файл: vsime.com/polls/inc/poll_diary_new.php
Строк: 192
<?
    $title .= ' - Добавление опроса';
    ex_head();
    if(!isset($_SESSION["poll_diary_new_$diary[id]"]))
    {
        $_SESSION["poll_diary_new_$diary[id]"]=array();
        $_SESSION["poll_diary_new_$diary[id]"]['text']=NULL;
        $_SESSION["poll_diary_new_$diary[id]"]['vars']=array();
        $_SESSION["poll_diary_new_$diary[id]"]['vars'][]=NULL;
        $_SESSION["poll_diary_new_$diary[id]"]['vars'][]=NULL;
        $_SESSION["poll_diary_new_$diary[id]"]['multi']=0;
        $_SESSION["poll_diary_new_$diary[id]"]['polltime']='infin';
    }
    $poll_new=$_SESSION["poll_diary_new_$diary[id]"];
    // Counter of Variants
    $count_vars=count($_SESSION["poll_diary_new_$diary[id]"]['vars']);
    // Save New Poll
    if(isset($_POST['submited']) && isset($_POST['poll_text']) && $_POST['mdp']==$mdp)
    {
        $_SESSION["poll_diary_new_$diary[id]"]['text']=$_POST['poll_text'];
        if(isset($_POST['multi']) && $_POST['multi']==1)$_SESSION["poll_diary_new_$diary[id]"]['multi']=1;else $_SESSION["poll_diary_new_$diary[id]"]['multi']=0;
        if(in_array($_POST['polltime'],array('infin','day','3days','week','month','3months')))$_SESSION["poll_diary_new_$diary[id]"]['polltime']=$_POST['polltime'];
        $pros=0;
        $_SESSION["poll_diary_new_$diary[id]"]['vars']=array();
        $count_vars_not_null = 0;
        foreach ($_POST as $key => $value)
        {
            if (preg_match('#^vaRiant_([0-9]*)$#',$key,$kid))
            {
                $pros++;
                $_SESSION["poll_diary_new_$diary[id]"]['vars'][] = $value;
                if (strlen(trim($value)) > 0)$count_vars_not_null++;
                if($pros==100)break;
            }
        }
        if(strlen($_POST['poll_text'])<$min_size_poll)$error[]='Короткое описание опроса';
        if(strlen($_POST['poll_text'])>$max_size_poll)$error[]='Слишком длинное описание опроса';
        if($count_vars_not_null<2)$error[]='Вы не заполнили варианты ответов';
        if(!isset($error))
        {
            $poll_text=$_POST['poll_text'];
            $poll_timee=$_POST['polltime'];
            if(isset($_POST['multi']) && $_POST['multi']==1)$poll_check=1;else $poll_check=0;
            if($poll_timee=='day')$poll_time_add=3600*24; // опрос на один день
            elseif($poll_timee=='3days')$poll_time_add=3600*24*3; // опрос на три дня
            elseif($poll_timee=='week')$poll_time_add=3600*24*7; // опрос на одну неделю
            elseif($poll_timee=='month')$poll_time_add=3600*24*31; // опрос на месяц
            elseif($poll_timee=='3months')$poll_time_add=3600*24*31*3; // опрос на три месяца
            else $poll_time_add=3600*24*31*12*3; // опрос поумолчанию (трех лет для "бесконечности" думаю хватит)
            $poll_time=$time+$poll_time_add;
            $var_num = 0;
            foreach($_SESSION["poll_diary_new_$diary[id]"]['vars'] as $key => $value)
            {
                if (strlen(trim($value)) > 0)
                {
                    $var_num++;
                    mysqli_query($dbi, "INSERT INTO `diary_poll` (`id_diary`, `var`, `num`) VALUES ('$diary[id]', '".my_esc($value)."', '$var_num')");
                }
            }
            mysqli_query($dbi, "UPDATE `diary` SET `poll` = '1', `poll_text` = '".my_esc($poll_text)."', `poll_time` = '$poll_time', `poll_time_start` = '$time', `poll_timee` = '$poll_timee', `poll_check` = '$poll_check' WHERE `id` = '$diary[id]'");
            unset($_SESSION["poll_diary_new_$diary[id]"]);
            header("Location: /diary/?act=diary&id=$diary[id]");
            exit;
        }
    }
    // Add Variant
    if(isset($_POST['add_vaRiant']) && $count_vars<=9 && $_POST['mdp']==$mdp)
    {
        $_SESSION["poll_diary_new_$diary[id]"]['text']=$_POST['poll_text'];
        if(isset($_POST['multi']) && $_POST['multi']==1)$_SESSION["poll_diary_new_$diary[id]"]['multi']=1;else $_SESSION["poll_diary_new_$diary[id]"]['multi']=0;
        if(in_array($_POST['polltime'],array('infin','day','3days','week','month','3months')))$_SESSION["poll_diary_new_$diary[id]"]['polltime']=$_POST['polltime'];
        $_SESSION["poll_diary_new_$diary[id]"]['vars']=array();
        $pros=0;
        foreach ($_POST as $key => $value)
        {
            if (str_replace('vaRiant_','x',$key)!=$key)
            {
                $pros++;
                $_SESSION["poll_diary_new_$diary[id]"]['vars'][]=$value;
                if($pros==100)break;
            }
        }
        $_SESSION["poll_diary_new_$diary[id]"]['vars'][]=NULL;
    }
    // Delete Variant
    if(isset($_POST['delete_vaRiant']) && $count_vars>2 && $_POST['mdp']==$mdp)
    {
        $_SESSION["poll_diary_new_$diary[id]"]['text']=$_POST['poll_text'];
        if(in_array($_POST['polltime'],array('infin','day','3days','week','month','3months')))$_SESSION["poll_diary_new_$diary[id]"]['polltime']=$_POST['polltime'];
        if(isset($_POST['multi']) && $_POST['multi']==1)$_SESSION["poll_diary_new_$diary[id]"]['multi']=1;else $_SESSION["poll_diary_new_$diary[id]"]['multi']=0;
        $_SESSION["poll_diary_new_$diary[id]"]['vars']=array();
        $pros=0;
        $ncountv=count($poll_new['vars']);
        foreach ($_POST as $key => $value)
        {
            if (preg_match('#^vaRiant_([0-9]*)$#',$key,$kid))
            {
                $pros++;
                if($pros != $ncountv)$_SESSION["poll_diary_new_$diary[id]"]['vars'][] = $value;
            }
        }
    }
    show_errors();
    $poll_new=$_SESSION["poll_diary_new_$diary[id]"];
    show_errors();
    input_bbs('textarea', 1, array('fon' => 0, 'quote' => 0, 'url' => 0));
    echo "<form method='post' action='' class='multi'>n";
        echo "<div class='list'>n";
            echo "<input type='hidden' name='mdp' value='".$mdp."'>n";
            if(isset($_POST['poll_text']))$pt=$_POST['poll_text'];
            else $pt=$poll_new['text'];
            echo "Описание (".sklon_text($max_size_poll,array('знак','знака','знаков')).")</span><br/>n";
            echo "<textarea name='poll_text' id='textarea' rows='5' cols='17' style='width: 98%'>".input_value($pt)."</textarea><br />n";
        echo "</div>n";
        echo "<div class='list'>n";
            echo "Варианты ответов (10 вариантов)<br />n";
            $lp=0;
            foreach ($poll_new['vars'] as $key => $value)
            {
                $lp++;
                echo "<input type='text' style='width: 99%' name='vaRiant_$lp' value='".input_value($value)."'><br/>n";
            }
            echo "".($lp<=9?"<input style='width: ".($lp>2?50:100)."%; float: left; margin-bottom: 10px;' type='submit' name='add_vaRiant' value='Добавить' />":null)."".($lp>2?"<input style='width: ".($lp<=9?50:100)."%; float: left; margin-bottom: 10px;' type='submit' name='delete_vaRiant' value='Убрать' />":null)."n";
            echo "<div class='clear'></div>n";
        echo "</div>n";
        echo "<div class='list'>n";
            echo "Дата окончания через: n";
            echo "<select name='polltime'>n";
            echo "<option value='infin'".($poll_new['polltime']=='infin'?" selected='selected'":null).">Бессрочное</option>n";
            echo "<option value='day'".($poll_new['polltime']=='day'?" selected='selected'":null).">1 День</option>n";
            echo "<option value='3days'".($poll_new['polltime']=='3days'?" selected='selected'":null).">3 Дня</option>n";
            echo "<option value='week'".($poll_new['polltime']=='week'?" selected='selected'":null).">1 Неделю</option>n";
            echo "<option value='month'".($poll_new['polltime']=='month'?" selected='selected'":null).">1 Месяц</option>n";
            echo "<option value='3months'".($poll_new['polltime']=='3months'?" selected='selected'":null).">3 Месяца</option></select>n";
            echo "<div class='clear'></div>n";
        echo "</div>n";
        echo "<div class='list'>n";
            if(isset($_POST['multi']) && $_POST['multi']==1 || $poll_new['multi']==1)$multi=1;
            echo "<input type='checkbox' name='multi' id='multi_1' value='1'".(isset($multi)?" checked='checked'":null)."> <label for='multi_1'>Выбор нескольких вариантов</label>n";
        echo "</div>n";
        echo "<div class='list'>n";
            echo "<input type='submit' name='submited' style='width: 99%; float: left; margin-bottom: 10px;' value='Сохранить'>n";
            echo "<div class='clear'></div>n";
        echo "</div>n";
    echo "</form>n";
    echo "<div class='foot'>n";
        echo image_back()." <a href='/diary/?act=diary&id=$diary[id]'>Назад</a>n";
    echo "</div>";
    ex_foot();
?>