我写的这段代码不是因为一个未知的原因。 PHP不会报告任何错误或警告。
<html>
<head>
<title>PHP Blog</title>
</head>
<body>
<?php
require 'login.php';
$db_server = mysql_connect($db_hostname, $db_username, $db_password);
if (!$db_server) die("Unable to connect to MySQL: " . mysql_error());
mysql_select_db($db_database, $db_server)
or die("Unable to select database: " . mysql_error());
if(isset($_POST['username']) and isset($_POST['password']))
{
$pass = "test";
$user = "test";
if($_POST['username'] == "test" and $_POST['password'] == "test")
{
echo <<<_END
<form action="post.php" method="post"><pre>
Title: <input type="text" name="title">
Post: <textarea rows="5" cols="64" name="post">
</textarea>
<input type="submit" value="Submit">
</pre></form>
_END;
if(isset($_POST['title']) and isset($_POST['post']))
{
$title = $_POST['title'];
$post = $_POST['post'];
$query = "INSERT INTO blog(title,post) VALUES('$title', '$post')";
mysql_query($query);
echo 'Succesfully posted..';
echo '<a href="blog.php">Click here</a>';
}
}
else
{
echo "Wrong Password!";
}
}
?>
一切正常,直到我通过点击按钮设置变量$_POST['title']
和$_POST['post']
。当我这样做时,我得到一个空白页。
答案 0 :(得分:4)
如果您提供的代码是 post.php ,则问题出在此处:
当您按提交按钮时, post.php 仅从表单中收到$_POST['title']
和$_POST['post']
。
使$_POST['username']
和$_POST['password']
为空/空。因此,为if语句返回 FALSE ,并生成空白页。
根据您的实施情况,有很多方法可以解决此问题。
您可以从表单中传递用户名和密码值。如果您愿意,可以使用隐藏的输入类型或文本。
<input type="hidden" name="username"><input type="hidden" name="password">
在$_POST['title']
内使用$_POST['post']
和isset()
代替$_POST['username']
和$_POST['password']
还有更多..
答案 1 :(得分:1)
因为您的表单应为:
echo <<<_END
<form action="post.php" method="post"><pre>
Username: <input type="text" name="username">
Password: <input type="password" name="password">
Title: <input type="text" name="title">
Post: <textarea rows="5" cols="64" name="post">
</textarea>
<input type="submit" value="Submit">
</pre></form>
_END;
您丢失了$_POST['username']
和$_POST['password']
,并且没有回复任何测试,因为您没有else
:
if(isset($_POST['username']) and isset($_POST['password']))
或者您可以在会话中保存您的登录信息并使用它们,而无需再次让用户使用他的用户和密码。
答案 2 :(得分:1)
您必须在正文标记后面回复登录表单。
如果没有,您将始终获得一个空白页面,因为您的用户名和密码将始终为空白。