用于创建新帖子的管理页面

时间:2013-07-23 07:39:00

标签: mysql phpmyadmin

我创建了一个登录页面和一个管理页面。

在管理页面上,我创建了两个文本字段,第一个用于标题,第二个用于内容。我还创建了一个提交按钮。

我有一个名为:node。

的表的数据库

在那个表中我创建了:id(1,2,3 ...),author_id(1 = me),header(它是标题),text(它是内容)和日期(什么时候发布)。

现在我想要的是当我按下提交按钮时,作者,标题,文本和日期显示在页面上作为新帖子。当我在这里按下“发布你的问题”按钮时,情况大致相同。

Here's the webpage

我已经从sql创建了3个测试新闻帖子,它正在运行,但如果我可以从管理页面执行此操作会好得多。 :)

如果你能写得很好,我会非常感激,我从来没有这样做,我真的不知道如何做到这一点。

在任何人提供之前:我不想创建joomla或drupal网站。

最终工作版:(感谢Bansi)

<?php
ob_start();
session_start();
?>
<meta charset="utf-8">
<link rel="stylesheet" href="style.css" type="text/css" media="screen"/>
<?php
if (isset($_COOKIE["user"]))
{
    include('sql.php');
    $username =$_COOKIE["user"];
    $user = mysql_fetch_row(mysql_query("select * from user where
    name='$username'"));
        if (empty($_GET['action']))
        {
            //This is where you add to database
            if (!empty($_POST['submit']) && $_POST['submit']=='submit'){
            //do any validation if required, like not empty header and not empty body etc here
            $title = mysql_real_escape_string($_POST['title']);
            $text = mysql_real_escape_string($_POST['text']);
            }
            //insert to the database
            mysql_query("INSERT INTO hearthstone.node 
            ( author_id , title , text , date ) 
            VALUES ( '1', '$title', '$text', NOW( ) );");
        }
            ?>
<div id="adminmenu">Logged in as <b>
<?php print $user[1];?></b>
<span style="margin: 15px;"><br></span>
<?php include('logout.php'); ?>
<span style="margin: 15px;"></span>
<form method="post" action="">
<p>Title:</p>
<p><input type="text" maxlength="255" name="title" id="title" size="60"></p>
<p>Body content:</p>
<p><textarea cols="60" rows="20" name="text" id="text"></textarea></p>
<p><input type="submit" name="submit" id="submit" value="submit"></p>
</form>
</div>

            <?php
    }
else
{
        include('login.php');
}
?>

1 个答案:

答案 0 :(得分:1)

试试这个。代码下方的详细信息。

<?php
ob_start();
session_start();
?>
<meta charset="utf-8">
<link rel="stylesheet" href="style.css" type="text/css" media="screen"/>
<?php
if (isset($_COOKIE["user"])) {
    include ('sql.php');
    $username = $_COOKIE["user"];
    $user = mysql_fetch_row(mysql_query("select * from user where
    name='$username'"));
    if (empty($_GET['action'])) {
        //This is where you add to database
        if (!empty($_POST['submit']) && $_POST['submit']=='Submit'){
            //do any validation if required, like not empty header and not empty body etc here
            $header = mysql_real_escape_string($_POST['header']);
            $body = mysql_real_escape_string($_POST['body']);
            //insert to the database
            mysql_query("INSERT INTO node (author_id,header,text,`date`) VALUES (1,$header,$body,now());");
        }
?>
<div id="adminmenu">Logged in as <b>
<?php print $user[1]; ?></b>
<span style="margin: 15px;"><br></span>
<?php include ('logout.php'); ?>
<span style="margin: 15px;"></span>
<form method="post" action="">
<p>Title:</p>
<p><input type="text" maxlength="255" name="header" id="title" size="60"></p>
<p>Body content:</p>
<p><textarea cols="60" rows="20" name="body" id="content"></textarea></p>
<p><input type="submit" name="submit button" id="submit" value="Submit"></p>
</form>
</div>

            <?php
    }
} else {
    include ('login.php');
}
?>

重要提示:请勿使用mysql函数,因为它已被折旧尝试使用mysqli或PDO

改变了代码。我在保存到数据库的代码中添加了注释。我还在<form>添加了HTML元素。代码未经过测试,因为我的服务器不再支持mysql功能。我已尽力使用您问题中的数据库名称和字段名称。另请注意,我没有添加任何错误检查。

如果您遇到任何问题,请告诉我。