За последние 24 часа нас посетили 18697 программистов и 1602 робота. Сейчас ищет 951 программист ...

Php в php

Тема в разделе "PHP для новичков", создана пользователем svkarasev, 29 дек 2011.

  1. svkarasev

    svkarasev Активный пользователь

    С нами с:
    4 ноя 2011
    Сообщения:
    43
    Симпатии:
    1
    Всем привет. Подскажите пожалуйста, как в php скрипт (выводит содержимое страницы) вставить другой скрипт (рейтинг)
    Вот скрипты
    1. Вывод страницы
    PHP:
    1.  
    2. <?php
    3. $post=$_SERVER['REQUEST_URI'];
    4. $end=htmlspecialchars($post);
    5. define("HOST","localhost");
    6. define("USER","рололодлджоджл");
    7. define("PASS","орллдолджо");
    8. define("DB","airblog_info");
    9. $link = mysql_connect(HOST,USER,PASS) or die (mysql_error());
    10. mysql_select_db(DB, $link);
    11. mysql_query ("SET NAMES utf8");
    12. $sql = ("SELECT * FROM aviation_news WHERE link LIKE '%$end%'");
    13. $result = mysql_query($sql) or die(mysql_error() ."<br/>". $sql);
    14. while ($row = mysql_fetch_assoc($result))
    15. {
    16. echo '<img src="'.$row['img'].'" >';
    17. echo '<h2>'.$row['title'].'</h2>';
    18. echo'<div class="info"><strong>'.$row['dt'].'</strong></div>'------------------------------------------вставить нужно сюда;
    19. echo '<p>'.$row['news_f'].'</p>';}
    20. ?>
    2.Комментарии

    PHP:
    1. <?php
    2.  
    3. /* Setting the error reporting level */
    4. error_reporting(E_ALL ^ E_NOTICE);
    5. include 'connect.php';
    6.  
    7. if(!$_GET['url'] || !filter_input(INPUT_GET,'url',FILTER_VALIDATE_URL)){
    8.     exit;
    9. }
    10.  
    11. $pageID         = 0;
    12. $appreciated    = 0;
    13. $jsonArray      = array();
    14. $hash           = md5($_GET['url']);
    15. $ip             = sprintf('%u',ip2long($_SERVER['REMOTE_ADDR']));
    16.  
    17.  
    18. $result = $mysqli->query("SELECT id,appreciated FROM aviation_news WHERE hash='".$hash."'");
    19.  
    20. if($result)
    21. {
    22.     list($pageID,$appreciated) = $result->fetch_row(); 
    23. }
    24.  
    25. // The submit parameter denotes that we need to write to the database
    26.  
    27. if($_GET['submit'])
    28. {
    29.     if(!$pageID)
    30.     {  
    31.         // If the page has not been appreciated yet, insert a new
    32.         // record to the database.
    33.    
    34.         $mysqli->query("
    35.             INSERT INTO appreciate_pages
    36.             SET
    37.                 hash='".$hash."',
    38.                 url='".$mysqli->real_escape_string($_GET['url'])."'"
    39.         );
    40.        
    41.         if($mysqli->affected_rows){
    42.  
    43.             // The insert_id property contains the value of
    44.             // the primary key. In our case this is also the pageID.
    45.            
    46.             $pageID = $mysqli->insert_id;
    47.         }
    48.     }
    49.  
    50.     // Write the vote to the DB, so the user can vote only once
    51.    
    52.     $mysqli->query("
    53.         INSERT INTO appreciate_votes
    54.         SET
    55.             ip = ".$ip.",
    56.             pageid = ".$pageID
    57.     );
    58.    
    59.     if($mysqli->affected_rows){
    60.         $mysqli->query("UPDATE appreciate_pages SET appreciated=appreciated+1 WHERE id=".$pageID);
    61.        
    62.         // Increment the appreciated field
    63.     }
    64.    
    65.     $jsonArray = array('status'=>1);
    66. }
    67. else
    68. {
    69.     // Only print the stats
    70.    
    71.     $voted = 0;
    72.    
    73.     // Has the user voted?
    74.     $res = $mysqli->query("SELECT 1 FROM appreciate_votes WHERE ip=".$ip." AND pageid='".$pageID."'");
    75.    
    76.     if($res->num_rows){
    77.         $voted = 1;
    78.     }
    79.    
    80.     $jsonArray = array('status'=>1,'voted'=>$voted,'appreciated'=>$appreciated);
    81. }
    82.  
    83. // Telling the browser to interpret the response as JSON:
    84. header('Content-type: application/json');
    85.  
    86. echo json_encode($jsonArray);
    87.  
    88. ?>
     
  2. Михаил

    Михаил Активный пользователь

    С нами с:
    12 июл 2009
    Сообщения:
    545
    Симпатии:
    0
    Адрес:
    Bielarus
  3. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.559
    Симпатии:
    632
    PHP:
    1. <?
    2. include('script2.php');
     
  4. elagin91

    elagin91 Активный пользователь

    С нами с:
    14 ноя 2011
    Сообщения:
    40
    Симпатии:
    0
    А не создатель темы, но вопрос по теме: А можно не include?
    Например скрипт записан в mysql, можно прочитав его выполнить?
     
  5. alive342

    alive342 Активный пользователь

    С нами с:
    21 апр 2011
    Сообщения:
    137
    Симпатии:
    0
    Адрес:
    Российская Федерация
  6. elagin91

    elagin91 Активный пользователь

    С нами с:
    14 ноя 2011
    Сообщения:
    40
    Симпатии:
    0
    А что нибудь ближе к include?
    Например в базе написано :
    <?php
    echo 123;
    ?><!-- BODY --!>

    Как отобразить на странице 123<!-- BODY --!>

    (То есть выполняет PHP только там где есть '<?php' И '?>')
     
  7. igordata

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

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
  8. elagin91

    elagin91 Активный пользователь

    С нами с:
    14 ноя 2011
    Сообщения:
    40
    Симпатии:
    0
    Мне кажется меня не до поняли.
    Мне нужна функция которая выполняет PHP только в той части кода, где есть PHP

    Например:
    PHP:
    1. <?php
    2. $str = "<?php echo \"Выводим этот текст\"; ?>И это текст";
    3. функция($str);
    4. ?>
     
  9. alive342

    alive342 Активный пользователь

    С нами с:
    21 апр 2011
    Сообщения:
    137
    Симпатии:
    0
    Адрес:
    Российская Федерация
  10. elagin91

    elagin91 Активный пользователь

    С нами с:
    14 ноя 2011
    Сообщения:
    40
    Симпатии:
    0
    alive342
    Вот скажи, я чё непонятно объясняю? или ты недопонимаешь?
    PHP:
    1. <?php
    2. $str = "<?php echo \"Выводим этот текст\"; ?>И это текст";
    3. eval($str);
    4. ?>
    Ошибка:
    Код (Text):
    1. Parse error: syntax error, unexpected '<' in /home/u458829511/public_html/my_site/347.php(3) : eval()'d code on line 1
    текст находящийся в eval весь исполняется как PHP, а мне надо чтобы исполнялась только та часть, которая в PHP!!!!
    чё так трудно понять???
     
  11. Your

    Your Старожил

    С нами с:
    2 июл 2011
    Сообщения:
    4.074
    Симпатии:
    7
    PHP:
    1. <?php
    2.      $str='?><?php echo\'Выводим этот текст\';?> <br /> И этот<?';
    3.      eval($str);
    4. ?>
    Мож, чего не так, просто я не догнал, что надо сделать - то!?
    Чтобы как работало!?
     
  12. toxateam

    toxateam Активный пользователь

    С нами с:
    3 янв 2012
    Сообщения:
    9
    Симпатии:
    0
    Столкнулся с такой проблемой:
    в таблице хранится код:
    Код (Text):
    1. echo "<img src=".$poral_dir."dataimg/banners/alarm-clock.gif>";
    Выводится таким образом:
    получаю содержимое таблицы
    .....
    и в переменной $element['body'] хранится код дальше вывожу:

    Код (Text):
    1. //включить принт в буфер
    2. ob_start();
    3. // Преобразуем в рнр код
    4. eval("\$body=$element[body];");
    5. // получаем содержимое output buffer
    6. $body=ob_get_contents();
    7. ob_clean();
    8. echo $body;
    В результате получаю ошибку:
    Parse error: syntax error, unexpected T_ECHO in Z:\home\cms.ua\www\config\include\functions.inc.php(103) : eval()'d code on line 3

    При добавлении любого кода например:

    Код (Text):
    1. $pusto;
    2. echo "<img src=".$poral_dir."dataimg/banners/alarm-clock.gif>";
    вывод идет нормально. Вопрос что не правильно и как решить?
     
  13. memfiss

    memfiss Активный пользователь

    С нами с:
    14 ноя 2011
    Сообщения:
    19
    Симпатии:
    0
    ну так отдели <? ..?> от остального ленивый ты человек и eval + echo ;
     
  14. toxateam

    toxateam Активный пользователь

    С нами с:
    3 янв 2012
    Сообщения:
    9
    Симпатии:
    0
    Если можно подробней - для чайников
     
  15. Your

    Your Старожил

    С нами с:
    2 июл 2011
    Сообщения:
    4.074
    Симпатии:
    7
    PHP:
    1. <?php
    2. eval("\$body="$element['body']";");
    3. ?>
     
  16. toxateam

    toxateam Активный пользователь

    С нами с:
    3 янв 2012
    Сообщения:
    9
    Симпатии:
    0
    Изменил, результат:
    Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in Z:\home\cms.ua\www\config\include\functions.inc.php on line 102
     
  17. smitt

    smitt Старожил

    С нами с:
    3 янв 2012
    Сообщения:
    3.166
    Симпатии:
    65
    При использовании следующей записи

    eval("\$body=\"$element['body']\";");

    действительно возникают проблемы.

    Это связанно с тем, что пхп парсер не знает как обработать одинарные ковычки 'body'.

    Попробуй скобки {}, должно помочь

    eval("\$body=\"{$element['body']}\";");
     
  18. toxateam

    toxateam Активный пользователь

    С нами с:
    3 янв 2012
    Сообщения:
    9
    Симпатии:
    0
    Решил:
    Код (Text):
    1. ob_start();
    2. eval("\$body = {$element['body']};");
    3. $body=ob_get_contents();
    4. ob_clean();
    5. echo $body;
    Вывод правильно как рнр так и html.
    Всем спасибо.
     
  19. igordata

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

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    Говно какое-то у тебя получилось, брат.
     
  20. toxateam

    toxateam Активный пользователь

    С нами с:
    3 янв 2012
    Сообщения:
    9
    Симпатии:
    0
    Так написать и я могу, а вот дать дельный совет = слабо.
    Я уже убедился сам, что не то что надо.
     
  21. igordata

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

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    Дельный совет: забивай любую новую или забытую функцию в поиск на сайте php.net и читай описание.
    Дельный совет номер два: читай тамже под описанием обсуждение этой функции. Там масса хороших примеров и частенько разобраны баги.
     
  22. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.559
    Симпатии:
    632
    PHP:
    1. <?php
    2. $str = "?><?php echo "Выводим этот текст"; ?>И это текст<?php";
    3. eval($str);
    4. ?>
    по-моему так
     
  23. sobachnik

    sobachnik Старожил

    С нами с:
    20 апр 2007
    Сообщения:
    3.380
    Симпатии:
    13
    Адрес:
    Дмитров, МО
    У меня срабатывает только если с конца строки $str убрать <?php, иначе - синтаксическая ошибка.
    Начальные ?><?php - тоже можно убрать, но только либо убрать и закрывающий и открывающий, либо не убирать ничего.
     
  24. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.559
    Симпатии:
    632
    В эту логику я не врубаюсь. Т.е. в строке может не быть открывающего тега, но где-то в середине может быть закрывающий. При этом выполнение кода продолжится после eval даже в том случае, если в конце строки не будет открывающего.
    Надо заметить, что в обычном php-файле, незакрытый открывающий тег в конце не вызовет ошибки.
    Я вообще в файлах конец кода не закрываю
     
  25. elagin91

    elagin91 Активный пользователь

    С нами с:
    14 ноя 2011
    Сообщения:
    40
    Симпатии:
    0
    Ой да, чё это я, я имею в виду как выполнить этот код:
    PHP:
    1. <?php
    2.  $str = "<?php echo \"Выводим этот текст\"; ?>И это текст";
    3.  eval($str);
    4.  ?>
    Этот код вызывает ошибку, я и спрашиваю как выполнить этот код