2

私はphpが初めてで、セッションを介して送信ボタンの値を渡そうとしています。

これまでの私のコードは次のようになります。

main_page.php

     session_start();
     echo '<form method="post" action="details_page.php">';
 echo '<li><a href="ifconfig.php> <input type="submit" name=submit value='."$ip_address".' /></a></li>';
 echo '</form>';
     $value_to_pass = $_POST[submit];
 echo $value_to_pass;
     $_SESSION['value'] = $value_to_pass;

}

details_page.php

session_start();
    echo $value_to_pass = $_SESSION['value'];
    echo $value_to_pass;

details_page.php に $value_to_pass を出力するために必要です

4

2 に答える 2

0

最初に以下のコードを変更します

 echo '<form method="post" action="details_page.php">';
 echo '<li><a href="ifconfig.php> <input type="submit" name=submit value='."$ip_address".' /></a></li>';
 echo '</form>';

以下で

 echo '<form method="post" action="details_page.php">';
 echo '<input type="hidden" name="ip_address" id="ip_address" value="'.$ip_address.'">';
 echo '<li><a href="ifconfig.php> <input type="submit" name=submit /></a></li>';
 echo '</form>';

これが実際のベストプラクティスです。私もこれに従いました。そのため、「送信」ボタンで値を渡さないようにしてください。それを「hidden」フィールドに渡します。

そして、以下のような値を取得します:-

 $value_to_pass = $_POST["ip_address"];

私はそれがあなたを助けると思います。ありがとう。

于 2013-08-09T11:20:55.970 に答える
0

これは非常に紛らわしいです

 session_start();
 echo '<form method="post" action="details_page.php">';
 echo '<li><a href="ifconfig.php> <input type="submit" name=submit value='."$ip_address".' /></a></li>';
 echo '</form>';
 $value_to_pass = $_POST[submit];
 echo $value_to_pass;
 $_SESSION['value'] = $value_to_pass;

フォームが実際に送信されたときにのみ POST コードが実行されるように、これに変更することを検討してください。このチェックがないと、フォームが送信されないときに SESSION に空白の値が割り当てられ、奇妙な結果になる可能性があります。

 session_start();
 echo '<form method="post" action="details_page.php">';
 echo '<li><a href="ifconfig.php> <input type="submit" name=submit value='."$ip_address".' /></a></li>';
 echo '</form>';

 // Note also you need single quotes in the $_POST array around 'submit'
 if(isset($_POST['submit']))
 {
   $value_to_pass = $_POST[submit];
   echo $value_to_pass;
   $_SESSION['value'] = $value_to_pass;
 }

details_page.php を次のように変更します。

session_start();
// Do not echo this line, as you are echoing the assignment operation.
$value_to_pass = $_SESSION['value'];
var_dump($value_to_pass);
于 2013-08-09T11:17:14.223 に答える