質問
あるページでユーザー入力を取得し、それを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'];
私も同意します。セッションが最善の解決策です。 PHPによるWebデータベースアプリケーション<!> amp;のこの章を参照してください。いくつかの例については、MySQL 。
所属していません StackOverflow