2017-09-02 6 views
0

今、私はPHPファイルエコー名入力del.phpで

<form action="del.php">          
<input type="text" name="name" /> 
<input type="submit" name="btn" value="button"/> 
</form> 

をにしたいボタン のために2名の入力1と1との簡単なフォームを作った私のフォームでは動作しません。毎回 iは、この入力に入力した任意のものをエコーし​​たいときに私に白い画面を与え

<?php 
session_start(); 
$_SESSION['name'] = $_POST['name']; 
echo "".$_POST['name'].""; 

+0

は、なぜあなたは、この '「テキスト」「'それはすべきではない 'タイプ=」テキストのようなタイプを使用しています「唯一? – Jer

+0

@Jer私の元のコードは余分なものを削除するとプレースホルダー= ""なので、私はそれを見ていませんでした –

+1

あなたのフォーム – Skewled

答えて

4

フォームにmethod属性がありません。

<form action="del.php" method="POST">          
    <input type="text" name="name" /> 
    <input type="submit" name="btn" value="button"/> 
</form> 

method属性は、(フォームデータはaction属性で指定したページに送信されます)、フォームデータを送信する方法を指定します。

フォームデータは、(メソッド=「を得る」との)URL変数として、または( =「ポスト」方法)HTTPポストトランザクションとして送信することができます。

出典:https://www.w3schools.com/tags/att_form_method.asp

+0

whopsありがとう –

+1

@rekobeko正しい答えを受け入れるとクールです。それはたくさんのことを意味します。 :) – Spectarion

1

フォームが送信されdefault methodGETで、あなたは<form>タグにPOST方法(メソッド= "ポスト")を指定する必要があります。

<form action="del.php" method="post"> 
+0

あなたは私がこれを忘れるか分からない –

0

あなたフォームはGETをポストしていません(URLのパラメータはexample.com?name=に設定されています)POSTのfromメソッドを設定していないためです:

<form action="del.php" method="post">          
    <input type="text" name="name" /> 
    <input type="submit" name="btn" value="button"/> 
</form> 

そして、あなたのPHPの中に、あなたはそのポストをチェックし、値が設定されていることを確認する必要があります

<?php 
session_start(); 

if ($_SERVER['REQUEST_METHOD'] == 'POST') { 

    $name = isset($_POST['name']) ? $_POST['name'] : null; 

    // set your session - not sure you need this :/ 
    $_SESSION['name'] = $name; 

    // echo out your result but also protect from XSS by using htmlentities 
    echo htmlentities($name); 
}