如何将会话变量发送到下一页?
How to send Session Variable to next page?
我正在尝试将会话变量存储到普通变量并使用 ajax 我需要将值发送到下一页,但它在 ajax 代码中给我一个错误。下面是我的代码
index.php
$OTP = $_SESSION['smsgatewaycenterotp'];
echo $OTP;
Ajax函数
<script type="text/javascript">
$('#btnonOtp').click(function()
{
var otp = $('$OTP').val();
$.ajax({
url: "sms.php",
method:'POST',
data:
{mobile: $('#mobile').val(),
otp:otp},
success: function(msg)
{
alert('OTP Sent');
console.log(msg);
}
});
});
</script>
Sms.php
<?php
include 'send.php';
session_start();
var_dump($_POST);
console.log(msg);
echo $_POST['mobile'];
$OTP = $_POST['otp'];
$number = $_POST['mobile'];
//$text = 'Hi There, how are you?';
$sms_api_result = sms_Send($number, 'Please do not share the one time password with anyone. Your One Time password is: '.$OTP,$debug);
?>
谁能帮我解决这个问题。
var otp = $('$OTP').val();
是做什么的?如果您期望读取 PHP $OPT
值,它根本不会。
您没有在 ajax 中引用 PHP $OPT
值。
尝试:
$.ajax({
url: "sms.php",
method:'POST',
data:
{mobile: $('#mobile').val(),
otp: <?php echo $OPT; ?>},
success: function(msg)
{
alert('OTP Sent');
console.log(msg);
}
});
这意味着当你 POST 到 sms.php
它会在 post 数据中有 opt:
,包含 $OPT
.[=33 的值=]
当调用 ajax 时,您的脚本 sms.php
将能够读取 $_POST['opt']
。
顺便说一下 - 你的 sms.php
中还有其他错误,例如 console.log
行 - 这是一个 javascript 函数,在 PHP(您仍在 <?php ?>
标签内)
要对此进行测试,请修改您的 sms.php
以仅包含以下代码:
<?php
if (isset($_POST['opt'])) {
echo $_POST['opt'];
} else {
echo "opt not set<br>";
var_dump($_POST);
}
?>
当您发出 ajax 请求时,您应该会看到一个弹出窗口 (alert('OPT Sent'
);在浏览器中。如果您打开控制台,它应该显示 $_POST['opt']
的值,或者一条消息说它没有设置。如果显示 "opt not set",则表示您的 ajax 调用中的这一行未发送正确的值:
otp: <?php echo $OPT; ?>
但是,您可以通过在 Javascript 所在的页面上查看源代码来解决这个问题 (index.php
)。如果它为空或没有值,则它不会在 sms.php
.
的 post 数据中可用
你也要明白没有"next page"。您 post 编辑的代码只是从 index.php
到 sms.php
发出 ajax post 请求。它不会 "load up" sms.php
,也不会将用户重定向到那里。由于 ajax 成功函数中的 console.log
语句,您将从中看到的唯一输出是在浏览器控制台中。
如果你想在同一网站的另一个页面中获取会话值,那么你可以使用 $_SESSION
变量来获取它。不需要ajax。以下是例子
第 2 页
session_start();
$session_value = '';
if(isset($_SESSION['smsgatewaycenterotp'])){
$session_value .=$_SESSION['smsgatewaycenterotp']; // if it is string
}
echo $session_value; // Out put some value
isset() php 内置函数将检查会话值,因此如果有值,则 if 语句将为真并将值分配给 $session_value
变量否则变量将为空。
启动会话后,可以在项目的每个页面中访问 Session 变量
session_start();
要了解如何处理 $_SESSION 的存储使用,请阅读更多相关信息:
http://php.net/manual/en/book.session.php
我正在尝试将会话变量存储到普通变量并使用 ajax 我需要将值发送到下一页,但它在 ajax 代码中给我一个错误。下面是我的代码
index.php
$OTP = $_SESSION['smsgatewaycenterotp'];
echo $OTP;
Ajax函数
<script type="text/javascript">
$('#btnonOtp').click(function()
{
var otp = $('$OTP').val();
$.ajax({
url: "sms.php",
method:'POST',
data:
{mobile: $('#mobile').val(),
otp:otp},
success: function(msg)
{
alert('OTP Sent');
console.log(msg);
}
});
});
</script>
Sms.php
<?php
include 'send.php';
session_start();
var_dump($_POST);
console.log(msg);
echo $_POST['mobile'];
$OTP = $_POST['otp'];
$number = $_POST['mobile'];
//$text = 'Hi There, how are you?';
$sms_api_result = sms_Send($number, 'Please do not share the one time password with anyone. Your One Time password is: '.$OTP,$debug);
?>
谁能帮我解决这个问题。
var otp = $('$OTP').val();
是做什么的?如果您期望读取 PHP $OPT
值,它根本不会。
您没有在 ajax 中引用 PHP $OPT
值。
尝试:
$.ajax({
url: "sms.php",
method:'POST',
data:
{mobile: $('#mobile').val(),
otp: <?php echo $OPT; ?>},
success: function(msg)
{
alert('OTP Sent');
console.log(msg);
}
});
这意味着当你 POST 到 sms.php
它会在 post 数据中有 opt:
,包含 $OPT
.[=33 的值=]
当调用 ajax 时,您的脚本 sms.php
将能够读取 $_POST['opt']
。
顺便说一下 - 你的 sms.php
中还有其他错误,例如 console.log
行 - 这是一个 javascript 函数,在 PHP(您仍在 <?php ?>
标签内)
要对此进行测试,请修改您的 sms.php
以仅包含以下代码:
<?php
if (isset($_POST['opt'])) {
echo $_POST['opt'];
} else {
echo "opt not set<br>";
var_dump($_POST);
}
?>
当您发出 ajax 请求时,您应该会看到一个弹出窗口 (alert('OPT Sent'
);在浏览器中。如果您打开控制台,它应该显示 $_POST['opt']
的值,或者一条消息说它没有设置。如果显示 "opt not set",则表示您的 ajax 调用中的这一行未发送正确的值:
otp: <?php echo $OPT; ?>
但是,您可以通过在 Javascript 所在的页面上查看源代码来解决这个问题 (index.php
)。如果它为空或没有值,则它不会在 sms.php
.
你也要明白没有"next page"。您 post 编辑的代码只是从 index.php
到 sms.php
发出 ajax post 请求。它不会 "load up" sms.php
,也不会将用户重定向到那里。由于 ajax 成功函数中的 console.log
语句,您将从中看到的唯一输出是在浏览器控制台中。
如果你想在同一网站的另一个页面中获取会话值,那么你可以使用 $_SESSION
变量来获取它。不需要ajax。以下是例子
第 2 页
session_start();
$session_value = '';
if(isset($_SESSION['smsgatewaycenterotp'])){
$session_value .=$_SESSION['smsgatewaycenterotp']; // if it is string
}
echo $session_value; // Out put some value
isset() php 内置函数将检查会话值,因此如果有值,则 if 语句将为真并将值分配给 $session_value
变量否则变量将为空。
启动会话后,可以在项目的每个页面中访问 Session 变量
session_start();
要了解如何处理 $_SESSION 的存储使用,请阅读更多相关信息: http://php.net/manual/en/book.session.php