簡體   English   中英

PHP必填字段(無HTML)

[英]PHP Required fields (No HTML)

因此,我需要有關必填字段的幫助。 填寫PHP表單時,我希望3個字段(exam_id,subject,exam_date)是必填字段。 因此,當單擊插入按鈕時,如果將一個字段留空並且將顯示錯誤,否則除非完成每個字段的填寫,否則操作將無法完成。我正在使用所有php,沒有HTML,也沒有,我不想重做我的表單作為HTML調用php,我想要這樣。 也沒有安全問題,這只是一個簡單的項目。 我的代碼:

<?php
echo '<link rel="stylesheet" type="text/css" href="css/tables.css" />';

$con = mysql_connect("localhost","root");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}

mysql_select_db("StudentExams", $con);

if (isset($_POST['update']))
{
$UpdateQuery = "UPDATE Exam SET exam_id='$_POST[exam_id]', subject='$_POST[subject]', exam_date='$_POST[exam_date]' WHERE exam_id='$_POST[hidden]'";
mysql_query($UpdateQuery, $con);
};

if (isset($_POST['delete']))
{
$DeleteQuery = "DELETE FROM Exam WHERE exam_id='$_POST[hidden]'";
mysql_query($DeleteQuery, $con);
};

if (isset($_POST['insert']))
{
$InsertQuery = "INSERT INTO Exam (exam_id, subject, exam_date) VALUES ('$_POST[uexam_id]','$_POST[usubject]','$_POST[uexam_date]')";
mysql_query($InsertQuery, $con);
};

$sql = "SELECT * FROM Exam";

$Data = mysql_query($sql,$con);

echo "<table id='size' border='1'>
<tr>
<th>Exam_ID</th>
<th>Subject</th>
<th>Exam_Date</th>
</tr>";
while($record = mysql_fetch_array($Data))
{
echo "<form action=examisud.php method=post>";
echo "<tr>";
echo "<td>" . "<input type=text name=exam_id value=" . $record['exam_id'] . " </td>";
echo "<td>" . "<input type=text name=subject value=" . $record['subject'] . " </td>";
echo "<td>" . "<input type=text name=exam_date value=" . $record['exam_date'] . " </td>";
echo "<td>" . "<input type=hidden name=hidden value=" . $record['exam_id'] . " </td>";
echo "<td>" . "<input type=image name=update value=update id=submit src=images/update.png" . " </td>";
echo "<td>" . "<input type=image name=delete value=delete id=submit src=images/delete.png" . " </td>";
echo "</tr>";
echo "</form>";
}
echo "<form action=examisud.php method=post>";
echo "<tr>";
echo "<td><input type=text name=uexam_id></td>";
echo "<td><input type=text name=usubject></td>";
echo "<td><input type=text name=uexam_date></td>";
echo "<td>" . "<input type=image name=insert value=insert id=submit src=images/insert.png" . " </td>";
echo "</form>";
echo "</table>";



echo "<a href='ExamForm.html'> Back to main page </a>";

mysql_close($con);

?>

預先感謝任何可以幫助我的人! 我覺得我缺少一個非常簡單的解決方案,或者由於缺少通用HTML表單而感到非常困惑。

只需在isset的頂部進行檢查

if(!isset($_POST['exam_id'],$_POST['subject'],$_POST['exam_date']))
{
 echo "These fields are required ! Please fill it up";
 header("location:backtoform.php");exit;
}

警告 :由於將$_POST參數直接傳遞到查詢中,因此容易受到SQL注入攻擊。


PHP 5.5.0不推薦使用此( mysql_* )擴展名,以后將刪除該擴展名。 相反,應使用MySQLiPDO_MySQL擴展。 改用PreparedStatements更好地抵御SQL注入攻擊!

isset( ... )僅用於查看是否設置了字段。 不管該字段的值是否為空。

您需要改用empty( .. ) 僅當字段已設置且不為空時,它才會返回true。 與一個射擊的兩個蘋果。

在所有if語句中,使用!empty。 維護一個$error變量並將其初始化為FALSE。 每當發生錯誤時,請將$ error設置為TRUE。 最后,僅在$error == FALSE時執行所需的操作。

$error = false;
    if (  !empty($_POST['update']   ){
    // stuff
    }
    else {
    // display error message
    $error=true;
    }

if(!$error){
// operations
}

這樣,您可以將驗證與操作巧妙地分開。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM