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

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Проблема с кодом PHP

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


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

> Описание: Не корректно написанный код...
0legka
Отправлено: 13 Декабря, 2011 - 08:37:04
Post Id



Новичок


Покинул форум
Сообщений всего: 8
Дата рег-ции: Дек. 2011  
Откуда: Вологда


Помог: 0 раз(а)




CODE (htmlphp):
скопировать код в буфер обмена
  1. <!-- выводим три блока для слайдшоу NIVO 1,2,3 </div>)-->
  2.          <?php if ($is_front) {?>
  3.           <div id="nivoleft">
  4.            <?php if ($nivoleft): ?>
  5.            <?php print $nivoleft ?>
  6.            <?php endif; ?>
  7.           </div>
  8.           <div id="nivocenter">
  9.            <?php if ($nivocenter): ?>
  10.            <?php print $nivocenter ?>
  11.            <?php endif; ?>
  12.           </div>
  13.           <div id="nivoright">
  14.            <?php if ($nivoright): ?>
  15.            <?php print $nivoright ?>
  16.            <?php endif; ?>
  17.           </div>
  18.          <?php }  ?>
  19. <!-- Если главная выводим её, иначе - остальное -->
  20.       <?php if ($is_front) {
  21. <!-- ничего лучше не придумал как оставить это место пустым... хотя знал бы PHP засунул бы сюда верхний код -->
  22.         } else { ?>
  23.         <!-- вывод контента -->
  24.         <div id="content">
  25.         <?php print $content ?>
  26.         </div>
  27.             <!-- end #content -->
  28.         <?php }  ?>

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


Отредактировано модератором: Мелкий, 13 Декабря, 2011 - 09:07:35


-----
Если мыслящий существует, то верно и обратное =)
 
 Top
Dezmont
Отправлено: 13 Декабря, 2011 - 08:58:15
Post Id



Частый гость


Покинул форум
Сообщений всего: 245
Дата рег-ции: Июль 2010  


Помог: 1 раз(а)




Ну так делать не стоит, это уж точно. Код вообще не читабельный... =) Блоки РНР лучше не разрывать так часто. Перед своими DIVами поставьте echo. Типа: echo '<div id="nivoleft">';
 
 Top
0legka
Отправлено: 13 Декабря, 2011 - 09:04:01
Post Id



Новичок


Покинул форум
Сообщений всего: 8
Дата рег-ции: Дек. 2011  
Откуда: Вологда


Помог: 0 раз(а)




Dezmont пишет:
Ну так делать не стоит, это уж точно. Код вообще не читабельный... =) Блоки РНР лучше не разрывать так часто. Перед своими DIVами поставьте echo. Типа: echo '<div id="nivoleft">';

Подскажи как перенести верхний if в нижний где if else, у меня проблема чтобы дивы туда засунуть, никак не получается...
а для чего echo писать ?
echo <div id="nivoleft">
ты вот такое написание имел ввиду ?


-----
Если мыслящий существует, то верно и обратное =)
 
 Top
Самогонщик
Отправлено: 13 Декабря, 2011 - 09:06:11
Post Id



Посетитель


Покинул форум
Сообщений всего: 495
Дата рег-ции: Окт. 2011  


Помог: 8 раз(а)




0legka пишет:
echo <div id="nivoleft">
Это не пойми что, а echo '<div id="nivoleft">'; - это вывод строки
(Добавление)
CODE (htmlphp):
скопировать код в буфер обмена
  1. <?PHP if ($is_front) {?>
  2.         <div id="nivoleft">
  3.                 <?PHP echo ($nivoleft)?$nivoleft:''; ?>
  4.         </div>
  5.         <div id="nivocenter">
  6.                 <?PHP echo ($nivocenter)?$nivocenter:''; ?>
  7.         </div>
  8.         <div id="nivoright">
  9.                 <?PHP echo ($nivocenter)?$nivocenter:''; ?>
  10.         </div>
  11. <?PHP } else {  ?>
  12.         <div id="content">
  13.                 <?PHP echo $content ?>
  14.         </div>
  15. <?PHP } ?>

