0

error() 内でヘッダー関数を使用しようとしています。この関数にあるすべてのコードをコメントし、header() を挿入しましたが、機能していません。

ここにリンクがあります http://www.htmlgoodies.com/beyond/php/article.php/3877766/Web-Developer-How-To-Upload-Images-Using-PHP.htm

エラーがない場合は、insert ステートメントを実行する必要があります。URL コードでこれを行うにはどうすればよいですか?

アップデート

function error($error, $location, $seconds = 5) 
{ 
   header("Location:test.php");
}

INSERT into table; This query should execute only when there are no errors.How would i do this ?
4

2 に答える 2

0

これを試して::

function error($error, $location, $seconds = 5)
    { 
        header('Refresh: '.$seconds.'; url=' . $location);

    $content .= <<< END

            <html><head>
            <title>Upload error</title>
            </head>
            <body> 
                    <div id="Upload">
                    <h1>Upload failure</h1>
                    <p>An error has occurred: 
                    <span class="red">$error</span>
        The upload form is reloading</p>
        </div>
        </html>
END;

        echo $content;

        exit; 
    } // end error handler 
于 2012-10-19T10:51:35.073 に答える
0

汚い修正:

function error($error, $location, $seconds = 5) 
{

    $urlToRedirect = $location . '?error_message=' . urlencode($error) ;
    header('Location: ' . $urlToRedirect);
    exit;

}

より良い解決策は、次のようなエラー メッセージの配列を作成することです。

$errorMessages = array(
    'incorrect_login' => 'Incorrect login credentials.',
    'restricted' => 'Restricted page.'
);

次に、エラー関数を書き直して秒パラメーターを削除します。これは、更新を使用しなくなったためです (個人的には、場所パラメーターも削除して、すべてのエラー リダイレクトが同じページを指すようにします)。

function error($error, $location) 
{
    $urlToRedirect = $location . '?error_message=' . $error ;
    header('Location: ' . $urlToRedirect);
    exit;
}

次に、次のように関数を呼び出します。

error('restricted', 'error.php');

次に、エラーを表示するページで次のようにします。

if(isset($_GET['error_message']) && array_key_exists($_GET['error_message'], $errorMessages)){
    echo $errorMessages[$_GET['error_message']];
}
于 2012-10-19T10:29:05.263 に答える