проблема с условием <? if(..): ?>

Тема в разделе "PHP", создана пользователем sunyang, 14 май 2011.

Модераторы: latteo
  1. sunyang

    sunyang

    Регистр.:
    25 апр 2009
    Сообщения:
    444
    Симпатии:
    30
    Хочу добавить страницу в админку, но где-то крупно косячу с условиями типа <? if(..:( ?>
    Добавляю страницу "голосования" (добавляю условие если часть url адреса = vote ($GET['p'] = vote) а сам адрес сайт.ру/?q=admin&p=vote) в самый верх кода где условия выборки страниц, но почему-то при переходе на вкладку "голосования" помимо содержимого этой вкладки еще добавляется ниже содержимое основной вкладки.

    вот код:

    PHP:
    <? if($p=='vote'): ?>
        
            <div class="toplink">
                <a href="?q=admin">Все пользователи</a> <a href="?q=admin&p=news">Новости</a> <b>Голосование</b></a>
            </div>
            
            <br>
            АДМИНКА ГОЛОСОВАНИЯ!<br>
            <? endif ?>

        
    <? if($p=='news'): ?>
        
            <div class="toplink">
                <a href="?q=admin">Все пользователи</a> <b> Новости </b><a href="?q=admin&p=vote">Голосование</a>
            </div>
            
            <br>
            
            <? if(isset($_GET['act']) && $_GET['act']=='add'): ?>
            
                <div><a href="?q=admin&p=news">Все новости</a> | <b>Добавить новость</b></div>
                
                <br>
                
                <? actNote() ?>
                
                <table cellspacing="0" cellpadding="2" border="0">
                <form method="post">
                <input type="hidden" name="submit" value="news">
                <input type="hidden" name="postid" value="insert">
                <tr>
                    <td align="right">* Тема:</td>
                    <td><input type="text" name="title" class="text"></td>
                </tr>
                <tr>
                    <td align="right">* Новость :</td>
                    <td><textarea style="width:400px; height:200px" name="texts"></textarea></td>
                </tr>
                <tr>
                    <td colspan=2 align="center">
                        <input type="submit" value="Отправить" class="button">
                        <input type="reset" value="Сброс" class="button">
                    </td>
                </tr>
                </form>
                </table>
            
            <? elseif(isset($_GET['act']) && $_GET['act']=='edit' && !empty($_GET['edit']) &&
                      is_numeric($_GET['edit']) && $getEdit = $sql->selectRow('SELECT * FROM ?_news WHERE id=?d', $_GET['edit'])): ?>
            
                <div><a href="?q=admin&p=news">Все новости</a> | <b>Редактировать новость</b></div>
                
                <br>
                
                <? actNote() ?>
                
                <table cellspacing="0" cellpadding="2" border="0">
                <form method="post">
                <input type="hidden" name="submit" value="news">
                <input type="hidden" name="postid" value="update">
                <input type="hidden" name="saveid" value="<?=$getEdit['id']?>">
                <tr>
                    <td align="right">* Тема:</td>
                    <td><input type="text" name="title" value="<?=$getEdit['title']?>"></td>
                </tr>
                <tr>
                    <td align="right">* Новость:</td>
                    <td><textarea style="width:400px; height:200px" name="texts"><?=$getEdit['message']?></textarea></td>
                </tr>
                <tr>
                    <td colspan=2 align="center">
                        <input type="submit" value="Редактировать" class="button">
                        <input type="button" value="Отменить" onClick="location.href='?q=admin&p=news&page=<?=$page?>'" class="button">
                    </td>
                </tr>
                </form>
                </table>
                    
            <? else: ?>
            
                <div><b>Все новости</b> | <a href="?q=admin&p=news&act=add">Добавить новость</a></div>
            
                <br>
            
                <? 
                 $limit  = 20;
                 $total  = $sql->selectCell('SELECT COUNT(*) FROM ?_news');
                 if($page>1){
                      $total_pages = ceil($total/$limit);
                    if($page>$total_pages) $page = $total_pages;
                 }
                 $from = $page * $limit - $limit;
                 $result = $sql->select('SELECT * FROM ?_news ORDER BY edate DESC LIMIT ?d, ?d', $from, $limit);
                 if($result): ?>
                
                <table cellspacing="0" cellpadding="5" border="0" width="100%">
                <? foreach($result as $k=>$v): ?>
                <tr><td><strong><?=$v['title']?></strong></td></tr>
                <tr><td><em><?=substr($v['edate'],0,-3)?></em></td></tr>
                <tr><td><?=$v['message']?></td></tr>
                <tr>
                    <td height="30" valign="top">
                        <a href="?q=admin&p=news&act=edit&edit=<?=$v['id']?>&page=<?=$page?>"><img src="images/edit.png" border="0"></a>
                        <a href="?q=admin&p=news&drop=<?=$v['id']?>&page=<?=$page?>" onclick="return window.confirm('Уыерены?')"><img src="images/drop.png" border="0"></a>
                    </td>
                </tr>
                <tr>
                    <td><hr size=1 noshade></td>
                </tr>
                <? endforeach ?>
                </table>
                
                <?=pages($page$limit$total"?q=admin&p=news&")?>
                
                <? endif ?>
            
            <? endif ?>
        
        <? elseif($p=='images' && !empty($_GET['id']) && is_numeric($_GET['id']) && $getUser = $sql->selectRow('SELECT * FROM ?_users WHERE id=?d', $_GET['id'])): ?>
            
        
            <div class="toplink">
                <b>Все пользователи</b> <a href="?q=admin&p=news">Новости</a> <a href="?q=admin&p=vote">Голосование</a>
            </div>
            
            <br>
            <a href="?q=admin">Назад</a>
            <br>
                
            <!-- base photos  -->
            
            <h3>Основные фотки</h3>
            
            <? if($basePhotos = $sql->select('SELECT * FROM ?_avatar WHERE user_id=?d', $_GET['id'])): $from = 0 ?>
            
            <table cellspacing="0" cellpadding="5">
            <? for($r=0; $r<100; $r++): ?>
            <tr>
                <? for($c=0; $c<5; $c++):
                    if($from<count($basePhotos)): 
                       $v = $basePhotos[$from] ?>
                <td width="140" height="140" align="center">
                    <? if($v['checked']==1): ?>
                        <img src="<?=$upload_phbase.$v['imgsrc']?>" style="border:2px solid #b22222" height="120">
                        <div style="margin-top:4px; text-align:center">
                            <a href="?q=admin&p=images&id=<?=$_GET['id']?>&drop=b_<?=$v['id']?>" onClick="return window.confirm('Уверены?')"><img src="images/drop.png" border="0"></a>
                        </div>
                    <? else: ?>
                        <img src="<?=$upload_phbase.$v['imgsrc']?>" height="120">
                        <div style="margin-top:4px; text-align:center">
                            <a href="?q=admin&p=images&id=<?=$_GET['id']?>&base=<?=$v['id']?>">Сдл. онов</a> |
                            <a href="?q=admin&p=images&id=<?=$_GET['id']?>&drop=b_<?=$v['id']?>" onClick="return window.confirm('Уверены')"><img src="images/drop.png" border="0"></a>
                        </div>
                    <? endif ?>
                </td>
                <?  endif; $from++; endfor; if($from>=count($basePhotos)) break ?>
            </tr>
            <? endfor ?>
            </table>
            
            <? else: ?>
            
            <br>
            
            <div align="center">У пользователья нет основного фото</div>
            
            <? endif ?>
            
            <!--/base photos  -->
            
            <hr size=1 noshade>
            
            <!-- all user photos -->
            <? if($getAlbums = $sql->select('SELECT * FROM ?_album WHERE user_id=?d', $_GET['id'])): ?>
                
                <h3>Альбомы пользователя (<?=count($getAlbums)?>)</h3> 
                        
                <? foreach($getAlbums as $k=>$v): ?>
                <h3 style="background:#eaeaea; padding:5px">
                    <?=$v['title']?>
                    (<?=$sql->selectCell('SELECT COUNT(*) FROM ?_image WHERE album_id=?d'$v['id'])?>)
                    <a href="?q=admin&p=images&id=<?=$_GET['id']?>&dropalbum=<?=$v['id']?>" onClick="return window.confirm('Уверены?')"><img src="images/drop.png" border="0"></a>
                </h3>
                
                <!-- album images -->
                <? if($getImages = $sql->select('SELECT * FROM ?_image WHERE album_id=?d', $v['id'])): $from = 0 ?>
                <table cellspacing="0" cellpadding="5">
                <? for($r=0; $r<100; $r++): ?>
                <tr>
                    <? for($c=0; $c<5; $c++):
                        if($from<count($getImages)): 
                           $v = $getImages[$from] ?>
                    <td>
                        <img src="<?=$upload_thumb.$v['imgsrc']?>" height="120"> 
                        <div style="margin-top:4px; text-align:center">
                            <a href="?q=admin&p=images&id=<?=$_GET['id']?>&drop=i_<?=$v['id']?>" onClick="return window.confirm('Уыерены?')"><img src="images/drop.png" border="0"></a>
                        </div>
                    </td>
                    <?  endif; $from++; endfor; if($from>=count($getImages)) break ?>
                </tr>
                <? endfor ?>
                </table>
                
                <? endif ?>
                <!-- /album images -->
                
                <? endforeach ?>
            
            <? else: ?>
            
                <br>
            
                <div align="center"> У пользователя нет ещё альбомов</div>
            <? endif ?>
            <!--/all user photos -->
        
        <? else: ?>
        
        <br>
        
            <div class="toplink">
                <b>Все пользователи</b> <a href="?q=admin&p=news">Новости</a> <a href="?q=admin&p=vote">Голосование</a>
            </div>
            
        <br>
        
            <? if(!empty($_GET['edit']) && is_numeric($_GET['edit']) && $getEdit = $sql->selectRow('SELECT * FROM ?_users WHERE id=?d', $_GET['edit'])): ?>
            
                <div style="font-weight:bold; font-size:14px; background-color:#CCCCCC;">Редактировать пользователья | <a href="?q=admin" class="some" style="font-size:14px">Отменить</a></div>
                
                <br>
        

    <table cellspacing="0" cellpadding="5" border="0">
                <form method="post">
                <input type="hidden" name="submit" value="update_profile">
                <input type="hidden" name="saveid" value="<?=$getEdit['id']?>">
                <tr>
                    <td class="name">Основное фото:</td>
                    <td>
                    <? if($geEditBasePhoto = $sql->selectCell('SELECT imgsrc FROM ?_avatar WHERE checked=1 AND user_id=?d', $getEdit['id'])): ?>
                    
                        <img src="<?=$upload_phbase.$geEditBasePhoto?>" height="120">
                    
                    <? endif ?>
                    </td>
                </tr>
                <tr>
                    <td class="name">E-mail:</td>
                    <td><?=$getEdit['email']?></td>
                </tr>
                <tr>
                    <td class="name">Login:</td>
                    <td><?=$getEdit['login']?></td>
                </tr>
                <tr>
                    <td class="name">Дата регистрации:</td>
                    <td><?=$getEdit['edate']?></td>
                </tr>
                <tr>
                    <td class="name">Последный визит</td>
                    <td><?=$getEdit['mdate']?></td>
                </tr>
                <tr bgcolor="#eaeaea">
                    <td class="name">Голосов:</td>
                    <td><input type="text" name="rating" value="<?=$getEdit['rating']?>"></td>
                </tr>
                <tr bgcolor="#fdf3ca">
                    <td class="name">Телефон:</td>
                    <td><input type="text" name="phone" value="<?=$getEdit['phone']?>"> <font color="#133c51">*телефон в формате 79000000000 (11 цифр без знака +)</font></td>
                </tr>
                <tr>
                    <td class="name">Имя:</td>
                    <td><input type="text" name="firstname" value="<?=$getEdit['firstname']?>"></td>
                </tr>
                <tr>
                    <td class="name">Фамилия:</td>
                    <td><input type="text" name="lastname" value="<?=$getEdit['lastname']?>"></td>
                </tr>
                <tr>
                    <td class="name">День рождения:</td>
                    <td>
                        <? $date_parse = explode('-', $getEdit['bdate']) ?>
                        <select name="b_date">
                        <? for($i=1; $i<=31; $i++): ?>
                        <? $slc = ($date_parse[2]==$i) ? ' selected' : '' ?>
                        <option value="<?=$i?>"<?=$slc?>><?=$i?></option>
                        <? endfor ?>
                        </select>
                        <select name="b_month">
                        <? foreach($months as $k=>$v): ?>
                        <? $slc = ($date_parse[1]==$i) ? ' selected' : '' ?>
                        <option value="<?=$k?>"<?=$slc?>><?=$v?></option>
                        <? endforeach ?>
                        </select>
                        <select name="b_year">
                        <? for($i=1950; $i<=1997; $i++): ?>
                        <? $slc = ($date_parse[0]==$i) ? ' selected' : '' ?>
                        <option value="<?=$i?>"<?=$slc?>><?=$i?></option>
                        <? endfor ?>
                        </select>
                    </td>
                </tr>
                <tr>
                    <td class="name">Love:</td>
                    <td>
                        <select name="slove">
                        <? foreach($slove as $k=>$v): ?>
                            <? if($getEdit['slove']==$k): ?>
                            <option value="<?=$k?>" selected><?=$v?>
                            <? else: ?>
                            <option value="<?=$k?>"><?=$v?>
                            <? endif ?>
                        <? endforeach ?>
                        </select>
                    </td>
               </tr>
               <tr>
                    <td class="name">ICQ:</td>
                    <td><input type="text" name="icq" value="<?=$getEdit['icq']?>"></td>
                </tr>
                <tr>
                    <td class="name">Увелечение хобби:</td>
                    <td><textarea style="width:350px; height:70px" name="hobbi"><?=$getEdit['hobbi']?></textarea></td>
                </tr>
                <tr>
                    <td class="name">Работа учеба:</td>
                    <td><textarea style="width:350px; height:70px" name="work"><?=$getEdit['work']?></textarea></td>
                </tr>
                <tr>
                    <td class="name">Любимая музыка:</td>
                    <td><textarea style="width:350px; height:70px" name="love_music"><?=$getEdit['love_music']?></textarea></td>
                </tr>
                <tr>
                    <td class="name">Любимые фильмы:</td>
                    <td><textarea style="width:350px; height:70px" name="love_movie"><?=$getEdit['love_movie']?></textarea></td>
                </tr>
                <tr>
                    <td class="name">Любимые книги:</td>
                    <td><textarea style="width:350px; height:70px" name="love_books"><?=$getEdit['love_books']?></textarea></td>
                </tr>
                <tr>
                    <td class="name">Любимый цвет</td>
                    <td><input type="text" name="love_color" size="50" value="<?=$getEdit['love_color']?>"></td>
                </tr>
                <tr>
                    <td class="name">Девиз:</td>
                    <td><textarea style="width:350px; height:70px" name="deviz"><?=$getEdit['deviz']?></textarea></td>
                </tr>
                <tr>
                    <td class="name">Обо мне:</td>
                  <td><textarea style="width:350px; height:70px" name="i_am"><?=$getEdit['i_am']?></textarea></td>
                </tr>
                <tr>
                    <td class="name">Моя мечта:</td>
                    <td><textarea style="width:350px; height:70px" name="my_dream"><?=$getEdit['my_dream']?></textarea></td>
                </tr>
                <tr>
                    <td class="name">Город:</td>
                    <td><input type="text" name="city" value="<?=$getEdit['city']?>"></td>
                </tr>
                <tr>
                    <td class="name">Область:</td>
                    <td><input type="text" name="district" value="<?=$getEdit['district']?>"></td>
                </tr>
                <tr>
                    <td class="name">Страна:</td>
                    <td><input type="text" name="country" value="<?=$getEdit['country']?>"></td>
                </tr>
                <tr>
                    <td colspan=2 align="right">
                        <input type="submit" value="Сохранить" class="button">
                        <input type="button" value="Отменить" onClick="location.href='?q=admin&page=<?=$page?>'" class="button">
                    </td>
                </tr>
                </form>
                </table>
            <br />
            <!--SEND MEssage-->     
    <?  
    $userid = $getEdit['id'];
    $result = mysql_query("SELECT * FROM `gs_usermsg` WHERE id='$userid'");
    $row = mysql_fetch_assoc($result);
    $theme = $row['title'];
    $message = $row['message'];
    $onoff = $row['onoff'];
    ?>
    <? if(intval($onoff)==1): ?>
            <div style=" width:300px; background-color:#FAEABE; font-weight:bolder">Текущее уведомление:</div>
    <div style="width:500px; background-color:#f5fbff; font-weight:bolder; border:#79bbef dashed 1px; padding:10px;">
            <strng>ТЕМА: </strong><font color="#996600"><?=$theme?></font><br /><br />
            <strong>Сообщение: </strong><br />
            <font color="#996600"><?=$message?></font>
    </div><br />
        <? elseif(intval($onoff)==2): ?>  
            <div style=" width:300px; background-color:#FAEABE; font-weight:bolder">Текущее уведомление:</div>
            <div style="width:300px; background-color:#f5fbff; font-weight:bolder; border:#79bbef dashed 1px; padding:10px;">
            <strng><font color="#996600">Для пользователя непрочитанных уведомлений нет</font><br />
            </div><br />
            <? endif ?>
    <form action="" method="post"> 
    <input type="hidden" name="nomsg" value="2">
    <input name=change type=submit value="отключить уведомление"> 
    </form>
    <?
    if(isset($_POST['nomsg']))
            {
            $sql_no = mysql_query("UPDATE `gs_usermsg` SET `onoff` = '2' WHERE `gs_usermsg`.`id` ='$userid' LIMIT 1");
            header("Location: ?q=admin&page=1&edit=$userid");
            }
             ?>
         <br  />
    <div style=" width:500px; background-color:#FAEABE; font-weight:bolder">Уведомление для пользователя:</div><br  />
            
            <?
            function replacer ($text) { // ФУНКЦИЯ очистки кода
    $text=str_replace(" ",' ',$text);
    $text=str_replace(">",'&gt;',$text);
    $text=str_replace("<",'&lt;',$text);
    $text=str_replace("\"",'&quot;',$text);
    $text=preg_replace("/\n\n/",'<p>',$text);
    $text=preg_replace("/\n/",'<br>',$text);
    $text=preg_replace("/\\\$/",'$',$text);
    $text=preg_replace("/\r/",'',$text);
    $text=preg_replace("/\\\/",'\',$text);
    $text=str_replace("\r\n","<br> ",$text);
    $text=str_replace("\n\n",'<p>',$text);
    $text=str_replace("\n",'<br> ',$text);
    $text=str_replace("\t",'',$text);
    $text=str_replace("\r",'',$text);
    $text=str_replace('   ',' ',$text);
    do {$text=str_replace("<br><br><br>","<br>",$text);} while (preg_match("/<br><br><br><br>/i",$text));
    do {$text=str_replace("   "," ",$text);} while (preg_match("/   /i",$text));
    $text=str_replace("\t",' ',$text);
    $text=str_replace("\r",' ',$text);
    $text=str_replace('   ',' ',$text);
    $text=rtrim($text);
    return $text; }
            
            
            if(isset($_POST['submit']) && $_POST['submit']=='send_msg')
    {
    $msg_title  = replacer($_POST['theme']);
    $msg        = replacer($_POST['msg']);

                    if($sql = mysql_query("UPDATE `gs_usermsg` SET `title` = '$msg_title',
    `message` = '$msg ' WHERE `gs_usermsg`.`id` ='$userid' LIMIT 1 ") && mysql_query("UPDATE `gs_usermsg` SET `onoff` = '1' WHERE `gs_usermsg`.`id` ='$userid' LIMIT 1 ")) {
                    header("Location: ?q=admin&page=1&edit=$userid");
                    }
                    else echo "Ошибка отправки!";
    }

            ?>       
                <!-- send form -->
    <table cellspacing="0" cellpadding="5" border="0" style="border:#FF9900 dashed 1px;" width="500px">
        <form method="post">
        <input type="hidden" name="submit" value="send_msg">
        <tr>
            <td class="name">Тема сообщения:</td>
            <td><input type="text" name="theme" class="text" style="border:#aaaaaa solid 1px; background-color:#e0f7d0;" onfocus="this.style.borderColor='#ff8706'; this.style.backgroundColor='#fee9bc'" onblur="this.style.borderColor='#aaaaaa'; this.style.backgroundColor='#e0f7d0'"></td>
        </tr>
        <tr>
            <td class="name">Текст сообщения:</td>
            <td><textarea style="width:350px; height:70px; border:#aaaaaa solid 1px; background-color:#e0f7d0;" onfocus="this.style.borderColor='#ff8706'; this.style.backgroundColor='#fee9bc'" onblur="this.style.borderColor='#aaaaaa'; this.style.backgroundColor='#e0f7d0'" name="msg"></textarea></td>
        </tr>
        <tr>
            <td colspan=2 align="right">
                <input type="submit" value="отправить" class="button">        </td>
        </tr>
        </form>
    </table>
        
            <!-- <-- SEND MEssage-->
      
    <? else: ?>

    <table width="100%" border="0" cellspacing="5" cellpadding="0">
      <tr>
        <td width="50%" style="border-right:#333333 solid 1px;">
    <!-- максимальное количество юзеров для участия в конкурсе -->
                <?
    // берем из gs_maxids значение idmax (для юзеров id =1)
    $result = mysql_query("SELECT idmax FROM `gs_maxids` WHERE id=1");
    $row = mysql_fetch_assoc($result);
    $maxusers = $row['idmax']; // максимальное кол-во юзеров равно значению idmax для id 1 (ХРАНИТСЯ В БАЗЕ)
    ?>
                
                <br />
                <div style="font-size:11px"> <strong>Установите максимально возможное количество юзеров для участия в текущем этапе</strong><br />
                <font color="#FF0000">**</font> Регистрация на сайте запрещается, когда количество зарегестрированных пользователей на сайте станет равным указанному<br />
                Укажите количество цифрой. Не более 100!<br /><br />
              <font color="#FF0000"> <strong> Предыдущее значение: <font color="#000000"><?=$maxusers?> </font></strong></font><br />
    </div><br />
    <form action="" method="post"> 
    <input  type=text name=newvalue value=""/> 
    <input name=change type=submit value="изменить"> 
    </form>
    <?
    if(isset($_POST['newvalue']))   
    {
    $new_id = !empty($_POST['newvalue'])?$_POST['newvalue']:null;
    // если введенное значение числовое...
    if(is_numeric($new_id)&&settype($new_id, "integer")==true) {
    //коннект к базе уже был произведен ранее, поэтому просто обновляем значение id
    $new = mysql_query("UPDATE `gs_maxids` SET `idmax` = '$new_id' WHERE `gs_maxids`.`id` =1 LIMIT 1");
    echo 'Готово. Заменено на '. $new_id; 
    }
    // а ежели нет, то...
    else { echo('<b>Введите целое число.</b>');}
    }
    ?>
    <br />
                <!-- максимальное количество юзеров для участия в конкурсе -->
        </td>
        <td>
               
          <!-- максимальное разрешенное количество альбомов -->
    <?
    // берем из gs_maxids значение idmax (для альбомов id =2)
    $result = mysql_query("SELECT idmax FROM `gs_maxids` WHERE id=2");
    $row = mysql_fetch_assoc($result);
    $maxalbum = $row['idmax']; // максимальное кол-во альбомов равно значению idmax для id 2 (ХРАНИТСЯ В БАЗЕ)
    ?>
                <br />
                <div style="font-size:11px"> <strong>Укажите количество альбомов, которое разрешено добавлять пользователям</strong><br />
                Укажите количество цифрой. Не более 5!<br /><br />
              <font color="#FF0000"> <strong> Предыдущее значение: <font color="#000000"><?=$maxalbum?> </font></strong></font><br />
    </div><br />
    <form action="" method="post"> 
    <input  type=text name=newalbum value=""/> 
    <input name=change type=submit value="изменить"> 
    </form>
    <?
    if(isset($_POST['newalbum']))   
    {
    $alb_id = !empty($_POST['newalbum'])?$_POST['newalbum']:null;
    // если введенное значение числовое...
    if(is_numeric($alb_id)&&settype($alb_id, "integer")==true) {
    //коннект к базе уже был произведен ранее, поэтому просто обновляем значение id
    $wra_id = mysql_query("UPDATE `gs_maxids` SET `idmax` = '$alb_id' WHERE `gs_maxids`.`id` =2 LIMIT 1");
    echo 'Готово. Заменено на '. $alb_id; 
    }
    // а ежели нет, то...
    else { echo('<b>Введите целое число.</b>');}
    }
    ?>
    <br />
                <!-- максимальное разрешенное количество альбомов --> 
        </td>
      </tr>
    </table>
    <hr  />

    <table width="100%" border="0" cellspacing="5" cellpadding="0">
      <tr>
        <td width="50%" style="border-right:#333333 solid 1px;">
          <!-- максимальное разрешенное количество фоток в альбоме -->
    <?
    $result = mysql_query("SELECT idmax FROM `gs_maxids` WHERE id=3");
    $row = mysql_fetch_assoc($result);
    $maximage = $row['idmax']; // {максимальное кол-во фоток} равно значению idmax для id 3 (ХРАНИТСЯ В БАЗЕ)
              ?> 
                <br />
                <div style="font-size:11px"> <strong>Укажите количество фоток, которое разрешено закгружать пользователям в каждый альбом</strong><br />
                Укажите количество цифрой. Не более 100!<br /><br />
              <font color="#FF0000"> <strong> Предыдущее значение: <font color="#000000"><?=$maximage?> </font></strong></font><br />
    </div><br />
    <form action="" method="post"> 
    <input  type=text name=newimage value=""/> 
    <input name=change type=submit value="изменить"> 
    </form>
    <?
    if(isset($_POST['newimage']))   
    {
    $img_id = !empty($_POST['newimage'])?$_POST['newimage']:null;
    // если введенное значение числовое...
    if(is_numeric($img_id)&&settype($img_id, "integer")==true) {
    //коннект к базе уже был произведен ранее, поэтому просто обновляем значение id
    $wri_id = mysql_query("UPDATE `gs_maxids` SET `idmax` = '$img_id' WHERE `gs_maxids`.`id` =3 LIMIT 1");
    echo 'Готово. Заменено на '. $img_id; 
    }
    // а ежели нет, то...
    else { echo('<b>Введите целое число.</b>');}
    }
    ?>
    <br />
                <!-- максимальное разрешенное количество фоток в альбоме -->
        </td>
        <td>
          <!-- включить или выключить голосование на сайте -->
    <?
    $result = mysql_query("SELECT idmax FROM `gs_maxids` WHERE id=4");
    $row = mysql_fetch_assoc($result);
    $onoff = $row['idmax'];
              ?> 
                <br />
                <div style="font-size:11px"> <strong>Включить или выключить голосование на сайте<br />
                Введите: 1 - включить / 2 - выключить
              <font color="#FF0000"> <strong> Предыдущее значение: <font color="#000000"><?=$onoff?> </font></strong></font><br />
    </div><br />
    <form action="" method="post"> 
    <input  type=text name=onoroff value=""/> 
    <input name=change type=submit value="изменить"> 
    </form>
    <?
    if(isset($_POST['onoroff']))   
    {
    $onoff_id = !empty($_POST['onoroff'])?$_POST['onoroff']:null;
    // если введенное значение числовое...
    if(is_numeric($onoff_id)&&settype($onoff_id, "integer")==true) {
    //коннект к базе уже был произведен ранее, поэтому просто обновляем значение id
    $wro_id = mysql_query("UPDATE `gs_maxids` SET `idmax` = '$onoff_id' WHERE `gs_maxids`.`id` =4 LIMIT 1");
    echo 'Готово. Заменено на '. $onoff_id; 
    }
    // а ежели нет, то...
    else { echo('<b>Введите целое число.</b>');}
    }
    ?>
    <br />
               <!-- включить или выключить голосование на сайте --> 
        </td>
      </tr>
    </table>
    <hr  />
     
    <table width="100%" border="0" cellspacing="5" cellpadding="0">
      <tr>
        <td width="50%" style="border-right:#333333 solid 1px;">
     <!-- Текст для вывода если голосование отключено -->
    <?
    $result = mysql_query("SELECT text FROM `gs_maxids` WHERE id=4");
    $row = mysql_fetch_assoc($result);
    $textoff = $row['text'];
              ?> 
                <br />
                <div style="font-size:11px"> <strong>Если голосование отключено, выводить текст:<br />
              <font color="#FF0000"> <strong> Предыдущее значение: <font color="#000000"><?=$textoff?> </font></strong></font><br />
    </div><br />
    <form action="" method="post"> 
    <textarea name=comtext cols=40 rows=7></textarea><br>
    <input name=change type=submit value="изменить"> 
    </form>
    <?
    if(isset($_POST['comtext']))   
    {
    $printtxt = !empty($_POST['comtext'])?$_POST['comtext']:null;
    // преобразуем html символы в эквиваленты
    $printtxt = htmlspecialchars($printtxt, ENT_QUOTES);
    //коннект к базе уже был произведен ранее, поэтому просто обновляем значение id
    if ($wrtxt = mysql_query("UPDATE `gs_maxids` SET `text` = '$printtxt' WHERE `gs_maxids`.`id` =4 LIMIT 1")) { 
    echo 'Готово. Текст изменен на: '. $printtxt; }
    // а ежели нет, то...
    else { echo('<b>Ошибка записи в базу ващего текста.</b>');}
    }
    ?>
    <br />
     <!-- Текст для вывода если голосование отключено -->
        
        </td>
        <td>
    <strong>Послать уведомление сразу всем пользователям</strong><br /><br /><br />
        
            <?
            function replacer ($text) { // ФУНКЦИЯ очистки кода
    $text=str_replace(" ",' ',$text);
    $text=str_replace(">",'&gt;',$text);
    $text=str_replace("<",'&lt;',$text);
    $text=str_replace("\"",'&quot;',$text);
    $text=preg_replace("/\n\n/",'<p>',$text);
    $text=preg_replace("/\n/",'<br>',$text);
    $text=preg_replace("/\\\$/",'$',$text);
    $text=preg_replace("/\r/",'',$text);
    $text=preg_replace("/\\\/",'\',$text);
    $text=str_replace("\r\n","<br> ",$text);
    $text=str_replace("\n\n",'<p>',$text);
    $text=str_replace("\n",'<br> ',$text);
    $text=str_replace("\t",'',$text);
    $text=str_replace("\r",'',$text);
    $text=str_replace('   ',' ',$text);
    do {$text=str_replace("<br><br><br>","<br>",$text);} while (preg_match("/<br><br><br><br>/i",$text));
    do {$text=str_replace("   "," ",$text);} while (preg_match("/   /i",$text));
    $text=str_replace("\t",' ',$text);
    $text=str_replace("\r",' ',$text);
    $text=str_replace('   ',' ',$text);
    $text=rtrim($text);
    return $text; }
            
            
            if(isset($_POST['submit']) && $_POST['submit']=='send_msg')
    {
    $msg_title  = replacer($_POST['theme']);
    $msg        = replacer($_POST['msg']);

                    if($sql = mysql_query("UPDATE `gs_usermsg` SET `title` = '$msg_title', `message` = '$msg', `onoff` = '1' ")) {
                    header("Location: ?q=admin");
                    //echo "<b><font color='ff0000'>Готово. Уведомление всем пользователям отправленно</font></b>";
                    }
    }

            ?>       
                <!-- send form -->
        <table cellspacing="0" cellpadding="5" border="0" style="border:#FF9900 dashed 1px;" width="500px">
        <form method="post">
        <input type="hidden" name="submit" value="send_msg">
        <input type="hidden" name="saveid" value="<?=$getUser['id']?>">
        <tr>
            <td class="name">Тема сообщения:</td>
            <td><input type="text" name="theme" class="text" style="border:#aaaaaa solid 1px; background-color:#e0f7d0;" onfocus="this.style.borderColor='#ff8706'; this.style.backgroundColor='#fee9bc'" onblur="this.style.borderColor='#aaaaaa'; this.style.backgroundColor='#e0f7d0'"></td>
        </tr>
        <tr>
            <td class="name">Текст сообщения:</td>
            <td><textarea style="width:350px; height:70px; border:#aaaaaa solid 1px; background-color:#e0f7d0;" onfocus="this.style.borderColor='#ff8706'; this.style.backgroundColor='#fee9bc'" onblur="this.style.borderColor='#aaaaaa'; this.style.backgroundColor='#e0f7d0'" name="msg"></textarea></td>
        </tr>
        <tr>
            <td colspan=2 align="right">
                <input type="submit" value="отправить" class="button">        </td>
        </tr>
        </form>
        </table>
        <br />
    <form action="" method="post"> 
    <input type="hidden" name="nomsg" value="2">
    <input name=change type=submit value="отключить уведомление для всех!"> 
    </form>
    <?
    if(isset($_POST['nomsg']))
            {
            $sql_no = mysql_query("UPDATE `gs_usermsg` SET `onoff` = '2'");
            echo "<b><font color='ff0000'>Уведомление отключенно для всех пользователей!</font></b>";
            }
             ?>
        
            <!-- <-- SEND MEssage-->
        
        </td>
      </tr>
    </table>
        <hr  />        

    <table width="100%" border="0" cellspacing="15" cellpadding="0">
      <tr>
        <td width="50%" style="border-right:#333333 solid 1px;">
          <!-- Мыло для формы обратной связи -->
    <?
    $result = mysql_query("SELECT text FROM `gs_maxids` WHERE id=3");
    $row = mysql_fetch_assoc($result);
    $maxemail = $row['text']; // {максимальное кол-во фоток} равно значению idmax для id 3 (ХРАНИТСЯ В БАЗЕ)
              ?> 
                <br />
                <div style="font-size:11px"> <strong>Укажите e-mail, куда будут отправляться письма из формы обратной связи</strong><br />
                Указывайте правильно e-mail, иначе письмо не будет отправленно<br /><br />
              <font color="#FF0000"> <strong> Предыдущее значение: <font color="#000000"><?=$maxemail?> </font></strong></font><br />
    </div><br />
    <form action="" method="post"> 
    <input  type=text name=maxemail value=""/> 
    <input name=change type=submit value="изменить"> 
    </form>
    <?
    if(isset($_POST['maxemail']))   
    {
    $milo = !empty($_POST['maxemail'])?$_POST['maxemail']:null;
    if(CheckEmail($milo)) {
    // если введенное значение числовое...
    $wri_id = mysql_query("UPDATE `gs_maxids` SET `text` = '$milo' WHERE `gs_maxids`.`id` =3 LIMIT 1");
    echo 'Готово. Заменено на '. $milo; 
    }
    else {echo 'E-mail введен некорректно. Введите e-mail верно.';}
    }
    ?>
    <br />
                          <!-- Мыло для формы обратной связи -->
      
        
        </td>
        <td width="50%">
                   <!-- Замена этапа для всех участников -->
    <?
    $result = mysql_query("SELECT cdate FROM `gs_users` WHERE id=1");
    $row = mysql_fetch_assoc($result);
    $etap = $row['cdate']; // текущий этап
              ?> 
                <br />
                <div style="font-size:11px"> <strong> Смена этапа для всех участников конкурса. формет: год(4цифры)-месяц(две цивры)</strong><br />
                Например:<strong> 2011-04</strong> (2011 год, месяц Апрель)<br />
              <font color="#FF0000"> <strong> Предыдущее значение: <font color="#000000"><?=$etap?> </font></strong></font><br />
    </div><br />
    <form action="" method="post"> 
    <input  type=text name=newetap value=""/> 
    <input name=change type=submit value="изменить"> 
    </form>
    <?
    if(isset($_POST['newetap']))   
    {
    $netap = !empty($_POST['newetap'])?$_POST['newetap']:null;
    // если введенное значение числовое...
    $wri_id = mysql_query("UPDATE `gs_users` SET cdate = '$netap' ");
    echo 'Готово. Заменено на '. $netap; 
    }
    ?>
    <br />
                          <!-- Мыло для формы обратной связи -->
        </td>
      </tr>
    </table>
        <hr />        
    <!-- get all users -->
                
                <? 
                // макс. кол-во юзеров показывается на одной странице
                $limit = 30;
                   $total = $sql->selectCell('SELECT COUNT(*) FROM ?_users');
                   
                   if($page>1){
                       $total_pages = ceil($total/$limit);
                    if($page>$total_pages) $page = $total_pages;
                   }
                   
                   $from = $page * $limit - $limit;
                   
                   $getUsers = $sql->select('SELECT * FROM ?_users ORDER BY edate DESC LIMIT ?d, ?d', $from, $limit);
                   
                   if($getUsers): ?>
                
                <table class="tbl" width="100%">
                <tr class="head">
                    <td>#</td>
                    <td>Login</td>
                    <td>E-mail</td>
                    <td>Имя</td>
                    <td>Фамилия</td>
                    <td>День рождения</td>
                    <td>ICQ</td>
                    <td>Страна</td>
                    <td>Голосов</td>
                    <td>Город</td>
                    <td>Телефон</td>
                    <td>Заполнено анкеты</td>
                    <td width="100" align="center">Действия</td>
                </tr>
                <? foreach($getUsers as $k=>$v): ?>
                <tr>
                    <td><?=$k+1?></td>
                    <td><?=$v['login']?></td>
                    <td><?=$v['email']?></td>
                    <td><?=$v['firstname']?></td>
                    <td><?=$v['lastname']?></td>
                    <td><?=$v['bdate']?></td>
                    <td><?=$v['icq']?></td>
                    <td><?=$v['country']?></td>
                    <td><?=$v['rating']?></td>
                    <td><?=$v['city']?></td>
                    <td><?=$v['phone']?></td>
                    <td><?=isAnketaComplate($v['id'])?> %</td>
                    <td align="center">
                        <a href="?q=admin&page=<?=$page?>&edit=<?=$v['id']?>"><img src="images/edit.png" border="0" alt="редактировать"></a>&nbsp;
                        <a href="?q=admin&page=<?=$page?>&drop=<?=$v['id']?>" onClick="return window.confirm('Вы уверены?')"><img src="images/drop.png" border="0" alt="удалить"></a>&nbsp;
                        <a href="?q=admin&p=images&id=<?=$v['id']?>"><img src="images/images.png" border="0"></a>&nbsp;                </td>
                </tr>
                <? endforeach ?>
                </table>
                
    <br>
                
                <?=pages($page$limit$total"?q=admin&"?>
                
                <? endif ?>
                <!-- /get all users -->
            
            <? endif ?>    
        
        <? endif ?> 

    <? else: ?>

        <? actNote() ?>

        <h2>Вход в админ панель</h2>
        
        <table cellspacing="1" cellpadding="5" border="0">
        <form method="post">
        <input type="hidden" name="submit" value="login">
        <tr>
            <td align="right">Имя ползователья:</td>
            <td><input type="text" name="username" class="text"></td>
        </tr>
        <tr>
            <td align="right">Пароль:</td>
            <td><input type="password" name="password" class="text"></td>
        </tr>
        <tr>
            <td colspan=2 align="center">
                <input type="submit" value="Вход" class="button">
                <input type="reset" value="Сброс" class="button">
            </td>
        </tr>
        </form>
        </table>

    <? endif ?>
    непонятность с условием
    PHP:
    <? if($p=='vote'): ?>
    косяк на картинке во вложении...

    Помогите плиз разобраться с этими условиями:(
     

    Вложения:

    • nnn.gif
      nnn.gif
      Размер файла:
      23,8 КБ
      Просмотров:
      9
  2. DrakonHaSh

    DrakonHaSh

    Регистр.:
    29 июн 2010
    Сообщения:
    358
    Симпатии:
    122
    точку с запятой после endif забыли
    PHP:
    <? endif; ?>
     
  3. KillDead

    KillDead

    Регистр.:
    11 авг 2006
    Сообщения:
    884
    Симпатии:
    540
    Оххх, я против конструкций if: endif, куча кода появляется, скобок достаточно. Да и мешать код с html - это зло. Легко запутаться, чтобы исправить нужно кучу текста просмотреть. Вот и у тебя эта проблема.
    Сделай к каждому условию комментарий
    PHP:
    if // условие если это опрос
    elseif // условие если это опрос, но простой опрос
    endif //  условие если это опрос END
     
    Как вариант- переписать с использованием если не шаблонизатора (хотябы простенького, из 30 строк), то просто сделать класс
    PHP:
     adminHtml{
    static public 
    generateNumVote($var1$var2){} 
    }
    где держать весь html код. и вызывать
    HTML:
     adminHtml:: generateNumVote($var1, $var2);
     
  4. sunyang

    sunyang

    Регистр.:
    25 апр 2009
    Сообщения:
    444
    Симпатии:
    30
    Решил переписать условия админки. Блин, вроде условий-то мало, да и foreach не должен влиять на эти долбаные условия, но вот этот код работает:

    PHP:
    <? if(!empty($_SESSION['administrator'])): // 1 ?>

        <div>
            Привет <b><?=$_SESSION['administrator']?></b> ! (<a href="?q=admin&act=logout">Выход</a>)
        </div>
        
        <br>
        
           <? if($p=='vote'):  // 2?>
        
            <div class="toplink">
                <a href="?q=admin">Все пользователи</a> <a href="?q=admin&p=news">Новости</a> <b>Голосование</b>
            </div>
            ГОЛОСОВАНИЕ!<br />
             ГОЛОСОВАНИЕ!<br />
              ГОЛОСОВАНИЕ!<br />
            <br>
            
           <? endif;  // 2?>
           
        <? if($p=='news'): // 3(вкладка новости начало)?>
        
            <div class="toplink">
                <a href="?q=admin">Все пользователи</a> <b> Новости </b> <a href="?q=admin&p=vote">Голосование</a>
            </div>
            
            <div><b>Все новости</b> | <a href="?q=admin&p=news&act=add">Добавить новость</a></div>

    <br />
    НОВОСТИ!!

        <? endif;  // 3 (вкладка новости конец)?>
        
       
       
        <? else: // 1?>

        <? actNote() ?>

        <h2>Вход в админ панель</h2>
        
        <table cellspacing="1" cellpadding="5" border="0">
        <form method="post">
        <input type="hidden" name="submit" value="login">
        <tr>
            <td align="right">Имя ползователья:</td>
            <td><input type="text" name="username" class="text"></td>
        </tr>
        <tr>
            <td align="right">Пароль:</td>
            <td><input type="password" name="password" class="text"></td>
        </tr>
        <tr>
            <td colspan=2 align="center">
                <input type="submit" value="Вход" class="button">
                <input type="reset" value="Сброс" class="button">
            </td>
        </tr>
        </form>
        </table>
        
    <? endif; // 1 ?>
    Но как только вставляю вместо "НОВОСТИ!!" в третьем условии код выборки новостей:

    PHP:
    <? if(!empty($_SESSION['administrator'])): // 1 ?>

        <div>
            Привет <b><?=$_SESSION['administrator']?></b> ! (<a href="?q=admin&act=logout">Выход</a>)
        </div>
        
        <br>
        
           <? if($p=='vote'):  // 2?>
        
            <div class="toplink">
                <a href="?q=admin">Все пользователи</a> <a href="?q=admin&p=news">Новости</a> <b>Голосование</b>
            </div>
            ГОЛОСОВАНИЕ!<br />
             ГОЛОСОВАНИЕ!<br />
              ГОЛОСОВАНИЕ!<br />
            <br>
            
           <? endif;  // 2?>
           
        <? if($p=='news'): // 3(вкладка новости начало)?>
        
            <div class="toplink">
                <a href="?q=admin">Все пользователи</a> <b> Новости </b> <a href="?q=admin&p=vote">Голосование</a>
            </div>
            
            <div><b>Все новости</b> | <a href="?q=admin&p=news&act=add">Добавить новость</a></div>

                <br>
            
                <? 
                 $limit  = 20;
                 $total  = $sql->selectCell('SELECT COUNT(*) FROM ?_news');
                 if($page>1){
                      $total_pages = ceil($total/$limit);
                    if($page>$total_pages) $page = $total_pages;
                 }
                 $from = $page * $limit - $limit;
                 $result = $sql->select('SELECT * FROM ?_news ORDER BY edate DESC LIMIT ?d, ?d', $from, $limit);
                 if($result): ?>
                
                <table cellspacing="0" cellpadding="5" border="0" width="100%">
                <? foreach($result as $k=>$v): ?>
                <tr><td><strong><?=$v['title']?></strong></td></tr>
                <tr><td><em><?=substr($v['edate'],0,-3)?></em></td></tr>
                <tr><td><?=$v['message']?></td></tr>
                <tr>
                    <td height="30" valign="top">
                        <a href="?q=admin&p=news&act=edit&edit=<?=$v['id']?>&page=<?=$page?>"><img src="images/edit.png" border="0"></a>
                        <a href="?q=admin&p=news&drop=<?=$v['id']?>&page=<?=$page?>" onclick="return window.confirm('Уыерены?')"><img src="images/drop.png" border="0"></a>
                    </td>
                </tr>
                <tr>
                    <td><hr size=1 noshade></td>
                </tr>
                <? endforeach ?>
                </table>
                
                <?=pages($page$limit$total"?q=admin&p=news&")?>

        <? endif;  // 3 (вкладка новости конец)?>
        
       
       
        <? else: // 1?>

        <? actNote() ?>

        <h2>Вход в админ панель</h2>
        
        <table cellspacing="1" cellpadding="5" border="0">
        <form method="post">
        <input type="hidden" name="submit" value="login">
        <tr>
            <td align="right">Имя ползователья:</td>
            <td><input type="text" name="username" class="text"></td>
        </tr>
        <tr>
            <td align="right">Пароль:</td>
            <td><input type="password" name="password" class="text"></td>
        </tr>
        <tr>
            <td colspan=2 align="center">
                <input type="submit" value="Вход" class="button">
                <input type="reset" value="Сброс" class="button">
            </td>
        </tr>
        </form>
        </table>
        
    <? endif; // 1 ?>
    PHP выдает ошибку:

    Parse error: syntax error, unexpected $end in Z:\home\golos.loc\www\mode\admin.php on line 353

    353 строчка это последняя -
    PHP:
    <? endif; // 1 ?>
    сейчас то ему чего не нравится?:nezn:
     
  5. DrakonHaSh

    DrakonHaSh

    Регистр.:
    29 июн 2010
    Сообщения:
    358
    Симпатии:
    122
    PHP:
        <? endif;  // 3 (вкладка новости конец)?>
        
       
       
        <? else: // 1?>
    это что за хрень :) ?
    PHP:
    <? endforeach ?> 
    опять без точки с запятой. почитайте что ли Перейти по ссылке
     
  6. PHPCod3r

    PHPCod3r

    Регистр.:
    7 июн 2010
    Сообщения:
    261
    Симпатии:
    25
    Если трудно следить за точкой с запятой в конце строки, скобками
    и подобными вещами, то можно взять любую нормальную IDE(на данном форуме есть много тем, какая из IDE лучше), к примеру Zend Studio
    и писать код в ней, а она будет вам подсказывать что вы где забыли )
     
  7. sunyang

    sunyang

    Регистр.:
    25 апр 2009
    Сообщения:
    444
    Симпатии:
    30
    он и без точки с запятой работает.

    Уже понял в чем трабл.
     
  8. -=Xardas=-

    -=Xardas=-

    Регистр.:
    17 сен 2008
    Сообщения:
    250
    Симпатии:
    58
    прекрати использовать эти убогие конструкции, и используй скобки как нормальные люди, заодно и от проблеммы избавишься.
     
  9. satih

    satih

    Регистр.:
    19 сен 2008
    Сообщения:
    429
    Симпатии:
    710
    используй чекер синтаксиса, либо на десктоп установи IDE, либо онлайн чекеры юзай, например
    http://www.hcibook.com/meandeviation/php-syntax-check/v5-2/syntax-check.phpдебаг возьмет значительно меньше времени чем искать по всему тексту где скобку пропустил..
     
  10. djpasica

    djpasica Писатель

    Регистр.:
    24 апр 2010
    Сообщения:
    7
    Симпатии:
    1
    в конце конструкции точка с запятой не обязательна...0)