PHP.SU

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

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

> Найдено сообщений: 15
LuNa82 Отправлено: 11 Октября, 2011 - 11:51:43 • Тема: PHP+ MySql кодировка • Форум: Вопросы новичков

Ответов: 16
Просмотров: 696
Объясните мне, пожалуйста! опрос на utf-8, страницы на cp1251 могут сочетаться както? Или нужно будет всё-таки все файлы сайта перекодировать на utf-8?
LuNa82 Отправлено: 11 Октября, 2011 - 05:55:47 • Тема: PHP+ MySql кодировка • Форум: Вопросы новичков

Ответов: 16
Просмотров: 696
Блин забыла про
DeepVarvar пишет:
mysql_query('SET NAMES cp1251');


Всё работает! Спасибо IronHawk, DeepVarvar, morosit, topy
LuNa82 Отправлено: 10 Октября, 2011 - 12:40:00 • Тема: PHP+ MySql кодировка • Форум: Вопросы новичков

Ответов: 16
Просмотров: 696
DeepVarvar пишет:
.htaccess отредактировали?

Ага, вот:

# This folder does not require access over HTTP
# (the following directive denies access by default)
Order allow,deny
AddDefaultCharset UTF-8
LuNa82 Отправлено: 10 Октября, 2011 - 12:21:20 • Тема: PHP+ MySql кодировка • Форум: Вопросы новичков

Ответов: 16
Просмотров: 696
topy пишет:
а еще надо все файлы пересохранить в UTF

в NotePad'e сделала Convert to UTF8
morosit пишет:
наполнение таблицы старое? отправленное еще в старой кодировке?

Очистила, ввела русский текст - на сайте квадратики
LuNa82 Отправлено: 10 Октября, 2011 - 09:53:49 • Тема: PHP+ MySql кодировка • Форум: Вопросы новичков

Ответов: 16
Просмотров: 696
DeepVarvar пишет:
У ПМА есть выбор кодировки подключения - прямо на главной странице.
Еще имейте виду, чо сервер может отправлять заголовки про другую кодировку - это правиться в .htaccess


Исправила всё, в ПМА стояла кодировка utf8_unicode_ci, сменила на utf8_general_ci

В htaccess тоже utf8 поставила, перезапустила Apache

Без изменений Нахмурился
LuNa82 Отправлено: 10 Октября, 2011 - 08:32:37 • Тема: PHP+ MySql кодировка • Форум: Вопросы новичков

Ответов: 16
Просмотров: 696
DeepVarvar пишет:

Use utf-8, Luke... Hshhhhhh...

Улыбка
Страничку переделала на utf-8 (базу, таблицу, meta, my.ini), куки почистила, перезашла в PHPMyAdmin... неизменилось ничего

мозг уже дымится Ща взорвусь!
LuNa82 Отправлено: 10 Октября, 2011 - 08:17:35 • Тема: PHP+ MySql кодировка • Форум: Вопросы новичков

Ответов: 16
Просмотров: 696
DeepVarvar пишет:
ajax корректно работает только с utf-8.


Т.е. переделать на utf-8 базу, таблицу и поле title? Поможет?
LuNa82 Отправлено: 10 Октября, 2011 - 08:14:14 • Тема: PHP+ MySql кодировка • Форум: Вопросы новичков

Ответов: 16
Просмотров: 696
Есть скрипт голосования через Ajax.

В скрипте php создается база и таблица в кодировке latin1_swedish_ci (почему?), переделала базу, таблицу и поле title в кодировку на cp1251_general_ci.

На сайте нормально отображается, в PHPMyAdmin кракозябры. Изменяя эти кракозябры на русские буквы, начинаются кракозябры на сайте...

Что посоветуете? Кучу информации перелопатила, помоему всё уже перепробовала, не хочет одновременно корректно отображаться на сайте и в PHPMyAdmin

Файл My.ini

PHP:
скопировать код в буфер обмена
  1. default-character-set=cp1251
  2.  
  3. init-connect="SET NAMES cp1251"


