PHP CreateSQL не работает [дубликат]

Вы можете использовать понимание списка:

def remove_values_from_list(the_list, val):
   return [value for value in the_list if value != val]

x = [1, 2, 3, 4, 2, 2, 3]
x = remove_values_from_list(x, 2)
print x
# [1, 3, 4, 3]
130
задан Alex 12 November 2015 в 09:10
поделиться

11 ответов

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

{?>

и это:

<?php}

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

{ ?>
<?php {

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

253
ответ дан mgraph 22 August 2018 в 20:26
поделиться
  • 1
    В случае, если это помогает кому-либо: у меня есть аналогичная ошибка, но вызвана <? } ?> вместо <?php } ?>. – Adam Libuša 7 November 2013 в 15:06
  • 2
    У меня была схожая проблема, но в моем случае я имел short_open_tag = Off в своем php.ini. Когда я включил On, мой код работал. – bksi 12 February 2014 в 21:31
  • 3
    Обратите внимание, в то время как Apache принимает этот Nginx, а не (или, скорее, fcgi), поэтому, если вы столкнулись с тем, почему это работает на одном веб-сервере, а не в другом, вы знаете, почему – Sammaye 18 July 2014 в 14:53
  • 4
    Код в OP был полностью написан мной. – pratnala 2 November 2015 в 22:14
  • 5
    Перемещение устаревшего PHP-приложения с Debian 4 на Debian 8 и более новый php, и это спасло мне часы вырванных волос! спасибо – konung 27 November 2016 в 22:22

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

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

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
ответ дан Chris Forrence 22 August 2018 в 20:26
поделиться
  • 1
    Ну, вещь внутри if (login ()), у меня есть много кода для написания, это всего лишь образец. В любом случае первый ответ здесь решил. Я не знал, что нужно положить пространство. Спасибо за помощь! – pratnala 14 July 2012 в 10:36
  • 2
    Ты просто помогаешь мне в любом случае, я понял, но мне просто нравится это делать. И ты уверен – ryanc1256 14 July 2012 в 10:38

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

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

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

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

; short_open_tag = Off ; previous value
short_open_tag = On ; new value
61
ответ дан Community 22 August 2018 в 20:26
поделиться
  • 1
    Этот ответ особенно важен при работе с устаревшим кодом. Я унаследовал код, написанный кем-то другим, и кодовая база была заполнена <? ?> (обратите внимание, что отсутствует php). Мне поручено добавлять или изменять функции, и обычно не рекомендуется просто менять все только на одну или две функции. Ваш ответ действительно помог. – Salehen Rahman 11 February 2016 в 19:54
  • 2
    Ну, я бы попробовал удачу с поиском и заменой;) "<?" => "<?php" – 9KSoft 18 October 2016 в 15:14
  • 3
    Пятно, это особенно примечательно, если вы, например, обновились до нового хостинга Plesk или обновили свою версию PHP. Мы обнаружили, что настройки php.ini были повреждены, и нам пришлось пройти их снова, это было необходимо, чтобы избежать неожиданного завершения файловой ошибки – Tahir Khalid 17 October 2017 в 20:33

Избегайте этого <? } ?>, убедитесь, что вы положили <?php } ?>

2
ответ дан Gpak 22 August 2018 в 20:26
поделиться

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

9
ответ дан Hamzah Akram 22 August 2018 в 20:26
поделиться

Ищите какие-либо петли или заявления оставлены незакрытыми.

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

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

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

<?php endforeach; ?>

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

3
ответ дан Imtiaz 22 August 2018 в 20:26
поделиться
  • 1
    У меня это вызвало не замкнутый цикл while. благодаря! – Tarik 28 April 2018 в 23:17

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

<?php
function () {

}

Файл, приведенный выше, возвращает erro Parse error: syntax error, unexpected end of file in, а ниже - нет.

<?php
function () {

};
0
ответ дан neisantos 22 August 2018 в 20:26
поделиться

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

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

class someControler{
private $varr;
public $varu;
..
public function method {
..
} 
..
}// if you forget to close the controller, you will get the error
5
ответ дан olga 22 August 2018 в 20:26
поделиться
  • 1
    В общем случае недостающая закрывающая скобка может вызвать эту ошибку. Я отсутствовал в if. Спасибо за Ваш ответ. – pgr 10 March 2017 в 10:40

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

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

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

4
ответ дан Steve Wasiura 22 August 2018 в 20:26
поделиться

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

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

Способ 1 (ваш файл PHP)

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

<? } ?>

Убедитесь, что вы так выразились

<?php ?>

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

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

< / blockquote>

Способ 2 (файл php.ini)

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

; short_open_tag = Off

-

short_open_tag = On

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

ПРИМЕЧАНИЕ: Перезагрузите свой сервер (например, Apache) и перезагрузите веб-страницу PHP в своем браузере.

< / BLOCKQUOTE>
20
ответ дан Suriyaa 22 August 2018 в 20:26
поделиться

Если ваш файл parse_ini_file ($ file) или подпрограмма испускает файл .ini, проверьте, не указаны ли данные в файле ini. Неучетные данные вызовут эту ошибку. Ex; data1 = test вызовет ошибку, data1 = "test" не будет.

0
ответ дан Wynn 22 August 2018 в 20:26
поделиться
Другие вопросы по тегам:

Похожие вопросы: