Ввод текстовой области PHP умножается на два и выводит двойной ввод

#php

Вопрос:

Краткое изложение:

  • Все работало идеально, как и должно было быть, когда у меня было собственное настраиваемое поле textarea для отправки данных
  • У меня был пользовательский виджет текстового редактора для ввода, но я попытался добавить CKEditor для большей функциональности
  • Когда я добавил пакет с CKEditor (https://ckeditor.com/ckeditor-4/download/?undefined-addons=) редактор там был, но когда я нажал кнопку «Добавить» и отправленных данных, ввод был в два раза и там было пространство между входами (например, ввод:»тест» и выход был «тест <br><br> Тест»), как если бы я поставил <br> тег, и умножил мое мнение где-то.
  • Когда я перестал пытаться использовать CKEditor, я вернулся к исходному коду и своему собственному оригинальному текстовому редактору, который раньше работал идеально. Однако, к моему удивлению, теперь он по-прежнему удваивает входную строку, но не помещает <br> тег между ними.
  • В БД строковое значение является нормальным и не удваивается.

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

введите описание изображения здесь

notifications.php

 <form class="form-inline" action="/action_page.php">
</form>
  </nav>
  <div class="container-fluid m-0 p-0">
    <div class="row justify-content-center">
      <div class="col-md-10">
        <?php if (isset($_SESSION['response'])) { ?>
        <div class="alert alert-<?= $_SESSION['res_type']; ?> alert-dismissible text-center">
          <button type="button" class="close" data-dismiss="alert">amp;times;</button>
          <b><?= $_SESSION['response']; ?></b>
        </div>
        <?php } unset($_SESSION['response']); ?>
      </div>
    </div>
    
    <div class="row">
      <div class="">
        <?php
          $query = 'SELECT * FROM crud';
          $stmt = $conn->prepare($query);
          $stmt->execute();
          $result = $stmt->get_result();
        ?>
        <table class="table table-hover" id="data-table">
          <tbody>
            <?php while ($row = $result->fetch_assoc()) { ?>
            <tr>
              <td><a href='details.php'><img src="<?= $row['photo']; ?>" width="125"></a></td>
              <td class="pt-2"><?= 

                $longString=$row['name']; 
                $link = $row['id'];
                $longStringshortcut = strlen($longString);
                
                //echo substr($longString, 0, 100).'... <a href="$link">Read More</a>';
                    if ($longStringshortcut > 250) {
                        echo substr($longString, 0, 250).".. <a href='details.php?details=$link'><strong>Preberi več...</strong></a>"; }
                    else {
                        echo $longString;
                    }
                
                
                ?>
              
                <a href="details.php?details=<?= $row['id']; ?>" class="badge badge-primary">Details</a> 
                <a href="action.php?delete=<?= $row['id']; ?>" class="badge badge-danger" onclick="return confirm('Do you want delete this record?');">Delete</a> 
                <a href="index.php?edit=<?= $row['id']; ?>" class="badge badge-success">Edit</a>
              </td>
            </tr>
            <?php } ?>
          </tbody>
        </table>
        <div class="col-md-4 p-0">
            <h5 class="">Add notification:</h5>
                <form action="action.php" method="post" enctype="multipart/form-data">
                    <input type="hidden" name="id" value="<?= $id; ?>">
                    <div class="form-group">
                            <textarea name="name" value="<?= $name; ?>" class="form-control" placeholder="This is the default text" required></textarea>
                    </div>
                    <div class="form-group">
                        <?php if ($update == true) { ?>
                        <input type="submit" name="update" class="btn btn-success btn-block" value="Change notification">
                        <?php } else { ?>
                        <input type="submit" name="add" class="btn btn-primary btn-block" value="Add">
                        <?php } ?>
                    </div>
                    <div class="form-group">
                        <input type="hidden" name="oldimage" value="<?= $photo; ?>">
                        <input type="file" name="image" class="custom-file">
                        <img src="<?= $photo; ?>" width="120" class="img-thumbnail">
                    </div>
                </form> 
        </div>
      </div>
    </div>
  </div>
 

action.php

 <?php
    session_start();
    include 'config.php';

    $update=false;
    $id="";
    $name="";
    $photo="";

    if(isset($_POST['add'])){
        $name=$_POST['name'];
        
        $photo=$_FILES['image']['name'];
        $upload="uploads/".$photo;

        $query="INSERT INTO crud(name,photo)VALUES(?,?)";
        $stmt=$conn->prepare($query);
        $stmt->bind_param("ss",$name,$upload);
        $stmt->execute();
        move_uploaded_file($_FILES['image']['tmp_name'], $upload);

        header('location:index.php');
        $_SESSION['response']="Successfully Inserted to the database!";
        $_SESSION['res_type']="success";
    }
 

Комментарии:

1. Нам нужно повидаться с вашим редактором. Ничто в PHP этого не сделает.

2. <?= если для эхо-контента. Используется <?php для открытия PHP-блока.

3. @Barmar не уверен, что вы именно имеете в виду, мой предыдущий «текстовый редактор» был в основном просто текстовой областью для ввода строки, которая будет отображаться, когда я нажму кнопку добавить. Я также добавил фотографию, чтобы посмотреть, что произойдет сейчас.

4. Укажите var_dump($row) одну из записей, содержащих двойное содержимое, или каждая строка содержит двойное содержимое? Также не используйте визуализированную страницу для просмотра этого, просмотрите источник.

5. @user3783243, решено. Да, после моего Теперь я заменил это на Я не знаю, почему это работало до этого, просто вся ситуация была странной. Спасибо другим за то, что пытались помочь!

Ответ №1:

Проблема заключалась в синтаксисе<? = (эхо),