За последние 24 часа нас посетили 126879 программистов и 6635 роботов. Сейчас ищут 1372 программиста ...

Ошибка синтаксиса

Тема в разделе "PHP для новичков", создана пользователем Alex-4891, 14 авг 2018.

  1. Alex-4891

    Alex-4891 Новичок

    С нами с:
    7 ноя 2017
    Сообщения:
    4
    Симпатии:
    0
    Прошу помочь. При выполнении учебного задания выдаёт ошибку: Parse error: syntax error, unexpected ';' in C:\xampp\htdocs\sqltest.php on line 23
    Использую XAMPP Version: 7.1.10. Если не затруднит, просмотрите всю запись, возможно, увидите, что там ещё не так. Чтобы избежать подобных детских вопросов от меня, быть может, посоветуете что почитать для того, чтобы понять как читать и понимать чужой код, правильно его писать самому, и вообще понять синтаксис PHP.

    Код (Text):
    1.  
    2. <?php // sqltest.php
    3. require_once 'login.php';
    4. $conn = new mysqli ($hn, $un, $up, $db);
    5. if ($conn->connect_error) die($conn->connect_error);
    6.  
    7. if (isset($_POST['delete']) && isset($_POST['isbn']))
    8.  
    9.     {
    10.         $isbn = get_post($conn, 'isbn');
    11.         $query = "DELETE FROM classics WHERE isbn='$isbn'";
    12.         $result = $conn->query($query);
    13.         if (!$result) echo "Сбой при удалении данных: $query<br>" .
    14.         $conn->error . "<br><br>";
    15.     }
    16.  
    17.     if (isset($_POST['author']) &&
    18.         (isset($_POST['title']) &&
    19.         (isset($_POST['category']) &&
    20.         (isset($_POST['year']) &&
    21.         (isset($_POST['isbn']))
    22.  
    23.     {
    24.         $author = get_post($conn, 'author');
    25.         $title = get_post($conn, 'title');
    26.         $category = get_post($conn, 'category');
    27.         $year = get_post($conn, 'year');
    28.         $isbn = get_post($conn, 'isbn');
    29.      
    30.         $query = "INSERT INTO classics VALUES" .
    31.         "('$author', '$title', '$category', '$year', '$isbn')";
    32.         $result = $conn->query($query);
    33.         if (!result) echo "Сбой данных при вставке данных: $query<br>".
    34.         $conn->error . "<br><br>";
    35.     }
    36.  
    37.     echo <<<_END
    38.     <form action="sqltest.php" method="post"><pre>
    39.     Author <input type="text" name="author">
    40.     Title <input type="text" name="title">
    41.     Category <input type="text" name="category">
    42.     Year <input type="text" name="year">
    43.     ISBN <input type="text" name="isbn">
    44.         <input type="submit" value="ADD RECPRD"> // кнопка Добавить запись
    45.     </pre></form>
    46.     _END;
    47.  
    48. $query = "SELECT * FROM classics";
    49.  
    50. $result = $conn->query($query);
    51.  
    52. if (!$result) die ("Сбой при доступе к базе данных: " . $conn->error);
    53.  
    54. $rows = $result->num_rows;
    55.  
    56. for ($j = 0 ; $j < $rows ; ++$j)
    57. {
    58. $result->data_seek($j);
    59. $row = $result->fetch_arrow(MYSQLI_NUM);
    60.  
    61. echo <<<_END
    62. <pre>
    63. Author $row[0]
    64. Title $row[1]
    65. Category $row[2]
    66. Year $row[3]
    67. ISBN $row[4]
    68. </pre>
    69. <form action="sqltest.php" method="post">
    70. <input type="hidden" name="delete" value="yes">
    71. <input type="hidden" name="isbn" value="$row[4]">
    72. <input type>="submit" value="DELETE RECORD"></form>
    73. _END;
    74. }
    75.  
    76. $result->close();
    77. $conn->close();
    78.  
    79. function get_post($conn, $var)
    80. {
    81.     return $conn->real_escape_string($_POST[$var]);
    82. }
    83. ?>
    84. [code]
     
  2. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.840
    Симпатии:
    1.338
    Адрес:
    Лень
    PHP:
    1. if (isset($_POST['author']) &&
    2.         (isset($_POST['title']) &&
    3.         (isset($_POST['category']) &&
    4.         (isset($_POST['year']) &&
    5.         (isset($_POST['isbn']))
    6.     {
    PHP:
    1. if ( isset ( $_POST[...], $_POST[...], $_POST[...], $_POST[...] ) )
    --- Добавлено ---
    PHP:
    1. $filter_key = [
    2.     'author' => FILTER_DEFAULT,
    3.     'title' => FILTER_DEFAULT,
    4.     'category' => FILTER_DEFAULT,
    5.     'year' => FILTER_DEFAULT,
    6.     'isbn' => FILTER_DEFAULT,
    7. ];
    8.  
    9. if ( !in_array ( null, ( $filter = filter_input_array ( INPUT_POST, $filter_key ) ), true ) )
    10. {
    11.     ...
    12. }
     
  3. askanim

    askanim Старожил

    С нами с:
    7 апр 2016
    Сообщения:
    2.178
    Симпатии:
    161
    Адрес:
    GABRIEL
    а что написано в сроке 23 ?
     
  4. Alex-4891

    Alex-4891 Новичок

    С нами с:
    7 ноя 2017
    Сообщения:
    4
    Симпатии:
    0
    Вот что: $author = get_post($conn, 'author');
    Непонятно, почему PHP ругается на точку с запятой в конце строки и как сделать чтобы код работал.
     
  5. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.840
    Симпатии:
    1.338
    Адрес:
    Лень
    @askanim у тса в условии скобки пропущены
    --- Добавлено ---
    @Alex-4891 я тебе уже написал решение постом выше