@ramil456

Как решить проблему с php?

Недавно начал изучать php, на данный момент делал админ панель на сайте по видосу. Логика такая: админ вводит текст в input нажимает на кнопку сохранить, после чего эти данные отправляются в бд и заменяет старые, затем эти данные отправляются на главную страницу где выводятся через echo но такого не происходит, ошибки не выводит, код точно такой же как на видео, в чем может быть проблема? filename и name это ячейка в таблице.
<div class="container">

<h1>
  Редактирование главных новостей
</h1>

<br>

<a href="/logout.php">Выйти</a>

<?php
  $sql=$pdo->prepare("SELECT * FROM header");
  $sql->execute();
  $res=$sql->fetch(PDO::FETCH_OBJ);
?>


<form action="/admin/mainNews.php" method="post">
  <input type="text" name="icon" value="<?php echo $res->filename ?>" class="input">
  <input type="text" name="name" value="<?php echo $res->name ?>" class="input">
<br>
  <input type="text" name="icon2" value="<?php echo $res->filename2 ?>" class="input">
  <input type="text" name="name2" value="<?php echo $res->name2 ?>" class="input">
<br>
  <input type="text" name="icon3" value="<?php echo $res->filename3 ?>" class="input">
  <input type="text" name="name3" value="<?php echo $res->name3 ?>" class="input">
<br>
  <input type="text" name="icon4" value="<?php echo $res->filename4 ?>" class="input">
  <input type="text" name="name4" value="<?php echo $res->name4 ?>" class="input">
<br>
  <input type="submit" value="Сохранить" class="btn">

</form>

</div>

<?php
  $filename=$_POST["filename"];
  $name=$_POST["name"];

  $filename2=$_POST["filename2"];
  $name2=$_POST["name2"];

  $filename3=$_POST["filename3"];
  $name3=$_POST["name3"];

  $filename4=$_POST["filename4"];
  $name4=$_POST["name4"];
  
  $row="UPDATE `header` SET `filename`=:`filename`,`name`=:`name`";
  $query=$pdo->prepare($row);
  $query->execute(["filename"=>$filename,"name"=>$name]);
?>
  • Вопрос задан
  • 174 просмотра
Пригласить эксперта
Ответы на вопрос 1
@alexalexes
Во-первых, нужно узнать, где находиться файл error_log, куда сервер пишет ошибки.
Во-вторых, в любой непонятной ситуации добавляем в начале скрипта принудительное рапортование ошибок в лог и вывод их пользователю в начале скрипта:
<?php
error_reporting(E_ALL); // репорт ошибок в файл error_log
ini_set('display_errors', 'On'); // вывод сообщения об ошибке

В-третьих, не стесняемся пользоваться функцией var_dump/print_r для любых переменных, где есть сомнения, что они содержат нужные значения.
var_dump($_POST);
В-четвертых, при изучении любой библиотеки взаимодействия с СУБД первым делом лезем в справку и ищем, как вывести человекочитаемые ошибки. В PDO это метод errorInfo. Применяем его после любой операции с СУБД - коннектом, подготовкой запроса, выполнением запроса, выборкой результата:
var_dump($pdo->errorInfo());
В-пятых, в браузере F12, вкладка "Сеть". Смотрим, а на тот ли адрес идет запрос отправки формы. Изучаем HTTP заголовки, полезную нагрузку, ответ от сервера.

Вот пример базовых навыков PHP разработчика. Без них можно даже не открывать видосики.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы