Error unexpected end of file radmir

Ответили на вопрос 2 человека. Оцените лучшие ответы! И подпишитесь на вопрос, чтобы узнавать о появлении новых ответов.

У меня работал код, все было отлично. Но вчера бот отказался работать, а ошибку выдает такую:
Parse error: syntax error, unexpected end of file in /var/www/www-root/data/www/botfrombot3.site/app/controllers/madeline.php on line 145

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

Вот код-

<?php

namespace danogMadelineProto;

if (defined('MADELINE_PHP')) {
    throw new Exception('Please do not include madeline.php twice!');
}

if (!defined('MADELINE_ALLOW_COMPOSER') && class_exists(ComposerAutoloadClassLoader::class)) {
    throw new Exception('Composer autoloader detected: madeline.php is incompatible with Composer, please require MadelineProto using composer.');
}

define('MADELINE_PHP', __FILE__);

class Installer
{
    const RELEASE_TEMPLATE = 'https://phar.madelineproto.xyz/release%s?v=new';
    const PHAR_TEMPLATE = 'https://github.com/danog/MadelineProto/releases/latest/download/madeline%s.phar?v=%s';

    /**
     * Phar lock instance.
     *
     * @var resource|null
     */
    private static $lock = null;
    /**
     * Installer lock instance.
     *
     * @var resource|null
     */
    private $lockInstaller = null;
    /**
     * PHP version.
     *
     * @var string
     */
    private $version;
    /**
     * Constructor.
     */
    public function __construct()
    {
        if ((PHP_MAJOR_VERSION === 7 && PHP_MINOR_VERSION < 1) || PHP_MAJOR_VERSION < 7) {
            throw new Exception('MadelineProto requires at least PHP 7.1 to run');
        }
        if (PHP_INT_SIZE < 8) {
            throw new Exception('A 64-bit build of PHP is required to run MadelineProto, PHP 8.0+ recommended.');
        }
        $backtrace = debug_backtrace(0);
        if (count($backtrace) === 1) {
            if (isset($GLOBALS['argv']) && !empty($GLOBALS['argv'])) {
                $arguments = array_slice($GLOBALS['argv'], 1);
            } elseif (isset($_GET['argv']) && !empty($_GET['argv'])) {
                $arguments = $_GET['argv'];
            } else {
                $arguments = [];
            }
            if (count($arguments) >= 2) {
                define(MADELINE_WORKER_TYPE::class, array_shift($arguments));
                define(MADELINE_WORKER_ARGS::class, $arguments);
            } else {
                die('MadelineProto loader: you must include this file in another PHP script, see https://docs.madelineproto.xyz for more info.'.PHP_EOL);
            }
            define('MADELINE_REAL_ROOT', dirname($backtrace[0]["file"]));
        }
        $this->version = (string) min(81, (int) (PHP_MAJOR_VERSION.PHP_MINOR_VERSION));
        define('MADELINE_PHAR_GLOB', getcwd().DIRECTORY_SEPARATOR."madeline*-{$this->version}.phar");
        define('MADELINE_RELEASE_URL', sprintf(self::RELEASE_TEMPLATE, $this->version));
    }

    /**
     * Destructor.
     */
    public function __destruct()
    {
        if ($this->lockInstaller) {
            flock($this->lockInstaller, LOCK_UN);
            fclose($this->lockInstaller);
            $this->lockInstaller = null;
        }
    }

    /**
     * Extract composer package versions from phar.
     *
     * @param string|null $release
     * @return array<string, string>
     */
    private static function extractVersions($release)
    {
        $phar = "madeline-$release.phar";
        $packages = ['danog/madelineproto' => 'old'];
        if (!file_exists("phar://$phar/vendor/composer/installed.json")) {
            return $packages;
        }
        $composer = json_decode(file_get_contents("phar://$phar/vendor/composer/installed.json"), true) ?: [];
        if (!isset($composer['packages'])) {
            return $packages;
        }
        foreach ($composer['packages'] as $dep) {
            $name = $dep['name'];
            if (strpos($name, 'phabel/transpiler') === 0) {
                $name = explode('/', $name, 3)[2];
            }
            $version = $dep['version_normalized'];
            if ($name === 'danog/madelineproto' && substr($version, 0, 2) === '90') {
                $version = substr($version, 2);
            }
            $packages[$name] = $version;
        }
        return $packages;
    }


