用于创建网页的 PHP 脚本无法正常工作

标签 php html css mongodb localhost

我正在从“PHP 和 MongoDB Web 开发”一书中学习 Web 开发,他们提供了这个用于创建博客帖子创建者的代码片段。

<?php
$action = (!empty($_POST['btn_submit']) &&
($_POST['btn_submit'] === 'Save')) ? 'save_article'
: 'show_form';
switch($action){
case 'save_article':
try {
$connection = new Mongo();
$database
= $connection->selectDB('myblogsite');
$collection = $database->
selectCollection('articles');
$article = array{
'title' => $_POST['title'],
'content' => $_POST['content'],
'saved_at' => new MongoDate()
};
$collection->insert($article);
} catch(MongoConnectionException $e) {
die("Failed to connect to database ".
$e->getMessage());
}
catch(MongoException $e) {
die('Failed to insert data '.$e->getMessage());
}
break;
case 'show_form':
default:
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"Page on w3.org">
<html xmlns="XHTML namespace" xml:lang="en"
lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html;
charset=utf-8"/>
<link rel="stylesheet" href="style.css"/>
<title>Blog Post Creator</title>
</head>
<body>
<div id="contentarea">
<div id="innercontentarea">
<h1>Blog Post Creator</h1>
<?php if ($action === 'show_form'): ?>
<form action="<?php echo $_SERVER['PHP_SELF'];?>"
method="post">
<h3>Title</h3>
<p>
<input type="text" name="title" id="title/">
</p>
<h3>Content</h3>
<textarea name="content" rows="20"></textarea>
<p>
<input type="submit" name="btn_submit"
value="Save"/>
</p>
</form>
<?php else: ?>
<p>
Article saved. _id:<?php echo $article['_id'];?>.
<a href="blogpost.php">
Write another one?</a>
</p>
<?php endif;?>
</div>
</div>
</body>
</html> 

将文件保存为 blogpost.php 。 在文本编辑器中打开另一个新文件并将以下 CSS 规则放入其中并将其保存为 style.css

body {
background-color: #e1ddd9;
font-size: 12px;
font-family: Verdana, Arial, Helvetica, SunSans-Regular,
Sans-Serif;
color:#564b47;
padding:20px;
margin:0px;
text-align: center;
}
div#contentarea {
text-align: left;
vertical-align: middle;
margin: 0px auto;
padding: 0px;
width: 550px;
background-color: #ffffff;
border: 1px #564b47;
}
div#innercontentarea{ padding: 10px 50px; }
div#innercontentarea form input[type=text]{ width: 435px; }
div#innercontentarea form textarea[name=content] { width: 435px; }

当我在本地主机上运行该脚本时,它只是显示一个空白页面。如何让它工作?

最佳答案

你的数组的 括号try block 上不正确,因为你使用 { 而不是 ( 这是正确的:

try {
$connection = new Mongo();
$database
= $connection->selectDB('myblogsite');
$collection = $database->
selectCollection('articles');
$article = array(
'title' => $_POST['title'],
'content' => $_POST['content'],
'saved_at' => new MongoDate()
);

关于用于创建网页的 PHP 脚本无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27754162/

相关文章:

javascript - 有没有办法制作一个带有 3 个透明框的实心 div?

html - 如何将图像的一部分插入文本框?

javascript - 在光标位置插入笑脸

javascript - Bootstrap 导航栏在调整大小时隐藏菜单元素

php - SQLSTATE[23000] : Integrity constraint violation: 1048 Column 'teamName' cannot be null

javascript - 来自 mysql 数据库的变量值

php - 如果用户滚动(JQuery),则禁用 div 上的自动刷新

html - html中中心标签的替代标签?

html - 整个网站呈灰度,除了一些 div 不工作

php - 如何使 laravel 多对一(hasMany)关系有效