-26 / 8 / 12
Регистрация: 29.03.2016
Сообщений: 1,154
1

Не получается коректно сгенерировать кнопки сайта

14.06.2016, 15:44. Показов 941. Ответов 9
Метки php (Все метки)

Author24 — интернет-сервис помощи студентам
При генерации кнопок,та кнопка которая обозначает текущую страницу на которой находится посетитель должна отсутствовать.Например,если посетитель находится на главной странице,кнопка "Главная" должна отсутствовать.

Ну и еще у меня выводится частично исходный код хтмл,но я не вижу где я ошибся вот скрин результата.



И еще я хотел чтоб кнопки имели зеленый фон и белый цвет шрифта,но не знаю как правильно прописать код.Кто может написать верный код?

Вот мой код:
PHP/HTML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
<?php
class Page{
//атрибутты класса Пейдж
public $content;
public $title="Главная.Букмкерские конторы";
public $keywords="Рейтинги букмкерских контор от игроков,отзывы,краткий обзор букмекерсеих контор";
public $buttons=array("Главная"=>"main.php",
                      "Рейтинг БК"=>"raiting.php",
                       "Отзывы о сайте"=>"otziv.php");
                  
    
 
//operations
 
//public function_set($name,$value){
     //  $this->$name=$value;  
//
public function Display(){
echo "<html>\n<head>\n";
$this->DisplayTitle();
$this->DisplayKeywords();
$this->DisplayStyles();
echo "</head>\n<body>\n";
$this->DisplayHeader();
$this->DisplayMenu($this->buttons);
echo $this->content;
echo "</body>\n</html>\n";
}
 
public function DisplayTitle(){
 echo "<title>".$this->title."</title>";
    }
 
 public function DisplayKeywords(){
 
    echo "<meta name="keywords"
              content="".$this->keywords.""/>";
 }   
public function DisplayStyles(){
    ?>
    <style>
body{background-image: url("fot.jpg");color: white}
h1{white-space:pre;}
hr{margin-top:-50px;}
.first{margin-left: 800px;margin-top:-80px;font-size: 15pt;white-space:pre;background-color: rgba(184,174,187,0.8);}
 
 
#O{position: relative;
    display: inline-block;}
 
#otv{display:inline-block; cursor: pointer;color: white;background-color: green;position: relative; left: 1000px;top: -111px}
#rei{display:inline-block; cursor: pointer;color: white;background-color: green;position: relative; left: 200px;top: -111px}
#mai{display:inline-block; cursor: pointer;color: white;background-color: green;position: relative; left: 450px;top: -111px}
</style>
<?php
}
public function DisplayHeader(){
?>
<h1>   
 <div id="O">Обзор  БК</div><div class="first"> на данном сайте присутствует информация о
 букмекерских конторах,а также отзывы игроков,
 и рейтинг основаный на оценках игроков 
 </div>       
 <hr>   
 </h1>    
<?php
}
 
public function DisplayMenu($buttons){
  echo "<table width="100%" bgcolor="green""."cellpadding="4" cellspacing="4">\n";
  echo "<tr>\n";
  //couting sizes of button
  $width=100/count($buttons);
  while(list($name,$url)=each($buttons)){
    $this->DisplayButton($width,$name,$url,!$this->IsURLCurrentPage($url));
  }
  echo "</tr>\n";
  echo "</table>\n";
 
     }
 
public function IsURLCurrentPage($url){
    if(strpos($_SERVER['PHP_SELF'],$url)==false){
    return false;
    }
    else{return true;}
}
public function DisplayButton($width,$name,$url,$active=true){
      if($active){
echo "td width="".$width."%"> <a href="".$url."">".
      "<a href="".$url."\><span class="menu">".$name."</span></a>"."</td>";
     }
      else {
echo "<td width="".$width."%"> 
      <span class="menu">".$name."</span></td>";
     }
 
    }
 
}
 
 ?>
Миниатюры
Не получается коректно сгенерировать кнопки сайта  
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
14.06.2016, 15:44
Ответы с готовыми решениями:

Не получается коректно обработать даные полученые по COM порту в VB2010
Здравствуйте! Обращаюсь к профессионалам за помощью так как сам уже неделю не могу разобраться в...