    /**
     * Report installs to composer.
     *
     * @param string $local_release
     * @param string $remote_release
     *
     * @return void
     */
    private static function reportComposer($local_release, $remote_release)
    {
        $previous = self::extractVersions($local_release);
        $current = self::extractVersions($remote_release);
        $postData = ['downloads' => []];
        foreach ($current as $name => $version) {
            if (isset($previous[$name]) && $previous[$name] === $version) {
                continue;
            }
            $postData['downloads'][] = [
                'name' => $name,
                'version' => $version
            ];
        }

        if (defined('HHVM_VERSION')) {
            $phpVersion = 'HHVM '.HHVM_VERSION;
        } else {
            $phpVersion = 'PHP '.PHP_MAJOR_VERSION.'.'.PHP_MINOR_VERSION.'.'.PHP_RELEASE_VERSION;
            
            ?>

Silverlight1989

0 / 0 / 0

Регистрация: 28.05.2019

Сообщений: 24

1

29.05.2020, 16:17. Показов 3078. Ответов 4

Метки php bug (Все метки)


HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<!DOCTYPE html>
<html>
<head>
    <title> добавляю новые тексты</title>
</head>
<body>
<form aсtion="insert_text.php" method="post">
        <label for ="id">ID</label><br>
        <input name="id" ><br>
        <label for ="date">Дата публикации</label><br>
        <input type="date" name="date" ><br>
        <label for="title">Название</label><br>
        <input name="title"><br>
        <label for="text">Текст</label><br>
        <textarea name="text">Ваш текст будет здесь! </textarea><br>
        <label for="media">Загрузка файлов</label><br>
       <input type="file" name="path" title="Выберите  файл"/></br>
</br>
            <tr><td colspan=2><input type="submit" value="Добавить текст"></td></tr>
    </table>
</form>
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
<?php
    include_once 'config/config.php';
    $connect = mysqli_connect('u0154084.mysql','u0154084_1989','NDYDcz9-','articles');
    $sql= "insert($date,$title,nl2br($text) ) into 'articles'";
    $res = mysqli_query($connect,$sql);?>
            <? $file = "upload/".$_FILES['path']['name'];
  move_uploaded_file($_FILES['path']['tmp_name'], $file);
  if(isset($_FILES['path']['name'])==true & isset($_FILES['path1']['name'])==true)
  {
echo "Загружен новый файл: ".$_FILES['path']['name']."</br>";
echo "Размер: ".$_FILES['path']['size']."байт"."</br>";
}
if (!empty($_GET['url']))
{
function filesize_get($file1) 
{ 
// проверяем существует ли файл 
if(!file_exists($file1)) return "Файл отсутствует."; 
//определяем размер файла 
$filesize = filesize($file1); 
// Если размер переданного в функцию файла больше 1кб 
if($filesize > 1024) 
{ 
$filesize = ($filesize/1024); 
// если размер файла больше одного килобайта 
// пересчитываем в мегабайтах 
if($filesize > 1024) 
{ 
$filesize = ($filesize/1024); 
// если размер файла больше одного мегабайта 
// пересчитываем в гигабайтах 
if($filesize > 1024) 
{ 
$filesize = ($filesize/1024); 
$filesize = round($filesize, 1); 
return $filesize." ГБ"; 
} 
else 
{ 
$filesize = round($filesize, 1); 
return $filesize." MБ"; 
} 
} 
else 
{ 
$filesize = round($filesize, 1); 
return $filesize." Кб"; 
} 
} 
else 
{ 
$filesize = round($filesize, 1); 
return $filesize." байт"; 
} 
} 
$file = basename($_GET['url']);
if (file_get_contents($_GET['url']))
{
$content = file_get_contents($_GET['url']);
$f = fopen( "$file", "w" );
if (fwrite( $f, $content ) === FALSE)
{
echo "Не могу произвести запись в файл.";
exit;
}
else {$filesize = filesize_get($file); echo " Файл <font color='red'>" .$file ."</font> записан.".$filesize;
fclose( $f );}
}
else echo "Не могу качать файл.";
}   $table_bone = "<table><tr>";
                $row1 = "";
                $row2 = "";
                $row3 = "";
                $card = "No item selected yet.";
                while($data = mysqli_fetch_assoc($res)) { 
                    $row1 = $row1."<td class="block1">";
                    $row2 = $row2."<td class="block2">";
                    $row3 = $row3."<td class="block3">";
                    $td_count+=1;
                    $row1 = $row1.$data['title']."<br></td>";
                    $row2 = $row2."<a href="item.php?id=".$data['id']."">";
                    $row2 = $row2."<img src="".$data['mini_img'].""></a><br></td>";
                    $row3 = $row3.$data['readtime']."р.</td>";
                    if ($td_count==6)   {
                        $td_count = 0; $tabl = $tabl.$row1."</tr><tr>".$row2."</tr><tr>".$row3."</tr><tr class="block1">";
                        $row1 = "";
                        $row2 = "";
                        $row3 = "";
                    } 
                        
                    if($data["id"] == $_GET['id'])
                    {
                        $card = "";
                        $card = $card."<table><tr><td><img src="".$data['original_img'].""width="500" height="500">";
                        $card = $card."</td><td valign="top"><div class="descr"><h1>".$data['title']."</h1>".$data['info'];
                        $card = $card."<br><br><b>Время на прочтение: </b>".$data['readtime'];
                        $card = $card."&nbsp;<button type="submit" name="add">Добавить в прочитанные</button>";
                        $card = $card."</div></td></tr></table>";
                    }
                $tabl = $tabl.$row1."</tr>".$row2."</tr>".$row3."</tr></table>"; 
                echo $tabl;
                echo "<br>";
                echo $card;
                echo "</div>";
                echo "</body>";
                echo"</html>";?>

__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь



0



Programming

Эксперт

94731 / 64177 / 26122

Регистрация: 12.04.2006

Сообщений: 116,782

29.05.2020, 16:17

4

Эксперт PHP

3102 / 2587 / 1219

Регистрация: 14.05.2014

Сообщений: 7,231

Записей в блоге: 1

29.05.2020, 17:09

2

Цитата
Сообщение от Silverlight1989
Посмотреть сообщение

Unexpected end of file. Как такое исправить?

Полный текст ошибки выкладывайте



0



0 / 0 / 0

Регистрация: 28.05.2019

Сообщений: 24

29.05.2020, 17:14

 [ТС]

3

Полностью текст ошибки выглядит так:
Parse error: syntax error, unexpected end of file in /home/u0154084/aavilyavdo.spb.ru/docs/admin.php on line 127
Исходный код, вызвавший это сообщение, я приложил.



0



Эксперт PHP

3102 / 2587 / 1219

Регистрация: 14.05.2014

Сообщений: 7,231

Записей в блоге: 1

29.05.2020, 17:16

4

Нет закрывающей скобки для цикла while



1



0 / 0 / 0

Регистрация: 28.05.2019

Сообщений: 24

29.05.2020, 17:45

 [ТС]

5

В том же исходном файле ещё сервер ругается вот так:
Warning: mysqli_connect(): (HY000/1044): Access denied for user ‘u0154084_1989’@’%’ to database ‘articles’ in /home/u0154084/aavilyavdo.spb.ru/docs/admin.php on line 24. Как это исправить?



0



Моя ошибка:

Parse error: syntax error, unexpected end of file in the line

 Мой код:

<html>

    <?php

        function login() {

            // код функции логина

        }

        if (login())

    {?>

    <h2>Добро пожаловать, администратор</h2>

    <a href=»upload.php»>Загрузка файлов</a>

    <br />

    <a href=»points.php»>Редактирование подсчета очков </a>

    <?php}

        Else {

            echo «Недопустимый логин. Попробуйте еще раз»;

        }

    ?>

    Некоторый HTML код

</html>

В чем проблема?

Ответ 1

Вам следует избегать этого (в конце вашего кода):

{?>

или этого:

<?php}

Не следует ставить скобки непосредственно рядом с php тегом открытия/закрытия и разделять его пробелом:

{ ?>

<?php {

также избегайте ”<?” и используйте “<?php”

Ответ 2

У меня была такая же ошибка, но я исправил ее, изменив файл php.ini. Откройте его в своем любимом редакторе.

Найдите свойство short_open_tag и примените следующее изменение:

; short_open_tag = Off ; предыдущее значение

short_open_tag = On ; новое значение

Ответ 3

Есть два разных метода обойти ошибки синтаксического анализа.

Метод 1 (ваш файл PHP)

Избегайте в вашем файле PHP этого:

<? } ?>

Убедитесь, что вы поставили это так:

<?php ?>

Ваш код содержит ”<? ?>”

ПРИМЕЧАНИЕ: Отсутствует php после ”<?!”

Метод 2 (файл php.ini)

Также есть простой способ решить вашу проблему. Найдите значение свойства short_open_tag (откройте в текстовом редакторе с помощью Ctrl + F!) И примените следующее изменение:

; short_open_tag = Off

Замените на:

short_open_tag = On

Согласно описанию основных директив php.ini, short_open_tag  позволяет использовать короткий открытый тег ( <?), хотя это может вызвать проблемы при использовании с xml ( ”<?xml” не будет работать, если он активен)!

Ответ 4

Обратите внимание на закрывающие идентификаторы heredoc.

Неверный пример:

// Это не работает!!!

function findAll() {

    $query=<<<SQL

        SELECT * FROM `table_1`;

    SQL; // <——— Здесь ошибка

    // …

}

Это вызовет исключение, подобное следующему:

<br />

<b>Parse error</b>:  syntax error, unexpected end of file in <b>[…][…]</b> on line <b>5</b><br />

где цифра 5 может быть номером последней строки вашего файла.

Согласно руководству по php:

Предупреждение: Очень важно отметить, что строка с закрывающим идентификатором не должна содержать никаких других символов, кроме точки с запятой (;). Это, в частности, означает, что идентификатор не может иметь отступа, а также не должно быть никаких пробелов или табуляции до или после точки с запятой. Также важно понимать, что первый символ перед закрывающим идентификатором должен быть новой строкой, как это определено локальной операционной системой. Это n в системах UNIX, включая macOS. Закрывающий разделитель также должен сопровождаться новой строкой.

TL ; DR : закрывающие идентификаторы НЕ должны иметь отступ.

Работающий пример:

function findAll() {

    $query=<<<SQL

        SELECT * FROM `table_1`;

SQL;

    // закрывающий идентификатор не должен иметь отступ, хотя это может выглядеть некрасиво

    // …

}

Ответ 5

Я обнаружил несколько ошибок, которые исправил ниже.

Вот, что я получил в итоге:

if (login())

{?>

<h2> Добро пожаловать, администратор </h2>

<a href=»upload.php»> Загрузка файлов </a>

<br />

<a href=»points.php»> Редактирование подсчета очков </a>

<?php}

else {

echo » Недопустимый логин. Попробуйте еще раз «;

}

Вот, как бы я это сделал:

<html>

    Некоторый код

<?php

function login(){

    if (empty ($_POST[‘username’])) {

        return false;

    }

    if (empty ($_POST[‘password’])) {

        return false;

    }

    $username = trim ($_POST[‘username’]);

    $password = trim ($_POST[‘password’]);

    $scrambled = md5 ($password . ‘foo’);

    $link = mysqli_connect(‘localhost’, ‘root’, ‘password’);

    if (!$link) {

        $error = «Невозможно подключиться к серверу базы данных «;

        include ‘error.html.php’;

        exit ();

    }

    if (!mysqli_set_charset ($link, ‘utf8’)) {

        $error = «Невозможно установить кодировку подключения к базе данных «;

        include ‘error.html.php’;

        exit ();

    }

    if (!mysqli_select_db ($link, ‘foo’)) {

        $error = «Невозможно найти базу данных foo «;

        include ‘error.html.php’;

        exit ();

    }

    $sql = «SELECT COUNT(*) FROM admin WHERE username = ‘$username’ AND password = ‘$scrambled'»;

    $result = mysqli_query ($link, $sql);

    if (!$result) {

        return false;

        exit ();

    }

    $row = mysqli_fetch_array ($result);

    if ($row[0] > 0) {

        return true;

    } else {

        return false;

    }

}

if (login()) {

echo ‘<h2> Добро пожаловать, администратор </h2>

<a href=»upload.php»> Загрузка файлов </a>

<br />

<a href=»points.php»> Редактирование подсчета очков </a>’;

} else {

    echo » Недопустимый логин. Попробуйте еще раз «;

}

?>

Некоторый HTML код 

</html>

За последние 24 часа нас посетили 10945 программистов и 564 робота. Сейчас ищут 389 программистов …


  1. Peter98

    С нами с:
    26 дек 2017
    Сообщения:
    2
    Симпатии:
    0

    Помогите пожалуйста, не работает скрипт немогу понять в чем проблема, выбрасивает ошибку — syntax error, unexpected end of file. $arResult — многовимерний масив.

    1. <?function build_tree($arResult,$previousLevel = 0){?>
    2. <?foreach($arResult as $arItem):?>
    3.     <?if ($previousLevel && $arItem[«DEPTH_LEVEL»] < $previousLevel):?>
    4.         <?=str_repeat(«</ul></li>», ($previousLevel $arItem[«DEPTH_LEVEL»]));?>
    5.     <?if ($arItem[«IS_PARENT»]):?>
    6.         <?if ($arItem[«DEPTH_LEVEL»] == 1):?>              
    7.             <li class=»open current»><span class=»sb_showchild»></span><a href=»<?=$arItem[«LINK»]?>«><span><?=$arItem[«TEXT»]?></span></a>
    8.                     <?build_tree($arResult[‘CHILDRENS’])?>
    9.             <li><a href=»<?=$arItem[«LINK»]?>«><?=$arItem[«TEXT»]?></a>
    10.                     <?build_tree($arResult[‘CHILDRENS’])?>
    11.         <?if ($arItem[«PERMISSION»] > «D»):?>
    12.             <?if ($arItem[«DEPTH_LEVEL»] == 1):?>
    13.                 <li class=»close»><a href=»<?=$arItem[«LINK»]?>«><span><?=$arItem[«TEXT»]?></span></a></li>
    14.                 <li><a href=»<?=$arItem[«LINK»]?>«><?=$arItem[«TEXT»]?></a></li>
    15.     <?$previousLevel = $arItem[«DEPTH_LEVEL»];?>
    16. <?if ($previousLevel > 1)://close last item tags?>
    17.     <?=str_repeat(«</ul></li>», ($previousLevel1) );?>
    18. <?if (!empty($arResult)):?>
    19. <?build_tree($arResult);?>


  2. Maputo

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

    С нами с:
    30 июл 2015
    Сообщения:
    1.136
    Симпатии:
    173


  3. Sergey_Tsarev

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

    С нами с:
    17 мар 2016
    Сообщения:
    502
    Симпатии:
    105

    @Peter98
    Вот так перепиши:

    1. <?if ($previousLevel > 1):/*close last item tags*/?>


  4. Sail

    С нами с:
    1 ноя 2016
    Сообщения:
    1.528
    Симпатии:
    346

    @Peter98, комментарий в 35-й строке тут, однако, ни при чём.
    А вот хвост в 38-й — отчего он?
    И хоть визуально упорядочить код не помешало бы… Короткие теги <? заменить на <?php (не трогая те, что <?=)
    Несколько идущих подряд строк <? кодphp ?> объединить… в один тег <?php кодphp ?>
    И убрать ?> в конце файла (если файл завершается кодом php)


  5. Sergey_Tsarev

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

    С нами с:
    17 мар 2016
    Сообщения:
    502
    Симпатии:
    105

    Вот так удобнее мне кажется читать код:

    1. function build_tree($arResult, $previousLevel = 0) {
    2.     foreach ($arResult as $arItem) {
    3.         if ($previousLevel && $arItem[«DEPTH_LEVEL»] < $previousLevel) {
    4.             echo str_repeat(«</ul></li>», ($previousLevel $arItem[«DEPTH_LEVEL»]));
    5.         if ($arItem[«IS_PARENT»]) {
    6.             if ($arItem[«DEPTH_LEVEL»] == 1) {
    7.                 echo ‘<li class=»open current»><span class=»sb_showchild»></span><a href=»‘ . $arItem[«LINK»] . ‘»><span>’ . $arItem[«TEXT»] . ‘</span></a><ul>’;
    8.                 build_tree($arResult[‘CHILDRENS’]);
    9.                 echo ‘<li><a href=»‘ . $arItem[«LINK»] . ‘»>’ . $arItem[«TEXT»] . ‘</a><ul>’;
    10.                 build_tree($arResult[‘CHILDRENS’]);
    11.             if ($arItem[«PERMISSION»] > «D») {
    12.                 if ($arItem[«DEPTH_LEVEL»] == 1) {
    13.                     echo ‘<li class=»close»><a href=»‘ . $arItem[«LINK»] . ‘»><span>’ . $arItem[«TEXT»] . ‘</span></a></li>’;
    14.                     echo ‘<li><a href=»‘ . $arItem[«LINK»] . ‘»>’ . $arItem[«TEXT»] . ‘</a></li>’;
    15.         $previousLevel = $arItem[«DEPTH_LEVEL»];
    16.     if ($previousLevel > 1) { //close last item tags
    17.         echo str_repeat(«</ul></li>», ($previousLevel 1));
    18.     echo ‘<div class=»sb_nav»><ul>’;


  6. Sergey_Tsarev

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

    С нами с:
    17 мар 2016
    Сообщения:
    502
    Симпатии:
    105

    Само собой. Но то, что у ТС написано читать невозможно. Каждый пук в отдельной php-теге.


  7. Avenax

    С нами с:
    27 июн 2016
    Сообщения:
    7
    Симпатии:
    0

    пхп состоит из типов данных


  8. [vs]

    Команда форума
    Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.535
    Симпатии:
    623

    серьезно, то есть что закомментирован закрывающий дескриптор ?> и поэтому он не работает — это не важно?

    если ты удалял комментарий вместе с ?> то конечно ничего не работало, ведь это та же самая ситуация.


  9. [vs]

    Команда форума
    Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.535
    Симпатии:
    623

    @Sail надо же и правда, ?> игнорируется только в комментариях в стиле /* */.

Понравилась статья? Поделить с друзьями:
  • Error uncaught rangeerror webassembly memory could not allocate memory
  • Error unauthorized authentication required docker
  • Failed to execute script get как исправить
  • Failed to establish a connection unknown win32 error 10060
  • Failed to deploy vm postnfcdata failed io error