Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Из отправленной формы в БД записываются крякозябры

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
goooooch
Отправлено: 23 Января, 2013 - 10:07:49
Post Id



Гость


Покинул форум
Сообщений всего: 92
Дата рег-ции: Окт. 2010  


Помог: 0 раз(а)




Здравствуйте.

Я только изучаю php и mysql, поэтому не ругайтесь, если мой вопрос покажется глупым.


Есть код:
PHP:
скопировать код в буфер обмена
  1.  
  2. <?
  3. if (isset($_POST['send']))
  4. {
  5.    $my_title = strval($_POST['my_title']);
  6.      
  7.    $my_text = strval($_POST['my_text']);  
  8.    
  9.    $sql = mysql_query("INSERT into pages (title, content) values ('$my_title', '$my_text');");
  10.    
  11.    if ($sql == 'true')
  12.    {
  13.      echo '<p>Вы внесли запись  </p> ';
  14.    }
  15.    else
  16.    {
  17.      echo '<p>Вы  не внесли запись  </p> ';
  18.    }
  19.    
  20.    echo $sql;
  21.    
  22.    }
  23.    
  24. ?>
  25.  
  26.  
  27. <form action="index.php" method="post">
  28. <table border="1" align="center">
  29.   <tr>
  30.     <td>Введите заголовок страницы</td>
  31.     <td>Введите текст</td>
  32.   </tr>
  33.   <tr>
  34.     <td valign="top"><input name="my_title" type="text"
  35.         size="50" /></td>
  36.     <td valign="top"><textarea name="my_text" cols="60"
  37.         rows="30" > </textarea></td>
  38.   </tr>
  39. </table>
  40. <div align="center">
  41. <input name="send" type="submit" value="Отправить" />
  42. </div>
  43. </form>
  44.  


Вопрос:
запись в таблицу БД добавляется, но кирилические символы записываеются в виде: потребительский кредит вне...

Ну и чтобы два раза не вставать еще вопрос : в ПМА в созданной мной БД выводится сообщение "Индекс не определен!" Что я забыл сделать и что нужно сделать, чтобы это сообщение не выводилось?
 
 Top
Zuldek
Отправлено: 23 Января, 2013 - 10:43:24
Post Id


Постоянный участник


Покинул форум
Сообщений всего: 2122
Дата рег-ции: Июнь 2010  


Помог: 50 раз(а)




Цитата:
запись в таблицу БД добавляется, но кирилические символы записываеются в виде: потребительский кредит вне...

Кодировка страницы с которой происходит отправка и файл обработчика UTF8
Кодировку БД выставите такую же.
Цитата:
Индекс не определен!" Что я забыл сделать и что нужно сделать, чтобы это сообщение не выводилось?

Создать в таблице колонку id и назначить её уникальным индексом с атрибутом autoincrement

(Отредактировано автором: 23 Января, 2013 - 10:44:01)

 
 Top
goooooch
Отправлено: 23 Января, 2013 - 11:20:59
Post Id



Гость


Покинул форум
Сообщений всего: 92
Дата рег-ции: Окт. 2010  


Помог: 0 раз(а)




На странице кодировка —
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

А вот в прикрепленном файле — настройки БД. Тоже UTF-8, но там их несколько. Какой выбрать?
Прикреплено изображение (Нажмите для увеличения)
PMA.gif
 
 Top
hugronaphor
Отправлено: 23 Января, 2013 - 12:36:45
Post Id


Новичок


Покинул форум
Сообщений всего: 14
Дата рег-ции: Май 2012  


Помог: 0 раз(а)




При подключении к БД:

PHP:
скопировать код в буфер обмена
  1. $link = mysql_connect('localhost', 'user', 'password');
  2. mysql_set_charset('utf8',$link);
 
 Top
Vaio
Отправлено: 23 Января, 2013 - 13:23:35
Post Id


Гость


Покинул форум
Сообщений всего: 116
Дата рег-ции: Дек. 2012  


Помог: 0 раз(а)




goooooch пишет:
if ($sql == 'true')

Какой в ​​этом смысл?
 
 Top
goooooch
Отправлено: 23 Января, 2013 - 14:00:39
Post Id



Гость


Покинул форум
Сообщений всего: 92
Дата рег-ции: Окт. 2010  


Помог: 0 раз(а)




Vaio пишет:
goooooch пишет:
if ($sql == 'true')

Какой в ​​этом смысл?


Смысл в том, чтобы вывести на страницу результат отправки формы.
 
 Top
esterio
Отправлено: 23 Января, 2013 - 14:06:59
Post Id



Активный участник


Покинул форум
Сообщений всего: 5025
Дата рег-ции: Нояб. 2012  
Откуда: Украина, Львов


Помог: 127 раз(а)




1. Файл должен быть в формате UTF-8 Without BOM
2. надсилаем HEADER
PHP:
скопировать код в буфер обмена
  1. header('Content-type: text/html; charset=utf-8');

3. правим HTACESS
CODE (htaccess):
скопировать код в буфер обмена
  1. AddDefaultCharset utf-8

4. После коннекта к MYSQL отправляем запросы
CODE (SQL):
скопировать код в буфер обмена
  1. SET NAMES utf8;
  2. SET character_set_client = utf8;
  3. SET character_set_connection = utf8;
  4. SET character_set_results = utf8;

5. В HTML ставим мета тег
для HTML
CODE (html):
скопировать код в буфер обмена
  1. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

Для XHTML
CODE (html):
скопировать код в буфер обмена
  1. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

(Добавление)
UDP.
Иногда нужно использовать iconv в PHP
(Добавление)
goooooch пишет:
Смысл в том, чтобы вывести на страницу результат отправки формы.

Имелось ввиду что Вы делаете неправильную проверку
Цитата:
if ($sql == 'true')

1. Вы проверяете булев тип, а ето true без лапок -
2. Можно просто написать
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB