SWI-Prolog CGI cgi_get_form(Arguments) веб-скрытая форма

У меня проблема с передачей формы input type="hidden" с библиотекой CGI SWI-Prolog. В частности, я делаю:

<form id="frmCGIPrologIni" name="frmCGIPrologIni" method="post" action="http://localhost/cgi-bin/x.pl"> <p><input type="hidden" name="initial" value="ini" /> <input class="submit" type="submit" value="Start" /> </p></form>

когда программа x.pl вызывает cgi_get_form(Arguments) Аргументы должны быть списком условий имени (значения), то есть: [имя, значение], поэтому он должен быть [initial (ini)].

но когда я использую это, он говорит: ОШИБКА: =../2: аргументы недостаточно конкретизированы

print_args([]).
print_args([F|T]) :- % with Arguments
    F =.. [Name, Value], % and should continue doing things

Я попытался напечатать его вручную с помощью записи (аргументы), и я получаю: _L160, а печать первого элемента: _G472 и write_canonical (аргументы) возвращает: '.'(_,_)

Я также пробовал использовать метод = "get" только для проверки, и он правильно печатает URI http://localhost/cgi-bin/x.pl?initial=ini, поэтому я думаю, что проблема не в отправке, а в обработке с помощью cgi_get_form (аргументы).

При первом запуске http://localhost/cgi-bin/x.pl я делаю:

cgi_get_form(Arguments),

(Arguments = []) ->
(
format('<p>Print this as the index.</p>~n', []),
) ; true, % and it works well because there are no Arguments the first time

write('<p>'), write(Arguments), write('</p>'), nl, % and print other things

Проблема во второй раз. На этот раз при вызове той же программы есть аргументы, поэтому она не печатает сообщение, до сих пор все в порядке. Затем проходит через true и продолжается. Вот когда я пытаюсь написать (Аргументы) с результатами, объясненными ранее (_L160). И результатами должны быть данные, переданные формой.

есть мысли в чем проблема?


person mll    schedule 25.05.2012    source источник


Ответы (1)


Ты пытался

print_args([F|T]) :- % with Arguments
    F =.. [Name | Value], % and should continue doing things
person joel76    schedule 26.05.2012