Member 14831671 Ответов: 2

( ! ) Ошибка синтаксического анализа: синтаксическая ошибка, неожиданный конец файла в C:\wamp64\www\simulare_aeroport\PHP\adg.php на линии 59


Вот мой php код :
  1  <?php
  2   print_r($_POST);
  3   print_r($_FILES);
  4  include("conn.php");
  5  
  6  function corectez($sir) {
  7    $sir = trim($sir);
  8    $sir = stripslashes($sir);
  9    $sir = htmlspecialchars($sir);
 10    return $sir;
 11  }
 12  
 13  $compania=corectez($_POST["combo"]);
 14  $tara=corectez($_POST["tara"]);
 15  $prez=corectez($_POST["prez"]);
 16  $nr=corectez($_POST["nr"]);
 17  $pret=corectez($_POST["pret"]);
 18  //  Inserez in tabelul util. Pentru poza folosesc un nume generic (a.png)
 19  //  Apelez prepare, apoi bind
 20  $stmt = mysqli_prepare($cnx, "INSERT INTO util zboruri (fisier_img,id_companie,tara,prezentare,nr_locuri,pret) VALUES(?,?,?,?,?,'a.png')");
 21  mysqli_stmt_bind_param($stmt,'sissis',$img,$compania,$tara,$prez,$nr,$pret);
 22  
 23  mysqli_stmt_execute($stmt);
 24  
 25  $id = mysqli_insert_id($cnx);  //  ID-ul ultimului articol introdus
 26  // Preiau datele fisierului care contine poza
 27  $mesajEroare = '';
 28  if ($_FILES["poza"]["error"] > 0) {
 29      $mesajEroare .= "<p>Eroare: " . $_FILES["fisier"]["error"] . "</p>";
 30  } else {
 31      $nm = $_FILES["fisier"]["name"]; //  nume fisier
 32      $nmtmp = $_FILES["fisier"]["tmp_name"]; //  nume fisier temporar
 33      $extensie = pathinfo($nm,PATHINFO_EXTENSION);
 34      if(strtolower($extensie) != "jpg" && strtolower($extensie) != "png" && strtolower($extensie) != "jpeg") {
 35          $mesajEroare .= "<p>Atentie, se acceptă doar fișiere JPG și PNG!</p>";
 36      }
 37      // Generez un nume dependent de id si transfer fisierul cu poza in directorul 
 38      $nume = 'p_' . (string)$id . '.' . strtolower($extensie);
 39      //  Inlocuiesc numele implicit cu cel real
 40      $cda = "UPDATE zboruri SET fisier_img = '$nume "." '  WHERE id_zbor = $id";
 41      mysqli_query($cnx, $cda);
 42      //  Mut fisierul din directorul temporar
 43      $cale = 'img/'.$nume;
 44      $rezultat = move_uploaded_file($nmtmp, $cale);
 45      $raspuns['mesaj'] ='da';
 46      $raspuns['tara'] = $tara;
 47      if (!$rezultat)
 48      {
 49          $raspuns['mesaj'] ='nu';
 50          $raspuns['tara'] = $tara;
 51         }
 52  //  Inchid $stmt si $cnx
 53  mysqli_stmt_close($stmt); 
 54  mysqli_close($cnx);
 55  $raspuns['mesaj'] ='da';
 56  $raspuns['tara'] = $tara;
 57  echo json_encode($raspuns);
 58  
 59  ?>

И мой js код :
document.querySelector("#adauga").onclick = function (event) {
  var formElement = document.querySelector("form");
  var formData = new FormData(formElement);
  var xhtp = new XMLHttpRequest();
  xhtp.open("POST", "./php/adg.php");
  xhtp.onload = function () {
    var raspunsobiect = JSON.parse(this.responseText);
    var blocraspuns = document.querySelector("#verificat");

    if (raspunsobiect.mesaj == "da") {
      var continutbloc = '<p class="msg">da</p>';
    } else {
      var continutbloc = '<p class="msg">nu</p>';
    }
    continutbloc = continutbloc.replace("{tara}", raspunsobiect.tara);
    //ascund #blocform
    document.querySelector("form").style.display = "none";
    //scriu
    blocraspuns.innerHTML = continutbloc;
  };

  // S-a produs o eroare
  xhtp.onerror = function () {
    alert("Hopa! Ceva n-a mers!");
  };

  xhtp.send(formData);
};


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

Привет,
У меня возникли проблемы с моим php-кодом ...ошибка-это ошибка синтаксического анализа: синтаксическая ошибка, неожиданный конец файла в C:\wamp64\www\simulare_aeroport\php\adg.php на линии 59

2 Ответов

Рейтинг:
2

Peter_in_2780

Эта ошибка почти всегда является неполным блоком. Я бросил быстрый взгляд на ваш PHP-код, и я не вижу } чтобы закрыть большой else блок


Рейтинг:
2

Patrice T

Else в строке 30 открывает a { , но он никогда не закрывается.
Вы, вероятно, пропустили } в строке 52 (предположение из отступа кода).


Patrice T

Просто любопытно, почему решение заслуживает понижения, что же в этом плохого ?

Richard MacCutchan

Это был не я, но я подозреваю, что кто-то чувствует, что вы просто повторяете то, что Питер уже написал.

Patrice T

Хорошо, я понимаю вашу точку зрения.
Поэтому моя главная ошибка заключается в том, что я не обновил страницу перед публикацией решения.

Richard MacCutchan

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

Patrice T

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

Richard MacCutchan

Я согласен, но на самом деле они не могут причинить вам вреда.