计数达到13后,我无法重定向。
我有一堆图像,用户可以点击这些图像添加到数据库中的列表,当他们点击时,点击js脚本会触发并触发updatelist.php。
那部分工作正常,在updatelist.php中我需要它插入然后检查表,看它是否达到了13的计数,如果是这样,它需要重定向到新的页面。
插入工作正常,但不重定向。下面是我的updatelist.php代码
<?php
include('connect.php');
session_start();
$username=$_SESSION['username'];
$image = $_GET['image'];
$query = mysql_query("SELECT * FROM tbl_movies cross join tbl_users WHERE image_on = '$image' and username = '$username'");
while ($row = mysql_fetch_assoc($query))
{
$movieid = $row['id'];
$userid = $row['UserID'];
}
$query2 = mysql_query("select * from tbl_movies cross join tbl_users where image_off = '$image' and username = '$username'");
while ($row2 = mysql_fetch_assoc($query2))
{
$mid = $row2['id'];
$uid = $row2['UserID'];
}
$numrows = mysql_num_rows($query);
$numrowz = mysql_num_rows($query2);
if ($numrows!=0)
{
$queryInsert = mysql_query("insert into tbl_user_lists (userid_fk,movie_id_fk) values ('$userid','$movieid')");
$query5=mysql_query("select l.* from tbl_user_lists as l join tbl_users on l.userid_fk=tbl_users.UserID where username='$username'");
$updatecount = mysql_num_rows($query5);
if ($updatecount == 13)
{
header('Location: http://localhost/main.php');
}
}
else if ($numrowz!=0)
{
$queryUpdate = mysql_query("delete from tbl_user_lists where userid_fk = '$uid' and movie_id_fk = '$mid'");
}
?>
以下是主页面上调用上述php页面的脚本
<script>
$(function(){
$('.img-swap').live('click', function() {
var _src = $(this).attr('src');
if (-1 == _src.indexOf('_on')) {
$(this).attr('src',_src.replace('_off','_on')).removeClass('off');
} else {
$(this).attr('src',_src.replace('_on','_off')).addClass('on');
}
// Update server
$.get( 'updatelist.php?image='+escape($(this).attr('src')));
$(this).toggleClass("on");
});
});
</script>
答案 0 :(得分:4)
你想:
if ($updatecount == 13)
{
header('Location: main.php');
exit();
}
基本上你是在做一个赋值运算符而不是比较,你应该在重定向后调用exit()。
答案 1 :(得分:0)
可能导致此问题的一些问题:
Location:
之后你应该写一个完整的网址; if ($updatecount = 13)
将始终返回true,改为使用比较运算符(if ($updatecount == 13)
); exit;
; <?php
开头标记是文件中的第一个标记吗?以前没有html吗?; 此外,我不知道您的应用程序是否可以公开访问:在这种情况下,请记住用户没有绑定到您的html中的选项,因为他们可以发布的值,所以逃避您的查询(或使用准备语句)以避免sql注入的风险。
答案 2 :(得分:0)
所以你通过JS调用远程PHP脚本?我不认为发送JS代码的头响应将在调用它的页面中执行任何操作。您可以让PHP脚本根据其结果返回预定的代码,然后在返回“max”代码时重定向JS代码。
类似的东西(假设jQuery可用)
<script>
$.get( "your_php_script.php" , function (response){
if( response == "max" ) {
// redirect
window.location="other_page.php";
}}
);
</script>