私は2ページ作りました。私は最初のページ、すなわちform.phpでphpフォームのバリデーションを使いました。そして、私は2ページ目のアクション、すなわちdata_ins.phpを与えなければなりません。私のコーディングでどのように可能になるのか教えてください。ここでPHPページでアクションを与える方法
私のページは以下のとおりです。
form.php
<?php $fnameErr = $lnameErr = "";
$fname = $lname= ""; if($_SERVER["REQUEST_METHOD"] == "POST") {
if(empty($_POST['fname']))
{
$fnameErr = "First Name is required";
}
else
{
$fname= formVal($_POST['fname']);
}
if(empty($_POST['lname']))
{
$lnameErr = "Last Name is required";
}
else
{
$lname= formVal($_POST['lname']);
} }
function formVal($data)
{
$data = trim($data);
$data = stripcslashes($data);
$data = htmlspecialchars($data);
return $data;
}
?> <!DOCTYPE html> <html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<form method="POST" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>">
First Name:
<input type="text" name="fname"> <span style="color:red;"><?php echo $fnameErr ?></span> <br>
Last Name:
<input type="text" name="lname"> <span style="color:red;"><?php echo $lnameErr ?></span> <br>
<input type="submit" name="submit">
</form>
</body> </html>
data_ins.php個人的に
<?php $conn = mysqli_connect("localhost","root","","test_db");
$sql = "insert into records (FirstName, LastName) values ('$fname', $lname)";
if($result=mysqli_query($conn, $sql))
{
echo "Data Inserted Successfull";
}
else
{
echo "Invalid";
}
mysqli_error($conn); ?>
フォームアクションSELFを使用せず、代わりに他のページにリンクして$ _POSTロジックを配置するか、2番目のファイルのSQLコードを最初のファイルに入れます。 –
data_ins.phpで$ _GETメソッドを使用する –
あなたのコードはSQLインジェクション用にオープンされています。バリデーション後にdata_ins.phpコードをform.phpに移動してください。 – devpro