Как мне исправить теги ссылки на форум href для моего php форума? - PullRequest
0 голосов
/ 28 марта 2020

сейчас я работаю над проектом php, который создает форум. На форуме есть 3 категории, каждая с 3 подкатегориями. Сейчас я пытаюсь получить ссылки href, чтобы отправить меня на нужную страницу: http://localhost/RoyalReader/RoyalReaderForum/topics.php?cid=1&scid=1, где я смогу создавать новые сообщения, отвечать на существующие сообщения и удалять / выходить на другие однако публикует ссылки в индексе. php продолжайте посылать меня по адресу: http://localhost/RoyalReader/RoyalReaderForum/topics/1/1, где я получаю сообщение об ошибке "содержание не существует". Мне было интересно, как исправить эту ошибку и телепортироваться на правильные ссылки.

cid = идентификатор категории, или категория для форумов, и scid = идентификатор подкатегории, и мне нужно иметь возможность go идентификаторы различных категорий и подкатегорий. Вот мой индекс. php

    include ('layout_manager.php');
    include ('content_function.php');
?>
<html>
    <head><title>Royal Reader's forum</title></head>
    <link href="/RoyalReader/RoyalReaderForum/forum.css" type="text/css" rel="stylesheet" />
    <body>
        <div class="pane">
            <div class="header"><h1><a href="/RoyalReaderForum">Royal Reader Forum</a></h1></div>
            <div class="loginpane">
                <?php
                    session_start();
                    if(isset($_SESSION['username'])) {
                        //logout function
                        logout();
                    } else {
                        if (isset($_GET['status'])) {
                            if ($_GET['status'] == 'reg_success') {
                                echo "<h1 style='color: green;'>new user registered successfully!</h1>";
                            } else if ($_GET['status'] == 'login_fail') {
                                echo "<h1 style='color: red;'>invalid username and/or password!</h1>";
                            }
                        }
                        loginform();
                    }
                ?>
            </div>
            <div class="forumdesc">
                <p>Welcome to the Royal Reader Forum, the best place for connecting to readers and authors just like you!</p>
            </div>
            <div class="content">
                <?php dispcategories(); ?>
            </div>
        </div>
    </body>
</html>

и вот моя content_function. php где я манипулирую hrefs

    function dispcategories() {
        include ('dbconn.php');

        $select = mysqli_query($con, "SELECT * FROM categories");

        while ($row = mysqli_fetch_assoc($select)) {
            echo "<table class='category-table'>";
            echo "<tr><td class='main-category' colspan='2'>".$row['category_title']."</td></tr>";
            dispsubcategories($row['cat_id']);
            echo "</table>";
        }
    }

    function dispsubcategories($parent_id) {
        include ('dbconn.php');
        $select = mysqli_query($con, "SELECT cat_id, subcat_id, subcategory_title, subcategory_desc FROM categories, subcategories 
                                      WHERE ($parent_id = categories.cat_id) AND ($parent_id = subcategories.parent_id)");
        echo "<tr><th width='90%'>Categories</th><th width='10%'>Topics</th></tr>";
        while ($row = mysqli_fetch_assoc($select)) {
            echo "<tr><td class='category_title'><a href='/RoyalReader/RoyalReaderForum/topics/".$row['cat_id']."/".$row['subcat_id']."'>
                  ".$row['subcategory_title']."<br />";
            echo $row['subcategory_desc']."</a></td>";
            echo "<td class='num-topics'>".getnumtopics($parent_id, $row['subcat_id'])."</td></tr>";
        }
    }

    function getnumtopics($cat_id, $subcat_id) {
        include ('dbconn.php');
        $select = mysqli_query($con, "SELECT category_id, subcategory_id FROM topics WHERE ".$cat_id." = category_id 
                                      AND ".$subcat_id." = subcategory_id");
        return mysqli_num_rows($select);
    }

    function disptopics($cid, $scid) {
        include ('dbconn.php');
        $select = mysqli_query($con, "SELECT topic_id, author, title, date_posted, views, replies FROM categories, subcategories, topics 
                                      WHERE ($cid = topics.category_id) AND ($scid = topics.subcategory_id) AND ($cid = categories.cat_id)
                                      AND ($scid = subcategories.subcat_id) ORDER BY topic_id DESC");
        if (mysqli_num_rows($select) != 0) {
            echo "<table class='topic-table'>";
            echo "<tr><th>Title</th><th>Posted By</th><th>Date Posted</th><th>Views</th><th>Replies</th></tr>";
            while ($row = mysqli_fetch_assoc($select)) {
                echo "<tr><td><a href=http://localhost/RoyalReader/RoyalReaderForum/topics.php?cid=1&scid=1>{$row['title']}</a></td><td>{$row['author']}</td><td>{$row['date_posted']}</td><td>{$row['views']}</td><td>{$row['replies']}</td></tr>";
            }
            echo "</table>";
        } else {
            echo "<p>this category has no topics yet!  <p>this category has no topics yet!<a href=http://localhost/RoyalReader/RoyalReaderForum/topics.php?cid=1&scid=1>>
                 add the very first topic to RoyalReader now</a></p>";
        }
    }
?>```

thank you to anyone in advance who can help. 

1 Ответ

0 голосов
/ 28 марта 2020

Вы помещаете эти URL-адреса здесь, чтобы вы могли изменить их на значения по умолчанию filename.php?var1=1&var2=1:

<a href='/RoyalReader/RoyalReaderForum/topics/".$row['cat_id']."/".$row['subcat_id']."'>

Чтобы использовать / 1/1 в качестве PHP переменных, вы можете перенаправить эти значения с помощью .htaccess файл и флаг QSA.

RewriteRule ^parts/([^/\.]+)/([^/\.]+)/?$ parts.php?p=$1&f=$2 [L,QSA]

http://httpd.apache.org/docs/2.2/rewrite/flags.html#flag_qsa

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...