2017-08-10 8 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>"; 

、ここで:また、いくつかのクライアントはLocationヘッダーで渡されたURLを必要と

echo "Database Selected"; 

は絶対URLと相対的ではないことを、

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

ありがとうございます。それは間違いなく問題でした。 –

関連する問題