0

このスクリプトを使用して、ボタンの最初のクリックでユーザーをお気に入りに追加し、2 回目のクリックでユーザーをお気に入りから削除します。

ユーザーをお気に入りに追加するとき/クエリが「挿入先」を実行すると、完了後に前のページにリダイレクトされますが、2 回目をクリックしてユーザーをお気に入りから追加解除すると、リダイレクトされません。番号 1 が表示された空白のページ。

ユーザーをお気に入りに追加するときと同じように、前のページにリダイレクトする方法を誰かが提案できますか?

また、前のページにリダイレクトして、お気に入りに追加された、またはお気に入りから削除されたことを示すエコーアウトメッセージを表示するにはどうすればよいですか?

私はphpとmysqlが初めてで、まだ学んでいるので、助けていただければ幸いです。ありがとう。

<?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 die(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']}");

        exit;

    }

    goback();


    ?>
4

3 に答える 3

0

ラインを交換する

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

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

ただし、recird の存在を確認してから、挿入または削除する方がよいでしょう。

于 2012-12-29T20:14:23.267 に答える
0

これに使用することはお勧めしませんdie()。ユーザーのお気に入りが既に存在するかどうかを確認し、それに応じて作成または削除してリダイレクトする関数を作成する必要があります。

また、mysqli_ または PDO に移動します。:)

于 2012-12-29T20:11:17.017 に答える
0

die() を使用する代わりに、ユーザーがお気に入りかどうかを確認する関数を作成してから、対応する MySQL クエリを呼び出すことができます。たとえば、次のコードを使用して、必要に応じて追加のチェックとセキュリティを追加してみてください。

function userIsFavorite($user_id, $favorite_id) {
    $result = mysql_query("SELECT * FROM ptb_favorites WHERE user_id='$user_id' AND favorite_id='$favorite_id'");
    return (mysql_num_rows($result) > 0);
}

if (userIsFavorite($_SESSION['user_id'], $user_to_id)) {
    mysql_query("DELETE FROM ptb_favorites WHERE user_id='".$_SESSION['user_id']."' AND favorite_id='".$user_to_id."'");
} else {
    mysql_query("INSERT INTO ptb_favorites (user_id, favorite_id) VALUES (".$_SESSION['user_id'].", ".$user_to_id.")");
}

header("Location: {$_SERVER['HTTP_REFERER']}");
于 2012-12-29T20:19:50.293 に答える