この PHP ページがリダイレクトされない原因となっているコードのバグを探しています。誰かがこの問題の原因を知っているかどうかを調べています (Cookie に関係している可能性があります)。
inc_vars.php:
<?php
//some of the variables have been omitted.
$pid = 'gbb';
$dbtable ='';
$dbname = '';
$dbuser = '';
$dbpass = '';
$connect = mysql_connect('localhost', $dbuser, $dbpass);
if(!$connect){
header('Location: omitted');
die();
}
mysql_select_db ($dbname, $connect);
$webroot = 'omitted';
$share_page = $webroot . '/share-the-training';
$gift = $webroot . '/free-video?setuser=1199';
$bonus_content = $webroot . '/awesome-bonus';
$share_php = $webroot . '/share.php';
?>
refresh_id.php:
<?php
include_once('inc_vars.php');
$results = mysql_query("SELECT id FROM " . $dbtable . " WHERE email='" . $_GET['email'] . "'");
if(!$results || mysql_num_rows($results)==0){
header('Location: ' . $share_page . '?errorcode=1');
die();
}
$res_arr = mysql_fetch_assoc ($results);
setcookie($pid . "_viral", (string)$res_arr['id'], time() + 3600 * 365);
move_on();
function move_on(){
header ('Location: ' . $share_php);
die();
}
?>
ユーザーが refresh_id.php?email=their_email にアクセスすると、$share_php ページにリダイレクトする必要があります。これは機能していません。
ただし、このシナリオが発生した場合: refresh_id.php?email=an-email-that-is-in-in-database スクリプトは $share_page に完全に正常にリダイレクトします。
gbb_viral Cookie の有無にかかわらず、これを試しました。なぜこれが機能しないのかわかりません。自分で探したい場合に備えて、すべてのページが現在ライブでインターネット上にあります。
省略
データベースに存在する電子メールは次のとおりです: acctrafficcop@gmail.com (これをテストしたい人向け)
アップデート
スコープの愚かな間違い。move_on() 関数にグローバル $share_php を追加しただけで、すべてが正常に機能しています。SQL インジェクションについてご指摘いただきありがとうございます。現在、準備済みステートメントに切り替えています。