Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/388.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP和Javascript向服务器发送相同的随机值_Javascript_Php - Fatal编程技术网

PHP和Javascript向服务器发送相同的随机值

PHP和Javascript向服务器发送相同的随机值,javascript,php,Javascript,Php,我想为PHP和javascript变量设置相同的随机值,但当我发布表单时,这些随机变量会发生更改 我所做的是: PHP中的 $rand_string = $gen->RandomString(7); //It generate random string if(isset($_POST['call'])) { $toid = $_POST['id']; $username = $_SESSION['username']; $byid = $_SESSION['us

我想为PHP和javascript变量设置相同的随机值,但当我发布表单时,这些随机变量会发生更改

我所做的是:

PHP中的

$rand_string = $gen->RandomString(7); //It generate random string

if(isset($_POST['call']))
{
    $toid = $_POST['id'];
    $username = $_SESSION['username'];
    $byid = $_SESSION['user_id'];
    $conn->setNotification($toid,$byid,$username,$rand_string); //It store data in database
}
<form onsubmit="popitup('calling.php')" method="POST" action="">
  <input type="hidden" name="id" value="1" />
  <input type="hidden" name="username" value="john" />
  <button class="btn" type="submit" name="call">call</button>
function popitup(url) {
  var rand_val = '<?php echo $rand_string; ?>';
  newwindow=window.open(url+"?room="+rand_val,'name');
  if (window.focus) {newwindow.focus()}
    return false;
}
HTML中的

$rand_string = $gen->RandomString(7); //It generate random string

if(isset($_POST['call']))
{
    $toid = $_POST['id'];
    $username = $_SESSION['username'];
    $byid = $_SESSION['user_id'];
    $conn->setNotification($toid,$byid,$username,$rand_string); //It store data in database
}
<form onsubmit="popitup('calling.php')" method="POST" action="">
  <input type="hidden" name="id" value="1" />
  <input type="hidden" name="username" value="john" />
  <button class="btn" type="submit" name="call">call</button>
function popitup(url) {
  var rand_val = '<?php echo $rand_string; ?>';
  newwindow=window.open(url+"?room="+rand_val,'name');
  if (window.focus) {newwindow.focus()}
    return false;
}
但在这里发生的是,
$rand_string
在数据库中发送和在javascript新窗口中发送是不同的。 我怎样才能解决这个问题

提前感谢,谢谢
抱歉,英语不好。

每次调用submit the page calling.php时,它都会更改$rand_string变量中的值,因此您需要像下面这样更改代码

      if(isset($_POST['call']))
        {
            $toid = $_POST['id'];
            $username = $_SESSION['username'];
            $byid = $_SESSION['user_id'];
            $conn->setNotification($toid,$byid,$username,$rand_string); //It store data in database
    $rand_string = $gen->RandomString(7); //It generate random string
    }
else
    {
    $rand_string = $gen->RandomString(7); //It generate random string
    }

它将解决您的问题

最开始的php是
调用.php
?@Mickeelleger No
调用.php
的内容不同,这些php内容转到
setNotification.php
。我认为在js函数中混合php代码从来都不是一个好主意。我会将popitup('calling.php')更改为popitup('calling.php',$rand_string),然后将js函数定义更改为函数popitup(url,rand_string){…}@PradipDhakal,看起来您的
$rand_string
将被重新生成。您不能只使用php会话来存储
$rand_string
?您应该尝试使用Ajax在数据库中使用一些JS+插入数据。想法:1/当用户生成子表单时,您对
setNotification.php
执行ajax调用:您创建
$rand\u字符串
+将其插入数据库。2/将此
$rand_string
发送回JS(只需在php末尾使用
echo$rand_string
),并在ajax调用的成功部分使用此值。3/现在使用此值执行popitup使用相同值执行的操作。您是否使用jQuery以便我可以尝试anwser?