• При отправке письма с формы обратной связи, на почте пишет noreply. Как поменять на текст или на email отправителя?

    @goshaLoonny
    Начнем с того что я удивлен что форма вообще отправляется, ведь тип кнопки должен быть submit, а не button.
    А что бы добавить имя отправителя, используйте заголовки
    <?php
    
    if ($_POST['submit']) {
      $mailForReport = 'admin@example.com'; // Мейл куда будут отчеты приходить
      $senderName = 'Раб Виталий'; // Имя отправителя
      $senderLogin = 'rab_vitalii'; // Логин отправителя
      $subject = 'Заявка c сайта'; // Тема письма
      $headers = [ // Заголовки
          'From' => "{$senderName} <{$senderLogin}@{$_SERVER['HTTP_HOST']}>",
          'Reply-To' => "{$senderName} <{$senderLogin}@{$_SERVER['HTTP_HOST']}>",
          'X-Mailer' => 'PHP/' . phpversion(),
          'Content-type' => 'text/html; charset=utf-8'
      ];
      // Красивенько отправим все табличкой, а не переносами
      $msg = <<<HTML
    <table>
      <tr><td>Имя</td><td>{$_POST['name']}</td></tr>
      <tr><td>Фамилия</td><td>{$_POST['surname']}</td></tr>
      <tr><td>Телефон</td><td>{$_POST['phone']}</td></tr>
      <tr><td>Почта</td><td>{$_POST['email']}</td></tr>
      <tr><td>Текст</td><td>{$_POST['text']}</td></tr>
    </table>
    HTML;
    
      $isSended = mail($mailForReport, $subject, $msg, $headers);
    }
    
    ?>
    <meta charset="utf-8">
    
    <?php if ( isset($isSended) ) :?>
      <p><?= $isSended ? 'Письмо отправленно' : 'Не удалось отправить письмо' ?></p>
    <?php endif; ?>
    
    <form id="callback-form" action="<?= $_SERVER['SCRIPT_NAME'] ?>" method="post" style="width: 300px">
      <input type="text" name="name" placeholder="Имя" required>
      <input type="text" name="surname" placeholder="Фамилия" required>
      <input type="number" name="phone" placeholder="Телефон" required>
      <input type="email" name="email" placeholder="Email" required>
      <textarea name="text" cols="30" rows="10" placeholder="Введите текст" required></textarea>
      <input type="submit" name="submit" value="Отправить форму">
    </form>
    Ответ написан
  • Как сравнить 2 массива и убрать повторяющиеся записи?

    @goshaLoonny
    Если вам нужно убрать из первого массива данные что есть во втором, попробуйте так:
    $array1 = [
      [
        'pname' => 'Andrey_Faste',
        'vkid'  => 2324324
      ],[
        'pname' => 'Aleksey_Andreev',
        'vkid'  => null
      ],[
        'pname' => 'Ivan_Alekseev',
        'vkid'  => null
      ],[
        'pname' => 'Ivan_Ivanov',
        'vkid'  => null
      ],[
        'pname' => 'Ivan_Petrov',
        'vkid'  => 344366423498
      ]
    ];
    
    $array2 = [
      [
        'pname' => 'Ivan_Ivanov',
        'vkid'  => null
      ],[
        'pname' => 'Ivan_Petrov',
        'vkid'  => null
      ]
    ];
    
    // Перебирать будем первый массив, по этому создадим третий массив 
    // который будет содержать все `pname` из второго массива
    $array3 = [];
    
    foreach ($array2 as $item) {
      array_push($array3, $item['pname']);
    }
    
    // Далее перебираем первый массив и проверяем есть ли совпадения 
    // со вторым, если есть - удаляем
    foreach ($array1 as $key=>$item) {
      if (in_array($item['pname'], $array3)) unset($array1[$key]);
    }
    
    // Вывести результат
    echo "<pre>";
    print_r($array1);

    Результат:
    Array
    (
        [0] => Array
            (
                [pname] => Andrey_Faste
                [vkid] => 2324324
            )
    
        [1] => Array
            (
                [pname] => Aleksey_Andreev
                [vkid] => 
            )
    
        [2] => Array
            (
                [pname] => Ivan_Alekseev
                [vkid] => 
            )
    
    )
    Ответ написан
    2 комментария
  • Как НЕ переходить по гиперссылке при клике по ней в браузерах (например, Chrome)?

    @goshaLoonny
    Зажатие клавиши Alt во время выделения предотвращает переход по ссылке. Но к сожалению если выделять двойным кликом то в комплект к выделению скачается документ расположенный по адресу на который ведет ссылка. По этому выделять все же придется возя мышкой от начала и до конца выделяемой области текста.
    Ответ написан
    2 комментария