12

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

4

5 に答える 5

15

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

例えば:

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 のような安全なものをセッションに保存することをお勧めします。

于 2008-10-27T16:27:20.847 に答える
7

私はカーソンに同意します。これにはセッションが機能するはずです。セッション変数を使用するページでは、他の何よりも先にsession_start()を呼び出していることを確認してください。

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

于 2008-10-27T16:24:42.223 に答える
5

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

  • セッションを使用します (ただし、セッション データ ストア ( $_SESSION )を使用するすべてのページでsession_start()を呼び出すことを忘れないでください)
  • 「次の」ページのクエリ文字列にデータを追加します ( $_GET )
  • データを「次の」ページに投稿する ( $_POST )

セッションウェイは、データがサーバー自体に保存されているため、データがサーバーから「出ない」唯一の方法です。上記の他のすべての方法では、受信ページのデータをサニタイズして検証する必要があります。

最も簡単な方法は

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

//page2.php
session_start();
echo $_SESSION['user'] . ' ' . $_SESSION['password'];
于 2008-10-27T16:29:02.357 に答える
0

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

PHP GET

PHP 投稿

于 2008-10-27T16:26:51.813 に答える
0

私も同意します。セッションが最善の解決策です。いくつかの例については、 Web Database Applications with PHP & MySQLのこの章を参照してください。

于 2008-10-27T16:29:27.830 に答える