ниже приведенный код показывает панель-ссылку"Online Консультант"
если консультант был в сети не позже чем 60 сек назад
и подключается в шаблон index файла
<?php
$online_time = time();
$res = mysqlQuery("SELECT * FROM online_admin");
while($row = mysql_fetch_array($res))
{
$time_admin=(int)$row['time'];
if ($online_time<$time_admin+60)
{print "
<script type=\"text/javascript\" src=\"http://jqueryjs.googlecode.com/files/jquery-1.3.2.js\"></script>
<script type=\"text/javascript\" charset=\"utf-8\" src=\"/js/jquery-1.5.1.min.js\"></script>
<script type=\"text/javascript\" charset=\"utf-8\" src=\"/js/cometClient.js\"></script>
<a class=\"trigger\" href=\"#\">Online<br>Консультант</a>
<div class=\"panel\">
<h2>Здравствуйте!<br>Задайте свой вопрос!</h2>
<div id=\"text_chat\"></div>
<h3>Ваше Имя
<input type=\"text\" id=\"myname\" size=\"15\" maxlength=\"20\" value=\"Неизвестный\"
onFocus=\"if(this.value=='Неизвестный'){this.value=''}\" onBlur=\"if(this.value==''){this.value='Неизвестный'}\"></h3>
<input type=\"text\" id=\"mymessege\" size=\"30\" maxlength=\"400\">
<input type=\"button\" id=\"sendbutton\" value=\"Отправить\">
</div>
";
}
}
?>
после ввода сообщения в поля текста и нажатия "отправить"
мы перемещаемся в js модуль где обрабатываются все действия ajax-ом
а именно:
function sendMessage() {
if ($('#myname').val() && $('#mymessege').val()) {
var data = {
myname: $('#myname').val(),
mymessege: $('#mymessege').val(),
}
$.post('addMessage.php', data);
$('#mymessege').val('');
}
}
$(document).ready(function(){
$(".trigger").animate({right: 0}, 1000);
$(".trigger").animate({right: -10}, 300);
$(".trigger").animate({right: 0}, 300);
$(".trigger").click(function(){
$(".panel").toggle("fast");
$(this).toggleClass("active");
return false;
});
$('#sendbutton').click(function() {
sendMessage();
})
})
и наконец мы попадаем в файл занесения сообщения в БД:
<?php
header("Content-Type: text/html; charset=utf-8");
error_reporting(E_ALL);
define('MEGA_KEY', true);
include 'config.php';
include 'libs/mysql.php';
if (isset($_POST['myname'], $_POST['mymessege']))
{
if (isset($_SESSION['guest']))
{
$session=$_SESSION['guest'];
mysqlQuery("INSERT INTO user_chat SET session = '$session'");
}
тут я для примера написал что заношу в БД новую запись если сессия определена, но на практику сессия guest пустая, старт сессии в этом файле не помогает, а только повисает запрос..
не могу понять где пропала сессия? и как в последнем пхп получить её значение? где-то что-то не догоняю, вразумите, плиз!
Спустя 53 минуты, 30 секунд (30.07.2012 - 12:25) inpost написал(а):
Вообще, чтобы работала сессия, надо писать session_start();
Спустя 10 минут, 45 секунд (30.07.2012 - 12:35) megadom написал(а):
спасибо конечно,но я написал, что ->
Цитата |
старт сессии в этом файле не помогает, а только повисает запрос.. |
Спустя 3 минуты, 57 секунд (30.07.2012 - 12:39) inpost написал(а):
Сессия не может повисать файл, возможно проверка, которая удовлетворяет запросу её даёт такой результат. Но для этого необходимо сделать всё правильно и стартовать сессию во всех файлах.
Спустя 32 минуты, 12 секунд (30.07.2012 - 13:12) AlexanderPHP написал(а):
А
Что выдает?
var_dump($_REQUEST);
Что выдает?