Фон для сайта на телефоне не работает коректно
Сделал сайт вот мой CSS для body: background: url(kosmos-zvezdy-beskonechnost-3487.jpg) no-repeat;...

Не получается сгенерировать уровень
В общем решил написать класс для отрисовки уровня... но не тут то было. Дело обстоит так: Есть...

Не получается сгенерировать событие
Добрый день, уважаемые обитатели данной ветки. Прошу вашего совета по данной задачке: В...

9
Эксперт PHP
5753 / 4133 / 1507
Регистрация: 06.01.2011
Сообщений: 11,276
14.06.2016, 16:09 2
Цитата Сообщение от TVPNERO Посмотреть сообщение
та кнопка которая обозначает текущую страницу на которой находится посетитель должна отсутствовать
Просто уберите "else".
PHP
1
2
3
4
5
6
7
public function DisplayButton($width,$name,$url,$active=true){
      if($active){
echo "td width=\"".$width."%\"> <a href=\"".$url."\">".
      "<a href=\"".$url."\><span class=\"menu\">".$name."</span></a>"."</td>";
     }
 
}
Цитата Сообщение от TVPNERO Посмотреть сообщение
у меня выводится частично исходный код хтмл,но я не вижу где я ошибся
PHP
1
echo "td width=\"".$width."%\"> <a href=\"".$url."\">".
>>>>
PHP
1
echo "<td width=\"".$width."%\"> <a href=\"".$url."\">".
Вот это, кстати:
PHP
1
2
3
4
5
6
public function IsURLCurrentPage($url){
    if(strpos($_SERVER['PHP_SELF'],$url)==false){
    return false;
    }
    else{return true;}
}
Можно так записать:
PHP
1
2
3
public function IsURLCurrentPage($url){
    return strpos($_SERVER['PHP_SELF'], $url) !== false;
}
0
-26 / 8 / 12
Регистрация: 29.03.2016
Сообщений: 1,154
14.06.2016, 16:31  [ТС] 3
Спасибо.Уже намного ближе к истине.Исходный текст ХТМЛ убрался.ЕЛСЕ я тоже убрал но кнопка текущей страницы все равно осталась,вот переработанный код:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
<?php
class Page{
//атрибутты класса Пейдж
public $content;
public $title="Главная.Букмкерские конторы";
public $keywords="Рейтинги букмкерских контор от игроков,отзывы,краткий обзор букмекерсеих контор";
public $buttons=array("Главная"=>"main.php",
                      "Рейтинг БК"=>"raiting.php",
                       "Отзывы о сайте"=>"otziv.php");
                  
    
 
//operations
 
//public function_set($name,$value){
     //  $this->$name=$value;  
//
public function Display(){
echo "<html>\n<head>\n";
$this->DisplayTitle();
$this->DisplayKeywords();
$this->DisplayStyles();
echo "</head>\n<body>\n";
$this->DisplayHeader();
$this->DisplayMenu($this->buttons);
echo $this->content;
echo "</body>\n</html>\n";
}
 
public function DisplayTitle(){
 echo "<title>".$this->title."</title>";
    }
 
 public function DisplayKeywords(){
 
    echo "<meta name=\"keywords\"
              content=\"".$this->keywords."\"/>";
 }   
public function DisplayStyles(){
    ?>
    <style>
body{background-image: url("fot.jpg");color: white}
h1{white-space:pre;}
hr{margin-top:-50px;}
.first{margin-left: 800px;margin-top:-80px;font-size: 15pt;white-space:pre;background-color: rgba(184,174,187,0.8);}
 
 
#O{position: relative;
    display: inline-block;}
 
#otv{display:inline-block; cursor: pointer;color: white;background-color: green;position: relative; left: 1000px;top: -111px}
#rei{display:inline-block; cursor: pointer;color: white;background-color: green;position: relative; left: 200px;top: -111px}
#mai{display:inline-block; cursor: pointer;color: white;background-color: green;position: relative; left: 450px;top: -111px}
</style>
<?php
}
public function DisplayHeader(){
?>
<h1>   
 <div id="O">Обзор  БК</div><div class="first"> на данном сайте присутствует информация о
 букмекерских конторах,а также отзывы игроков,
 и рейтинг основаный на оценках игроков 
 </div>       
 <hr>   
 </h1>    
<?php
}
 
