2017-12-16 6 views
-4

私はW3Schoolsや他のHTMLやPHPのチュートリアルを行ってきましたが、どのように動作するかを少しはっきりさせる必要があります。私はページ1からページ2にPHPを使ってURL経由で値を転送しようとしています。PHPの基本を分かりやすくするために

<form method="post" action="page2.php"> 
FIRST NAME <input type="text" name="fname"><br> 
LAST NAME <input type="text" name="lname"><br> 
      <input type="submit" name="sub" value="sub"> 
</form> 

ページ2:私は

Page1のHTMLに使用してそれを行う方法についてのアイデアの公平なビットがありますが、私は値を輸送するだけでPHPを使用したい

<?php 
$fname=$_POST['fname']; 
$lname=$_POST['lname']; 
echo $fname."-".$lname; 
?> 

を、私は計画していましたフォームを使用せずにタグを使用することができますが、私は2ページで値を取得できないため、正しい方法ではないと確信しています。

<?php 
$name="hello world"; 
echo '<a href="page2.php?name='.$name.'"><input type="button name="sub" value="submit"></a>'; 
?> 
+1

[XSS](https://stackoverflow.com/questions/1996122/how-toのように注意してください-prevent-xss-html-php)を使用して、ユーザー入力を出力します。 –

+0

@mickmackusa PHPで変数を使用できるかどうかを尋ねています。これをURLに修正し、フォームを使わずに別のページに送信します。私は、これは重複した質問ではないと思います。 – Im786

+0

@LawrenceCheroneあなたは正しい方法でやることをもっと光らせるチュートリアルを提案してもらえますか? – Im786

答えて

4

あなたはそれを後ろ向きにしています。 POSTデータはURLの中ではなく要求の本体に入れられます。 GETデータはURLに格納されます。

あなたはURL内のデータを持っているしたい場合は、あなたがあなたのformタグを変更しますに

<form method="get" action="page2.php"> 

とpage2.phpコード:

<?php 
$fname = $_GET['fname']; 
$lname = $_GET['lname']; 
echo $fname . "-" . $lname; 
?> 

これがあることに注意してください(XSSのような)いくつかの脆弱性があり、ではありません。であるべきですか?です。

+0

しかし、W3Schoolsで、データを保護したい場合は、「取得」メソッドの代わりに「投稿」を使用する必要があることを読んでいます。 – Im786

+0

インターネットを経由するデータは、HTTPSで暗号化されていない限り、安全であるとは限りません。しかし、GETパラメータはURLの一部であり、POST(通常はログに記録される)とは異なるエクスポーズを持ちます。これらは両方とも '$ _REQUEST'の下で利用できるので、フォームからの_and_ process POSTリクエストを含むURLを提供できるようにするには、オプションです。私の経験では、これはめったに必要ありません。また、PHPの '$ _SESSION'を使用して、サイトユーザーに自動的に関連付けられるデータを、前後に渡すことなく、クッキー経由で保存できることを忘れないでください。 –

+0

@DanFarrellありがとう、私はこれを頼んで愚かに見えるかもしれませんが、フォームを使用せずに、他のページにデータを送信することは可能でしょうか?私は$ _SESSIONについて知っていますが、フォームや$ _SESSIONを使わずに別のページに変数を送ることができるのであれば、はっきりとした説明が必要ですか? – Im786

-2

「GET」を使用する必要があります。データにURLを追加して渡します。

  1. ページ1

    <form method="GET" action="page2.php"> 
        FIRST NAME <input type="text" name="fname"><br> 
        LAST NAME <input type="text" name="lname"><br> 
        <input type="submit" name="sub" value="sub"> 
    </form> 
    
  2. 2ページ

    <?php $fname=$_GET['fname']; $lname=$_GET['lname']; echo $fname."-".$lname; ?> 
    
関連する問題