<?PHP echo ($nivocenter)?$nivocenter:''; ?> - такая конструкция мне кажется сомнительно, но кто его знает, что имел введу автор, может нули не хочет выводить Улыбка
 
 Top
0legka
Отправлено: 13 Декабря, 2011 - 09:12:45
Post Id



Новичок


Покинул форум
Сообщений всего: 8
Дата рег-ции: Дек. 2011  
Откуда: Вологда


Помог: 0 раз(а)




Самогонщик пишет:
0legka пишет:
echo <div id="nivoleft">
Это не пойми что, а echo '<div id="nivoleft">'; - это вывод строки

спс я просто только начал с php разбиратся, тяжело по началу, а насчёт IFов подскажешь ?


-----
Если мыслящий существует, то верно и обратное =)
 
 Top
Dezmont
Отправлено: 13 Декабря, 2011 - 09:15:20
Post Id



Частый гость


Покинул форум
Сообщений всего: 245
Дата рег-ции: Июль 2010  


Помог: 1 раз(а)




PHP:
скопировать код в буфер обмена
  1. //Если главная выводим её, иначе - остальное
  2.  
  3. if ($is_front){
  4. //выводим три блока для слайдшоу NIVO 1,2,3 </div>
  5.         echo '<div id="nivoleft">';
  6.         if ($nivoleft):
  7.                 print $nivoleft;
  8.         endif;
  9.         echo '</div>';
  10.         echo '<div id="nivocenter">';
  11.         if ($nivocenter):
  12.                 print $nivocenter;
  13.         endif;
  14.         echo '</div>';
  15.         echo '<div id="nivoright">';
  16.         if ($nivoright):
  17.                 print $nivoright;
  18.         endif;
  19.         echo '</div>';
  20. }
  21. else{
  22. //вывод контента
  23.         echo '<div id="content">';
  24.         print $content;
  25.         echo '</div>';
  26. //end #content
  27. }


Вот так. Так лучше, но всё равно криво, но вам проще разбираться.
Я бы мог Вам посоветовать видокурсы от Specialist, 1-ю и вторую часть... А то у Вас так всё очень надолго затянется.

(Отредактировано автором: 13 Декабря, 2011 - 09:16:58)

 
 Top
0legka
Отправлено: 13 Декабря, 2011 - 09:15:41
Post Id



Новичок


Покинул форум
Сообщений всего: 8
Дата рег-ции: Дек. 2011  
Откуда: Вологда


Помог: 0 раз(а)




Самогонщик пишет:
0legka пишет:
echo <div id="nivoleft">
Это не пойми что, а echo '<div id="nivoleft">'; - это вывод строки
(Добавление)
CODE (htmlphp):
скопировать код в буфер обмена
  1. <?PHP if ($is_front) {?>
  2.         <div id="nivoleft">
  3.                 <?PHP echo ($nivoleft)?$nivoleft:''; ?>
  4.         </div>
  5.         <div id="nivocenter">
  6.                 <?PHP echo ($nivocenter)?$nivocenter:''; ?>
  7.         </div>
  8.         <div id="nivoright">
  9.                 <?PHP echo ($nivocenter)?$nivocenter:''; ?>
  10.         </div>
  11. <?PHP } else {  ?>
  12.         <div id="content">
  13.                 <?PHP echo $content ?>
  14.         </div>
  15. <?PHP } ?>

<?PHP echo ($nivocenter)?$nivocenter:''; ?> - такая конструкция мне кажется сомнительно, но кто его знает, что имел введу автор, может нули не хочет выводить Улыбка

