За последние 24 часа нас посетили 21778 программистов и 1019 роботов. Сейчас ищут 590 программистов ...

Не работает ввод сообщения на русском языке

Тема в разделе "PHP для новичков", создана пользователем Titan_ser, 25 апр 2020.

Метки:
  1. Titan_ser

    Titan_ser Новичок

    С нами с:
    25 апр 2020
    Сообщения:
    3
    Симпатии:
    0
    Создал форму отправки сообщения в базу данных через mysql, при заполнении текста на англ языке всё хорошо, но при вводе русских слов в итоге в базе данных в этих ячейках пусто.

    Код в html
    HTML:
    1.  
    2. <title>Запись в БД через форму на php</title>
    3. </head>
    4. <form method="POST" action="http://test1.ru/sega/index.php">
    5.   <input name="name" type="text" placeholder="Имя"/>
    6.   <input name="text" type="text" placeholder="Текст"/>
    7.   <input type="submit" value="Отправить"/>
    8. </form>
    9. </body>
    10. </html>
    Также само заполнение в базу данных

    PHP:
    1. <?php
    2. header("Content-Type: text/html; charset=utf-8");
    3.  
    4. if (isset($_POST['name']) && isset($_POST['text'])){
    5.  
    6.     // Переменные с формы
    7.     $name = $_POST['name'];
    8.     $text = $_POST['text'];
    9.  
    10.     // Параметры для подключения
    11.     $db_host = "localhost";
    12.     $db_user = "root"; // Логин БД
    13.     $db_password = ""; // Пароль БД
    14.     $db_base = "sega"; // Имя БД
    15.     $db_table = "mytable"; // Имя Таблицы БД
    16.  
    17.     // Подключение к базе данных
    18.     $mysqli = new mysqli($db_host,$db_user,$db_password,$db_base);
    19.     $mysqli->query ("SET NAMES 'UTF8'");
    20.  
    21.     // Если есть ошибка соединения, выводим её и убиваем подключение
    22.     if ($mysqli->connect_error) {
    23.         die('Error : ('. $mysqli->connect_errno .') '. $mysqli->connect_error);
    24.     }
    25.   $mysqli->query (
    26.   "CREATE TABLE `sega`.`mytable`(
    27.      `id` INT(11) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
    28.      `name` VARCHAR(20) CHARACTER SET utf8_general_ci NOT NULL,
    29.      `text` VARCHAR(255) CHARACTER SET utf8_general_ci NOT NULL,
    30.      `regdate` DATE
    31.  )
    32.  ");
    33.  
    34.     $result = $mysqli->query("INSERT INTO ".$db_table." (name,text) VALUES ('$name','$text')");
    35.  
    36.     if ($result == true){
    37.         echo "Ваше сообщение успешно отправлено";
    38.     }else{
    39.         echo "Ваше сообщение не отправлено";
    40.     }
    41. }
    42. ?>
    Результат на картинке: Первая строка - ввод текста на русском в форму отправки
    Вторая строка - ввод текста на английском.
    Прошу вашей помощи
     

    Вложения:

  2. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.748
    Симпатии:
    1.321
    Адрес:
    Лень
    varchar [ ( n | max ) ] — строковые данные переменного размера. Используйте значение n для определения размера строки в байтах
     
  3. Titan_ser

    Titan_ser Новичок

    С нами с:
    25 апр 2020
    Сообщения:
    3
    Симпатии:
    0
    извините я недавно с mysql связался, мне varchar [ ( n | max ) ] нужно вписывать в строках
    `name` VARCHAR(20),
    `text` VARCHAR(255),
    или вообще новое значение создать??? :oops: