私はかなりPHPを使い始め、小さなブログをデザインしています。私は新しい投稿を作成するフォームを提出しようとしているが、それは動作していないと私は理由を把握することはできません。私はそれを登録フォームのための私の作業コードと比較しました、そして、それは同じようです。私は何のエラーも出ていない、それは単にページを再読み込みし、データベースに投稿していない。フォームがデータベースにポストされていません - PHP
ビュー -
<article>
<?php
if (!isset ($_SESSION['username']))
{
?>
<span class="alert">Please login to create a post.</span>
<?php
}
else
{
?>
<form class="newpost" action="" method="post">
<fieldset>
<legend>Submit a new post</legend>
<?php if ($error['alert'] != '') { echo "<span class='alert'>".$error['alert']."</span>";} ?>
<ul>
<li>
<label for="title">Title:</label>
<input type="text" name="title" value="<?php echo $input['title']; ?>" required autofocus>
</li>
<li>
<label for="content">Content:</label>
<textarea id="content" name="content" rows=6 value="<?php echo $input['content']; ?>"></textarea>
</li>
</ul>
</fieldset>
<fieldset>
<button type="submit" class=postbutton>Publish</button>
</fieldset>
</form>
</div>
<?php
}
?>
</article>
newpost.php
<?php
require_once 'includes/connection.php';
$error['alert'] = '';
$input['title'] = '';
$input['content'] = '';
if (isset($_POST['submit']))
{
if ($_POST['title'] == '' || $_POST['content'] == '')
{
$error['alert'] = 'Please give your post a title and content.';
$input['title'] = $_POST['title'];
$input['content'] = $_POST['content'];
include_once('v_newpost.php');
}
else
{
$input['title'] = htmlentities($_POST['title'], ENT_QUOTES);
$input['content'] = htmlentities($_POST['content'], ENT_QUOTES);
if ($stmt = $mysqli->prepare("INSERT INTO posts (title, content) VALUES (?,?)"))
{
$stmt->bind_param("ss", $input['title'], $input['content']);
$stmt->execute();
$stmt->close();
$error['alert'] = '';
$input['title'] = '';
$input['content'] = '';
header('Location: index.php');
}
else
{
$error['alert'] = 'Failed to create post';
}
}
}
else
{
include_once('v_newpost.php');
}
?>
v_newpost.php私はそれはおそらく愚かなものだと確信していますが、私はそれの上に何度も見てきたと理解することはできませんなぜ機能していないのですか?
フォームアクションは空です! –
これは、空白のままにした場合、フォームが同じページにポストバックするため、実際は問題ではありませんでした。私は送信ボタンに名前を指摘していませんでした。 – paulyay