За последние 24 часа нас посетили 22129 программистов и 1127 роботов. Сейчас ищут 799 программистов ...

Не работает API на сервере

Тема в разделе "Прочие вопросы по PHP", создана пользователем azkaban, 25 сен 2017.

  1. azkaban

    azkaban Новичок

    С нами с:
    9 апр 2017
    Сообщения:
    12
    Симпатии:
    0
    Здравствуйте, помогите с одним вопросом. Сделали API для сайта и возникла проблема, когда запускаешь скрипт и с базы берет более 1000 значений, становится белый экран, так же с русскими символами проблема, вместо них просто знаки вопроса В логи смотрели, ошибки в PHP выводили, все нормально, никаких ошибок нету. Попробовали в БД изменить кодировку не помогло. В чем может быть проблема?
    Так же запустил на домашнем ПК с помощью OpenServer, показывает более 1000 значений, но остается проблема с русскими символами.
     
  2. romach

    romach Старожил

    С нами с:
    26 окт 2013
    Сообщения:
    2.904
    Симпатии:
    719
    Покрасьте экран в черный!

    p.s. логи? код?
     
    xaker01 нравится это.
  3. azkaban

    azkaban Новичок

    С нами с:
    9 апр 2017
    Сообщения:
    12
    Симпатии:
    0
    логи чистые.
    Код:
    Код (Text):
    1. <?php
    2. ini_set('error_reporting', E_ALL);
    3. ini_set('display_errors', 1);
    4. ini_set('display_startup_errors', 1);
    5.  
    6. include_once("settings.php");
    7. include_once("db_" . $dbtype . ".php");
    8.  
    9. if (!isset($_GET['mode'])) {
    10.     $_GET['mode'] = "main";
    11. }
    12.  
    13. if ($_GET['mode'] == "main") {
    14.     header("Content-type: text/html; charset=utf-8");
    15.     echo "<html><head><title>ollhd.com Api information</title></head><body>";
    16.     echo "<h1>site.com Api information</h1>";
    17.     echo "<big><big>Videolist:</big></big><br /><b><a href=http://{$_SERVER['HTTP_HOST']}{$_SERVER['REQUEST_URI']}?mode=list&token= target=_blank>http://{$_SERVER['HTTP_HOST']}{$_SERVER['REQUEST_URI']}?mode=list&token=[your_api_token]</a> , mode=GET , answer: application/json; charset=utf-8<br />";
    18.     echo "<i><span style=color:red;>!IMPORTANT!</span> POST param: <b>token</b> - Your api token</i><br />";
    19.     echo "<br />";
    20.     echo "&copy; 2017 API site.com v1.0";
    21.     echo "</body></html>";
    22. }
    23. if ($_GET['mode'] == "list" and isset($_GET['token'])) {
    24.     if ($_GET['token'] !== $api_key) {
    25.         header("Content-type: text/html; charset=utf-8");
    26.         die("Invalid token");
    27.     }
    28.     header("Content-type: application/json; charset=utf-8");
    29.  
    30.     $videosdb = BiQuery1("*", "vs_news", array(array("news_id", 0, ">")), "news_id", "DESC", "{$news_limit}");
    31.     $m = null;
    32.    
    33.     while($r = mysqli_fetch_object($videosdb))
    34.     {
    35.         $tsize = explode("x", $r->file_dimensions);
    36.  
    37.         $tagsdb = BiQuery1("*", "vs_tags_news", array(array("news_id", $r->news_id)));
    38.         $texttags = "";
    39.         while($r2 = mysqli_fetch_object($tagsdb)) {
    40.             if (strlen($texttags) > 0) {
    41.                 $texttags .= ", ";
    42.             }
    43.             $tagdb = BiQuery1("*", "vs_tags", array(array("tag_id", $r2->tag_id)));
    44.             $r3 = mysqli_fetch_object($tagdb);
    45.             $texttags .= $r3->tag;
    46.         }
    47.         $categoriesdb = BiQuery1("*", "vs_categories_news", array(array("news_id", $r->news_id)));
    48.         $textcategories = "";
    49.         while ($r2 = mysqli_fetch_object($categoriesdb)) {
    50.             if (strlen($textcategories) > 0) {
    51.                 $textcategories .= ", ";
    52.             }
    53.             $categoriesdb2 = BiQuery1("*", "vs_categories", array(array("category_id", $r2->category_id)));
    54.             $r3 = mysqli_fetch_object($categoriesdb2);
    55.             $textcategories .= $r3->dir;
    56.         }
    57.         $contentdb = BiQuery1("*", "vs_content_sources", array(array("content_source_id", $r->content_source_id)));
    58.         $textcontent = "";
    59.         while ($r2 = mysqli_fetch_object($contentdb)) {
    60.             if (strlen($textcontent) > 0) {
    61.                 $textcontent .= ", ";
    62.             }
    63.             $contentdb2 = BiQuery1("*", "vs_content_sources", array(array("content_source_id", $r2->content_source_id)));
    64.             $r3 = mysqli_fetch_object($contentdb2);
    65.             $textcontent .= $r2->title;
    66.         }
    67.         $m[] = array(
    68.             "id" => $r->news_id,
    69.             "title" => $r->title,
    70.             "content" => $textcontent,
    71.             "category" => $textcategories,
    72.             "tag" => $texttags,
    73.             "duration" => $r->duration,
    74.         );
    75.     }
    76.    
    77.  
    78.     echo json_encode($m);
    79.  
    80. }
    81.  
    82. ?>
    Код (Text):
    1. <?php
    2.  
    3. $dbtype = "mysql";
    4. $db_connect_host = "localhost";
    5. $db_connect_name = "user";
    6. $db_connect_pass = "pass";
    7. $db_name = "name";
    8. $api_key = "dawdawfsfefawa";
    9. $video_limit = 80;
    10. $startvidesiteourl = "http://www.site.com/";
    11.  
    12. ?>
    --- Добавлено ---
    Код (Text):
    1.  
    2. <?php
    3. function BiQuery($query)
    4. {
    5.     global $showjserror;
    6.     global $query_count;
    7.     global $query_time;
    8.     global $langt;
    9.     $query_count++;
    10.     global $dblink;
    11.     $result = mysqli_query($dblink, $query);
    12.     return $result;
    13. }
    14. function BiDBResCount($link, $what = 1)
    15. {
    16.     $result = 0;
    17.     if ($link) {
    18.         if ($what == 1) {
    19.             $result = mysqli_num_rows($link);
    20.         } else {
    21.             $result = mysqli_num_fields($link);
    22.         }
    23.     }
    24.     return $result;
    25. }
    26. function BiDBResult($link, $row, $field)
    27. {
    28.     $result = "";
    29.     if ($link) {
    30.         $result = mysqli_result($link, $row, $field);
    31.     }
    32.     return $result;
    33. }
    34. function BiQueryWhere($where)
    35. {
    36.     $query = "";
    37.     if ($where !== "") {
    38.         $query = $query . " WHERE ";
    39.         if (isset($where[0][0])) {
    40.             for ($i = 0; $i < sizeof($where); $i++) {
    41.                 if (!isset($where[$i][1])) {
    42.                     $query = $query . " " . $where[$i][0] . " ";
    43.                 } else {
    44.                     $query = $query . " `" . addslashes($where[$i][0]) . "`";
    45.                     if (isset($where[$i][2])) {
    46.                         $query = $query . $where[$i][2];
    47.                     } else {
    48.                         $query = $query . "=";
    49.                     }
    50.                     $query = $query . "'" . addslashes($where[$i][1]) . "' ";
    51.                     if ($i < sizeof($where) - 1) {
    52.                         if (isset($where[$i + 1][1])) {
    53.                             $query = $query . " AND ";
    54.                         }
    55.                     }
    56.                 }
    57.             }
    58.         } else {
    59.             $query = $query . $where . " ";
    60.         }
    61.     }
    62.     return $query;
    63. }
    64. function BiQuery1($sel, $table, $where = "", $order = "", $order1 = "", $limit = "")
    65. {
    66.     $query = "SELECT " . $sel . " FROM `" . $table . "` " . BiQueryWhere($where);
    67.     if ($order !== "") {
    68.         $query = $query . " ORDER by " . $order . " " . $order1 . " ";
    69.     }
    70.     if ($limit !== "") {
    71.         $query = $query . " LIMIT " . $limit . "  ";
    72.     }
    73.     $query = $query . " ;";
    74.     return BiQuery($query);
    75. }
    76. function BiQueryTableAdd($table, $rows)
    77. {
    78.     $rows2 = "";
    79.     $key = "";
    80.     for ($i = 0; $i < sizeof($rows); $i++) {
    81.         $temp = " `" . $rows[$i][0] . "` ";
    82.         if ($rows[$i][1] == "int") {
    83.             $temp = $temp . " int(" . $rows[$i][2] . ") ";
    84.         }
    85.         if ($rows[$i][1] == "varchar") {
    86.             $temp = $temp . " varchar(" . $rows[$i][2] . ") ";
    87.         }
    88.         if ($rows[$i][1] == "text") {
    89.             $temp = $temp . " text ";
    90.         }
    91.         if ($rows[$i][1] == "mediumtext") {
    92.             $temp = $temp . " mediumtext ";
    93.         }
    94.         if ($rows[$i][3] !== "!-") {
    95.             $temp = $temp . " NOT NULL default '" . addslashes($rows[$i][3]) . "' ";
    96.         }
    97.         if (isset($rows[$i][4])) {
    98.             $temp = $temp . " NOT NULL auto_increment ";
    99.             $key = $rows[$i][0];
    100.         }
    101.         $rows2 = $rows2 . "" . $temp . "";
    102.         if ($i < sizeof($rows) - 1) {
    103.             $rows2 = $rows2 . " , ";
    104.         }
    105.     }
    106.     if ($key !== "") {
    107.         $rows2 = $rows2 . " , KEY `" . $key . "` (`" . $key . "`) ";
    108.     }
    109.     $query = "CREATE TABLE `" . $table . "` ( " . $rows2 . " )  ENGINE=MyISAM;";
    110.     return BiQuery($query);
    111. }
    --- Добавлено ---
    Код (Text):
    1.  
    2. function BiQueryTableFields($table, $rows)
    3. {
    4.     global $dblink;
    5.     global $db_name;
    6.     $fields = mysqli_list_fields($db_name, $table, $dblink);
    7.     for ($i = 0; $i < mysqli_num_fields($fields); $i++) {
    8.         $tmas[mysqli_field_name($fields, $i)] = mysqli_field_type($fields, $i);
    9.     }
    10.     for ($i = 0; $i < sizeof($rows); $i++) {
    11.         if (!isset($tmas[$rows[$i][0]])) {
    12.             $temp = " `" . $rows[$i][0] . "` ";
    13.             if ($rows[$i][1] == "int") {
    14.                 $temp = $temp . " int(" . $rows[$i][2] . ") ";
    15.             }
    16.             if ($rows[$i][1] == "varchar") {
    17.                 $temp = $temp . " varchar(" . $rows[$i][2] . ") ";
    18.             }
    19.             if ($rows[$i][1] == "text") {
    20.                 $temp = $temp . " text ";
    21.             }
    22.             if ($rows[$i][1] == "mediumtext") {
    23.                 $temp = $temp . " mediumtext ";
    24.             }
    25.             if ($rows[$i][3] !== "!-") {
    26.                 $temp = $temp . " NOT NULL default '" . addslashes($rows[$i][3]) . "' ";
    27.             }
    28.             if (isset($rows[$i][4])) {
    29.                 $temp = $temp . " NOT NULL auto_increment PRIMARY KEY FIRST ";
    30.             }
    31.             BiQuery("ALTER TABLE `" . $table . "` ADD " . $temp . " ;");
    32.         } else {
    33.             $temp = "";
    34.             if ($rows[$i][1] == "int") {
    35.                 $temp = $temp . "int";
    36.             }
    37.             if ($rows[$i][1] == "varchar") {
    38.                 $temp = $temp . "varchar";
    39.             }
    40.             if ($rows[$i][1] == "text") {
    41.                 $temp = $temp . "text";
    42.             }
    43.             if ($rows[$i][1] == "mediumtext") {
    44.                 $temp = $temp . "mediumtext";
    45.             }
    46.             if ($tmas[$rows[$i][0]] !== $temp) {
    47.                 $temp = " `" . $rows[$i][0] . "` `" . $rows[$i][0] . "` ";
    48.                 if ($rows[$i][1] == "int") {
    49.                     $temp = $temp . " int(" . $rows[$i][2] . ") ";
    50.                 }
    51.                 if ($rows[$i][1] == "varchar") {
    52.                     $temp = $temp . " varchar(" . $rows[$i][2] . ") ";
    53.                 }
    54.                 if ($rows[$i][1] == "text") {
    55.                     $temp = $temp . " text ";
    56.                 }
    57.                 if ($rows[$i][1] == "mediumtext") {
    58.                     $temp = $temp . " mediumtext ";
    59.                 }
    60.                 if ($rows[$i][3] !== "!-") {
    61.                     $temp = $temp . " NOT NULL default '" . addslashes($rows[$i][3]) . "' ";
    62.                 }
    63.                 if (isset($rows[$i][4])) {
    64.                     $temp = $temp . " NOT NULL auto_increment PRIMARY KEY FIRST ";
    65.                 }
    66.                 BiQuery("ALTER TABLE `" . $table . "` CHANGE " . $temp . " ;");
    67.             }
    68.         }
    69.     }
    70. }
     
  4. romach

    romach Старожил

    С нами с:
    26 окт 2013
    Сообщения:
    2.904
    Симпатии:
    719
    Значит нет ошибок. Потому что всё так или иначе пишется в логи

    Логи php? php-fpm? nginx? apache? syslog?

    p.s. а у вас скорее всего лимит оперативки превышен.