使用表单操作提交到PHP页面时,PHP重定向不起作用

使用表单操作提交到PHP页面时,PHP重定向不起作用,php,forms,Php,Forms,所以我使用这个表单提交到PHP文件。当我在浏览器中直接调用PHP文件时,PHP文件有一个重定向头,但当通过表单中的action属性访问它时,它什么也不做。曾经有一段时间我可以让它重定向而不刷新:2,但后来问题出现了,它只在php文档本身中包含重定向的文件,所以我的javascript和submit函数将失败。。。奇怪的请告知!发生什么事了 HTML 表单重定向到的PHP(upload.PHP) 您显示的大部分代码都是无用的。正如您所说,您的问题是“来自php”(事实上,可能不是)。您必须提供PH

所以我使用这个表单提交到PHP文件。当我在浏览器中直接调用PHP文件时,PHP文件有一个重定向头,但当通过表单中的action属性访问它时,它什么也不做。曾经有一段时间我可以让它重定向而不刷新:2,但后来问题出现了,它只在php文档本身中包含重定向的文件,所以我的javascript和submit函数将失败。。。奇怪的请告知!发生什么事了

HTML

表单重定向到的PHP(upload.PHP)


您显示的大部分代码都是无用的。正如您所说,您的问题是“来自php”(事实上,可能不是)。您必须提供PHP代码,而不是html或JS(好吧,为什么不提供JS,但不仅仅限于此)

您的意思是从表单发送文件,您需要一个如下所示的表单标签:

<form action="something" method="post" enctype="multipart/form-data">


enctype部件丢失。但是我在您的表单中没有看到任何文件输入,您删除了所有内容…

首先也是最重要的一点:没有名为“刷新”的HTTP头。浏览器可能会对此作出反应,但尚未定义

那你为什么要用它呢?如果您正在发送HTML,则不需要
Refresh
HTTP头。移除它

这就引出了
Refresh
meta标记。这个有用吗,还是应该有用

当前,您正在为浏览器创建一个混乱的情况:您为URL提供了两个不同的值,以便在2秒钟后到达。一个来自HTTP头,它不是官方的?这是否应该像任何其他HTTP头一样优先于元标记,或者这是一个例外,因为非标准HTTP头和标准元标记正好相反


现在来看一个完全不同的例子:您的代码可以通过SQL注入进行攻击。始终转义进入SQL语句的所有变量内容

如果要上载文件,则需要将以下属性添加到
元素中:
enctype=“multipart/form data”
;不过,我不确定这是否会给你带来麻烦。如果您只是接受文本并将其称为上载,请忽略此项。如果您不想刷新2秒钟……为什么不像普通人一样重定向?:)我想要感谢消息,所以刷新允许消息显示两秒钟,然后我想重定向回表单。。。就像我在帖子中说的,如果我像普通一样重定向,header()只会加载upload.php文件中的页面,因此我会丢失所有javascript和函数,因此,禁用我的表单的功能,因为它没有重定向到主html页面本身。我使用Codiqa,因此它使用链接提交按钮,因此我通过JS调用提交功能。。。我使用了enctype,但它也不起作用,即PHP中的头重定向。我认为除了表单HTML和PHP之外,所有其他内容都与本文无关,但我想彻底了解这两个内容。我尝试过两者都使用,一个没有另一个,过渡HTML中的meta refresh标头也存在同样的问题。当我直接调用upload.php文件时,它会工作,但当通过表单action.yes调用它时,它不会工作。感谢您对SQL的警告。我同意!!
/****CREATE JQUERY SUBMIT FUNCTION FOR IFRAME VALIDATION CHECK FOR Codiqa****/
function submitForm() {
    if ($("#ats_routing").valid()) {
       //alert("Thank You. Your Routing Form Has Been Submitted.");
       $('#ats_routing').submit();
    }
}
<?php
header("Refresh: 2; URL=/ats-routing/"); /* Redirect browser */

//Parse and store the db ini file, this will return an associative array
db_config_ats_ibutton();
db_connect();

$total_weight       = $_POST['total_weight'];
$uf             = $_POST['number_uf'];


$query="INSERT INTO datbasae (
    lbs_uf,
    total_weight,
    district)

    VALUES(
    '$uf',
    '$total_weight',
    '$district')";

query_db($query);
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html lang="en">
<head>
  <title>ATS Routing</title>
  <link rel="stylesheet" href="https://d10ajoocuyu32n.cloudfront.net/mobile/1.3.1/jquery.mobile-1.3.1.min.css">
<link rel="stylesheet" href="http://dev.rs.idmyasset.com/ats-routing/css/theme.css">
<!-- Extra Codiqa features -->
<link rel="stylesheet" href="https://codiqa.com/view/bb40208d/css">
<!-- jQuery and jQuery Mobile -->
<script src="https://d10ajoocuyu32n.cloudfront.net/jquery-1.9.1.min.js"></script>
<script src="https://d10ajoocuyu32n.cloudfront.net/mobile/1.3.1/jquery.mobile-1.3.1.min.js">    </script>
<meta http-equiv="refresh" content="2; url=http://dev.rs.idmyasset.com/ats-routing/">
</head>

<body>
<!-- Home -->
<div data-role="page" id="page1">
  <div id="header" data-theme="" data-role="header">
      <h3 id="header">
          ATS Routing Data
      </h3>
  </div>
  <div data-role="content">
    <h1 align="center">Thank You</h1>
    <h1 align="center">Your Form Has Been Submitted!</h1>
  </div>
</div>
</body>
</html>
<form action="something" method="post" enctype="multipart/form-data">