我用jquery upi做了一个弹出对话框,并在用户使用我的网站时问了几个问题。用户必须回答这个问题。否则,用户将无法访问我网站上的任何内容。
但问题是,当用户看到弹出框而不回答该问题,然后在地址栏中将 url 更改为特殊链接或我网站的某些链接时,他们不需要回答该问题,可以访问其他页面。
我不想在用户不回答问题之前访问他们。因此,即使用户将URL更改为另一个页面,我也想显示我的弹出框。
我在popup.php
页面中提出了这个弹出问题。这是我的代码。
<?php
....//another code
....//check user session id and show dialog
...
...
echo "<div id='dialog'>";
echo "Question"."<br/>";
//select random answer for related question from database
$sql = "...get answer for question...";
$query = .....;
while($row = mysql_fetch_array($query)){
$a_id = $row['id'];
$answer = $row['name'];
echo "<input type='radio' value='"$a_id'" name='answer' class='answer'>$answer <br/>";
}
echo "</div>";
.....
.....
<scirpt>
$("#dialog").dialog({
autoOpen:true,
width: 500,
modal: true,
resizable:false,
draggable:true,
position: {my: 'center', at: 'center', of: window, collision:'fit'},
open: function (event, ui) {
$('.ui-dialog').css('z-index',1100);
$('.ui-widget-overlay').css('z-index',1000);
$("#btn_submit").button("disable");
},
create: function(event, ui) {
$("body").css({ overflow: 'hidden' });
},
buttons: {
Submit: {
text : "Submit",
id : "btn_submit",
click:function() {
......//another code
$( this ).dialog( "close" );
$.ajax({
type:'POST',
dataType:'json',
url:'check_question.php',//this is check for user answer is correct or not
data:{..//some data....},
success: function(data){
alert("success");
},
error: function () {
alert("Error");
}
});
}
}
}
});
</scirpt>
?>
我用include("popup.php")
将这个文件添加到我的主页(索引.php)。
通常,我需要在网站的每个页面中检查用户是否回答。但是,这对我来说是一个问题,因为我们有很多页面。
我想编码以检查用户更改 url 并在popup.php
文件中显示弹出窗口。
那么,即使用户更改了网址,有什么方法可以显示我的弹出框吗?
首先,我像这样$current_page="http://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";
当前页面。
并将当前页面添加到会话中,并在用户请求popup.php
时检查页面表单会话是否相同。
我希望它对某人有所帮助。