Ошибка анализа: ошибка синтаксиса, неожиданный конец файла в моем PHP-коде


Answers

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

Найдите файл php.ini, см. Dude, где мой php.ini?

затем откройте его с помощью вашего любимого редактора.

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

; short_open_tag = Off ; previous value
short_open_tag = On ; new value
Question

У меня ошибка:

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

С помощью этого кода:

<html>
    <?php
        function login()
        {
            // Login function code
        }
        if (login())
    {?>

    <h2>Welcome Administrator</h2>
    <a href=\"upload.php\">Upload Files</a>
    <br />
    <a href=\"points.php\">Edit Points Tally</a>

    <?php}
        else
        {
            echo "Incorrect login details. Please login";
        }
    ?>
    Some more HTML code
</html>

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




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

<?php
function () {

}

В приведенном выше файле возвращается Parse error: syntax error, unexpected end of file in erro Parse error: syntax error, unexpected end of file in то время как ниже это нет.

<?php
function () {

};



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

Это то, что я получил как ошибочное:

if (login())
{?>
<h2>Welcome Administrator</h2>
<a href=\"upload.php\">Upload Files</a>
<br />
<a href=\"points.php\">Edit Points Tally</a>
<?php}
else
{
echo "Incorrect login details. Please login";
}

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

<html>
    some code
<?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 = "Unable to connect to the database server";
        include 'error.html.php';
        exit ();
    }
    if (!mysqli_set_charset ($link, 'utf8'))
    {
        $error = "Unable to set database connection encoding";
        include 'error.html.php';
        exit ();
    }
    if (!mysqli_select_db ($link, 'foo'))
    {
        $error = "Unable to locate the foo database";
        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>Welcome Administrator</h2>
<a href=\"upload.php\">Upload Files</a>
<br />
<a href=\"points.php\">Edit Points Tally</a>';
}
else
{
    echo "Incorrect login details. Please login";
}
?>
some more html code
</html>



также, ищите комментарий //, который нарушает закрытие фигурной скобки

if (1==1) { //echo "it is true"; }

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




Просто зайдите в php.ini, затем найдите short_open_tag= Off установленный для short_open_tag= On




Links