> I'm trying to create a simple form /
> page that uses some basic cookie and
> session stuff to produce some
> user-specific data.
Сессии используют куки под крышкой (только хранилище session_id внутри куки / set_cookie ), и я советую вам использовать только сессии, потому что куки могут пропускать информацию (храните всю информацию в cookie на компьютере этого пользователя), что может быть опасно, когда сеанс использует файловую систему / базу данных сервера или что угодно, когда вы переопределяете session_set_save_handler .
> On my first page everything is good
> except for I just want the NAME of the
> browser the user is using.
Как Майкл сказал, что вы можете использовать get_browser для этого:
попытки определить возможности
браузера пользователя, глядя вверх
информация браузера в
Файл browscap.ini.
Подобно тому, как на странице PHP говорится, что она пытается определить, и вы должны НЕ полагаться на эту информацию для чего-то важного, потому что она может быть неправильной (вы можете обмануть систему, если хотите). Я имею в виду, что вы не должны использовать это для подтверждения или подтверждения чего-либо.
> My real problems come up right about
> here, because I’m not exactly sure how
> to store the IP address, browser info
> and the current date/time (which I
> want shown on page 2) as session
> variables.
Более подробную информацию о получении IP-адреса можно прочитать здесь (прокси-сервер может немного вас ввести в заблуждение, может быть?). Чтобы сохранить эту информацию, просто сохраните ее внутри сеанса, сначала введя session_start()
в верхней части каждой страницы (перед выводом чего-либо), который хочет использовать сеансы (только те, которые не устанавливают файлы cookie на каждой странице, что делает страницу немного медленнее) и затем сохранить текущее время внутри переменной сеанса, выполнив что-то вроде $_SESSION['time'] = date(DATE_RFC822);
. Подробнее о получении времени можно прочитать на странице date () .
Итак, код на page 1
выглядит примерно так:
<?php
session_start();
$_SESSION['ip'] = getRealIpAddr(); # no php function => See http://roshanbh.com.np/2007/12/getting-real-ip-address-in-php.html
$_SESSION['time'] = date(DATE_RFC822);
Затем на page 2
вы можете получить эту информацию, используя что-то вроде:
<?php
session_start();
echo $_SESSION['ip']; // retrieve IP
> I also worked endlessly on trying to
> store the username and passwords as
> two separate cookies
> each...suggestions?
Не храните их внутри куки (только используя set_cookie и не используя сеансы для хранения информации), но храните их внутри сессии для дополнительной безопасности. Но сеансы также уязвимы для фиксации сеанса , поэтому после сохранения чего-то критического в вашем сеансе вы должны восстановить идентификатор сеанса и никогда не выводить / показывать эту информацию в браузер / пользователь, чтобы предотвратить любую утечку.
> Finally, what do I need to do to have
> a location header (used to call
> form_data.php) with output buffering?
Как сказал Майкл, вы должны использовать функцию header и exit для завершения сценария после этого
<?php
header("Location: http://www.example.com/"); /* Redirect browser */
/* Make sure that code below does not get executed when we redirect. */
exit;
?>
P.S. Никогда не храните действительно конфиденциальную информацию, такую как номера кредитных карт (используйте PayPal или что-то), или что-либо еще в вашей собственной базе данных. Я также советую вам не хранить пароли внутри вашей базы данных, а использовать что-то вроде openId ( Google's ), например, для обработки вашей аутентификации для дополнительной безопасности.