2016-11-01 11 views
0

私はMySQLとPHPを学んでいて、フォームの入力に問題があります。だから私は小さなテストコードを書いたが、それでも動作することはできない。私のPHPバージョンは5.6です。PHPのHTMLフォームからの入力を取得

コード:

<html> 
<body> 
<form action ="2.php" method ="post"> 
    Name: <input type="text" name="username" /> 
    <input type ="submit" value="ok" /> 
</form> 
</body> 
</html> 

<html> 
<?php 
if(isset($_POST['username'])){ 
    $user=$_POST['username']; 
    echo $user; 
    echo " is your name"; 
} 
else{ 
    $user=null; 
    echo "error"; 
} 
?> 
</html> 

プロジェクトの出力は常にエラーで、前に出力することができません入力。

私はユーザ名のために一重引用符と二重引用符を試しましたが、どちらも動作できません。

私はまた、php.iniのalways_populate_raw_post_dataを0、-1、1に設定しようとしましたが、すべて動作できません。

私は問題がどこにあるか分かりませんが、非常にばかげているかもしれません。

+1

'$ user = isset($ _ POST ['username']);'あなたがここで得るのは、フォームからの値ではなく、ブール値です。 – Qirel

+0

_ "プロジェクトの出力は常にエラーです" _そのエラーは何ですか? – j08691

+0

'$ user = $ _POST ['username']; echo $ user。 'はあなたの名前です'; ' – ArmKh

答えて

0

issetを変数として使用していますが、ブール値を返す関数です。

変更$user=isset($_POST['username']);それが正しく、何の問題もなく実行する必要が見えるものと

+0

それは問題です...しかし、私はまだ試してみましたが、まだ動作しません... – HarryTao

+0

'$ _POST _ ['username'];'、もう一度見てみましょう。 – Qirel

+0

そこに余分な_があった。再試行する。 @Qirelありがとう – TheValyreanGroup

1

$user=$_POST['username'];へ。上記のコードがあなたの実際のものであることを確認してください。私の経験から、フォーム送信のほとんどが

  • することができますが、正しい名前(ユーザ名)
  • を持っていない、あなたが間違ったHTTP動詞(ポスト)
  • を送信することがあります、あなたは間違ったエンドポイントに送信する(2.php )

上記のコードはすべて上手く見えます。機能付きのvar_dump、またはますprint_rとあなたはまだ正しい結果を持っていない場合、あなたより良いデバッグをこれら $ _POST$ _GET$ _REQUESTを内蔵しており、彼らが含まれているかどうかを確認しますあなたは、変数名を形成

0

もう一つは、あなたもこのような何かを行うことができますので、あなたがIF条件になってしまいます両方の場合に値がない場合でも、フィールドに追加点である:

<html> 
<?php 
if(isset($_POST['username']) && !empty($_POST['username'])){ 
    $user=$_POST['username']; 
    echo $user; 
    echo " is your name"; 
} 
else{ 
    $user=null; 
    echo "error"; 
} 
?> 
</html> 
+0

'isset($ _ POST ['username'])&&!empty($ _ POST ['username'])'は少し冗長です。 – Qirel

関連する問題