За последние 24 часа нас посетили 21585 программистов и 1264 робота. Сейчас ищут 727 программистов ...

Трудности при вставке php-кода при помощи функции include

Тема в разделе "PHP и базы данных", создана пользователем Torawhite, 5 янв 2015.

  1. Torawhite

    Torawhite Новичок

    С нами с:
    5 янв 2015
    Сообщения:
    7
    Симпатии:
    0
    Здравствуйте! Столкнулся с такой проблемой - не работает код, если часть кода, отвечающую за подключение к базе данных убрать в отдельный блок и подключать через include.
    Так работает:
    Код (Text):
    1. <?php
    2.     try {
    3.             $pdo = new PDO("mysql:host=mysql87.1gb.ru; dbname=gb_tw_mag", "xxx", "xxx");
    4.             $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    5.         }
    6.             catch (PDOException $e) {
    7.             echo "<p>Запрос на выборку данных из бызы не прошёл. Напишите об этом администратору <a href='mailto:admin@torawhite.ru'>admin@torawhite.ru</a>.</p><br>ERROR: " . $e->getMessage();
    8.             exit;
    9.         }
    10. ?>
    11. <!doctype html>
    12. <html>
    13. <head>
    14. <meta charset="utf-8">
    15. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    16. <meta name="description" content="">
    17. <meta name="keywords" content="">
    18. <title>Стиль | Журнал | Torawhite.ru | Store & Magazine</title>
    19.     <?php
    20.         include ("http://www.torawhite.ru/blocks/favicon.php");
    21.     ?>
    22. <!--Таблицы стилей-->
    23. <link rel="stylesheet" type="text/css" href="http://www.torawhite.ru/css/reset.css">
    24. <link rel="stylesheet" type="text/css" href="http://www.torawhite.ru/css/input_reset.css">
    25. <link rel="stylesheet" type="text/css" href="http://www.torawhite.ru/css/main.css">
    26. <link rel="stylesheet" type="text/css" href="http://www.torawhite.ru/css/fonts.css">
    27. <link rel="stylesheet" type="text/css" href="http://www.torawhite.ru/css/header.css">
    28. <link rel="stylesheet" type="text/css" href="http://www.torawhite.ru/magazine/magazine_css/magazine_left_sidebar.css">
    29. <link rel="stylesheet" type="text/css" href="http://www.torawhite.ru/magazine/magazine_css/article_block_box.css">
    30. <link rel="stylesheet" type="text/css" href="http://www.torawhite.ru/magazine/article/article_block.css">
    31. <link rel="stylesheet" type="text/css" href="http://www.torawhite.ru/magazine/magazine_css/magazine_right_sidebar.css">
    32. <link rel="stylesheet" type="text/css" href="http://www.torawhite.ru/css/top_nav.css">
    33. <link rel="stylesheet" type="text/css" href="http://www.torawhite.ru/css/bottom_nav.css">
    34. <link rel="stylesheet" type="text/css" href="http://www.torawhite.ru/css/footer.css">
    35.     <?php
    36.         include ("http://www.torawhite.ru/magazine//magazine_blocks/magazine_scripts_head.php");
    37.     ?>
    38. </head>
    39. <body>
    40.     <div class="wrapper">
    41.         <?php
    42.             include ("http://www.torawhite.ru/blocks/header.php");
    43.             include ("http://www.torawhite.ru/blocks/top_nav.php");
    44.         ?>
    45.         <div class="container">
    46.             <?php
    47.                 include ("http://www.torawhite.ru/magazine/magazine_blocks/magazine_left_sidebar.php");
    48.             ?>
    49.             <div class='article_block_box'>
    50.                 <?php
    51.                     $data = $pdo->prepare("SELECT link, title, article_img, description, article_date, author, author_link FROM male_article WHERE cat='1' ORDER BY id DESC");
    52.                     $data->execute(array('cat'=>1));
    53.                     $row = $data->fetch();
    54.                     do {
    55.                         printf("
    56.                             <div class='article_block'>
    57.                                 <div class='article_block_image'><a href='%s' target='_self' title='%s'></a></div>
    58.                                 <div class='article_block_name'>
    59.                                     <p><span class='article_block_name_top'><a href='%s' target='_self'>%s</a></span></p>
    60.                                     <p ><span class='article_block_name_date'>%s | </span><span class='article_block_author'><a href='%s' target='_self'>%s</a></span></p>
    61.                                 </div>
    62.                                 <div class='article_block_text'>
    63.                                     %s
    64.                                 </div>
    65.                                 <div class='article_block_full_story'>
    66.                                     <a href='%s' target='_self'>Читать полностью</a>
    67.                                 </div>
    68.                             </div>", $row["article_img"],$row["title"],$row["link"],$row["title"],$row["article_date"],$row["author_link"],$row["author"],$row["description"],$row["link"]);
    69.                         }
    70.  
    71.                     while ($row = $data->fetch());
    72.                 ?>
    73.             </div>
    74.             <?php  
    75.                 include ("http://www.torawhite.ru/magazine/magazine_blocks/magazine_right_sidebar.php");
    76.             ?>
    77.         <div class="clear"></div>  
    78.         </div>
    79.         <?php
    80.             include ("http://www.torawhite.ru/blocks/bottom_nav.php");
    81.             include ("http://www.torawhite.ru/blocks/footer.php");
    82.         ?>
    83.     </div>
    84. <?php
    85.     include ("http://www.torawhite.ru/blocks/scripts_body.php");
    86. ?>
    87. </body>
    88. </html>
    Так не работает:

    Код (Text):
    1. <?php
    2.     include ("http://www.torawhite.ru/blocks/gb_tw_mag.php");
    3. ?>
    4. <!doctype html>
    5. <html>
    6. <head>
    7. <meta charset="utf-8">
    8. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    9. <meta name="description" content="">
    10. <meta name="keywords" content="">
    11. <title>Стиль | Журнал | Torawhite.ru | Store & Magazine</title>
    12.     <?php
    13.         include ("http://www.torawhite.ru/blocks/favicon.php");
    14.     ?>
    15. <!--Таблицы стилей-->
    16. <link rel="stylesheet" type="text/css" href="http://www.torawhite.ru/css/reset.css">
    17. <link rel="stylesheet" type="text/css" href="http://www.torawhite.ru/css/input_reset.css">
    18. <link rel="stylesheet" type="text/css" href="http://www.torawhite.ru/css/main.css">
    19. <link rel="stylesheet" type="text/css" href="http://www.torawhite.ru/css/fonts.css">
    20. <link rel="stylesheet" type="text/css" href="http://www.torawhite.ru/css/header.css">
    21. <link rel="stylesheet" type="text/css" href="http://www.torawhite.ru/magazine/magazine_css/magazine_left_sidebar.css">
    22. <link rel="stylesheet" type="text/css" href="http://www.torawhite.ru/magazine/magazine_css/article_block_box.css">
    23. <link rel="stylesheet" type="text/css" href="http://www.torawhite.ru/magazine/article/article_block.css">
    24. <link rel="stylesheet" type="text/css" href="http://www.torawhite.ru/magazine/magazine_css/magazine_right_sidebar.css">
    25. <link rel="stylesheet" type="text/css" href="http://www.torawhite.ru/css/top_nav.css">
    26. <link rel="stylesheet" type="text/css" href="http://www.torawhite.ru/css/bottom_nav.css">
    27. <link rel="stylesheet" type="text/css" href="http://www.torawhite.ru/css/footer.css">
    28.     <?php
    29.         include ("http://www.torawhite.ru/magazine//magazine_blocks/magazine_scripts_head.php");
    30.     ?>
    31. </head>
    32. <body>
    33.     <div class="wrapper">
    34.         <?php
    35.             include ("http://www.torawhite.ru/blocks/header.php");
    36.             include ("http://www.torawhite.ru/blocks/top_nav.php");
    37.         ?>
    38.         <div class="container">
    39.             <?php
    40.                 include ("http://www.torawhite.ru/magazine/magazine_blocks/magazine_left_sidebar.php");
    41.             ?>
    42.             <div class='article_block_box'>
    43.                 <?php
    44.                     $data = $pdo->prepare("SELECT link, title, article_img, description, article_date, author, author_link FROM male_article WHERE cat='1' ORDER BY id DESC");
    45.                     $data->execute(array('cat'=>1));
    46.                     $row = $data->fetch();
    47.                     do {
    48.                         printf("
    49.                             <div class='article_block'>
    50.                                 <div class='article_block_image'><a href='%s' target='_self' title='%s'></a></div>
    51.                                 <div class='article_block_name'>
    52.                                     <p><span class='article_block_name_top'><a href='%s' target='_self'>%s</a></span></p>
    53.                                     <p ><span class='article_block_name_date'>%s | </span><span class='article_block_author'><a href='%s' target='_self'>%s</a></span></p>
    54.                                 </div>
    55.                                 <div class='article_block_text'>
    56.                                     %s
    57.                                 </div>
    58.                                 <div class='article_block_full_story'>
    59.                                     <a href='%s' target='_self'>Читать полностью</a>
    60.                                 </div>
    61.                             </div>", $row["article_img"],$row["title"],$row["link"],$row["title"],$row["article_date"],$row["author_link"],$row["author"],$row["description"],$row["link"]);
    62.                         }
    63.  
    64.                     while ($row = $data->fetch());
    65.                 ?>
    66.             </div>
    67.             <?php  
    68.                 include ("http://www.torawhite.ru/magazine/magazine_blocks/magazine_right_sidebar.php");
    69.             ?>
    70.         <div class="clear"></div>  
    71.         </div>
    72.         <?php
    73.             include ("http://www.torawhite.ru/blocks/bottom_nav.php");
    74.             include ("http://www.torawhite.ru/blocks/footer.php");
    75.         ?>
    76.     </div>
    77. <?php
    78.     include ("http://www.torawhite.ru/blocks/scripts_body.php");
    79. ?>
    80. </body>
    81. </html>
    Содержание gb_tw_mag.php :

    Код (Text):
    1. <?php
    2.     try {
    3.             $pdo = new PDO("mysql:host=mysql87.1gb.ru; dbname=gb_tw_mag", "xxx", "xxx");
    4.             $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    5.         }
    6.             catch (PDOException $e) {
    7.             echo "<p>Запрос на выборку данных из бызы не прошёл. Напишите об этом администратору <a href='mailto:admin@torawhite.ru'>admin@torawhite.ru</a>.</p><br>ERROR: " . $e->getMessage();
    8.             exit;
    9.         }
    10. ?>
    Выдаёт ошибку в строке: $data = $pdo->prepare("SELECT link, title, article_img, description, article_date, author, author_link FROM male_article WHERE cat='1' ORDER BY id DESC");

    Сама ошибка: Fatal error: Call to a member function prepare() on a non-object in /home/virtwww/w_torawhite-ru_404794df/http/magazine/male_articles/style/index.php on line 44
     
  2. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    Re: Трудности при вставке php-кода при помощи функции includ

    ого. инклюд через http. это кто вам такое написал?
     
  3. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.410
    Симпатии:
    1.768
    Re: Трудности при вставке php-кода при помощи функции includ

    он сам. поэтому и не работает.
     
  4. Torawhite

    Torawhite Новичок

    С нами с:
    5 янв 2015
    Сообщения:
    7
    Симпатии:
    0
    Re: Трудности при вставке php-кода при помощи функции includ

    Сам писал. Там куча блоков подключается, помимо этого и все подключаются, кроме того, который отвечает за подключение к базе
    Если убрать http выдаёт ошибку функции include

    Добавлено спустя 3 минуты 40 секунд:
    Re: Трудности при вставке php-кода при помощи функции include
    Даже здесь пишут через http http://www.php.su/include
     
  5. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    Re: Трудности при вставке php-кода при помощи функции includ

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

    Torawhite Новичок

    С нами с:
    5 янв 2015
    Сообщения:
    7
    Симпатии:
    0
    Re: Трудности при вставке php-кода при помощи функции includ

    Тогда смысл подключения, если придётся плодить этот блок к каждой странице, где есть запрос к базе данных? А их могут быть сотни
     
  7. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    Re: Трудности при вставке php-кода при помощи функции includ

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

    Torawhite Новичок

    С нами с:
    5 янв 2015
    Сообщения:
    7
    Симпатии:
    0
    Re: Трудности при вставке php-кода при помощи функции includ

    Вы меня извините, пожалуйста, я начинающий в php, слег профессиональный я не особо понимаю. Если можете, то объясните, пожалуйста, более доступно. Если Вы про блоки, которые я вставляю, то чтобы они подключались автоматически и при желании можно было в них что-то изменить и не переписывать весь сайт, так же, как и с подключением к базе данных
     
  9. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    Re: Трудности при вставке php-кода при помощи функции includ

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

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.410
    Симпатии:
    1.768
    Re: Трудности при вставке php-кода при помощи функции includ

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

    Добавлено спустя 1 минуту 25 секунд:
    Re: Трудности при вставке php-кода при помощи функции include
    Расскажи подробно. Ничерта не понятно.

    Это тот сайт, на котором ты подключать пытаешься, или другой?
     
  11. Torawhite

    Torawhite Новичок

    С нами с:
    5 янв 2015
    Сообщения:
    7
    Симпатии:
    0
    Re: Трудности при вставке php-кода при помощи функции includ

    Спасибо Вам, помогли разобраться. igordata, да, это тот сайт. Два способа подключить:
    1. Скинуть блок в корень сайта и подключить локально: include '../../../gb_tw_mag.php';
    2. Второй способ с помощью суперглобального массива $_SERVER:
    $root = $_SERVER['DOCUMENT_ROOT'];
    include ($root . "/blocks/gb_tw_mag.php");