php cookie和会话变量形式

时间:2011-06-27 07:19:46

标签: php forms session variables cookies

我正在尝试创建一个简单的表单/页面,它使用一些基本的cookie和会话内容来生成一些特定于用户的数据。我一直在努力,直到遇到一些我无法弄清楚的问题。在我的第一页上一切都很好,除了我只想要用户正在使用的浏览器的名称。 (例如,我只想要简单的标题:Firefox而不是浏览器的整个长版本。)我已经看到这样做了所以我认为这是可能的,我只是不知道该怎么做!

我真正的问题出现在这里,因为我不确定如何将IP地址,浏览器信息和当前日期/时间(我希望在第2页上显示)存储为会话变量。尝试了一些我找到的东西,但我不认为我做得对。

我还无休止地尝试将用户名和密码存储为两个单独的cookie,每个...建议?最后,我需要做什么才能使用输出缓冲来获得位置标头(用于调用form_data.php)?在我真正尝试使用它们之前,我觉得我正在关注cookie /会话!

正如你所知,我是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!";
?>

1 个答案:

答案 0 :(得分:0)

根据我在其他地方的评论,您绝不应将密码和用户名存储在Cookie中。

  

我只想要浏览器的NAME

请参阅get_browser() fn

  

不完全确定如何存储IP地址,....但我不认为我做得对

如果您告诉我们您期望看到的内容以及您实际看到的内容,那么这将是一个帮助。

您没有在代码中调用session_start()。

  

header('Location:form_data.php');   ...   ?&GT;

除非您明确告诉PHP代码忽略用户中止,否则此页面上的其余代码可能无法执行。

为什么要尝试在会话中存储IP地址?

  

最后,我需要做些什么来获得带有输出缓冲的位置标头(用于调用form_data.php)?

虽然技术上可以包含带有重定向标头的内容,但通常浏览器会忽略它。如果您希望在用户操作系统发送到下一页之前在屏幕上显示内容,则返回200响应并通过javascript或元刷新指令进行重定向。