Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Помогите разобраться в сценариях из книги Дениса Колисниченко
Форумы портала PHP.SU » » Если скрипт не работает » Помогите разобраться в сценариях из книги Дениса Колисниченко

Страниц (2): [1] 2 »
 

1. Mureo - 31 Мая, 2012 - 12:29:12 - перейти к сообщению
Тема закрыта
2. sKaa - 31 Мая, 2012 - 13:58:55 - перейти к сообщению
Mureo, добрый день, а, что конкретно не работает? Может быть какие нибудь ошибки?

Попробуйте в самый верх index.php вставить эти строки, они призваны оповещать нас о всех ошибках пока проект на стадии разработки Улыбка



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

http://phpfaq[dot]ru/debug
http://phpfaq[dot]ru/na_tanke
3. Mureo - 31 Мая, 2012 - 18:19:04 - перейти к сообщению
Я старался максимальным образом расширить обзорность вопроса, закинув сюда всю идею создания простейшего движка выраженную на страницах книги данного автора.
На самом деле на страницах изображены больше иллюстрации чем текст. + Те же скрипты которые есть в файлах которые я скинул под фотографиями.
Твой код я вставил, он показывает на ошибки в файле меню.пхп на 34 строке и 8. Но там все написано так как написано в книге, и поэтому пока я не знаю о чем идет речь.
4. sKaa - 31 Мая, 2012 - 18:38:03 - перейти к сообщению
Mureo, ну скинь файл целиком сюда, только не файлом, а код просто покажи в посте.
5. Mureo - 31 Мая, 2012 - 22:11:43 - перейти к сообщению
тема закрыта
6. sKaa - 31 Мая, 2012 - 22:17:39 - перейти к сообщению
Mureo, оформи свой пост, чтоб он был хотя бы читабелен. Заключи всё необходимое внутрь bb тэга ['php'] ['/php'], только без кавычек. Кнопка "PHP" в редакторе сообщений.
7. DelphinPRO - 31 Мая, 2012 - 22:19:48 - перейти к сообщению
Mureo пишет:
Я купил ее на последние деньги с зарплаты, и начал изучать ее

страсти-то какие Улыбка

Mureo, так не пойдет. мне, как и многим, тупо влом качать что-то с файлопомоек.
Локализуйте ошибку, и приведите кусок кода, который ее выдает, вместе с текстом самой ошибки. Объясним и расскажем всё, что знаем.
===
пока писал сообщение уже и код появился )
8. Mureo - 31 Мая, 2012 - 22:26:36 - перейти к сообщению
извините, что не аккуратно перепостил коды.

error_reporting(E_ALL);
ini_set("display_errors", "On");
добавив эти строки в индекс файл
я получил следующие сообщения об ошибке

Notice: Undefined variable: p in Z:\home\localhost\www\php\36\menu.php on line 8
[Денвер: показать возможную причину ошибки]
Notice: Undefined variable: menu in Z:\home\localhost\www\php\36\menu.php on line 34

Notice: Use of undefined constant content - assumed 'content' in Z:\home\localhost\www\php\36\index.php on line 34
(Добавление)
sKaa пишет:
Mureo, оформи свой пост, чтоб он был хотя бы читабелен. Заключи всё необходимое внутрь bb тэга ['php'] ['/php'], только без кавычек. Кнопка "PHP" в редакторе сообщений.

спасибо что подсказали , отредактировал до читабельного вида
9. sKaa - 31 Мая, 2012 - 22:43:28 - перейти к сообщению
1)
Цитата:

Notice: Undefined variable: p in Z:\home\localhost\www\php\36\menu.php on line 8

Компилятор не знает такой переменной $p, она нигде в файле не определена, а вы проверяете чему она там равна...

2) Аналогично пункту 1
Цитата:
Notice: Undefined variable: menu in Z:\home\localhost\www\php\36\menu.php on line 34

PHP:
скопировать код в буфер обмена
  1. $menu = $menu . "<p><a href=index.php?p=show&id=$row[id]>$row[title]</A>";
- как решение могу предложить, объявить переменную $menu где-то до цикла while в котором она участвует. Вы грубо говоря неопределенной переменной присваиваете значение самой себя + текст ссылки.

3)
Цитата:
Notice: Use of undefined constant content - assumed 'content' in Z:\home\localhost\www\php\36\index.php on line 34

PHP:
скопировать код в буфер обмена
  1. $page = $row[content];

Тут вы забыли подставить знак $ перед словом content, в результате чего интепритатор пхп пытается определить незнакомое ему слово как константу.
10. Mureo - 31 Мая, 2012 - 22:47:02 - перейти к сообщению
Вот и я сидел прочитав слова автора про $p с помощью которой в дальнейшем будет определяться что именно кликнул пользователь и как скрипту на это реагировать, и не мог блин понять где вообще это переменнная определена в самом скрипте.
Цитирую слова автора из книги которые он написал над самим листингом индекс.пхп
Цитата:

