Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > обработчик формы html


Автор: vantyz 14.8.2012, 17:36
Привет,ребят не поможете сделать такую штуку,вообщем у нас есть страничка в браузере и в ней есть поисковая форма примерно такая

Код

<html>
 
    <head>
    <title></title>
    </head>
    
     <body>
 
<form method="get" action="/search" target="_blank">
<input name="q" id="form-query" value="" placeholder="поиск по сайту"> <input type=submit value="искать"></form>
 
    </body>
</html>


также есть структура папок.Примерно такая:бабай-это основная папка,а в ней много разных папок,а уже в этих разных папках находятся файлы .txt.Ребят помогите написать обработчика формы html на c++, чтобы он искал эти файлы (txt) тока в папке бабай,и выводил содержимое файла txt.Помогите пожайлуста.Я просто не знаю может ли так работать html в связке с c++, или все что я сказал вообще на другом языке делается,подскажите плиз.

Я тут что то нашел может поможет ,а может нет.



Код


// выводит на экран содержимое файла
#include "stdio.h"
#include "conio.h"
 
#define FNAME "numbers.txt\0" // имя файла
 
void main()
{
     char fname[20] = FNAME;
     FILE *f;     // текстовый файл
     char st[80];  // строка из файла
 
     printf("\nСодержимое файла %s\n", fname);
     puts("---------------------------------");
 
     // Открыть файл в режиме чтения (r) текста* (t)
     if ((f = fopen(fname, "rt")) == NULL)
     {
        printf("ошибка открытия файла для чтения");
        getch();
        return;
     }
 
     while (!feof(*))
     {
        fscanf(f,"%s", &st);
        printf("%s\n", st);
     }
     fclose(f);     // закрыть файл
     
     puts("---------------------------------");
     puts("\n для завершения нажмите<Enter>");
     getch();
}
 
 




И еще одну.

Код

#include <windows.h>
#include <commctrl.h>
 
#pragma comment(lib, "comctl32.lib")
 
enum {ID_BUTTON};
 
HWND hWndListView;
 
LRESULT CALLBACK WindowFunc(HWND hWnd,UINT message,
            WPARAM wParam,LPARAM lParam)
{
    switch (message)
    {   
        case WM_CREATE:
            CreateWindow(
                TEXT("STATIC"),
                TEXT("Search by any or all of the criterial below."),
                WS_CHILD | WS_VISIBLE,
                10,
                10,
                270,
                20,
                hWnd,
                NULL,
                NULL,
                NULL);
            CreateWindow(
                TEXT("STATIC"),
                TEXT("All or part of the file name:"),
                WS_CHILD | WS_VISIBLE,
                10,
                45,
                250,
                20,
                hWnd,
                NULL,
                NULL,
                NULL);
            CreateWindow(
                TEXT("EDIT"),
                NULL,
                WS_CHILD | WS_VISIBLE | ES_LEFT | ES_MULTILINE ,
                10,
                65,
                270,
                20,
                hWnd,
                NULL,
                NULL,
                NULL);
            CreateWindow(
                TEXT("STATIC"),
                TEXT("A word or phase in the file:"),
                WS_CHILD | WS_VISIBLE,
                10,
                85,
                250,
                20,
                hWnd,
                NULL,
                NULL,
                NULL);
            CreateWindow(
                TEXT("EDIT"),
                NULL,
                WS_CHILD | WS_VISIBLE | ES_LEFT | ES_MULTILINE ,
                10,
                105,
                270,
                20,
                hWnd,
                NULL,
                NULL,
                NULL);
            CreateWindow(
                TEXT("STATIC"),
                TEXT("Look in:"),
                WS_CHILD | WS_VISIBLE,
                10,
                125,
                100,
                20,
                hWnd,
                NULL,
                NULL,
                NULL);
            CreateWindow(
                TEXT("EDIT"),
                NULL,
                WS_CHILD | WS_VISIBLE | ES_LEFT | ES_MULTILINE ,
                10,
                145,
                270,
                20,
                hWnd,
                NULL,
                NULL,
                NULL);
            CreateWindow(
                TEXT("BUTTON"),
                TEXT("Search"),
                BS_PUSHBUTTON | WS_VISIBLE | WS_CHILD | WS_TABSTOP,
                200,
                200,
                80,
                30,
                hWnd,
                NULL,   
                NULL,
                NULL);
        break;
 
        case WM_COMMAND:
            switch(wParam)
            {
                case ID_BUTTON:
                    //MessageBox(NULL, TEXT("Search Results"), TEXT("About"), MB_ICONASTERISK | MB_OK);
                ShowWindow(hWndListView,SW_SHOW);
                break;
            }
            break;
 
    case WM_DESTROY:
            PostQuitMessage (0);
        break;
 
    default:
            return DefWindowProc (hWnd,message,wParam,lParam);
    }
        return 0;
}
 
int WINAPI WinMain (HINSTANCE hThisInst,HINSTANCE hPrevInst,
                LPSTR lpszArgs,int nWinMode)
{   
    WNDCLASS wcl;
    wcl.style = 0;
    wcl.lpfnWndProc = WindowFunc;
    wcl.cbClsExtra = 0;
    wcl.cbWndExtra = 0;
    wcl.hInstance = hThisInst;
    wcl.hIcon = LoadIcon (NULL, IDI_APPLICATION);
    wcl.hCursor = LoadCursor (NULL, IDC_ARROW);
    wcl.hbrBackground = (HBRUSH)COLOR_WINDOW;
    wcl.lpszMenuName = NULL;
    wcl.lpszClassName = TEXT("Search");
 
    if (!RegisterClass (&wcl))
        return -1;
    HWND hWnd = CreateWindowEx (WS_EX_TOPMOST,
        wcl.lpszClassName,
        TEXT("Search Results"),
        WS_TILEDWINDOW,
        CW_USEDEFAULT,
        CW_USEDEFAULT,
        CW_USEDEFAULT,
        CW_USEDEFAULT,
        HWND_DESKTOP,
        NULL,
        hThisInst,
        NULL);
    if (!hWnd)
        return -1;
 
    ShowWindow (hWnd,nWinMode);
    UpdateWindow (hWnd);
    MSG msg;
 
hWndListView = CreateWindow(
                WC_LISTVIEW,
 NULL,
                WS_CHILD | LVS_REPORT | LVS_EDITLABELS,
    300,
    10,
    250,
    220,
    hWnd,
    NULL,
    NULL,
    NULL);
#ifdef UNICODE
    TCHAR szColumnHeader[3][12] = {TEXT("Name"), TEXT("In Folder"), TEXT("Size")};
#else
    char szColumnHeader[3][12] = {TEXT("Name"), TEXT("In Folder"), TEXT("Size")};
#endif
    int index;
    int iiWidth[3];
    LV_COLUMN lvC;
 
    ListView_SetExtendedListViewStyle(hWndListView, LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES);
 
    iiWidth[0] = 60;
    iiWidth[1] = 100;
    iiWidth[2] = 400;
 
    lvC.mask = LVCF_FMT | LVCF_WIDTH | LVCF_TEXT | LVCF_SUBITEM;
    lvC.fmt = LVCFMT_LEFT;
 
    for(index = 0; index < 3; index++)
{
        lvC.iSubItem = index;
        lvC.cx = iiWidth[index];
        lvC.pszText = szColumnHeader[index];
        ListView_InsertColumn(hWndListView,index,&lvC);
    }
 
    while(GetMessage(&msg, NULL, 0, 0) > 0)
    {
        TranslateMessage (&msg);
        DispatchMessage (&msg);
    }
    return msg.wParam;
}
 

Автор: SVN74 14.8.2012, 22:34
Вам необходимо создание CGI приложения + поднимать сторонний WEB Server

Автор: vantyz 16.8.2012, 10:20
Мне написали,то,что я просил тока на php.НЕ могли вы бы помочь объединить html(форму) и php(сам скрипт).


Код

<html>
 
    <head>
    <title></title>
    </head>
    
     <body>
 
<form method="get" action="/search" target="_blank">
<input name="q" id="form-query" value="" placeholder="поиск по сайту"> <input type=submit value="искать"></form>
 
    </body>
</html>
 




Код

/*
в переменную $search мы получаем из формы название файла,
который после ищем и выводим
*/
$dirname="Z:\\home\\retry.ru\\www\\babay\\*\\";
foreach(glob($dirname."*.txt") as $fn) {
    if (strpos($fn,$search)!==false) {
        foreach(file($fn) as $s) echo $s."<br>";
    }
}

Автор: s1lver 16.8.2012, 11:11
Цитата

НЕ могли вы бы помочь объединить html(форму) и php(сам скрипт).



Код

<form method="post" action="search.php" target="_blank">
<input name="q" id="form-query" value="" placeholder="SEARCH">
<input type=submit value="SEARCH"></form>
<?
/*
в переменную $search мы получаем из формы название файла,
который после ищем и выводим
*/
$fn = $_POST['q'];
echo $fn;
$dirname="Z:\\home\\retry.ru\\www\\babay\\*\\";
foreach(glob($dirname."*.txt") as $fn) {
    if (strpos($fn,$search)!==false) {
        foreach(file($fn) as $s) echo $s."<br>";
    }
}
?>


 smile 

Автор: vantyz 16.8.2012, 11:42
Спасибо огромное(жаль репутацию не могу изменить).А можете помочь еще немного?Чтобы результаты поиска были на новой странице,и ,чтобы там была форма поиска с введенным запросом.

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