あるページでユーザー入力を取得し、それを php 変数に格納して、別の php ページで使用したいと考えています。「セッション」を使用してみましたが、機能していないようです。別の安全な代替手段はありますか?この情報は、ユーザー名とパスワードである可能性があります。
29849 次
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
私も同意します。セッションが最善の解決策です。いくつかの例については、 Web Database Applications with PHP & MySQLのこの章を参照してください。
于 2008-10-27T16:29:27.830 に答える