У меня ошибка:
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}
Нельзя размещать скобки непосредственно рядом с тегом open / close php
, но он разделяется пробелом:
{ ?> <?php {
также избегайте <?
и используйте <?php
У меня была такая же ошибка, но я исправил ее, изменив файл php.ini
.
Найдите файл php.ini, см. Dude, где мой 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
ПРИМЕЧАНИЕ. Перезагрузите сервер (например, 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 } ?>
Я видел некоторые ошибки, которые я исправил ниже.
Это то, что я получил как ошибочное:
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>
Я столкнулся с этой проблемой, когда оставил php foreach: тег закрыт.
<?php foreach($many as $one): ?>
Закрыв его, используя следующую, разрешили синтаксическую ошибку: unexpected end of file
<?php endforeach; ?>
Надеюсь, это поможет кому-то