2017-08-10 88 views
0

我的PHP标题重定向不起作用,我似乎无法弄清楚为什么。我已经阅读了很多问题,而且我尝试过的东西似乎都不起作用。表单不重定向后在PHP中提交标题位置不工作

<?php 
define('DBHOST','shareddb1d.hosting.stackcp.net'); 
define('DBUSER','JoplinLeftHand-3231135a'); 
define('DBPASS','Banoodle1!'); 
define('DBNAME','JoplinLeftHand-3231135a'); 

$link = mysql_connect(DBHOST, DBUSER, DBPASS); 

if (!link) { 
    die('Could Not Connect: ' . mysql_error()); 
} else { 
    echo "You Are Connected<br>"; 
} 

$db_selected = mysql_select_db(DBNAME, $link); 

if (!$db_selected) { 
    die('Can\'t Use ' . DBNAME . ': ' . mysql_error()); 
} else { 
    echo "Database Selected"; 
} 
$tid = $_POST['tid']; 
$first = $_POST['first']; 
$last = $_POST['last']; 
$zip = $_POST['zip']; 
$descrip = $_POST['descrip']; 

$sql = "INSERT INTO tracking (tracking_id, tracking_first, tracking_last, tracking_zip, tracking_descrip) VALUES ('$tid', '$first', '$last', '$zip', '$descrip')"; 

if (!mysql_query($sql)) { 
    die('Error: ' . mysql_error()); 
} else { 
    header("Location:/?p5"); 
} 
+0

您很容易受到SQL注入攻击,您需要修复此问题。 mysql_ *函数已被弃用,您需要使用mysqli或PDO。 – Enstage

回答

1

header('Location: ...');必须是脚本的第一个输出,否则它将不起作用。您正在使用echo两次,在这里执行重定向之前:

echo "You Are Connected<br>"; 

这里:

echo "Database Selected"; 

此外,一些客户要求在Location头中传递的URL是绝对URL,而不是相对的,例如:

header("Location: http://example.com/?p5"); 
+0

谢谢。这绝对是问题。 –