set_cookie_for_url(url, name, cookie, expires="", domain="", path="", httpOnly=false, secure=false, session=false, sameSite="", priority=""); - задать (добавить) куки для заданного сайта.
Функция на вход принимает параметры:
- url – адрес сайта.
- name – имя кука или "" , если следующий параметр - несколько куков.
- cookie – строка с куком или куками.
- expires – максимальное время жизни cookie в формате метки даты-времени HTTP. Если не определён, cookie будет иметь время жизни сессионного cookie. Сессия окончена, когда клиент отключается, что приводит к удалению сессионных cookie в этот момент. Однако, многие браузеры имеют возможность, называемую восстановление сессии, которая сохраняет все ваши вкладки и затем возвращает их, когда вы в следующий раз запускаете браузер. Cookies будут также присутствовать, словно вы никогда не закрывали браузер. Когда устанавливается срок действия, время и дата устанавливаются не относительно сервера, а относительно клиента, на котором установлено cookie.
- domain – хост, на который будут отправляться cookie. По умолчанию - хост текущего URL документа, не включая поддомены. В текущей спецификация начальная точка в имени хоста игнорируется (.example.com). Cookie будут отправляться также на поддомены указанного хоста. Указывать несколько хостов недопустимо.
- path – путь, который должен существовать в запрошенном URL, иначе браузер не отправит заголовок Cookie.
Пример: / - cookie будет отправляться со всеми запросами
Пример: /docs/ - cookie будет отправляться с запросами к директории docs и её поддиректориям.- httpOnly – запрещает JavaScript доступ к cookie.
- secure – cookie будет отправлен на сервер только с запросами c использованием SSL и протокола HTTPS. Cookie не будет дополнительно шифроваться, поэтому в нем не стоит хранить конфиденциальную информацию.
- session – сессионные cookie(true), постоянные cookie(false).
- sameSite – может принимать один из трех вариантов значения:
- Strict: браузер отправляет cookie только для запросов к тому же сайту (то есть запросов, исходящих с того же сайта, который установил cookie). Если запрос исходит от URL-адреса, отличного от текущего, файлы cookie с атрибутом SameSite = Strict не отправляются.
- Lax: файл cookie удерживается в межсайтовых подзапросах, таких как вызовы для загрузки изображений или фреймов, но отправляется, когда пользователь переходит по URL-адресу с внешнего сайта, например, переходя по ссылке.
- None: браузер отправляет cookie как с межсайтовыми, так и с межсайтовыми запросами.
Современные браузеры используют SameSite=Lax. Если необходима работа SameSite=None cookie должна быть установлена с атрибутом Secure.- priority – приоритет, может принимать один из трех вариантов значений:
- -1 – низкий приоритет
- 0 – средний приоритет
- 1 – высокий приоритет
После отработки функция возвращает результат своей работы в робот:
- true – успешно выполнили
- false – выполнить не удалось
Пример использования set_cookie_for_url (PHP):
<?php $xhe_host = "127.0.0.1:7013"; // подключим объект для управления эмулятором, если еще не подключен if (!isset($path)) $path="../../../Templates/init.php"; require($path); // начало echo "<hr><font color=blue>browser->".basename (__FILE__)."</font><hr>"; // 1 echo "1. Перейдем на гугл : "; echo $browser->navigate("http://www.google.com/","")."<br><br>"; // 2 echo "2. Получим текущие куки гугла :"; echo $browser->get_cookie_for_url("http://www.google.com/","")."<br><br>"; // 3 echo "3. Очистим текущие куки гугла. "; $browser->clear_cookies("google.com",true,true); // 4 echo "<br><br>4. Получим текущие куки гугла - пустые : "; echo $browser->get_cookie_for_url("http://www.google.com/","")."<br><br>"; // 5 echo "5. Зададим (Добавим) куки к гуглу : "; $cookie ="__utma=123272373.426502259.12244752769.12244752769.12424752775.2:__utmb=173272373.4.10.1244752775; __utmz=173272373.1244752783.2.3.utmccn=(organic)|utmcsr=google|utmctr=adsense.google.com|utmcmd=organic; __utmc=173272373; __utmv=173272373.ExistingPublisher; PREF=ID=1ab1131528cb1f1a:TM=1244752750:LM=1244752750:S=z8a6mTRmDHVImKOg; TZ=-180; GMAIL_RTT=62; SID=DQAAAG4AAACVKgLK1udE8zJUkHfj7lB1exGg0rTbtWPXOIWORMueVZoT77XyJNTUltfGPonIuKt7PTVUs5qF-UvkhHR5cXcsIynN04AL3f7YMObLoOP5wkyGK9n7zHlw89Px0s8foYkobyH8Z9wzAZ2-FpZ7s9I3"; echo $browser->set_cookie_for_url("http://www.google.com/","",$cookie)."<br><br>"; // 6 echo "6. Получим текущие куки гугла (2 раза): <br><br>"; echo $browser->get_cookie_for_url("http://www.google.com/","")."<br><br>"; echo $browser->get_cookie()."<br><br>"; // конец echo "<hr><br>"; // Quit $app->quit(); ?>
Пример использования set_cookie_for_url (C#):
#region using using System; using System.Diagnostics; using System.Collections.Generic; using System.Linq; using System.IO; using System.Text; using System.Threading; using XHE; using XHE.XHE_DOM; using XHE.XHE_System; using XHE.XHE_Window; using XHE.XHE_Web; #endregion class Program:XHEScript { static void Main(string[] args) { // init XHE server="127.0.0.1:7010"; InitXHE(); // начало echo("<hr><font color=blue>browser.set_cookie_for_url</font><hr>"); // 1 шаг echo("1. Перейдем на гугл : "); echo(browser.navigate("http://www.google.com/")+"<br>"); // 2 шаг echo("2. Получим текущие куки гугла : "); echo(browser.get_cookie_for_url("http://www.google.com/","")+"<br>"); // 3 шаг echo("3. Очистим текущие куки гугла. "); echo(browser.clear_cookies("google.com",true,true)+"<br>"); // 4 шаг echo("4. Получим текущие куки гугла - пустые : "); echo(browser.get_cookie_for_url("http://www.google.com/","")+"<br>"); // 5 шаг echo("5. Зададим (Добавим) куки к гуглу : "); string cookie ="__utma=123272373.426502259.12244752769.12244752769.12424752775.2:__utmb=173272373.4.10.1244752775; __utmz=173272373.1244752783.2.3.utmccn=(organic)|utmcsr=google|utmctr=adsense.google.com|utmcmd=organic; __utmc=173272373; __utmv=173272373.ExistingPublisher; PREF=ID=1ab1131528cb1f1a:TM=1244752750:LM=1244752750:S=z8a6mTRmDHVImKOg; TZ=-180; GMAIL_RTT=62; SID=DQAAAG4AAACVKgLK1udE8zJUkHfj7lB1exGg0rTbtWPXOIWORMueVZoT77XyJNTUltfGPonIuKt7PTVUs5qF-UvkhHR5cXcsIynN04AL3f7YMObLoOP5wkyGK9n7zHlw89Px0s8foYkobyH8Z9wzAZ2-FpZ7s9I3"; echo(browser.set_cookie_for_url("http://www.google.com/","",cookie)+"<br>"); // 6 шаг echo("6. Получим текущие куки гугла : "); echo(browser.get_cookie_for_url("http://www.google.com/","")+"<br>"); // конец echo("<hr><br>"); app.quit(); } }
Пример использования set_cookie_for_url (Python):
# Additional paths import sys sys.path.insert(0, '../../../Templates PY/') xhe_host = "127.0.0.1:7013" from xweb_human_emulator import * # начало echo("<hr><font color=blue>browser.xxxxxxxxx</font><hr>") # 1 echo("1. Перейдем на гугл : ") echo(browser.navigate("http://www.google.com/",""),"<br><br>") # 2 echo("2. Получим текущие куки гугла :") echo(browser.get_cookie_for_url("http://www.google.com/",""),"<br><br>") # 3 echo("3. Очистим текущие куки гугла. ") browser.clear_cookies("google.com",true,true) # 4 echo("<br><br>4. Получим текущие куки гугла - пустые : ") echo(browser.get_cookie_for_url("http://www.google.com/",""),"<br><br>") # 5 echo("5. Зададим (Добавим) куки к гуглу : ") cookie ="__utma=123272373.426502259.12244752769.12244752769.12424752775.2:__utmb=173272373.4.10.1244752775) __utmz=173272373.1244752783.2.3.utmccn=(organic)|utmcsr=google|utmctr=adsense.google.com|utmcmd=organic) __utmc=173272373) __utmv=173272373.ExistingPublisher) PREF=ID=1ab1131528cb1f1a:TM=1244752750:LM=1244752750:S=z8a6mTRmDHVImKOg) TZ=-180) GMAIL_RTT=62) SID=DQAAAG4AAACVKgLK1udE8zJUkHfj7lB1exGg0rTbtWPXOIWORMueVZoT77XyJNTUltfGPonIuKt7PTVUs5qF-UvkhHR5cXcsIynN04AL3f7YMObLoOP5wkyGK9n7zHlw89Px0s8foYkobyH8Z9wzAZ2-FpZ7s9I3" echo(browser.set_cookie_for_url("http://www.google.com/","",cookie),"<br><br>") # 6 echo("6. Получим текущие куки гугла : ") echo(browser.get_cookie_for_url("http://www.google.com/",""),"<br><br>") echo(browser.get_cookie(),"<br><br>") # конец echo("<hr><br>") # Quit app.quit()
Пример использования set_cookie_for_url (JS):
// подключим объект для управления эмулятором, если еще не подключен xhe_host="127.0.0.1:7010"; echo=require("../../../Templates JS/init.js"); // начало echo("<hr><font color=blue>browser.set_cookie_for_url</font><hr>"); // 1 шаг echo("1. Перейдем на гугл : "); echo(browser.navigate("http://www.google.com/","")+"<br><br>"); // 2 шаг echo("2. Получим текущие куки гугла :"); echo(browser.get_cookie_for_url("http://www.google.com/","")+"<br><br>"); // 3 шаг echo("3. Очистим текущие куки гугла. "); echo(browser.clear_cookies("google.com",true,true)+"\n\n"); // 4 шаг echo("4. Получим текущие куки гугла - пустые : "); echo(browser.get_cookie_for_url("http://www.google.com/","")+"<br><br>"); // 5 шаг echo("5. Зададим (Добавим) куки к гуглу : "); cookie ="__utma=123272373.426502259.12244752769.12244752769.12424752775.2:__utmb=173272373.4.10.1244752775; __utmz=173272373.1244752783.2.3.utmccn=(organic)|utmcsr=google|utmctr=adsense.google.com|utmcmd=organic; __utmc=173272373; __utmv=173272373.ExistingPublisher; PREF=ID=1ab1131528cb1f1a:TM=1244752750:LM=1244752750:S=z8a6mTRmDHVImKOg; TZ=-180; GMAIL_RTT=62; SID=DQAAAG4AAACVKgLK1udE8zJUkHfj7lB1exGg0rTbtWPXOIWORMueVZoT77XyJNTUltfGPonIuKt7PTVUs5qF-UvkhHR5cXcsIynN04AL3f7YMObLoOP5wkyGK9n7zHlw89Px0s8foYkobyH8Z9wzAZ2-FpZ7s9I3"; echo(browser.set_cookie_for_url("http://www.google.com/","",cookie)+"<br><br>"); // 6 шаг echo("6. Получим текущие куки гугла : "); echo(browser.get_cookie_for_url("http://www.google.com/","")+"<br><br>"); echo(browser.get_cookie()+"<br><br>"); // конец echo("<hr><br>"); // Quit app.quit();