Да, можно было бы упростить нашу CMS и передавать с помощью переменной $p сразу идентификатор страницы. Но это не совсем удобно. Представим, что нам нужно отобразить страницы разных типов и для каждого типа использовать свое оформление. Или что нам нужно вывести информацию не из базы данных. а из HTML-файла или с другого сервера. Вот в этом случае нам и понадобится переменная $p? которая будет указывать
$p='db'; // вывод страницы из базы данных
$p='file'; // вывод страницы из HTML
$p='server'; // вывод страницы с сервера

Ни в одном скрипте приложенном к движку я не нашел эти строки и не врубаюсь как он вообще определил у себя в скриптах переменную $p
(Добавление)
sKaaкак быть тогда с этой переменной $p?
и не забыл ли автор книги вставить значение в скобки?
11. sKaa - 31 Мая, 2012 - 23:17:49 - перейти к сообщению
Mureo пишет:
Вот в этом случае нам и понадобится переменная $p

Господи, какой бред. Якобы квалифицированный человек рассказывает о переменной $p... Никогда, слышишь? Никогда не делай так! Называй свои переменные так, чтобы сразу было понятно что в ней должно быть иначе ты спустя 2-3 начнешь забывать что там в этой $p хранится..
Mureo пишет:
sKaaкак быть тогда с этой переменной $p?

Ну способ тут один как я понял со слов этого "автора". Хотя его вариант реализации я тоже не одобряю :

c трудом я нашел как автор видит эту самую $p
CODE (html):
скопировать код в буфер обмена
  1. a href=index.php?p=showpage&page

выходит как-то так :
PHP:
скопировать код в буфер обмена
  1.  
  2. $p = (isset($_GET['p'])) ? $_GET['p'] : 'home';
  3.  


Так же в файле index.php найдите строку :
PHP:
скопировать код в буфер обмена
  1. if (!isset($p)) {

И замените ее на :

PHP:
скопировать код в буфер обмена
  1.  
  2. if($p=='home' || $p == '') {
  3.  
12. Mureo - 01 Июня, 2012 - 00:21:20 - перейти к сообщению
sKaa пишет:
Mureo пишет:
Вот в этом случае нам и понадобится переменная $p

Господи, какой бред. Якобы квалифицированный человек рассказывает о переменной $p... Никогда, слышишь? Никогда не делай так! Называй свои переменные так, чтобы сразу было понятно что в ней должно быть иначе ты спустя 2-3 начнешь забывать что там в этой $p хранится..
Mureo пишет:
sKaaкак быть тогда с этой переменной $p?

Ну способ тут один как я понял со слов этого "автора". Хотя его вариант реализации я тоже не одобряю :

c трудом я нашел как автор видит эту самую $p
CODE (html):
скопировать код в буфер обмена
  1. a href=index.php?p=showpage&page

выходит как-то так :
PHP:
скопировать код в буфер обмена
  1.  
  2. $p = (isset($_GET['p'])) ? $_GET['p'] : 'home';
  3.  


Так же в файле index.php найдите строку :
PHP:
скопировать код в буфер обмена
  1. if (!isset($p)) {

И замените ее на :

PHP:
скопировать код в буфер обмена
  1.  
  2. if($p=='home' || $p == '') {
  3.  

БОЛЬШОЕ СПАСИБО ТЕБЕ ЗА СВОЕ УДЕЛЕННОЕ ВРЕМЯ МОЕЙ ТЕМЕ
я кстати поменял твое выражение на то что было там.
Ругается теперь ошибкой
Цитата:

Notice: Undefined variable: p in Z:\home\localhost\www\php\36\index.php on line 28

Notice: Undefined variable: p in Z:\home\localhost\www\php\36\index.php on line 28

))))
13. sKaa - 01 Июня, 2012 - 00:33:20 - перейти к сообщению
Mureo, вот так :

PHP:
скопировать код в буфер обмена
  1. $p = (isset($_GET['p'])) ? $_GET['p'] : 'home';
  2. if($p=='home' || $p == '') {
14. Mureo - 01 Июня, 2012 - 00:40:55 - перейти к сообщению
sKaa пишет:
Mureo, вот так :

PHP:
скопировать код в буфер обмена
  1. $p = (isset($_GET['p'])) ? $_GET['p'] : 'home';
  2. if($p=='home' || $p == '') {

на сей раз php отругался таким образом на изменение в коде )
15. sKaa - 01 Июня, 2012 - 01:11:28 - перейти к сообщению
Mureo, таки пришлось мне скачать приложенные вами исходники и вот, что я там сразу нашел :
.htaccess :
CODE (htmlphp):
скопировать код в буфер обмена
  1. php_flag display_errors on
  2. php_value error_reporting 7
  3. php_flag register_globals on

А это говорит, о том, что код расчитан на включенные register_globals которые выпилены в последних релизах пхп, кстати .htaccess сам присутствует у вас в корневом каталоге сайта?

А ошибки полезли потому-что скрипт продвинулся в работе чуть дальше чем обычно )

Ну попробуйте в самом начале menu.php добавить :
PHP:
скопировать код в буфер обмена
  1. $p = (isset($_GET['p'])) ? $_GET['p'] : 'home';
  2. $menu = '';
  3.  



А еще у вас масса ошибок синтаксиса, вы часто забываете ставить знак $ перед переменной

 

Powered by ExBB FM 1.0 RC1