将javascript提示输入传递给PHP变量

将javascript提示输入传递给PHP变量,javascript,php,Javascript,Php,所以我正在为iOS开发一个代码签名系统。我需要一个用户的UDID,然后他们才能访问该网站。如何将javascript提示输入传递给php变量 我已尝试将变量发回同一页面 <?php $udid = $_POST['udid']; if(empty($udid)){ $udid = file_get_contents("saves/" . $ip . ".txt"); } if(empty($udid)){ ?> <script&g

所以我正在为iOS开发一个代码签名系统。我需要一个用户的UDID,然后他们才能访问该网站。如何将javascript提示输入传递给php变量

我已尝试将变量发回同一页面

<?php
    $udid = $_POST['udid'];
    if(empty($udid)){
        $udid = file_get_contents("saves/" . $ip . ".txt");
    }
    if(empty($udid)){
?>
<script>
var udid=prompt("Please enter your UDID");
$.ajax(
{
    type: "POST",
    url: "app.php",
    data: udid,
    success: function(data, textStatus, jqXHR)
    {
        console.log(data);
    }
});
</script>
<?php
    }
if( strpos(file_get_contents("cert1.txt"),$udid) !== false) {
            echo "Device status:<br><span class='badge badge-dark'>Signed</span><br>";
            echo "Signed on cert:<br><span class='badge badge-dark'>1</span><br>";
        } else {
            $t = ' ' . time();
            echo "<p>Device status:<br><span class='badge badge-dark'>Unsigned</span><br>You are now<br>on the waitlist</p><script>alert(\"Your device isn't approved yet. We have added you to the waitlist. Check back soon.\");</script>";
            $txt = $_GET['udid'] . $t;
            $myfile = file_put_contents('notsigned.txt', $txt.PHP_EOL , FILE_APPEND | LOCK_EX);
            header("Location: notsigned.php");
        }
?>
<br>
<a href="http://get.udid.io" style="text-decoration:none;font-family:arial;font-size:15px;color:#fff;padding:8px;border-radius:5px;background-color:blue;margin-bottom:5px;">Get your udid</a>
<br><br>
<form class='form-horizontal well' action='#' method='post'>
    <input type='text' name='udid' class='input-large' size="9" border="2" placeholder="udid" value='<?= $udid ?>'>
    <button type="submit" id="submit" style="text-decoration:none;font-family:arial;font-size:15px;color:#fff;padding:8px;border-radius:5px;background-color:springgreen;margin-bottom:5px;" class="badge-primary">Save</button>
</form>
<?php
    setcookie("udid", $udid, time()+31536000000, "/");
file_put_contents("saves/" . $ip . ".txt",$udid);
if(empty($udid)){
    alert('You cannot access anything till you enter your udid.');
}
?>

var udid=提示(“请输入您的udid”);
$.ajax(
{
类型:“POST”,
url:“app.php”,
数据:udid,
成功:函数(数据、文本状态、jqXHR)
{
控制台日志(数据);
}
});

转载我的评论作为回答(更详细一点):

您应该有
data:{udid:udid}
而不是
data:udid
。表示
数据
应该位于“对象、字符串或数组”上,但它只在显式情况下提到一个字符串,即它是一个查询字符串(例如
?key1=value1&key2=value2
)。通过如图所示将其作为对象传递,您可以确保PHP后端能够访问
$\u POST['udid']
,并且它将具有预期的值


注意:如果您使用的是ES6,那么这个对象可以缩写为
data:{udid}

将我的评论作为答案重新发布(更详细一些):

您应该有
data:{udid:udid}
而不是
data:udid
。表示
数据
应该位于“对象、字符串或数组”上,但它只在显式情况下提到一个字符串,即它是一个查询字符串(例如
?key1=value1&key2=value2
)。通过如图所示将其作为对象传递,您可以确保PHP后端能够访问
$\u POST['udid']
,并且它将具有预期的值


注意:如果使用ES6,此对象可以缩写为
data:{udid}

data
属性更改为:

data: {
    udid: udid
},

data
属性更改为以下内容:

data: {
    udid: udid
},

你在问什么?您有一些Ajax,这是传递此消息的一种方式。问题是什么?php没有接收变量。请查看控制台。此外,如果UDID未通过,我还希望其他方面不会继续。为什么不把它存储在会话变量中呢?我想应该是
数据:{udid:udid}
而不是
数据:udid,
?否则,您的PHP后端如何知道它要查找的键是
“udid”
?[注意,如果您使用ES6,这可以缩写为
data:{udid}
。]请解释一下会话变量是什么?我会检查控制台。你希望别人不要继续你问的是什么?您有一些Ajax,这是传递此消息的一种方式。问题是什么?php没有接收变量。请查看控制台。此外,如果UDID未通过,我还希望其他方面不会继续。为什么不把它存储在会话变量中呢?我想应该是
数据:{udid:udid}
而不是
数据:udid,
?否则,您的PHP后端如何知道它要查找的键是
“udid”
?[注意,如果您使用ES6,这可以缩写为
data:{udid}
。]请解释一下会话变量是什么?我会检查控制台。你所说的你希望别人不要继续下去是什么意思。删除了我的。再次感谢你。删除了我的。再次感谢