2

このSQL関数を使用して、お気に入りにユーザーを追加したり、お気に入りからユーザーを削除したりしています。ユーザーが別のユーザープロファイルの[お気に入りに追加]ボタンをクリックすると、favourite.phpにリンクされ、以下のスクリプトが実行されます。

私がやろうとしているのは、SQLが実行されてからユーザーのプロファイルページにリダイレクトされた後、ユーザーがお気に入りに追加されたことを示すメッセージをそのプロファイルページにエコーアウトしたいです(お気に入りがに挿入されている場合) db)またはユーザーがお気に入りから削除されました(ユーザーがdbのお気に入りから削除された場合)。

コード:

    <?php

    require_once('includes/session.php');
    require_once('includes/functions.php');
    require('includes/_config/connection.php');

    session_start();

        confirm_logged_in();

        if (isset ($_GET['to'])) {
        $user_to_id = $_GET['to'];


    }


    if (!isset($_GET['to']))
        exit('No user specified.');

    $user_id = $_GET['to'];

    mysql_query("INSERT INTO ptb_favorites (user_id, favorite_id) VALUES (".$_SESSION['user_id'].", ".$user_to_id.")") 

    or mysql_query("DELETE FROM ptb_favorites WHERE user_id = ".$_SESSION['user_id']." AND favorite_id = ".$user_to_id.""); header("Location: {$_SERVER['HTTP_REFERER']}");

    #Method to go to previous page

    function goback()

    {
        header("Location: {$_SERVER['HTTP_REFERER']}fav=1");
        exit;
    }
    goback();

?>

メッセージをエコーアウトするためにリダイレクトに拡張子fav=1を追加しようとしました。また、プロファイルページに$ _GETコードを配置して、ユーザーがページに戻ったときにエラーを表示しました。

<?
if (isset($_GET['fav']) && $_GET['fav'] == 1) {
            $message = "<div class=\"infobox-profile\"><strong>Added to Favourites.</strong>This user has been added to your favourites.</div>";
            echo "<a href=\"#\"><div class=\"infobox-close3\"></div></a>";

}
?>
4

1 に答える 1

1

$_SESSIONオブジェクトを使用して、リクエスト間でメッセージを渡します。

function goback()
{
    $_SESSION['flashmessage'] = "Some message";
    header("Location: {$_SERVER['HTTP_REFERER']}fav=1");
    exit;
}

次に、他のスクリプトで、その変数を確認します。

session_start();

if (isset($_SESSION['flashmessage'])) {
    echo $_SESSION['flashmessage'];

    unset($_SESSION['flashmessage']);
}

$_SERVER['HTTP_REFERER']: back 値を に依存しないでください。アプリをどのように管理しているかわかりませんが、明示的に転送 URL を設定しない限り、成功すると成功ページに移動するはずです。ただ言って。

于 2012-12-29T23:22:41.310 に答える