Спасибо тебе огромное... вот оно как всё просто, а я вчера голову сломал ...=)))
(Добавление)
Спасибо ребята !!!!! класный форум!!!!!!!!
(Добавление)
Dezmont пишет:
PHP:
скопировать код в буфер обмена
  1. //Если главная выводим её, иначе - остальное
  2.  
  3. if ($is_front){
  4. //выводим три блока для слайдшоу NIVO 1,2,3 </div>
  5.         echo '<div id="nivoleft">';
  6.         if ($nivoleft):
  7.                 print $nivoleft;
  8.         endif;
  9.         echo '</div>';
  10.         echo '<div id="nivocenter">';
  11.         if ($nivocenter):
  12.                 print $nivocenter;
  13.         endif;
  14.         echo '</div>';
  15.         echo '<div id="nivoright">';
  16.         if ($nivoright):
  17.                 print $nivoright;
  18.         endif;
  19.         echo '</div>';
  20. }
  21. else{
  22. //вывод контента
  23.         echo '<div id="content">';
  24.         print $content;
  25.         echo '</div>';
  26. //end #content
  27. }


Вот так. Так лучше, но всё равно криво, но вам проще разбираться.
Я бы мог Вам посоветовать видокурсы от Specialist, 1-ю и вторую часть... А то у Вас так всё очень надолго затянется.

Спасибо, ссылку на курсы дай пожалуйста, а то я так действительно долго буду такие вопросы задавать =))))


-----
Если мыслящий существует, то верно и обратное =)
 
 Top
Dezmont
Отправлено: 13 Декабря, 2011 - 09:40:18
Post Id



Частый гость


Покинул форум
Сообщений всего: 245
Дата рег-ции: Июль 2010  


Помог: 1 раз(а)




Тут например: Видеокурсы.
Но лучше тут, тут именно РНР. Качайте первую и вторую часть для начала: Основы создания сайтов

(Отредактировано автором: 13 Декабря, 2011 - 09:42:40)

 
 Top
0legka
Отправлено: 13 Декабря, 2011 - 09:45:18
Post Id



Новичок


Покинул форум
Сообщений всего: 8
Дата рег-ции: Дек. 2011  
Откуда: Вологда


Помог: 0 раз(а)




Dezmont пишет:
Тут например: Видеокурсы.
Но лучше тут, тут именно РНР. Качайте первую и вторую часть для начала: Основы создания сайтов

ок, палез учится =)))
спасиб
(Добавление)
0legka пишет:
Dezmont пишет:
Тут например: Видеокурсы.
Но лучше тут, тут именно РНР. Качайте первую и вторую часть для начала: Основы создания сайтов

ок, палез учится =)))
спасиб

хм.... попробовал по аналогии засунуть внутрь IFa таблицу
PHP:
скопировать код в буфер обмена
  1. <?PHP if ($is_front) {
  2.           echo '<div id="table3">'
  3.           //<!-- Ниже идёт таблица в которой помещены три фронтальных слайдера в центре и рядом -->
  4.           echo '<center>'
  5.           echo '<table>' //<!--width="1000" таблица -->
  6.             echo '<tr>' //<!-- строка -->
  7.               echo '<td >' //<!-- первая ячейка-->
  8.               echo '<div id="nivoleft">'
  9.                 if ($nivoleft):
  10.                   print $nivoleft;
  11.                 endif;

выдаёт следующую ошибку Parse error: syntax error, unexpected T_PRINT, expecting ',' or ';' in G:\home\localhost\www\Drupal\sites\all\themes\splendid\page.tpl.php on line 137 нельзя таким образом таблицу делать ?


-----
Если мыслящий существует, то верно и обратное =)
 
 Top
Panoptik
Отправлено: 13 Декабря, 2011 - 10:53:37
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2493
Дата рег-ции: Нояб. 2011  
Откуда: Одесса, Украина


Помог: 131 раз(а)




echo '<div id="nivoleft">' точку с запятой пропустили после этого
(Добавление)
и вообще после каждого print или echo и каждого оператора, кроме ифов и циклов нужно ставить точку с запятой !


-----
Just do it
 
 Top
0legka
Отправлено: 13 Декабря, 2011 - 11:00:26
Post Id



Новичок


Покинул форум
Сообщений всего: 8
Дата рег-ции: Дек. 2011  
Откуда: Вологда


Помог: 0 раз(а)




Panoptik пишет:
echo '<div id="nivoleft">' точку с запятой пропустили после этого
(Добавление)
и вообще после каждого print или echo и каждого оператора, кроме ифов и циклов нужно ставить точку с запятой !

