Консультация № 174274
16.11.2009, 01:33
0.00 руб.
0 2 1
Доброй ночи :)
Вот снова возникла проблема к сожалению.
я написал для phpbb3 дополнительную функцию, в определенном форуме появляеться кнопка, при нажатии на нее, вылезает шаблон отправки сообщения..Все бы нечего, если бы не 2 проблемы:
1)В базу заноситься неверная кодировка, соответственно и вывод не корректный
2)Не определяет ID пользователя оставившего сообщение, посредствои извлечения из сессии..

Знаю что код не очень, но старался как мог, потом его улучшу.


Приложение:
if ($_POST["post"]) {
mysql_connect("localhost","root","12345");
mysql_select_db("aaas");
$subject = $_POST['subject'];
$nameuser = $_POST['nameuser'];
$years = $_POST['years'];
$sex = $_POST['sex'];
$vnvid = $_POST['vnvid'];
$psyport = $_POST['psyport'];
$dinf = $_POST['dinf'];
$bio = $_POST['bio'];
$ppost = $_POST['ppost'];
$contacts = $_POST['contacts'];
$poss = $_POST['poss'];
$pravila = $_POST['pravila'];
$messeage = $nameuser.'
'.$years.'
'.$sex.'
'.$vnvid.'
'.$psyport.'
'.$dinf.'
'.$bio.'
'.$ppost.'
'.$contacts.'
'.$poss.'
'.$pravila;
$usersess = $_SESSION["phpbb3_qygeb_u"];
$query1 = mysql_query("INSERT INTO phpbb_topics (forum_id,topic_title,topic_poster) VALUES ('8','$subject','$usersess')");
$query2 = mysql_query("select topic_id from phpbb_topics WHERE topic_title='$subject' AND forum_id='8'");
$query2 = mysql_fetch_array($query2);
$query3 = mysql_query("INSERT INTO phpbb_posts (topic_id,forum_id,poster_id,post_subject,post_text) VALUES ('$query2[topic_id]','8','$usersess','$subject','$messeage')");
if(query1 == true && query2 == true && query3 == true) {
$topic = $query2['topic_id'];
echo '<script language=JavaScript>

bName=navigator.appName;

if(bName==Netscape)



window.location=viewtopic.php?f=8&t='.$topic.';



else



window.location =viewtopic.php?f=8&t='.$topic.';

</script>';
}
}

Обсуждение

Неизвестный
16.11.2009, 09:56
общий
Кодировка выбирается примерно так:
Код:
mysql_query("SET character_set_client='utf8'");
mysql_query("SET character_set_connection='utf8'");
mysql_query("SET character_set_results='utf8'");

если нужно не utf-8 (а правильно все-таки использовать utf-8), поменяйте на вашу.
Как получить id пользователя, скажу, если напишите результат print_r($_SESSION);
Неизвестный
16.11.2009, 11:12
общий
это ответ
Доброго времени суток, Герасимов Виталий Владиславович.
Ответ vladisslav'a который расположен выше,верен. Но меня "терзают смутные сомнения"(c) по поводу проблемы с неверной кодировкой. Ибо на сколько я знаю Phpbb используют стандартную кодировку UTF-8 и на странице сайта и в базе данных, и чисто теоретически проблем не должно возникнуть при вносе в базу данных информации. Посмотрите какая кодировка у вас используется на вашей форме*, и вполне возможно что все дело в отображении станицы в другой кодировке (чаще всего Windows-1251). Исправив эту "недомловку" с кодировкой страницы можно будет избежать лишнего кода. Повторю что это все мои догатки.

* В Mozilla это делается так: Вид-> Кодировка и там показано галочкой в какой кодировке показана страница. Например эта страница отображается в Windows-1251.
Форма ответа