За последние 24 часа нас посетили 18902 программиста и 1638 роботов. Сейчас ищут 1902 программиста ...

html+php

Тема в разделе "PHP для новичков", создана пользователем guestphp, 11 май 2017.

  1. guestphp

    guestphp Новичок

    С нами с:
    11 апр 2015
    Сообщения:
    86
    Симпатии:
    0
    Здравствуйте.

    Есть код:
    Код (Text):
    1. <?php
    2. # Вывод ошибок нежелателен
    3. //ini_set('display_errors', 1);
    4. //error_reporting(1);
    5. header('Content-Type: text/html; charset=utf-8');
    6.  
    7. # Кол-во участников
    8. $number_of_competitors = 0;
    9. if (file_exists('reroute.txt')) {
    10.     $file_data = trim(file_get_contents('reroute.txt'));
    11.     $lines = explode("\n", trim($file_data));
    12.     # Пропускаем пустые строки и записи с пустым именем участника
    13.     foreach ($lines as $current_line) {
    14.         $current_line = trim($current_line);
    15.         if (!$current_line || !is_int(strpos($current_line, '|'))) continue;
    16.         $line_data = explode('|', $current_line);
    17.         if (count($line_data) != 2) continue;
    18.         $number_of_competitors++;
    19.     }
    20. } else {
    21.     return_result('Список участников пуст', true);
    22. }
    23. if ($number_of_competitors == 0) {
    24.     return_result('Список участников пуст.', true);
    25. }
    26.  
    27.  
    28. $input = (object)$_POST;
    29.  
    30. # Проверяем наличие данных
    31. if (!isset($input->participant) || !isset($input->votes) || !isset($input->phone)) {
    32.     return_result('Не достаточно данных.', true);
    33. }
    34. if (!ctype_digit($input->participant) || !ctype_digit($input->votes) || !ctype_digit($input->phone)) {
    35.     return_result('Ошибочные данные.',true);
    36. }
    37.  
    38. if ($input->participant < 1 || $input->participant > $number_of_competitors) {
    39.     return_result('Уточните номер участника.', true);
    40. }
    41.  
    42. include_once('configs.php');
    43.  
    44.  
    45. # Функция передачи данных
    46. function return_result($message, $is_error = false) {
    47.     $error = '';
    48.     if ($is_error) {
    49.         $error = 'Ошибка! ';
    50.     }
    51.     echo $error.$message;
    52.     die;
    53. }
    54.  
    55.  
    56. # Функция отправки данных на гейт
    57. function sendData($data, $url) {
    58.  
    59. $json_data = json_encode($data);
    60.     $ch = curl_init();
    61.     curl_setopt($ch, CURLOPT_URL, $url);
    62.     curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 1);
    63.  
    64.     curl_setopt($ch, CURLOPT_POST, 1);
    65.     curl_setopt($ch, CURLOPT_POSTFIELDS, $json_data);
    66.  
    67.     $result = curl_exec($ch);
    68.  
    69.     if (curl_errno($ch)) {
    70.         $arr = array('error'=>true, 'answer'=>'Ошибка! '.curl_error($ch));
    71.         return (object)$arr;
    72.     }
    73.     //объект
    74.     $result = json_decode($result);
    75.     if (isset($result->error)) {
    76.         $arr = array('error'=>true, 'answer'=>$result->error->code.':'.$result->error->message);
    77.         return (object)$arr;
    78.     }
    79.  
    80.     $arr = array('error'=>false, 'answer'=>'Транзакция зарегистрирована. ID: '.$result->answer->transaction_id);
    81.     return (object)$arr;
    82. }
    83.  
    84. ?>
    Если его вставить в html, то после php кода весь html и текст не отображается. Например если вставить код в таблицу
    Код (Text):
    1. <table>
    2. <td>
    3. Текст 1
    4. </td>
    5. <td>
    6. тут php код
    7. </td>
    8. <td>
    9. Текст 3
    10. </td>
    11. </tr>
    12. </table>
    То в таблице "Текст 3" не отображается. Вопрос, что нужно сделать, чтобы "Текст 3" отобразился?
     
  2. valentinnew

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

    С нами с:
    30 янв 2011
    Сообщения:
    161
    Симпатии:
    36
    ты в пхп коде устанавливаешь заголовки (строка 5) а это недопустимо, если ты уже начал что-то выводить.
    Перенеси заголовки вверх. А ещё лучше, в пхп коде сформируй массив с данными для вывода, а в самом низу или вообще в отдельном файле просто рендерь их в таблицу.
    --- Добавлено ---
    и у тебя, скорее всего отключены ошибки, т.к. в данном случае должна отображаться всеми любимая "Cannot add header information - headers already sent"
    --- Добавлено ---
    при разработке крайне рекомендуется включать отображение ошибок, а на проде смотри логи.
     
  3. guestphp

    guestphp Новичок

    С нами с:
    11 апр 2015
    Сообщения:
    86
    Симпатии:
    0
    Я убрал 5 строку "header('Content-Type: text/html; charset=utf-8');", проблема актуальна. Без формирования массива, что нужно добавить или убрать в php коде, чтобы отобразился "Текст 3"?
     
  4. valentinnew

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

    С нами с:
    30 янв 2011
    Сообщения:
    161
    Симпатии:
    36
    Сделай вывод ошибок. Там тебе всё расскажут. У тебя в самом верху закоменчены установки. 3я и 4я строки.
     
  5. guestphp

    guestphp Новичок

    С нами с:
    11 апр 2015
    Сообщения:
    86
    Симпатии:
    0
    Ошибок в логах нет.
     
  6. valentinnew

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

    С нами с:
    30 янв 2011
    Сообщения:
    161
    Симпатии:
    36
    тогда дебаж. var_dump тебе в помощь. Я не знаю что файле и куда делается запрос curl'ом.
     
  7. guestphp

    guestphp Новичок

    С нами с:
    11 апр 2015
    Сообщения:
    86
    Симпатии:
    0
    Если кто-то знает, подскажите пожалуйста, что добавить или убрать в php коде, чтобы "Текст 3" отобразился?
     
  8. valentinnew

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

    С нами с:
    30 янв 2011
    Сообщения:
    161
    Симпатии:
    36
    тебе сюда: https://php.ru/forum/forums/sdelajte-za-menja.36/
     
  9. guestphp

    guestphp Новичок

    С нами с:
    11 апр 2015
    Сообщения:
    86
    Симпатии:
    0
    Если кто-то знает, подскажите пожалуйста, что добавить или убрать в php коде, чтобы "Текст 3" отобразился?
     
  10. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.799
    Симпатии:
    1.331
    Адрес:
    Лень
    не надоело копипастить свои посты как ребенок?
    --- Добавлено ---
    в исходной странице тоже не отображается? значит где то фатальная ошибка
     
  11. guestphp

    guestphp Новичок

    С нами с:
    11 апр 2015
    Сообщения:
    86
    Симпатии:
    0
    Сам php код отображается. Уточните пожалуйта, о какой исходной странице идёт речь?
     
  12. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.799
    Симпатии:
    1.331
    Адрес:
    Лень
    Ctrl + U в браузере, Исходный код страницы где должна отображаться "Текст 3"
     
  13. guestphp

    guestphp Новичок

    С нами с:
    11 апр 2015
    Сообщения:
    86
    Симпатии:
    0
    В исходном коде странице "Текст 3" не отображается.
     
  14. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.799
    Симпатии:
    1.331
    Адрес:
    Лень
    значит включай отображение всех ошибок и дебажь:)
     
  15. valentinnew

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

    С нами с:
    30 янв 2011
    Сообщения:
    161
    Симпатии:
    36
    кажется я знаю что сейчас будет)
     
  16. guestphp

    guestphp Новичок

    С нами с:
    11 апр 2015
    Сообщения:
    86
    Симпатии:
    0
    Ошибок нет в логах.
     
  17. valentinnew

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

    С нами с:
    30 янв 2011
    Сообщения:
    161
    Симпатии:
    36
    Значит твой код идеален и ошибка в интерпретаторе пхп. Надо дебажить сам пхп.
     
  18. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.799
    Симпатии:
    1.331
    Адрес:
    Лень
    не верю. Покажи кодом как врубил отображение ошибок
     
  19. guestphp

    guestphp Новичок

    С нами с:
    11 апр 2015
    Сообщения:
    86
    Симпатии:
    0
    ini_set('display_errors', 1);
    error_reporting(1);
     
  20. valentinnew

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

    С нами с:
    30 янв 2011
    Сообщения:
    161
    Симпатии:
    36
    весь код исполняемого файла можно?
     
    MouseZver нравится это.
  21. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.799
    Симпатии:
    1.331
    Адрес:
    Лень
    +
    --- Добавлено ---
    долго показывает o_O
     
  22. Игорис

    Игорис Новичок

    С нами с:
    9 май 2017
    Сообщения:
    103
    Симпатии:
    4
    вводных маловато... слишком много возможных вариантов. явно ведь нужен кусок кода. "здесь html, а здесь пхп, а потом опять хтмл" ясности вашпе никак не привносит))
     
  23. Sergey_Tsarev

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

    С нами с:
    17 мар 2016
    Сообщения:
    502
    Симпатии:
    105
    Что значит php код отображается? У тебя какое расширение файла, куда ты php код вставляешь?