спасиб, именно тут крылся корень всех бед =))))))))) однако вместо 3 слайдеров у меня теперь получилось сразу 6.... ( может они как то не правильно обрабатываются компилятором ? причём три именно там где нужно, т.е. именно в горизонтальной таблице, а три вначале и расположены вертикально один под другим.... Не понял

(Отредактировано автором: 13 Декабря, 2011 - 11:23:55)



-----
Если мыслящий существует, то верно и обратное =)
 
 Top
0legka
Отправлено: 13 Декабря, 2011 - 14:05:51
Post Id



Новичок


Покинул форум
Сообщений всего: 8
Дата рег-ции: Дек. 2011  
Откуда: Вологда


Помог: 0 раз(а)




Положение спасла вот такая конструкция, как советовал Самогонщик
PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP if ($is_front) {?>
  3. ----------контент-----------
  4. <?PHP } else {  ?>
  5. ----------контент-----------
  6. <?PHP } ?>
  7.  


-----
Если мыслящий существует, то верно и обратное =)
 
 Top
velidan
Отправлено: 13 Декабря, 2011 - 16:30:54
Post Id


Новичок


Покинул форум
Сообщений всего: 17
Дата рег-ции: Февр. 2011  
Откуда: Украина, Черновцы


Помог: 0 раз(а)




Доброго времени суток. Столкнулся с одной неувязкой.
При запуске вот этого скрипта:
PHP:
скопировать код в буфер обмена
  1.  
  2. function parse_title ($value) {
  3.     $content = file_get_contents($value) ;
  4.     return $content ;
  5. }    
  6.  
  7. if($_POST) {
  8.    
  9. $url = $_POST['url'] ;
  10. echo $url ;                       //сделал для того чтобы увидеть или вытащился url
  11.  
  12. parse_title($url) ;
  13. echo $content ;
  14. }
  15.  

выводит ошибку о неправильном аргументе переданном file_get_contents. (хотя, как показывает < echo $url ; > все корректно сработало, вытащилась урл-шка из Поста).
Пробовал передать значение функции через & (по ссылке) - вычитал в функциях что таким образом она сможет изменять значение это, но не сработало (насколько я понимаю, дело совсем не в этом)

Получается что ф-ция не видит саму переменную $url (как такое может быть?).
Заранее спасибо за помощь.
 
 Top
Panoptik
Отправлено: 13 Декабря, 2011 - 17:01:24
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2493
Дата рег-ции: Нояб. 2011  
Откуда: Одесса, Украина


Помог: 131 раз(а)




velidan пишет:
parse_title($url) ;
echo $content ;

вы возвращаете значение из функции в никуда, а потом выводите пустую переменную.
дело решается простым присваиванием результата функции:
PHP:
скопировать код в буфер обмена
  1.  
  2. $content = parse_title($url) ;
  3. echo $content ;
  4.  


переменная внутри функции является локальной и не видна вне ее, поэтому не стоит надеяться что если вы назвали переменную так же то она получит какоето значение после выполнения функции. Почитайте про область видимости переменных на досуге


-----
Just do it
 
 Top
velidan
Отправлено: 13 Декабря, 2011 - 19:22:41
Post Id


Новичок


Покинул форум
Сообщений всего: 17
Дата рег-ции: Февр. 2011  
Откуда: Украина, Черновцы


Помог: 0 раз(а)




Понятно, спасибо большое. Обязательно прочту (хотя и читал уже, правда для меня это дело осталось не слишком осветленным).
Можно было сделать её глобальной, что-т упустил этот момент.

Но, как бы там ни было, проблема осталась прежней, так как не хочет передаваться аргумент функции file_get_contents.

Warning: file_get_contents("http://php.su/") [function.file-get-contents]: failed to open stream: Invalid argument in.....

Переменную $url что внутри оператора if видно вне его области. Но, почему-то, не передается значение функции.

(Отредактировано автором: 13 Декабря, 2011 - 19:40:04)

 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB