我创建了一个登录页面和一个管理页面。
在管理页面上,我创建了两个文本字段,第一个用于标题,第二个用于内容。我还创建了一个提交按钮。
我有一个名为:node。
的表的数据库在那个表中我创建了:id(1,2,3 ...),author_id(1 = me),header(它是标题),text(它是内容)和日期(什么时候发布)。
现在我想要的是当我按下提交按钮时,作者,标题,文本和日期显示在页面上作为新帖子。当我在这里按下“发布你的问题”按钮时,情况大致相同。
我已经从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');
}
?>
答案 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
功能。我已尽力使用您问题中的数据库名称和字段名称。另请注意,我没有添加任何错误检查。
如果您遇到任何问题,请告诉我。