public function DisplayMenu($buttons){
  echo "<table width=\"100%\" bgcolor=\"green\""."cellpadding=\"4\" cellspacing=\"4\">\n";
  echo "<tr>\n";
  //couting sizes of button
  $width=100/count($buttons);
  while(list($name,$url)=each($buttons)){
    $this->DisplayButton($width,$name,$url,!$this->IsURLCurrentPage($url));
  }
  echo "</tr>\n";
  echo "</table>\n";
 
     }
public function IsURLCurrentPage($url){
    return strpos($_SERVER['PHP_SELF'], $url) !== false;
}
 
 
public function DisplayButton($width,$name,$url,$active=true){
      if($active){
echo "<td width=\"".$width."%\"> <a href=\"".$url."\">".
      "<a href=\"".$url."\><span class=\"menu\">".$name."</span></a>"."</td>";
     }
      
 
    }
 
}
 
 ?>
0
Эксперт PHP
5753 / 4133 / 1507
Регистрация: 06.01.2011
Сообщений: 11,276
14.06.2016, 16:51 4
А URL-адрес при этом какой? Вы под Windows делаете? Что выдаёт это?
PHP
1
var_dump($_SERVER['PHP_SELF']); die();
0
-26 / 8 / 12
Регистрация: 29.03.2016
Сообщений: 1,154
14.06.2016, 17:00  [ТС] 5
в строке браузера адрес---http://localhost/prob/Main.php

а вот это где нужно прописать в вызывающей странице(я ведь использовал require("page.php") или в файле page.php
var_dump($_SERVER['PHP_SELF']); die(); &
0
шКодер самоучка
2227 / 1921 / 927
Регистрация: 09.10.2013
Сообщений: 4,259
Записей в блоге: 7
14.06.2016, 18:13 6
PHP/HTML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
<?php
 
$page = new Page(
    array_key_exists('page', $_GET) ? $_GET['page'] : 'main'
);
?>
<!DOCTYPE html>
<html>
<head>
    <?php echo $page->DisplayTitle(); ?>
    <?php echo $page->DisplayKeywords(); ?>
    <?php if ($page->DisplayStyles()): ?>
        <style>
            body {
                background-image: url("fot.jpg");
                color: white
            }
 
            h1 {
                white-space: pre;
            }
 
            hr {
                margin-top: -50px;
            }
 
            .first {
                margin-left: 800px;
                margin-top: -80px;
                font-size: 15pt;
                white-space: pre;
                background-color: rgba(184, 174, 187, 0.8);
                display: inline-block;
            }
 
            #O {
                position: relative;
                display: inline-block;
            }
 
            #otv {
                display: inline-block;
                cursor: pointer;
                color: white;
                background-color: green;
                position: relative;
                left: 1000px;
                top: -111px
            }
 
            #rei {
                display: inline-block;
                cursor: pointer;
                color: white;
                background-color: green;
                position: relative;
                left: 200px;
                top: -111px
            }
 
            #mai {
                display: inline-block;
                cursor: pointer;
                color: white;
                background-color: green;
                position: relative;
                left: 450px;
                top: -111px
            }
        </style>
    <?php endif ?>
</head>
<body>
<?php if ($page->DisplayHeader()): ?>
    <h1>
        <span id="O">Обзор БК</span>
    <span class="first"> на данном сайте присутствует информация о
        букмекерских конторах,а также отзывы игроков,
        и рейтинг основаный на оценках игроков
    </span>
    </h1>
    <hr>
<?php endif ?>
<table>
    <tr>
        <?php echo $page->DisplayMenu(); ?>
    </tr>
</table>
</body>
</html>
 
<?php
 
class Page
{
    //private $content;
    private $title = "Букмкерские конторы";
    private $keywords = "Рейтинги букмкерских контор от игроков,отзывы,краткий обзор букмекерсеих контор";
    private $buttons = [
        "Главная" => "main",
        "Рейтинг БК" => "raiting",
        'Отзывы о сайте' => 'otziv'
    ];
    private $id;
    private $base_url;
 
