Problem z kasowaniem tematu na forum

0

Witam, posiadam na swojej stronie forum. Kiedy założę nowy temat(zarazem posta) na forum w danej kategorii np Muzyka, i chcę jednak go skasować, wywala mi komunikat:
"Jeżeli usuniesz ten post, skasowany zostanie cały temat. Jeśli chcesz usunąć ten temat kliknij tutaj."

Po kliknięciu w "tutaj" wywala białą stronę. W adresie przeglądarki wygląda to tak: forums.php?action=viewforum&forumid=0

A chciałbym żeby po kliknięciu w "tutaj" skasowało posta z tematem ORAZ przekierowało mnie do wcześniejszego forum z innymi tematami w tym przypadku kategorii Muzyka.
Nie bardzo wiem jak to zrobić. Tak wygląda kod za to odpowiedzialny.

//------- Get topic id

    $res = mysql_query("SELECT topicid FROM posts WHERE id=$postid") or sqlerr(__FILE__, __LINE__);

    $arr = mysql_fetch_row($res) or stderr("Błąd", "Post not found");

    $topicid = $arr[0];

    //------- We can not delete the post if it is the only one of the topic

    $res = mysql_query("SELECT COUNT(*) FROM posts WHERE topicid=$topicid") or sqlerr(__FILE__, __LINE__);

    $arr = mysql_fetch_row($res);

    if ($arr[0] < 2)
      stderr("Błąd", "Jeżeli usuniesz ten post, skasowany zostanie cały temat. Jeśli chcesz usunąć ten temat\n" .
      "<a href=?action=deletetopic&topicid=$topicid&sure=1>kliknij tutaj</a>.\n");


    //------- Get the id of the last post before the one we're deleting

    $res = mysql_query("SELECT id FROM posts WHERE topicid=$topicid AND id < $postid ORDER BY id DESC LIMIT 1") or sqlerr(__FILE__, __LINE__);
		if (mysql_num_rows($res) == 0)
			$redirtopost = "";
		else
		{
			$arr = mysql_fetch_row($res);
			$redirtopost = "&page=p$arr[0]#$arr[0]";
		}

    //------- Make sure we know what we do :-)

    if (!$sure)
    {
      stderr("Usuń post", "Czy napewno chcesz skasować ten post? Kliknij\n" .
      "<a href=?action=deletepost&postid=$postid&sure=1>tutaj</a> aby potwierdzić.");
    }

    //------- Delete post

    mysql_query("DELETE FROM posts WHERE id=$postid") or sqlerr(__FILE__, __LINE__);

    //------- Update topic

    update_topic_last_post($topicid);

    header("Location: $BASEURL/forums.php?action=viewtopic&topicid=$topicid$redirtopost");

    die;
  }

Pomoże ktoś ?

1

Klinkiecie na link wywołuje ten adres:

deletetopic&topicid=$topicid&sure=1

Na podstawie kawałka kodu jaki dałeś ciężko powiedzieć jednoznacznie, ale chyba powinien być plik delete.php
I to przekierowanie na pustą stronę raczej tam się dzieje.

0

Zamieszam cały plik forums.
Ewentualnie zrobię obejście tylko jak zrobić by po kliknięciu na link nie przekierowywało na pustą stronę tylko do podkategorii w której był ten założony temat.

Zapis w kodzie jest taki:

header("Location: $BASEURL/forums.php?action=viewforum&forumid=$forumid");

No i on jest zły bo po skasowaniu posta razem z tematem nie ma już tego ID więc wywala białą strone z ID=0

Ja to zrobiłem tak:

header("Location: $BASEURL/forums.php");

No ale dalej to nie jest to bo powrót jest do głównego forum a nie podkategorii gdzie był skasowany temat.

Przykładowo dana podkategoria na forum w przeglądarce jest tak zapisana:
forums.php?action=viewforum&forumid=3 (3 numer podkategorii)

0

Widzę, że jednak spojrzałeś trochę do kodu :)
Masz dwa różne przekierowania, wykorzystujące 2 różne parametry/zmienne.
$postid to nie $forumid w miejscu gdzie jest wywoływane przekierowanie przed usunięciem postu musisz sobie jakoś zapamiętać czy przekazać ID forum z jakiego był post.
Kasujesz przecież post a nie kategorię forum.
Przed samym przekierowaniem zobacz sobie co masz w zmiennej $forumid
Np.

var_dump($forumid);
die();
0

To znaczy ze każdy moze skasować dowolny topic i posty ? wystarczy podać id ?

0

Sory nie znam się, ale to działanie jest chyba zamierzone. Jak jest temat z 1 postem to celowo go kasuje, bo po co sam temat bez niczego w środku?

Sory nie doczyłem :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1