2016-08-26 10 views
-2

私は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); ?> 
+2

フォームアクションSELFを使用せず、代わりに他のページにリンクして$ _POSTロジックを配置するか、2番目のファイルのSQLコードを最初のファイルに入れます。 –

+0

data_ins.phpで$ _GETメソッドを使用する –

+3

あなたのコードはSQLインジェクション用にオープンされています。バリデーション後にdata_ins.phpコードをform.phpに移動してください。 – devpro

答えて

0

、私はあなたがするために必要なよりも、それは難しい作らのかもしれないと思います。ここで

は、私はPHP側をどうしたいものです。

:フォームについては

if (isset($_POST['submit'])) 
{ 
    if (!empty($_POST['fname'])) 
    { 
     if (!empty($_POST['lname'])) 
     { 

      // Add Database insert code here.. 

     } else { 
      echo "Last name is required"; 
     } 
    } else { 
     echo "First name is required"; 
    } 
} 

、あなたはPHPの自己(ちょうどメソッドを追加します)ので、などを追加する必要はありません

<form method="POST" action=""> 
    First Name: <input type="text" name="fname"><br> 
    Last Name: <input type="text" name="lname"><br> 
    <input type="submit" name="submit"> 
</form> 

これは、あなたの最初のアイデアよりも多くのことを助けてくれることを願っています。

ご注意:私は$ data trimなどを追加していませんが、最初にコードノートがある場所にこれらを追加します。

0

1.change 2.inこの

`<form method="POST" action="location of your data_ins.php">` 

のようなフォームあなたのdata_ins.phpデータベースの設定コードを持っているか、それを含める必要があります。あなたのコード、あなたの方法に加えてinsertクエリ

<form method="POST" action=""> 
    First Name: <input type="text" name="fname"><br> 
    Last Name: <input type="text" name="lname"><br> 
    <input type="submit" name="submit"> 
</form> 
+0

form.php内の検証については何ですか? – devpro

+0

私たちはjsを使用しないでPHPを使用して検証することができます。サーバサイドに到達する前に検証する必要があります。これは同じファイル内で外部ファイルにする必要はありません – Karthi

0

からdata_ins.phpパスであなたのすべてのフォームの値3.get

(質問はそれについてではないとして)。あなたがPHP文を使用することができ、他の.phpのファイルを実行するには

:あなたのケースでは

は次のように、使用する1つでなければなりませんが必要です。検証後にrequire 'data_ins.php';

+0

ファイルをインクルードする場合、 .phpを同じものにします。 2つではなくファイルのみを使用する – devpro

+0

これは質問に対する答えです。 2ページ目にアクションを与える方法は?あなたはステートメントをすることができます... OPは言っていない:私のフォームページをすごく作る。 – pr0gramist

関連する問題