Php 满足条件时重定向

Php 满足条件时重定向,php,Php,计数达到13后,我无法重定向 我有一堆图像,用户可以点击添加到数据库中的列表中,当他们点击时,点击js脚本就会触发updatelist.php 这部分工作正常,在updatelist.php中,我需要插入它,然后检查表,看看它是否达到了13的计数,如果是这样,它需要重定向到一个新页面 插入可以正常工作,但不能重定向。下面是我的updatelist.php代码 <?php include('connect.php'); session_start(); $username=$_SESSION

计数达到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'");
            }




?> 
您需要:

    if ($updatecount == 13)
        {
            header('Location: main.php');
            exit();
        }
基本上,您是在执行赋值运算符,而不是比较,并且在重定向后应该始终调用exit()。

您需要:

    if ($updatecount == 13)
        {
            header('Location: main.php');
            exit();
        }

基本上,您是在执行赋值运算符,而不是比较,并且在重定向后应该始终调用exit()。

可能导致此问题的一些问题:

  • 位置之后:
    你应该写一个完整的url
  • 如果($updatecount=13)
    将始终返回true,请改用比较运算符(
    如果($updatecount==13)
  • 重定向后不应执行任何代码:添加
    exit在标题行之后
    
  • 确保没有任何输出,否则php将无法设置标题:您的
    是否存在可能导致问题的问题:

  • 位置之后:
    你应该写一个完整的url
  • 如果($updatecount=13)
    将始终返回true,请改用比较运算符(
    如果($updatecount==13)
  • 重定向后不应执行任何代码:添加
    exit在标题行之后
    
  • 确保没有任何输出,否则php将无法设置标题:您的
    是否通过JS调用远程php脚本?我认为向JS代码发送头响应不会在调用它的页面中起任何作用。您可以让PHP脚本根据其结果返回预定的代码,然后在返回“max”代码时重定向JS代码

    类似(假设jQuery可用)

    
    $.get(“your_php_script.php”),函数(响应){
    如果(响应=“最大值”){
    //重定向
    window.location=“other_page.php”;
    }}
    );
    
    那么您是通过JS调用远程PHP脚本?我认为向JS代码发送头响应不会在调用它的页面中起任何作用。您可以让PHP脚本根据其结果返回预定的代码,然后在返回“max”代码时重定向JS代码

    类似(假设jQuery可用)

    
    $.get(“your_php_script.php”),函数(响应){
    如果(响应=“最大值”){
    //重定向
    window.location=“other_page.php”;
    }}
    );
    
    请修复您的帖子(代码突出显示)。您所说的“触发updatelist.php”是什么意思?您是通过AJAX调用并检查响应来实现的吗?或者您是否通过javascript将用户重定向到updatelist.php?这是一个jquery脚本,当用户单击图像时,会在主页上的上调用该脚本,jquery获取图像的名称并将其发送到updatelist.php以更新数据库中的表您是否尝试将其作为一个直接的POST事件来执行,即将其环绕在
    if中(isset($\u POST'button\u name']){…}
    block?换言之,请先验证它在没有JavaScript/jQuery的情况下是否可以工作,然后再将其制作成Ajax-y。请修复您的帖子(代码突出显示)。您所说的“触发updatelist.php”是什么意思?您是通过AJAX调用并检查响应吗?还是通过javascript将用户重定向到updatelist.php?这是一个jquery脚本,当用户单击图像时,会在主页上的上调用该脚本,jquery会获取图像的名称并将其发送到updatelist.php以更新数据库中的表。您是否尝试过作为直接发布事件,也就是说,用
    if(isset($\u POST'button\u name']){…}
    block来包围它?换句话说,先验证它在没有JavaScript/jQuery的情况下是否可以工作,然后再使它成为Ajax-y。header(Location)应该是绝对路径。现在不必费心搜索它,但它应该。@adam,我认为它应该是一个url,不是路径。糟糕的是,在我的母语中,路径/url在这个意义上没有太大区别。无论如何,它应该是绝对url。从php.net/header.php:
    HTTP/1.1需要一个绝对URI作为»Location:的参数:包括方案、主机名和绝对路径,但一些客户端接受相对URI
    我添加了这些,但当计数达到13时,它仍然不会重定向。此外,我还删除了检查页面顶部的计数是否小于13的部分。我对原始php进行了修改以反映我的变化,这很奇怪。标头位置提供301、302或其他重定向?标头(位置)应为绝对路径。现在不必费心搜索,但它应该:@亚当,我认为它应该是一个url,而不是路径。我的错,在我的母语中,路径/url在这个意义上没有太大区别。无论如何,它应该是绝对url。从php.net/header.php:
    HTTP/1.1需要一个绝对URI作为»Location:的参数:包括方案、主机名和绝对路径,但一些客户端接受相对URI
    我添加了这些,但当计数达到13时,它仍然不会重定向。此外,我还删除了检查页面顶部的计数是否小于13的部分。我对原始php进行了修改以反映我的变化,这很奇怪。标题位置给出了301、302或其他重定向?当我尝试2时,如果它低于计数13,则导致它不插入记录。感谢您对sql注入的建议,这是在我能够使功能正常工作之后接下来要添加的内容。对不起,我在第2点中犯了一个错误(已更正)。另外,最外面的括号也不应被视为代码的一部分。现在我考虑一下,最后两个条件(if,else if)检查相同的条件
    <script>
    $.get( "your_php_script.php" , function (response){
         if( response == "max" ) {
              // redirect
              window.location="other_page.php";
         }}
    );
    </script>