質問

あるページでユーザー入力を取得し、それをphp変数に保存し、別のphpページで使用したい。 「セッション」を使用してみましたが、機能していないようです。別の安全な代替手段はありますか?この情報は、ユーザー名とパスワードである可能性があります。

役に立ちましたか?

解決

これを行うのに最適な方法であるため、セッションコードを変更してみてください。

例:

index.php

<?php
session_start();

if (isset($_POST['username'], $_POST['password']) {
    $_SESSION['username'] = $_POST['username'];
    $_SESSION['password'] = $_POST['password'];
    echo '<a href="nextpage.php">Click to continue.</a>';
} else {
    // form
}
?>

nextpage.php

<?php
session_start();

if (isset($_SESSION['username'])) {
    echo $_SESSION['username'];
} else {
    header('Location: index.php');
}
?>

ただし、ユーザーのログイン資格情報ではなく、セッション内のユーザーIDなどのより安全なものを保存する可能性があります。

他のヒント

カーソンに同意します。セッションはこれでうまくいくはずです。セッション変数を使用したいページで何か他の前に session_start()を呼び出していることを確認してください。

また、パスワード情報を直接保存するのではなく、何らかの認証トークンメカニズムを使用します。私見、セッションにパスワードデータを保存することは本質的に安全ではありませんが、保存する必要がない場合は、回避することをお勧めします。

いくつかの方法があります:

  • セッションを使用します(ただし、<セッションデータを使用するすべてのページで、a href = "http://de2.php.net/manual/en/function.session-start.php" rel = "nofollow noreferrer"> session_start()ストア( $ _SESSION ))
  • <!> quot; next <!> quot;のクエリ文字列にデータを追加します。ページ( $ _GET
  • データを<!> quot; next <!> quot;に投稿します。ページ( $ _POST

セッションウェイは、データが<!> quot; leave <!> quot;しない唯一の方法です。サーバー自体に保存されているサーバー。上記の他のすべての方法では、受信ページのデータをサニタイズおよび検証する必要があります。

最も簡単な方法は

//page1.php
session_start();
$_SESSION['user']='user';
$_SESSION['password']='password';

//page2.php
session_start();
echo $_SESSION['user'] . ' ' . $_SESSION['password'];

POSTおよびGETメソッドを使用して、PHPスクリプト内でユーザー入力を転送することができます。

PHP GET

PHP POST

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top