Файл DbConnect.php
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2.         // название  сервера БД
  3.         define ("HOST", "localhost");
  4.         // название базы данных
  5.         define ("DATABASE", "vote");
  6.         // пользователь MySQL
  7.         define ("MYSQL_USER", "root");
  8.         // пароль к MYSQL
  9.         define ("MYSQL_PASS", "root");
  10.        
  11.        
  12.         // создаем базу данных и таблицу  gb
  13.         $link1=mysql_connect(HOST, MYSQL_USER, MYSQL_PASS) or die("Нет соединения с MySQL
  14.  
  15. сервером!");
  16.         mysql_query('SET NAMES cp1251');
  17.         mysql_query ("CREATE DATABASE IF NOT EXISTS ".DATABASE) or die ("Не могу создать
  18.  
  19. базу данных!");
  20.         mysql_select_db(DATABASE) or die("Нет содениения с требуемой базой данных!");
  21.         mysql_query ("CREATE TABLE IF NOT EXISTS vote (id INT NOT NULL AUTO_INCREMENT
  22.  
  23. PRIMARY KEY, title VARCHAR (250), votes INT)") or die ("Не могу создать таблицу vote.");
  24.        
  25.         // если таблица пуста, заполним её начальными значениями
  26.         $r=mysql_query ("SELECT * FROM vote");
  27.         if (mysql_num_rows($r)==0)
  28.         {
  29.                 mysql_query ("INSERT INTO vote (title) VALUES ('Куда вы сегодня
  30.  
  31. пойдете?')");
  32.                 mysql_query ("INSERT INTO vote (title, votes) VALUES ('Никуда',0)");
  33.                 mysql_query ("INSERT INTO vote (title, votes) VALUES ('В кино',0)");
  34.                 mysql_query ("INSERT INTO vote (title, votes) VALUES ('В клуб',0)");
  35.                 mysql_query ("INSERT INTO vote (title, votes) VALUES ('В магазин',0)");
  36.                 mysql_query ("INSERT INTO vote (title, votes) VALUES ('В спортзал',0)");
  37.                 mysql_query ("INSERT INTO vote (title, votes) VALUES ('Другое',0)");
  38.         }
  39.        
  40.        
  41. ?>


Файл index.php
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. <?php
  3.  
  4.         include ("dbconnect.php");
  5.         include ("functions.php");
  6.        
  7. ?>
  8.  
  9. <html>
  10. <head>
  11. <meta http-equiv="Content-Type" content="text/html; Charset=Windows-1251">
  12.  
  13.  
  14. <script src="showcontent.js" type="text/javascript"></script>
  15. <script>       
  16.         function getRadioGroupValue(radioGroupObj)
  17.         {
  18.                 for (var i=0; i < radioGroupObj.length; i++)
  19.                         if (radioGroupObj[i].checked) return radioGroupObj[i].value;
  20.  
  21.                 return null;
  22.         }      
  23.        
  24. </script>
  25. </head>
  26.  
  27. <body>
  28.  
  29.         <div id="contentBody">
  30.        
  31.                 <?php
  32.  
  33.                 if ($_COOKIE['codething_vote']=='1')
  34.                                 drawResults();                         
  35.                 else
  36.                         drawForm();                            
  37.                 ?>     
  38.        
  39.         </div>
  40.  
  41.         <div id="loading" style="display: none">
  42.         Идет загрузка...
  43.         </div>
  44.        
  45. </body>
  46. </html>


Есть еще 3 файла (установка значения в куки, прорисовка формы и скрипт Ajax). Если нужно-размещу
LuNa82 Отправлено: 06 Октября, 2011 - 11:57:36 • Тема: Ошибка при подсчёте голосов в опросе • Форум: Вопросы новичков

Ответов: 16
Просмотров: 554
JohnnyB пишет:
попробуй вывести ошибку SQL мож ясно станет
PHP:
скопировать код в буфер обмена
if(!($result = @mysql_query($query, $db_conn)))
{
 
echo mysql_error();
}

Вывела ошибку:
Illegal mix of collations (cp1251_general_ci,IMPLICIT) and (latin1_swedish_ci,COERCIBLE) for operation '='
Погуглила и нашла решение:
Вставить после mysql_select_db('poll');
PHP:
скопировать код в буфер обмена
  1.  
  2. mysql_query("SET CHARACTER SET 'cp1251'", $db_conn);


JohnnyB, morosit, LIME спасибо вам!
LuNa82 Отправлено: 06 Октября, 2011 - 10:56:16 • Тема: Ошибка при подсчёте голосов в опросе • Форум: Вопросы новичков

Ответов: 16
Просмотров: 554
Куда прописать?

Таблица существует, в ней 2 поля: answers и voices

Вывожу на экран значение переменной $query
UPDATE poll_results SET voices = voices+1 where answers ='Не знаю'

И дальше
Ошибка доступа к базе данных

Что не так? Разнесу!
LuNa82 Отправлено: 05 Октября, 2011 - 13:27:21 • Тема: Ошибка при подсчёте голосов в опросе • Форум: Вопросы новичков

Ответов: 16
Просмотров: 554
morosit пишет:
кстати так и не понятно передается ли переменая

PHP:
скопировать код в буфер обмена
  1.  
  2. if (!empty($_POST["vote"]))
  3. {
  4. $vote = addslashes($_POST['vote']);
  5. $query = "UPDATE poll_results SET voices = voices + 1 where answers ='{$_POST['vote']}'";
  6. if(!($result = @mysql_query($query, $db_conn)))
  7. {
  8. echo 'Ошибка доступа к базе данных';
  9. }
  10. }
  11. else {echo 'ошибка';}


Передаётся! По прежнему только ошибка из 20 строки
LuNa82 Отправлено: 05 Октября, 2011 - 12:57:44 • Тема: Ошибка при подсчёте голосов в опросе • Форум: Вопросы новичков

Ответов: 16
Просмотров: 554
morosit пишет:
не много измените сообщения, что точно знать из 7 строки ошибка или из 20

Из 20 строки, после проверки выполнения запроса
LuNa82 Отправлено: 05 Октября, 2011 - 12:45:22 • Тема: Ошибка при подсчёте голосов в опросе • Форум: Вопросы новичков

Ответов: 16
Просмотров: 554
LIME пишет:
везде вместо $vote - {$_POST['vote']}
или в начале присвоение $vote=$_POST['vote'];
$query = "UPDATE poll_results SET voices = voices + 1 where answers ='{$_POST['vote']}'";


Спасибо, теперь выдаёт Ошибка доступа к базе данных. update не сработал?
LuNa82 Отправлено: 05 Октября, 2011 - 11:59:13 • Тема: Ошибка при подсчёте голосов в опросе • Форум: Вопросы новичков

Ответов: 16
Просмотров: 554
CODE (html):
скопировать код в буфер обмена
  1.  
  2. <html>
  3. <head>
  4. <title>Голосование</title>
  5. </head>
  6. <body>
  7. <b>Нравится ли Вам наш новый дизайн?</b>
  8. <form method="post" action="poll.php">
  9. <Input Type="radio" Name="vote" Value="Да">Да<br>
  10. <Input Type="radio" Name="vote" Value="Нет">Нет<br>
  11. <Input Type="radio" Name="vote" Value="Не знаю">Не знаю<br>
  12. <Input Type="submit" Value="Голосовать">
  13. </form>
  14. <a href="poll_results.php">Результаты</a>
  15. </body>
  16. </html>
  17.  

(Добавление)
LIME пишет:
не предусмотрены действия в случае пустой переменной...в этом случае тоже выведет подтверждение

Да, но это позже, главное сейчас чтоб считать начало
LuNa82 Отправлено: 05 Октября, 2011 - 11:03:59 • Тема: Ошибка при подсчёте голосов в опросе • Форум: Вопросы новичков

Ответов: 16
Просмотров: 554
Есть код (не мой, пытаюсь разобраться)
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. <?php
  3.  
  4. if (!$db_conn = @mysql_connect('localhost', 'root', 'root'))
  5. {
  6. echo 'Ошибка доступа к базе данных';
  7. };
  8. @mysql_select_db('poll');
  9.  
  10.  
  11. if (!empty($vote))
  12. {
  13. $vote = addslashes($vote);
  14. $query = "UPDATE poll_results SET voices = voices + 1 where answers ='$vote'";
  15. if(!($result = @mysql_query($query, $db_conn)))
  16. {
  17.  
  18. echo 'Ошибка доступа к базе данных';
  19. }
  20. };
  21. echo '<b>Спасибо! Ваш голос учтён!</b>
  22. <br><a href="javascript:history.back(1)">Назад</a>';
  23. ?>
  24.  


Voices не считается, по видимому update не работает. Подскажите почему?!

Ошибки на экран не выводятся...

Страниц (1): [1]
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB