私は前に同様の質問を投稿しましたが、本当に私を助けた答えは得られなかったので、もう一度やり直したいと思っています。免責条項として、私は、ここの情報の多くは完璧なコーディング慣行に従わないことを知っていますが、それは運動目的のみです。何百万ものものを試しましたが、何が起こっているのかわからないので、何も動いていないようです。私は必然的にいくつかの(何か!)助けを必要とするので、もしあなたが何かを提供できるならば、事前に感謝する!PHPのクッキーとセッション変数とIPアドレス
いくつかの基本的なCookieとセッションを使用してユーザー固有のデータを生成する単純なフォーム/ページを作成しようとしています。私が理解できないいくつかの問題に出くわすまで、私はうまく動いていた。私の最初のページでは、ユーザーが使用しているブラウザの名前がほしいということを除いて、すべてが有効です。 (例えば、私は単純なタイトル:ブラウザーの長いバージョンの代わりにFirefoxを望む)これは可能だと思うので、これを行うのが見えました、私はちょうどそれをやる方法を知らない!
IPアドレス、ブラウザ情報、現在の日付/時刻(2ページに表示したい)をセッション変数として保存する方法が正確にはわからないので、ここで本当に問題が発生します。私が見つけたいくつかのことを試しましたが、私はそれを正しくやっているとは思わない。
私はまた、ユーザー名とパスワードを2つの別々のクッキーとして保存しようと努力していました...提案?最後に、出力バッファリングを使用して(form_data.phpを呼び出すために使用される)ロケーションヘッダを持つためには何をする必要がありますか?
(私が間違ったことをしたことを考えれば、これは役に立ちます!LOL)これは私のコードを完全に取り除いたものです。たくさんの情報を持っていなくても私のクリーンなバージョンを投稿しようとしているので、自分が何をしようとしているのかを簡単に見ることができます。
メインファイルのコードは:
は$browserinfo = get_browser($_SERVER['HTTP_USER_AGENT']);
$browsername = $browserinfo['browser'];
あなたのセッションとクッキーストレージは動作しません:
<?php
header('Location: form_data.php');
setcookie('username', $_POST['username']);
setcookie('password', $_POST['password']);
//I know this isn't working.
//honestly I just left this in here as to show where I had been
//trying to save the cookie data. Pretty obvious how bad my
//trial and error with this went!
}
?>
<?php
$_SESSION['ip'] = $_SERVER['REMOTE_ADDR'];
echo " By the way, your IP address is: </b>".$_SESSION['ip']."<br />";
echo " You already know this, but the browser you are currently using
to view this page is:<br/>"; //What is the correct function that I should be using here?
echo "<form action=\"form_data.php\" method=\"post\">";
echo "username:<input type=\"text\" name=\"username\" size=\"20\" value=\"\"><br/>";
echo "password:<input type=\"password\" name=\"password\" size=\"20\" value=\"\"><br/>";
echo "<input type=\"submit\" value=\"Submit, please\" />";
echo "<br /><input type=\"hidden\" name=\"submitted\" value=\"true\" />";
?>
form_data.php
<?php
echo "Hello, ".$username;//I'm trying to get the cookie data for the username
echo "Your password is ".$password; //Samething here (want cookie data)
echo "The date and time you entered this form is: ".date("F j, Y")." -- ".date("g:i a");
echo "<br/>Your IP:".$_SESSION['ip'] = $_SERVER['REMOTE_ADDR'];
echo "<br/>Your broswer:".;//I want full broswer data here...dont know how to do it.
//Overall, was this the way to get the session variables for IP, date/time and browser?
echo "Thank you for filling out this form!";
?>
Cookieにユーザー名とパスワードを保存しないでください。代わりに、Cookieにランダムな文字列を格納して、データベースの値をCookie値と照合して後で戻すことができるようにし、すべてのページ読み込み時にその値を再生成します。 –
'setcookie'はこれまで使わないでください。 '$ _SESSION'を使うだけで、サーバ上のセッションに関連するすべてのデータを維持することができます。クライアントが必要とする唯一のクッキーはセッションクッキーであり、これを明示的に処理する必要はありません。 –
@Kerrek SB Cookieは、重要ではない情報をサーバーのセッションの存続期間を超えて保持するのにも役立ちます。彼らは '$ _SESSION'とは異なる目的を果たします。 –