2011-06-27 14 views
0

私はいくつかの基本的なクッキーとセッションを使って、ユーザー固有のデータを生成する単純なフォーム/ページを作成しようとしています。私が理解できないいくつかの問題に出くわすまで、私はうまく動いていた。私の最初のページでは、ユーザーが使用しているブラウザの名前がほしいということを除いて、すべてが有効です。 (例えば、私は単純なタイトル:ブラウザーの長いバージョンの代わりにFirefoxを望む)これは可能だと思うので、これを行うのが見えました、私はちょうどそれをやる方法を知らない!PHPクッキーとセッション変数フォーム

IPアドレス、ブラウザ情報、現在の日付/時刻(2ページに表示したい)をセッション変数として保存する方法が正確にはわからないので、ここで本当に問題が発生します。私が見つけたいくつかのことを試しましたが、私はそれを正しくやっているとは思わない。

私はまた、ユーザー名とパスワードを2つの別々のクッキーとして保存しようと努力していました...提案?最後に、出力バッファリングを使用して(form_data.phpを呼び出すために使用される)ロケーションヘッダを持つためには何をする必要がありますか?私は実際にそれらを使用しようとするまで、私はクッキー/セッションに従っていたように感じる!

私はこれを理解している間に、PHPの初心者です(プログラミングは一般的ではありません)ので、PHPのユニークな特質を学びたいと思っています!私はあなたが提供できるあらゆる助けにとても感謝しています!

コード時間! (これは、おそらくすべてが間違っていたと考えて、これが役に立つとは思えません!LOL)これは私のコードを完全に取り除いたものです。それは多くの情報を持っていないにもかかわらず、私の最もクリーンなバージョンを投稿しようとするので、あなたが何をしようとしていたかを簡単に見ることができます。

メインファイルコード:

<?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 browser data here... don't 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!"; 
?> 
+0

あなたは、コードの最初のところで 'session_start();'を呼び出さずに、このようなセッションデータを書くことは間違いありません。 – jerluc

+0

ああ、はい。それを理解していない...私は何をしようとしているの他の例を見たことを参照してください...これのような何かを書いたことはありませんでしたので、どこに、など?それ以上の提案/例? – Clark

+0

あなたはhttp://us.php.net/manual/en/book.session.phpを読んでいますか? – BugFinder

答えて

0

あなたはクッキーでパスワードとユーザー名を保存することはありません別の場所で私のコメントを1として。

私はちょうどブラウザ

のNAMEはget_browser()

FN

ないIPアドレスを格納する方法を正確に確認してくださいを参照してくださいしたい、....しかし、私は考えていません私はそれを正しくやっていた。

あなたがあなたが見たいと思っていたもの、そしてあなたが実際に見たものを教えてくれたら、助けになるだろう。

コードでsession_start()を呼び出していません。

header( 'Location:form_data.php'); ... ?>

明示的に中止し、ユーザーを無視するPHPコードを教えていない限り、このページのコードの残りの部分は、おそらく実行されません。

なぜ、セッションにIPアドレスを格納しようとしていますか?

最後に、出力バッファリングを使用して(form_data.phpを呼び出すために)使用される場所ヘッダーを作成する必要がありますか?

リダイレクトヘッダーを含むコンテンツを技術的に含めることはできますが、通常ブラウザは無視します。ユーザーが次のページに送信する前にコンテンツを画面に表示する場合は、200応答を返し、javascriptまたはメタリフレッシュ指示を使用してリダイレクトします。

+0

私はクッキーとしてパスワードを保存することは決してうまくいかないことを知っています...それが私がそれをやる方法を知らない理由です!しかし、運動目的のために、私は私の元の投稿に概説されたすべての情報を持つ小さなフォームを作成する必要がありました。ここの理由は、すべての要件が少し賢明でないように見えるからです。私は本当に良い情報を見つけようと努力していました。他の提案や例は誰でも歓迎されています...私はまだ作業ページを作成することに苦しんでいます! (そして私はこれをコメントとして投稿しようとしましたが、できませんでした!) –

関連する問題