目前,我正在嘗試在 PHP 上為我的一項作業創建一個“添加”表單,以便用戶將資料插入到將顯示在頁面 index.php 上的表中的資料庫中。問題是當我點擊提交表單時,頁面會重繪 ,最終根本沒有向資料庫添加任何資料。提交后也沒有顯示錯誤。我相信資料庫是連接的,因為資料庫中的用戶確實出現在 index.php 的表中,但是這些已經通過 phpMyAdmin 本身添加了。我完全陷入困境,因為我嘗試在 google 上搜索,但仍未找到解決此問題的可能方法。下面是我的 index.php 和 add.php 代碼。我仍然是初學者,尤其是在 PHP 方面。如果我需要提供任何其他額外的代碼來解決這個問題,請告訴我。
添加.php
<?php
require_once "pdo.php";
session_start();
if ( isset($_POST['Par_Name']) && isset($_POST['Par_Email'])
&& isset($_POST['Par_Tel'])) {
// Data validation
if ( strlen($_POST['Par_Name']) < 1 || strlen($_POST['Par_Tel']) < 1 || strlen($_POST['Game_Num']) < 1) {
$_SESSION['error'] = 'Missing data';
header("Location: add.php");
return;
}
if ( strpos($_POST['Par_Email'],'@') === false ) {
$_SESSION['error'] = 'Bad data';
header("Location: add.php");
return;
}
$sql = "INSERT INTO participants (Par_Name, Par_Email, Par_Tel, Game_Num)
VALUES (:Par_Name, :Par_Email, :Par_Tel, :Game_Num)";
$stmt = $pdo->prepare($sql);
$stmt->execute(array(
':Par_Name' => $_POST['Par_Name'],
':Par_Email' => $_POST['Par_Email'],
':Par_Tel' => $_POST['Par_Tel'],
':Game_Num' => $_POST['Game_Num']));
$_SESSION['success'] = 'Record Added';
header( 'Location: index.php' ) ;
return;
}
// Flash pattern
if ( isset($_SESSION['error']) ) {
echo '<p style="color:red">'.$_SESSION['error']."</p>\n";
unset($_SESSION['error']);
}
?>
<p>Add A New User</p>
<form method="post">
<p>Participant Name:
<input type="text" name="name"></p>
<p>Participant Email:
<input type="text" name="email"></p>
<p>Particpant Telephone Number:
<input type="text" name="telephone"></p>
<p>Game Number:
<input type="text" name="game"></p>
<p><input type="submit" value="Add New"/>
<a href="index.php">Cancel</a></p>
</form>
索引.php
<?php
require_once "pdo.php";
session_start();
?>
<html>
<head></head><body>
<?php
if ( isset($_SESSION['error']) ) {
echo '<p style="color:red">'.$_SESSION['error']."</p>\n";
unset($_SESSION['error']);
}
if ( isset($_SESSION['success']) ) {
echo '<p style="color:green">'.$_SESSION['success']."</p>\n";
unset($_SESSION['success']);
}
echo('<table border="1" cellpadding="10" cellspacing="1">'."\n");
$stmt = $pdo->query("SELECT Par_Num, Par_Name, Par_Tel, Par_Email, Game_Num FROM participants");
while ( $row = $stmt->fetch(PDO::FETCH_ASSOC) ) {
echo "<tr><td>";
echo(htmlentities($row['Par_Num']));
echo("</td><td>");
echo(htmlentities($row['Par_Name']));
echo("</td><td>");
echo(htmlentities($row['Par_Tel']));
echo("</td><td>");
echo(htmlentities($row['Par_Email']));
echo("</td><td>");
echo(htmlentities($row['Game_Num']));
echo("</td><td>");
echo('<a href="edit.php?Par_Num='.$row['Par_Num'].'">Edit</a> / ');
echo('<a href="delete.php?Par_Num='.$row['Par_Num'].'">Delete</a>');
echo("</td></tr>\n");
}
?>
</table>
<a href="add.php">Add New</a>
uj5u.com熱心網友回復:
您需要設定輸入框的正確名稱,您在輸入框中設定了不同的名稱,并且您在后變數中使用了不同的名稱:
你的 add.php 頁面 HTML 需要這樣:
<p>Add A New User</p>
<form method="post">
<p>Participant Name:
<input type="text" name="Par_Name"></p>
<p>Participant Email:
<input type="text" name="Par_Email"></p>
<p>Particpant Telephone Number:
<input type="text" name="Par_Tel"></p>
<p>Game Number:
<input type="text" name="Game_Num"></p>
<p><input type="submit" value="Add New"/>
<a href="index.php">Cancel</a></p>
</form>
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/384910.html
上一篇:PHP致命錯誤:未捕獲的錯誤:在字串中呼叫成員函式diff()
下一篇:用手走過放氣
