-1

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

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

我有一个数据库,其中有一个名为:node.js 的表。

在我创建的那个表中:id(1,2,3...)、author_id (1=me)、标题(它是标题)、文本(它是内容)和日期(当它是发布)。

现在我想要的是当我按下提交按钮时,作者、标题、文本和日期作为新帖子出现在页面上。当我在此处按下“发布您的问题”按钮时,情况几乎相同。

这是网页

我已经从 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');
}
?>
4

1 回答 1

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功能。我已尽力使用您问题中的数据库名称和字段名称。另请注意,我没有添加任何错误检查。

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

于 2013-07-23T09:04:31.437 回答