Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Вёрстка веб-сайтов > Cookies


Автор: Borland_Delphi_6 24.4.2003, 14:35
Возникла проблемка: нужно записать в куки инфу, а потом считать, когда юзер опять на сайт зайдет.
Писать нужно из переменной ява скрипт, а зАписывать в другую переменную.

Автор: dr.ZmeY 24.4.2003, 17:35
Ну, читаешь сеткуки и пишешь в переменную, какую хочешь smile.gif
Код

<script language="JavaScript">
var caution = false
function setCookie(name, value, expires, path, domain, secure) {
var curCookie = name + "=" + escape(value) +
 ((expires) ? "; expires=" + expires.toGMTString() : "") +
 ((path) ? "; path=" + path : "") +
 ((domain) ? "; domain=" + domain : "") +
 ((secure) ? "; secure" : "")
if (!caution || (name + "=" + escape(value)).length <= 4000)
 document.cookie = curCookie
else
 if (confirm("Cookie exceeds 4KB and will be cut!"))
  document.cookie = curCookie
}
function getCookie(name) {
var prefix = name + "="
var cookieStartIndex = document.cookie.indexOf(prefix)
if (cookieStartIndex == -1)
 return null
var cookieEndIndex = document.cookie.indexOf(";", cookieStartIndex + prefix.length)
if (cookieEndIndex == -1)
 cookieEndIndex = document.cookie.length
return unescape(document.cookie.substring(cookieStartIndex + prefix.length, cookieEndIndex))
}
function deleteCookie(name, path, domain) {
if (getCookie(name)) {
 document.cookie = name + "=" +
 ((path) ? "; path=" + path : "") +
 ((domain) ? "; domain=" + domain : "") +
 "; expires=Thu, 01-Jan-70 00:00:01 GMT"
}
}
function fixDate(date) {
var base = new Date(0)
var skew = base.getTime()
if (skew > 0)
 date.setTime(date.getTime() - skew)
}

var now = new Date()
fixDate(now)
now.setTime(now.getTime() + 365 * 24 * 60 * 60 * 1000)
var visits = getCookie("counter")
if (!visits)
visits = 1
else
visits = parseInt(visits) + 1
setCookie("counter", visits, now)
document.write("Я здесь был :) " + visits + " раз(а).")

</script>

Вот...

Автор: Borland_Delphi_6 25.4.2003, 12:47
Хе-хе. Хороший код написал, обязательно применю smile.gif Но мне нужно следующее: при заходе на сайт выдается запрос JavaScript, где юзер пишет свое имя. На страничке пишется: "Привет твое_имя!". Это должно прописаться в куки, чтобы в следующий раз сайт "узнал" чела.

Автор: Borland_Delphi_6 25.4.2003, 13:40
Да, ксати, еще нужно ссылку для удаления куков, установленных страничкой.

Автор: dr.ZmeY 25.4.2003, 15:27
На РНР это выглядело бы следующим образом:
Код

<?php
if (isset($f_name)):
setcookie ("f_name", $f_name, time() + 365 * 86400);
if (isset ($date)):
    $old_date=$date;
   else:
    $old_date=date("l F j, Y");
   endif;
   $date=date("l F j, Y");
   setcookie("date", $date, time()+365*86400);
endif;
?>
<html>

<head>
 <title>Скрипт работы с cookie</title>
</head>

<body>

<?php
if (isset($f_name)):
?>
<h1>Привет, <?php print $f_name ?>!</h1><br>
<h3>Последний раз ты тут был <?php print $old_date ?>.</h3>
<?php
else:
?>
<form action="cookie.php" method="post">
Введите своё имя: <input name="f_name" type="text" value=""><br>
<input type="submit" value="Submit">
</form>
<?php
endif;
?>
</body>

</html>

На Яве - похоже, но точно не знаю, надо попробовать сделать... smile.gif
Для удаления кук, вызывай функцию function deleteCookie(...), в ней возвращаешь дату 1 января 1970 года, именно с этой даты устанавливается счётчик времени куки, когда он равен исходной дате, куки стираются, почему именно эта дата я не знаю confused.gif

Автор: Borland_Delphi_6 25.4.2003, 15:31
Может, я сайт на php забацаю, но это вряд ли, я php пока не знаю.

Автор: dr.ZmeY 25.4.2003, 16:52
Цитата
Может, я сайт на php забацаю, но это вряд ли, я php пока не знаю.

Уверяю тебя, на РНР получится лучше и быстрее smile.gif А выучить этот язык ты за месяц сможешь smile.gif

Автор: Borland_Delphi_6 28.4.2003, 14:28
Дык, этож надо за книгой ехать, учить то, се... Мне на данный момент ничего сверх сложного и не надо.
А вообще, какие есть приимущества PHP перед HTML, кроме того, что придется на хост потратиться smile.gif

Автор: IZ@TOP 28.4.2003, 16:29
Цитата
Может, я сайт на php забацаю, но это вряд ли, я php пока не знаю

А для чего же есть раздел РНР ? Спрашивай ! Обязательно поможем biggrin.gif

Автор: IZ@TOP 28.4.2003, 16:31
Цитата
Дык, этож надо за книгой ехать, учить то, се... Мне на данный момент ничего сверх сложного и не надо.
А вообще, какие есть приимущества PHP перед HTML, кроме того, что придется на хост потратиться 

А кто тебе сказал что на хост надо деньги тратить ? Есть вполне хорошие бесплатные РНР хостинги !

А РНР дает уйму возможностей по сравнению с простым хтмл !

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)