Я получил ошибку:
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}
Вы не должны ставить скобки прямо рядом с открытием / закрытием php
тег, но он разделяется пробелом:
{ ?>
<?php {
также избегать <?
и использовать <?php
У меня была та же ошибка, но я исправил ее, изменив php.ini
файл.
Найдите файл php.ini, см. Чувак, где мой php.ini?
затем откройте его с вашим любимым редактором.
Искать short_open_tag
и примените следующее изменение:
; short_open_tag = Off ; previous value
short_open_tag = On ; new value
У меня была та же ошибка, но я исправил ее, изменив php.ini и / или изменив файл PHP!
Есть два разных способа обойти синтаксический анализ ошибки.
Избегайте в вашем файле PHP этого:
<? } ?>
Убедитесь, что вы поставили это так
<?php ?>
Ваш код содержит
<? ?>
НОТА: Пропажа
php
после<?
!
Существует также простой способ решить вашу проблему.
Поиск для short_open_tag
стоимость имущества (Используйте в вашем текстовом редакторе с Ctrl + F
!), и применить следующее изменение:
; short_open_tag = Off
в
short_open_tag = On
Согласно описание основных директив php.ini, short_open_tag
позволяет использовать короткий открытый тег (<?
) хотя это может вызвать проблемы при использовании с xml (<?xml
не будет работать, когда это включено)!
НОТА: Перезагрузите ваш сервер (как например: Apache) и перезагрузите веб-страницу PHP в вашем браузере.
Просто зайдите на php.ini и найдите short_open_tag= Off
установлен в short_open_tag= On
Проверьте, что вы закрыли свой класс.
Например, если у вас есть класс контроллера с методами, и случайно вы удаляете заключительную скобку, которая закрывает весь класс, вы получите эту ошибку.
class someControler{
private $varr;
public $varu;
..
public function method {
..
}
..
}// if you forget to close the controller, you will get the error
также ищите комментарий //, который ломает закрывающую фигурную скобку
if (1==1) { //echo "it is true"; }
закрывающая фигурная скобка не будет корректно закрывать условный раздел, а php не будет правильно обрабатывать оставшуюся часть кода.
Я столкнулся с этой проблемой, когда оставил php foreach: тег закрытым.
<?php foreach($many as $one): ?>
Закрытие с помощью следующего решило синтаксическую ошибку: unexpected end of file
<?php endforeach; ?>
Надеюсь, это поможет кому-то
Я видел некоторые ошибки, которые я исправил ниже.
Вот что я получил как ошибочный:
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>