【发布时间】:2017-05-23 07:33:59
【问题描述】:
我有这段代码并试图将$bonval 放入mysql 插入函数,但它返回null。我在这里做错了什么?
<?php
if (!isset($_SESSION['views'])) {
$_SESSION['views'] = 0;
}
$_SESSION['views'] = $_SESSION['views']+1;
$first = mt_rand(10,20);
$second = mt_rand(40,50);
$third = mt_rand(60,70);
if ($_SESSION['views'] == 2 or ($_SESSION['views'] == 5) or ($_SESSION['views'] == 10) or ($_SESSION['views'] == 20) or ($_SESSION['views'] == 50)) {
?>
<div class="popup">
<form role="form" method='post' action='test.php'>
<fieldset>
<h2 class="blink_me" style="color:green;font-size:40px;"><?php if ($_SESSION['views'] == 2) { echo $bonval = $first; } elseif ($_SESSION['views'] == 5) { echo $bonval = $third; } elseif ($_SESSION['views'] == 10) { echo $bonval = $second; } elseif ($_SESSION['views'] == 20) { echo $bonval = $second; } elseif ($_SESSION['views'] == 50) { echo $bonval = $first; } ?></h2>
<div class="form-group">
<center><div class="g-recaptcha" data-sitekey="sitekey"></div></center>
</div>
<div class="row">
<center><input type="submit" name="submit" class="btn btn-lg btn-success btn-block" value="Submit"></center>
</div>
</fieldset>
</form>
</div>
<?php
}
if (isset($_POST['submit'])) {
if(!empty($recaptcha)) {
require("getCurlData.php");
$google_url="https://www.google.com/recaptcha/api/siteverify";
$secret='6LdriBAUAAAAAFTwQuLozpK9V2qsZAA5gTtBV60G';
$ip=$_SERVER['REMOTE_ADDR'];
$url=$google_url."?secret=".$secret."&response=".$recaptcha."&remoteip=".$ip;
$resp=getCurlData($url);
if($resp['success']) {
$db->fetchVal("insert into log (`user_id`,`amount`) values (?,?) ", [$id, $bonval]); }
} else {
$_SESSION['views'] = $_SESSION['views']-1;
}
}
}
?>
我收到此错误:
插入日志 (`user_id`,`amount`) 值 (?,?) 数组 ( [0] => 9 [1] => ) 数组 ( [0] => 23000 [1] => 1048 [ 2] => 列“数量”不能为空)数组([0] => 数组([file] =>
这段代码有什么问题,或者有更好的方法吗?
【问题讨论】:
-
$_SESSION['views'] 的值是多少?我还建议从代码中删除您的密钥。
-
感谢您的重要建议...我不明白您所说的 $SESSION['views'] 值是什么意思?
-
似乎 bonval 并不总是被设置 - 因此它通常是“null”,因为它是为 $SESSIONS['views'] 的许多值统一化的
-
$bonval 仅在弹出窗口打开时才需要,而不是每次都需要
-
您是否单击某些内容打开弹出窗口,然后从弹出窗口提交表单?