Задать вопрос

Как передать значение REQUEST на следующие страницы?

Добрый день.
У меня возникла проблема при создании чата, а точнее при попытке ограничить доступ к чату, чтобы пользователи могли видеть только те сообщения, которые должны.

Подскажите как в моем случае передать значение $num (id получателя) на следующую страницу.

Имеется 3 файла:

1) checkhistory.php - здесь я получаю значение request через radio ($num) и оно нормально передается на страницу "chat .php" путем отправки формы в "value".
<input class='base' type='hidden' name='pac_id' value='$num' size='7' placeholder='id pacjenta'>


2) chat.php - на этой странице я получаю значение "$num" и добавляю его в куки
<?php
$num = trim($_REQUEST['num']);   
session_start();
if(!isset($_COOKIE['num']))
           setcookie('num', $row['num'], time() + (60*60*24*30));
?>

После чего добавляю его в форму и также отправляю на страницу "add_mess.php". Вот кусочек кода:
<div class="block13">
<h1>Chat room</h1>

<script type="text/javascript" src="http://www.google.com/jsapi"></script>
<script type="text/javascript">

    google.load("jquery", "1.3.2");
	google.load("jqueryui", "1.7.2");
	

	function send()
	{
	
		var mess=$("#mess_to_send").val();
	
       $.ajax({
                type: "POST",
                url: "add_mess.php",
                data:"mess="+mess,
               
                success: function(html)
				{
					
					load_messes();
					
					$("#mess_to_send").val('');
                }
        });
	}
	
	
	function load_messes()
	{
		$.ajax({
                type: "POST",
                url:  "load_messes.php",
                data: "req=ok",
           
                success: function(html)
				{
				
					$("#messages").empty();
					$("#messages").append(html);
					$("#messages").scrollTop(90000);
                }
        });
	}
</script>

<table>
<tr>
<td>
<div id="messages">
</div>
</td>
</tr>
<tr>
<td>

<form action="javascript:send();">

<input type="text" id="mess_to_send" class="textmess">   

<input class='base' type='text' name='id_to' value= '<?php echo htmlspecialchars($num); ?>' size='7' placeholder='id pacjenta'> 

<input type="submit" value="Wyslac" class="dodajos111">

</form>


</td>
</tr>
</table>

<script>
//action="javascript:send();"
load_messes();

setInterval(load_messes,3000);
</script>


3) add_mess.php - сюда ничего не доходит, пробовал отправлять и через форму в value и через куки, 0 реакции. В этом файле мне нужно значение $num, для подальшего добавления в базу ($num - это id получателя сообщения в чате).
Код:
<?php

include('../../session.php');  

$num = trim($_REQUEST['num']);

 session_start();
    
setcookie('username', $row['username'], time() + (60*60*24*30));
setcookie('user_id', $row['user_id'], time() + (60*60*24*30));

print_r($_COOKIE);

if(isset($_POST['mess']) && $_POST['mess']!="" && $_POST['mess']!=" ")
{
	 
	$mess=$_POST['mess'];  
	$username=$_COOKIE['username'];
    $num=$_COOKIE['num'];
    
	include("bd.php");
    
	$res=mysql_query("INSERT INTO `messages` (`login`,`message`,`id_add`,`id_to`) VALUES ('". $_COOKIE['username'] . "','$mess','". $_COOKIE['user_id'] ."','". $_COOKIE['num'] ."' ) ");
   
    //    $res=mysql_query("INSERT INTO `messages` (`login`,`message`,`id_add`,`id_to`) VALUES ('". $_COOKIE['username'] . "','$mess','". $_COOKIE['user_id'] . "','$num') ");
}
?>


Подскажите в чем может быть проблема, что я делаю не так, и если есть другие варианты отправки этого значения, то большая просьба показать что да как.
  • Вопрос задан
  • 282 просмотра
Подписаться 2 Простой Комментировать
Решения вопроса 1
glaphire
@glaphire Куратор тега PHP
PHP developer
как минимум тут
function send()
  {
  
    var mess=$("#mess_to_send").val();
  
       $.ajax({
                type: "POST",
                url: "add_mess.php",
                data:"mess="+mess,
               
                success: function(html)
        {
          load_messes();
          $("#mess_to_send").val('');
                }
        });
  }

Вы отправляете только mess, а num у Вас в инпуте id="id_to", значение которого Вы никак явно не берете и не отсылаете аджаксом, так что физически num не отправится.
По поводу кук - видно, что кука установлена? Можно через cookie inspector (устанавливаемое расширение) посмотреть в chrome. В chrome devtools видно, что кука отсылается? Кука лежит в том же домене/субдомене? Не экспайрится ли кука слишком рано?
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы