Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
MySQL
#1

Парсер урлов для ГЕТ и переменных для ПОСТ на Ц - C++

15.03.2011, 03:33. Просмотров 680. Ответов 0
Метки нет (Все метки)

Пишу на Ц парсер для переменных окружения и стандартного ввода - аналог функций GET и POST на PHP.
Ощущение, что обработка строк на Ц почти аналогична ходьбе на руках - в принципе возможно, но крайне неудобно.
Или приём пищи хоккейными клюшками. Причём на вытянутых руках.
Предстваляю какая чехарда начинается при вызове библиотечной функции - поиск и подгрузка с диска нужного *.so, поиск точки входа и тп.
На Асме такого бардака стараться больно долго. Оптимизирующим компиляторам и не снилось какой красивый код руками можно написать.
В общем пишу прогу разбирающую урлу на переменные со значениями. Наверняка кто-то где-то такое уже делал, но я не нашел.
Если кто знает где искать - подскажите. Меньше мучаться буду.
А тут ещё совсем неестетсвенная проблема - написать конвертер - из байта делать байт.
Причём не какие-то там кодировки или шифрование. Всё тривиально. Нужно байт интерпретируемый (ой блин, компилируемый)
как целое бесзнаковое число считать символом - просто MOV. В терминах Ц (если он вдруг числа хранит как строки) функция ITOA.
Но такой во всяких инклюдах с либами на FreeBSD 5.1 на нашёл. Обратная функция есть, и вообще, и в коде.
И писать её приходится только потому, что когда ненадо Ц мешает обрабатывать данные, типо заботится о целостности.
А когда надо бы проверять хотябы границы массива, плюёт с высокой колокольни.
А ведь наверняка рядом с переменной есть структура, в которой хранится и тип и размер. Надо только поменять тип.
Да... на лирику потянуло. Спать надо больше. Итак заготовка:

// gcc -L/usr/local/lib/mysql -lmysqlclient -lz -lcrypt -lm -L/usr/lib -lssl -lcrypto -o get_vars get_vars.c

#include </usr/include/stdarg.h>
#include </usr/include/stdio.h>
#include </usr/include/stdlib.h>
#include </usr/include/string.h>

char Query[100], *String, *Mail_user, *Mail_old_password, *Mail_new_password, *Mail_new_password1, *ErrorMessage;
int Pay, Result; //mysql_real_query();
unsigned long i;
unsigned long String_Length;
char *Variable, *Value, *Write_Symbol, Symbol[1]; //Read_Symbol
unsigned int Character, Read_Symbol;

//unsigned int ITOA (unsigned int iNteger) {unsigned int cHaracter; unsigned int hUndreds, tEns, oNes;
char ITOA (unsigned int iNteger) { char cHaracter; unsigned int hUndreds, tEns, oNes;
hUndreds%=iNteger/100; iNteger=iNteger-hUndreds*100;
tEns%=iNteger/10; oNes=iNteger-tEns*10;
// cHaracter=hUndreds*100+tEns*10+oNes;
cHaracter=(hUndreds-'0')*100+(tEns-'0')*10+(oNes-'0');
return(cHaracter); }

int main (int argc, char **argv) { setvbuf (stdout, NULL, _IONBF, 0);
String = getenv ('CONTENT_LENGTH'); String = getenv ('SHLVL'); i=atoi(String);
//printf('String=%s
',String); printf('i=%d
',i);

//Read_Symbol=205; Character=ITOA(Read_Symbol); printf('rs=%d
',Character);
//Read_Symbol=205; Write_Symbol=ITOA(Read_Symbol); printf('rs=%d
',Write_Symbol);
Read_Symbol=205; Symbol[0]=ITOA(Read_Symbol); printf('rs=%d
',Symbol[0]);

String = getenv ('CLIENT_IP'); String = getenv ('QUERY_STRING'); String = getenv ('PATH');
String_Length=strlen(String);
for (i=0; i<String_Length; i++) { Variable=''; Value=''; Read_Symbol=String[i]; //putchar(Read_Symbol);
//Write_Symbol=Read_Symbol;
/*
if (Read_Symbol>32 && Read_Symbol<50) {printf('F*ck
');}
Character=atoi(&Read_Symbol);
Symbol[0]=Read_Symbol;
Write_Symbol='64';
Character=atoi(Write_Symbol);
Character=atoi('Z'); //Symbol[0]); //Write_Symbol=Character; //Write_Symbol='1';

if (Read_Symbol=='+') {Write_Symbol=' &qu
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.03.2011, 03:33
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Парсер урлов для ГЕТ и переменных для ПОСТ на Ц (C++):

Какие операции доступны для целочисленных переменных и недоступны для вещественных? - C++
Какие операции доступны для целочисленных переменных и недоступны для вещественных? 1.Арифметические операции (сложение, вычитание,...

Парсер для avito - C++
Всем привет! Хочу написать парсер для сайта avito. Суть следующая: хочу чтобы алгоритм заходил на сайт, делал сортировку на заданным...

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

Как можно бы создать метод для ввода размерности (т.е. для ввода private переменных n,m)? - C++
Как можно бы создать метод для ввода размерности (т.е. для ввода private переменных n,m)? ( что только я не пробывал: то переменные...

Парсер для математических выражений - C++
Здравствуйте уважаемые товарищи форумчане. Я пишу интерпретатор математических выражений и, собственно, для этого, сначала перевожу...

Методы гет и пост - PHP
Какой смысл передавать данные методом гет? Какие плюсы этого метода?

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.03.2011, 03:33
Привет! Вот еще темы с ответами:

Уроки Гет и Пост - Delphi
Здравствуйте. Дайте плз ссылки на полезный материал по пост и гет запросам. Добавлено через 43 секунды или книжки по POST GET

Работа с сайтом (гет\пост) - C#
Всем Привет! Начала изучать язык пару месяцев назад, столкнулась с проблемой, публикация объявлений на сайте. Авторизацию прохожу...

Метод ГЕТ и ПОСТ не принимает - PHP
Прошу вас помогите. Метод ГЕТ и ПОСТ не принимает! &lt;?php $say=1; if (isset($_GET)) {$id = $_GET;} if...

Не срабатывает пост или гет на ссылках картинок - PHP
Добрый день) у меня задача, вывести из базы данных картинки (в бд находятся их названия, сами они загружаются в папку img) и поставить на...


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru