Как передать значение 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') ");
}
?>


Подскажите в чем может быть проблема, что я делаю не так, и если есть другие варианты отправки этого значения, то большая просьба показать что да как.
  • Вопрос задан
  • 271 просмотр
Решения вопроса 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 видно, что кука отсылается? Кука лежит в том же домене/субдомене? Не экспайрится ли кука слишком рано?
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
summer Ярославль
от 100 000 до 140 000 ₽
КРАФТТЕК Санкт-Петербург
от 60 000 до 80 000 ₽
19 апр. 2024, в 17:06
15000 руб./за проект
19 апр. 2024, в 16:53
1000 руб./за проект
19 апр. 2024, в 16:45
5000 руб./за проект