Member 14876078 Ответов: 3

Синтаксическая ошибка, неожиданный конец файла в строке 44


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

Что я уже пробовал:

  1  <!--Bahagian Borang Input Pengguna-->
  2  <?php if(empty($_POST['login'])) {?>   
  3      <p>Sila LOGIN untuk membuat tempahan homestay</p>
  4      <h3>Login Pelanggan</h3>
  5      <form action="login.php" method="POST">
  6      <input type="email" name="email"
  7  
  8      placeholder="email@mail.com"><br><br>
  9      <input type="text" name="pswd"
 10  
 11      placeholder="Katalaluan"><br><br>
 12      <input type="submit" name="login" value="LOGIN"><br>
 13      </form>
 14      <p>Jika belum mendaftar klik <a href="daftar.php"> di sini.</a></p>
 15      <?php}else{
 16      //Bahagian Proses Data
 17      $email=$_POST['email'];
 18      $pswd=$_POST['pswd'];
 19      //Sambung Fail ke DBMS
 20      include 'capaian.php';
 21      if(!$connect){
 22          echo "DBMS gagal dicapai.";
 23      }
 24      //Query
 25      $query="select* from pelanggan where '$email'=email
 26      AND '$pswd'=katalaluan";
 27      //Laksanakan Query
 28      $run=mysqli_query($connect,$query);
 29      //Panggil Data
 30      $data=mysqli_fetch_array($run);
 31      $id=$data['idpelanggan'];
 32      $nama=$dat['nama'];
 33      //Dialog Login Gagal	
 34      if($id == 0){
 35      	echo "Maaf,".$nama."anda gagal login";
 36      	echo "<br>Sila login semula <a href='login.php'> di sini</a>";
 37      	//Dialog Login Berjaya
 38      }else{
 39      	echo "Tahniah,".$nama." berjaya login";
 40      	echo "<br>Sila klik <a href='tempahan.php ?id=
 41      	".$id."&&nama=".$nama."'>di sini</a>
 42      	untuk tempahan homestay";
 43      }
 44      mysqli_close($connect);
 45  }?>

Kornfeld Eliyahu Peter

Обратите внимание, что строка 44 не является таковой в вашем примере кода... У вас есть include в пути...

Richard MacCutchan

Я просмотрел ваш код три раза, но до сих пор не вижу ошибки.

0x01AA

Смотрите мой комментарий ниже. Может ли это быть причиной? Если да, то не стесняйтесь отвечать.

Richard MacCutchan

Да, я думаю, что это и есть ответ.

0x01AA

Я вообще не знаю php. Но с онлайн-проверкой синтаксиса для меня это не дает никакой ошибки в случае, если я заменяю строку 15
<?php}else{
с
<?php }else{

3 Ответов

Рейтинг:
2

0x01AA

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

С помощью онлайн-проверки синтаксиса для меня это не дает, наконец, никакой ошибки в случае, если я заменю строку 15
<?php}else{
с
<?php }else{

Надеюсь, это поможет.


Kornfeld Eliyahu Peter

Острый глаз!!!
На самом деле это нигде не подчеркивается (даже в официальной документации), но синтаксис открывающих и закрывающих тегов таков:
<?php[witespace] и [whitespace]?>

0x01AA

Спасибо, но это был не я, а онлайн-проверка синтаксиса php :)

Рейтинг:
1

Dave Kreskowiak

Что-то вроде этого почти всегда вызвано несоответствующими тегами, фигурными скобками или круглыми скобками, или отсутствующей точкой с запятой где-то.

Я просмотрел код несколько раз, но не могу понять, что с ним не так, но опять же, я не занимаюсь PHP.


Рейтинг:
0

Andre Oosthuizen

Это больше для будущих читателей на ту же тему -

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

Всегда полезно иметь привычку разбивать свои строки на пробелы, чтобы предотвратить то, что произошло здесь при взломе и выходе блоков кода php

<?PHP
}
else
{
?>


Еще немного информации о различных вариантах взлома блоков и выхода из них -

Экранирование в PHP
Движку синтаксического анализа PHP нужен способ отличить PHP-код от других элементов страницы. Механизм для этого известен как "побег в PHP". Есть четыре способа сделать это −

Канонические теги PHP
Наиболее универсально эффективным стилем тегов PHP является −>
<?php...?>


Если вы используете этот стиль, вы можете быть уверены, что ваши теги всегда будут правильно интерпретированы.

Короткие открытые теги (SGML-стиль)
Короткие или короткие открытые теги выглядят так −
<?...?>


Короткие теги-это, как и следовало ожидать, самый короткий вариант, вы должны сделать одну из двух вещей, чтобы PHP мог распознавать теги −

Выберите опцию конфигурации --enable-short-tags, когда вы создаете PHP.

Установите параметр short_open_tag в файле php.ini в положение on. Эта опция должна быть отключена для синтаксического анализа XML с помощью PHP, поскольку тот же синтаксис используется для XML-тегов.

Теги HTML скриптов
Теги HTML −скриптов выглядят примерно так -
<script language = "PHP">...</script>


PHP нечувствителен к пробелам
Пробелы-это то, что вы вводите, обычно невидимое на экране, включая пробелы, табуляции и возврат каретки (символы конца строки).

PHP whitespace insensitive означает, что почти никогда не имеет значения, сколько символов пробела у вас есть в строке.один символ пробела совпадает со многими такими символами.

Например, каждый из следующих операторов PHP, который присваивает сумму 2 + 2 переменной $four, эквивалентен −
$four = 2 + 2; // single spaces
$four <tab>=<tab2<tab>+<tab>2 ; // spaces and tabs
$four =
2+
2; // multiple lines


Брекеты делают блоки
Хотя операторы не могут быть объединены как выражения, вы всегда можете поместить последовательность операторов в любое место, куда оператор может пойти, заключив их в набор фигурных скобок.

Здесь оба утверждения эквивалентны −
if (3 == 2 + 1)
   print("Good - I haven't totally lost my mind.<br>");
   
if (3 == 2 + 1) {
   print("Good - I haven't totally");
   print("lost my mind.<br>");
}


Я надеюсь, что это поможет будущим читателям в некоторых основах.


Richard MacCutchan

Очень полезный ответ. Все, что нам сейчас нужно, - это какой-то способ заставить людей искать его.

Andre Oosthuizen

Спасибо тебе, Ричард, очень благодарен!
Что касается поиска, то я согласен на 100%, что не является обычным атрибутом для людей с проблемами (язык в щеку).