    public function __construct($id)
    {
        $this->buttons = array_flip($this->buttons);
        $this->base_url = $_SERVER['PHP_SELF'];
        $this->id = array_key_exists($id, $this->buttons) ? $id : 'main';
        $this->title = sprintf(
            '%s :: %s',
            $this->buttons[$this->id],
            $this->title
        );
    }
 
    public function DisplayTitle()
    {
        return sprintf("<title>%s</title>", $this->title);
    }
 
    public function DisplayKeywords()
    {
        return sprintf(
            '<meta name="keywords" content="%s"/>',
            $this->keywords
        );
    }
 
    public function DisplayStyles()
    {
        return true;
    }
 
    public function DisplayHeader()
    {
        return true;
    }
 
    public function DisplayMenu()
    {
        $menu = [];
        $width = 100 / count($this->buttons);
        foreach ($this->buttons as $id => $name) {
            $menu[] = $this->DisplayButton($width, $name, $id, !$this->IsURLCurrentPage($id));
        }
        return implode('', $menu);
    }
 
    public function IsURLCurrentPage($id)
    {
        return strtolower($id) === $this->id;
    }
 
    public function DisplayButton($width, $name, $id, $active)
    {
        $span = sprintf('<span class="menu">%s</span>', $name);
        if ($active) {
            $span = sprintf(
                '<a href="%s?page=%s">%s</a>',
                '', $id, $span
            );
        }
        return sprintf(
            '<td width="%d%%">%s</td>',
            $width, $span
        );
    }
 
}
как то так...
0
-26 / 8 / 12
Регистрация: 29.03.2016
Сообщений: 1,154
14.06.2016, 18:41  [ТС] 7
под виндоус
Cra3y,
Добавлено через 11 минут
Спасибо за оказанную помощь.Но код имеет ряд ошибок.Первые ошибки-ВЫ обьявили неправильно массив вместо скобок[//massive is here] должно было быть array(//massive is//);.
Ну а другие ошибки я не знаю как исправить,наверное Вы программируете на C-образных языках,а не только на ПХП.

Добавлено через 1 минуту
Para bellum, под виндоус
0
шКодер самоучка
2227 / 1921 / 927
Регистрация: 09.10.2013
Сообщений: 4,259
Записей в блоге: 7
14.06.2016, 18:50 8
TVPNERO, код прекрасно работает как на 5й так и на 7й версии php
Квадратные скобки - это сокращенный синтаксис для записи массивов
1
Эксперт PHP
5753 / 4133 / 1507
Регистрация: 06.01.2011
Сообщений: 11,276
15.06.2016, 06:47 9
Лучший ответ Сообщение было отмечено TVPNERO как решение

Решение

Цитата Сообщение от Cra3y Посмотреть сообщение
код прекрасно работает как на 5й так и на 7й версии php
Добавлю, что версия должна быть не ниже 5.4. TVPNERO, у Вас установлена версия старше, скорее всего. Потому не работает.
Цитата Сообщение от TVPNERO Посмотреть сообщение
под виндоус
Так и думал. Всё из-за регистра букв. У Вас в URL написано "Main.php", а в скрипте -- "main.php". Пишите в URL всегда с маленькой.
2
-26 / 8 / 12
Регистрация: 29.03.2016
Сообщений: 1,154
15.06.2016, 09:54  [ТС] 10
у меня пхп 5,3

Добавлено через 5 минут
Para bellum, Все получилось.Всем спасибо.
0
15.06.2016, 09:54
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
15.06.2016, 09:54
Помогаю со студенческими работами здесь

Не получается сгенерировать бд из Erwin в Access
Подскажите, пожалуйста, что делать:в Erwin модель создала, а сгенерировать не получается, выдает...

Не получается сгенерировать БД erwin в access
Я делаю: 1. Переключаюсь в физическую модель - главное меню: Model -&gt; Physical model. 2. Перехожу...

Не получается сгенерировать страницу сценарием
Итак,я создал класс Page (cохранил файл как page.php) в нем я определил атрибуты которые хранят...

Не получается сгенерировать форму [Yii 1.1]
Есть такой код (Gii): class Product extends CActiveRecord { /** * Admin variables (ycm...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru