Пример установки cookie пользователю
Категория: PHP
2011-08-28 21:59:13
Первый и второй аргумент функции, name и value передается непосредсвенно функией SetCookie. Третий аргумент может иметь одно из следующий значений:
- аргумент не указан (или ноль), куки будут установленны для текущей сессии, и будут не действительны после закрытия браузера;
- положительное число. Количество дней;
- аргумент начинается с буквы 'f' (forever), куки будут установленны на всегда;
- аргумент начинается с буквы 'r' (remove), установленный куки будут удалены.
code: #php
- <?php
- function put_cookie($name, $value, $days=0)
- {
- $cookie_host = preg_replace('|^www\.(.*)$|', '.\\1', $_SERVER['HTTP_HOST']);
- if (substr(strval($days), 0, 1) == 'f')
- $exp = 2147483640;
- else if (substr(strval($days), 0, 1) == 'r')
- {
- $exp = 1; $value = '';
- }
- else if ($days != 0)
- $exp = time() + intval($days)*86400;
- else
- $exp = 0;
- setcookie($name, $value, $exp, '/', $cookie_host);
- }
- ?>
code: #php
- <?php
- error_reporting(E_ALL); // high level of error reporting
- // copy-paste function ae_put_cookie here from above
- if (strtolower($_SERVER['REQUEST_METHOD']) == 'post')
- {
- if (isset($_POST['notepad']))
- {
- $days = isset($_POST['days'])?$_POST['days']:'';
- put_cookie('notepad', $_POST['notepad'], $days);
- header("Location: http://{$_SERVER['HTTP_HOST']}{$_SERVER['PHP_SELF']}");
- }
- }
- ?>
- <html><head><title>CookieNotepad</title></head>
- <body>
- <?php
- if (!isset($_COOKIE['notepad']))
- echo "<b>Cookie for notepad is not set</b><br>";
- ?>
- <form action="<?=$_SERVER['PHP_SELF']?>" method="post">
- Text:<br>
- <textarea rows="10" cols="60" name="notepad">
- <?php
- if (isset($_COOKIE['notepad']))
- {
- // escape HTML tags and entities
- $s = str_replace('&', '&', $_COOKIE['notepad']);
- $s = str_replace('<', '<', $s);
- $s = str_replace('>', '>', $s);
- echo $s;
- }
- ?></textarea>
- <br>
- Third argument for put_cookie:<br>
- <input type="text" name="days" size="10"><br>
- (empty - session cookie, 'f' - forever, 'r' - remove, integer > 0 - number of days in future)
- <br><br>
- <input type="submit" value="create/save">
- </form>
- </body>
- </html>
Поделиться: