Форум программистов, компьютерный форум, киберфорум
Delphi: Сети
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.98/43: Рейтинг темы: голосов - 43, средняя оценка - 4.98
0 / 0 / 0
Регистрация: 04.12.2014
Сообщений: 44

Ошибка "http/1.0 403 forbidden"

08.12.2014, 17:52. Показов 8636. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Работаю в Delphi XE2
На форме компоненты TIdHTTP, IdCookieManager, IdSSLIOHandlerSocketOpenSSL + 2 edit + button
Задача: пройти авторизацию на сайте twitter'a
Код обработки события onclick на кнопке:
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
procedure TForm1.Button1Click(Sender: TObject);
var
s1,s2,s3:string;
i:integer;
auch:TStringList;
begin
auch :=TStringList.Create;
s1:=idhttp1.Get('https://mobile.twitter.com/session');
i:=pos('<input name="authenticity_token" type="hidden" value="',s1);
s2:=copy(s1,i+54,20);
showmessage(s2);
auch.Add('authenticity_token = '+s2);
auch.Add('username = '+edit1.Text);
auch.Add('password = '+edit2.Text);
auch.Add('remember_me = 1');
auch.Add('wfa = 1');
auch.Add('commit = Войти');
s3:=idhttp1.Post('https://mobile.twitter.com/session',auch);
if pos('Яша',s3) <> 0 then showmessage('ok') else showmessage('no');
end;
Ошибка http/ 1.0 403 forbidden.

Возможно ошибка в том, что токен я перехватываю с одной страницы, а пост запрос делаю на такую же страницу, но токен уже другой :с Подскажите пожалуйста, как исправить.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
08.12.2014, 17:52
Ответы с готовыми решениями:

Ошибка "HTTP 403 Forbidden"
Здравствуйте, кто может объяснить из-за чего ошибка? Заранее спасибо!

HTTP/1.1 403 Forbidden при post-запросе
Delphi 10.2.2 в Request idhttp1 вроде указал всё, что в снифере передает. кроме куков, в снифере они в этом...

IdHTTP.GET выдаёт ошибку HTTP/1.1 403 Forbidden
Была написана утилита для парсинга сайта 1с В апреле сайт ддосили. На сайт добавили какую-то защиту и утилита перестала работать. Я...

12
71 / 66 / 35
Регистрация: 09.04.2009
Сообщений: 364
Записей в блоге: 1
09.12.2014, 10:38
Get запрос делай сюда

"https://mobile.twitter.com/session/new"

в post запросе нет этого значения

Цитата Сообщение от Deryagtev Посмотреть сообщение
auch.Add('commit = Войти');
где Request

Delphi
1
Content-Type    application/x-www-form-urlencoded
твиттер проверяет заголовок на старые браузеры по моему. То есть без Request нельзя
0
0 / 0 / 0
Регистрация: 04.12.2014
Сообщений: 44
09.12.2014, 13:28  [ТС]
Цитата Сообщение от Dryg Посмотреть сообщение
где Request
http://fotohost.by/image/8G1 - заполнил

Код изменил
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
procedure TForm1.Button1Click(Sender: TObject);
var
s1,s2,s3:string;
i:integer;
auch:TStringList;
begin
 
//try
  auch :=TStringList.Create;
s1:=idhttp1.Get('https://mobile.twitter.com/session/new');
i:=pos('<input name="authenticity_token" type="hidden" value="',s1);
s2:=copy(s1,i+54,20);
showmessage(s2);
auch.Add('authenticity_token = '+s2);
auch.Add('username = '+edit1.Text);
auch.Add('password = '+edit2.Text);
auch.Add('remember_me = 1');
auch.Add('wfa = 1');
//auch.Add('commit = Войти');
s3:=idhttp1.Post('https://mobile.twitter.com/session',auch);
if pos('Яша',s3) <> 0 then showmessage('ok') else showmessage('no');
//except
showmessage(s3);
 
//end;
 
 
end;
Если без try/except, то ошибка остаётся. Если с ними, то showmessage пустой.
0
71 / 66 / 35
Регистрация: 09.04.2009
Сообщений: 364
Записей в блоге: 1
09.12.2014, 16:33
CookieManager на форме лежит?

Delphi
1
2
idhttp1.AllowCookies:=True;
idhttp1.HandleRedirects:=True;
Request лучше всего писать в коде

get запрос

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
function Pars(T_, ForS, _T: string): string;
var
  a, b: integer;
begin
  Result := '';
  if (T_ = '') or (ForS = '') or (_T = '') then
    Exit;
  a := Pos(T_, ForS);
  if a = 0 then
    Exit
  else
    a := a + Length(T_);
  ForS := Copy(ForS, a, Length(ForS) - a + 1);
  b := Pos(_T, ForS);
  if b > 0 then
    Result := Copy(ForS, 1, b - 1);
end;
 
 
 
 
idhttp1.Request.Host:='mobile.twitter.com';
idhttp1.Request.Connection:='keep-alive';
idhttp1.Request.Accept:='text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 ';
idhttp1.Request.UserAgent:='Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0.2062.102 Safari/537.36';
//idhttp1.Request.AcceptEncoding:='gzip,deflate,sdch'; это лучше убрать из кода или компрессор ложи на форму
idhttp1.Request.AcceptLanguage:='ru-RU,ru;q=0.8,en-US;q=0.5,en;q=0.3';
idhttp1.GET('https://mobile.twitter.com/'); // первый get 
idhttp1.Request.Referer:='https://mobile.twitter.com/';
s1:=idhttp1.GET('https://mobile.twitter.com/session/new'); // 2 get для получения токена и куков
s2:=pars('<input name="authenticity_token" type="hidden" value="" value="', s1, '"/>' );
Post запрос

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
auch :=TStringList.Create;
try
idhttp1.Request.Host:='mobile.twitter.com';
idhttp1.Request.Connection:='keep-alive';
idhttp1.Request.Accept:='text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 ';
idhttp1.Request.UserAgent:='Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0.2062.102 Safari/537.36';
idhttp1.Request.Referer:='https://mobile.twitter.com/session/new';
FNSHTTP.Request.ContentType:='application/x-www-form-urlencoded';
idhttp1.Request.AcceptLanguage:='ru-RU,ru;q=0.8,en-US;q=0.5,en;q=0.3';
auch.Add('authenticity_token = '+s2);
auch.Add('username = '+edit1.Text);
auch.Add('password = '+edit2.Text);
auch.Add('remember_me = 1');
auch.Add('wfa = 1');
//auch.Add('commit = Войти');
s3:=idhttp1.Post('https://mobile.twitter.com/session',auch);
if pos('Яша',s3) <> 0 then showmessage('ok') else showmessage('no');
except
   on E: EIdHTTPProtocolException do begin
   showmessage(E.ErrorMessage);
end;
1
0 / 0 / 0
Регистрация: 04.12.2014
Сообщений: 44
09.12.2014, 18:52  [ТС]
Цитата Сообщение от Dryg Посмотреть сообщение
CookieManager на форме лежит?
Delphi
1
2
idhttp1.AllowCookies:=True;
idhttp1.HandleRedirects:=True;
Да.

Вот как выглядит код после изменений. Пожалуй скину весь, может где-то в другом месте ошибка.

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
unit Unit1;
 
interface
 
uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, IdCookieManager,
  IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient, IdHTTP,
  IdIOHandler, IdIOHandlerSocket, IdIOHandlerStack, IdSSL, IdSSLOpenSSL;
 
type
  TForm1 = class(TForm)
    Edit1: TEdit;
    Edit2: TEdit;
    Button1: TButton;
    IdCookieManager1: TIdCookieManager;
    IdSSLIOHandlerSocketOpenSSL1: TIdSSLIOHandlerSocketOpenSSL;
    IdHTTP1: TIdHTTP;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
 
var
  Form1: TForm1;
 
implementation
 
{$R *.dfm}
 
 
 
procedure TForm1.Button1Click(Sender: TObject);
var
s1,s2,s3:string;
i:integer;
auch:TStringList;
begin
idhttp1.AllowCookies:=True;
idhttp1.HandleRedirects:=True;
idhttp1.Request.Host:='mobile.twitter.com';
idhttp1.Request.Connection:='keep-alive';
idhttp1.Request.Accept:='text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 ';
idhttp1.Request.UserAgent:='Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0.2062.102 Safari/537.36';
idhttp1.Request.AcceptLanguage:='ru-RU,ru;q=0.8,en-US;q=0.5,en;q=0.3';
idhttp1.Request.Referer:='https://mobile.twitter.com/';
try
  auch :=TStringList.Create;
s1:=idhttp1.Get('https://mobile.twitter.com/session/new');
i:=pos('<input name="authenticity_token" type="hidden" value="',s1);
s2:=copy(s1,i+54,20);
showmessage(s2);
auch.Add('authenticity_token = '+s2);
auch.Add('username = '+edit1.Text);
auch.Add('password = '+edit2.Text);
auch.Add('remember_me = 1');
auch.Add('wfa = 1');
//auch.Add('commit = Войти');
s3:=idhttp1.Post('https://mobile.twitter.com/session',auch);
if pos('Яша',s3) <> 0 then showmessage('ok') else showmessage('no');
except
on E: EIdHTTPProtocolException do begin
   showmessage(E.ErrorMessage);
   end;
end;
Так же попробовал просто скопировать твой код.
Цитата Сообщение от Dryg Посмотреть сообщение
FNSHTTP.Request.ContentType:='applicatio n/x-www-form-urlencoded';
Что за FNSHTTP ? :c Его исправил на idhttp1, может нужно было что-то кинуть на форму?
Вот ошибка. С твоим кодом такая же
http://fotohost.by/image/8fY
0
71 / 66 / 35
Регистрация: 09.04.2009
Сообщений: 364
Записей в блоге: 1
10.12.2014, 01:50
Описался!

1. перед и после равно не должно быть пробелов

было
Delphi
1
2
3
4
5
auch.Add('authenticity_token = '+s2);
auch.Add('username = '+edit1.Text);
auch.Add('password = '+edit2.Text);
auch.Add('remember_me = 1');
auch.Add('wfa = 1');
Стало

Delphi
1
2
3
4
5
auch.Add('authenticity_token='+s2);
auch.Add('username='+edit1.Text);
auch.Add('password='+edit2.Text);
auch.Add('remember_me=1');
auch.Add('wfa = 1');
2. все работает! Сделал все по своему

3. Обязательно в HTTPOptions должны стоять галочки на этих параметрах

[hoForceEncodeParams,hoTreat302Like303]

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
unit mein;
 
interface
 
uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, IdZLibCompressorBase,
  IdCompressorZLib, IdIOHandler, IdIOHandlerSocket, IdIOHandlerStack, IdSSL,
  IdSSLOpenSSL, IdCookieManager, IdBaseComponent, IdComponent, IdTCPConnection,
  IdTCPClient, IdHTTP;
 
type
  TForm1 = class(TForm)
    Edit1: TEdit;
    Edit2: TEdit;
    Button1: TButton;
    IdHTTP1: TIdHTTP;
    IdCookieManager1: TIdCookieManager;
    IdSSLIOHandlerSocketOpenSSL1: TIdSSLIOHandlerSocketOpenSSL;
    IdCompressorZLib1: TIdCompressorZLib;
    Memo1: TMemo;
    procedure FormCreate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure IdHTTP1Redirect(Sender: TObject; var dest: string;
      var NumRedirect: Integer; var Handled: Boolean; var VMethod: string);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
 
var
  Form1: TForm1;
  HTML, token, s3 : string;
  auch:TStringList;
 
implementation
 
{$R *.dfm}
 
function Pars(T_, ForS, _T: string): string;
var
  a, b: integer;
begin
  Result := '';
  if (T_ = '') or (ForS = '') or (_T = '') then
    Exit;
  a := Pos(T_, ForS);
  if a = 0 then
    Exit
  else
    a := a + Length(T_);
  ForS := Copy(ForS, a, Length(ForS) - a + 1);
  b := Pos(_T, ForS);
  if b > 0 then
    Result := Copy(ForS, 1, b - 1);
end;
 
 
 
procedure TForm1.FormCreate(Sender: TObject);
begin
idhttp1.Request.Host:='mobile.twitter.com';
idhttp1.Request.Connection:='keep-alive';
idhttp1.Request.Accept:='text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 ';
idhttp1.Request.UserAgent:='Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0.2062.102 Safari/537.36';
idhttp1.Request.AcceptEncoding:='gzip,deflate,sdch'; //это лучше убрать из кода или компрессор ложи на форму
idhttp1.Request.AcceptLanguage:='ru-RU,ru;q=0.8,en-US;q=0.5,en;q=0.3';
idhttp1.GET('https://mobile.twitter.com/'); // первый get
idhttp1.Request.Referer:='https://mobile.twitter.com/';
HTML:=idhttp1.GET('https://mobile.twitter.com/session/new'); // 2 get для получения токена и куков
token:=pars('<input name="authenticity_token" type="hidden" value="', HTML, '"/>' );
//Memo1.Text:=token;
end;
 
procedure TForm1.IdHTTP1Redirect(Sender: TObject; var dest: string;
  var NumRedirect: Integer; var Handled: Boolean; var VMethod: string);
begin
VMethod:='GET';
end;
 
procedure TForm1.Button1Click(Sender: TObject);
begin
auch :=TStringList.Create;
try
idhttp1.Request.Host:='mobile.twitter.com';
idhttp1.Request.Connection:='keep-alive';
idhttp1.Request.Accept:='text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 ';
idhttp1.Request.UserAgent:='Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0.2062.102 Safari/537.36';
idhttp1.Request.Referer:='https://mobile.twitter.com/session/new';
idhttp1.Request.ContentType:='application/x-www-form-urlencoded';
idhttp1.Request.AcceptLanguage:='ru-RU,ru;q=0.8,en-US;q=0.5,en;q=0.3';
auch.Add('authenticity_token='+token);
auch.Add('remember_me=1');
auch.Add('wfa=1');
auch.Add('username='+edit1.Text);
auch.Add('password='+edit2.Text);
//auch.Add('commit = Войти');
s3:=idhttp1.Post('https://mobile.twitter.com/session',auch);
if pos('Настройки',s3) <> 0 then showmessage('ok') else showmessage('no');
except
   on E: EIdHTTPProtocolException do begin
  memo1.Text:= E.ErrorMessage;
end;
 
end;
end;
 
 
end.
так же прикладываю 2 dll SSL (новые) или качай от сюда
Вложения
Тип файла: zip ssldll.zip (874.4 Кб, 33 просмотров)
0
0 / 0 / 0
Регистрация: 04.12.2014
Сообщений: 44
10.12.2014, 02:37  [ТС]
Цитата Сообщение от Dryg Посмотреть сообщение
hoTreat302Like303
нету такого свойства.

Цитата Сообщение от Dryg Посмотреть сообщение
Delphi
1
IdCompressorZLib1: TIdCompressorZLib;
ругается на этой строке. нашёл в интернете, что xe2 его не поддерживает.

Попробовал запустить ваш код, но без строки 20, в memo ‹записало нечитаемые символы, но я так понял это - ошибка. В какой среде вы пишите? Можете скинуть всю папку с dpr и pas файлами?

dll приложенные вами закинул в папку с dpr и в папку с exe

Добавлено через 15 минут
Скопировал ваш код отдельно по процедурам. Не было абсолютно никакой реакции. решил убрать try except - получил ошибку http/ 1.0 400 bad request
0
71 / 66 / 35
Регистрация: 09.04.2009
Сообщений: 364
Записей в блоге: 1
10.12.2014, 09:02
Цитата Сообщение от Deryagtev Посмотреть сообщение
xe2 его не поддерживает
Обновите indy (писал на XE 4)

Цитата Сообщение от Deryagtev Посмотреть сообщение
CompressorZLib
надо было компонент IdCompressorZLib кинуть на форму и подключить его в idhttp1

Цитата Сообщение от Deryagtev Посмотреть сообщение
записало нечитаемые символы
если не хочешь использовать IdCompressorZLib то надо было удалить струки

Delphi
1
IdCompressorZLib1: TIdCompressorZLib;
и

Delphi
1
idhttp1.Request.AcceptEncoding:='gzip,deflate,sdch';
0
0 / 0 / 0
Регистрация: 04.12.2014
Сообщений: 44
10.12.2014, 11:45  [ТС]
Цитата Сообщение от Dryg Посмотреть сообщение
если не хочешь использовать IdCompressorZLib то надо было удалить струки

Delphi
1
IdCompressorZLib1: TIdCompressorZLib;
Delphi
1
idhttp1.Request.AcceptEncoding:='gzip,deflate,sdch';
Убрал, сделал.

403 Forbidden: The server understood the request, but is refusing to fulfill it.
0
294 / 265 / 48
Регистрация: 09.04.2013
Сообщений: 1,038
10.12.2014, 14:47
Вы пробовали потренироваться на другом сайте с SSL ?
Еще возможно токен в форме может быть связан с кукисами, которых может не быть на момент отправки запроса.
0
0 / 0 / 0
Регистрация: 04.12.2014
Сообщений: 44
11.12.2014, 03:39  [ТС]
Цитата Сообщение от wingblack Посмотреть сообщение
Вы пробовали потренироваться на другом сайте с SSL ?
Буквально за 5 минут написал авторизацию на ongab точка ру
Подкиньте сайты с SSL пожалуйста)
0
294 / 265 / 48
Регистрация: 09.04.2013
Сообщений: 1,038
12.12.2014, 10:03
Попробуйте взять Fiddler (или любую аналогичную программу прокси для дебага) и посмотреть чем ваши запросы отличаются от запросов браузера. Правда c SSL такое проделать немного сложнее.
0
0 / 0 / 0
Регистрация: 04.12.2014
Сообщений: 44
12.12.2014, 18:37  [ТС]
Цитата Сообщение от wingblack Посмотреть сообщение
Попробуйте взять Fiddler (или любую аналогичную программу прокси для дебага) и посмотреть чем ваши запросы отличаются от запросов браузера. Правда c SSL такое проделать немного сложнее.
как посмотреть мои запросы? С браузером вроде всё понятно, просто включил и вошёл в твиттер, с программой так не получилось.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
12.12.2014, 18:37
Помогаю со студенческими работами здесь

Авторизация DLE и ошибка 403/Forbidden
Помогите, пожалуйста. Делал чекер по одному уроку из ютюба, но в нем был пример авторизации на турбобите, где было 3 параметра: логин,...

Авторизация на сайте и ошибка 403 Forbidden
Всем привет. При авторизации на сайте www.enhanceviews.com происходит ошибка &quot;HTTP/1.1 403 Forbidden&quot;. Перехватывал данные HTTP...

403 forbidden как избавиться ?
Как избавиться от ошибки 403 ? Пишу парсер. Делаю get запрос в потоке и после 3-4 запроса выскакивает 403 forbidden. Раньше было у меня...

Ошибка HTTP 403 Forbidden
У меня такая проблема: захожу на сайт с обозревателя Explorer мне выдают ошибку-HTTP 403 Forbidden. Похоже кто-то заблокировал мне...

Ошибка HTTP 403.14 - Forbidden
Ошибка HTTP 403.14 - Forbidden Веб-сервер настроен таким образом, чтобы не формировать списка содержимого каталога. Пытаюсь поставить...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru