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

Я получил ошибку:

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>

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

142

Решение

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

{?>

и это:

<?php}

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

{ ?>
<?php {

также избегать <? и использовать <?php

270

Другие решения

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

Найдите файл php.ini, см. Чувак, где мой php.ini?

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

Искать short_open_tag и примените следующее изменение:

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

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

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

Способ 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 не будет работать, когда это включено)!

НОТА: Перезагрузите ваш сервер (как например: Apache) и перезагрузите веб-страницу PHP в вашем браузере.

24

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

9

Проверьте, что вы закрыли свой класс.

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

class someControler{
private $varr;
public $varu;
..
public function method {
..
}
..
}// if you forget to close the controller, you will get the error
5

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

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

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

4

Ищите любые циклы или операторы, оставленные незамеченными.

Я столкнулся с этой проблемой, когда оставил php foreach: тег закрытым.

<?php foreach($many as $one): ?>

Закрытие с помощью следующего решило синтаксическую ошибку: unexpected end of file

<?php endforeach; ?>

Надеюсь, это поможет кому-то

3

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

Вот что я получил как ошибочный:

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>
2
По вопросам рекламы [email protected]