Как заставить его отображать результат на исходной HTML-странице после выполнения сценария CGI? - PullRequest
0 голосов
/ 30 сентября 2019

Я хотел бы отобразить результат сценария CGI на исходной HTML-странице. Лучший способ - запустить процесс CGI нажатием кнопки, но не перезагружать страницу.

Я читал об Ajax, но как я могу интегрировать результат сценария CGI в страницу HTML?

#!/usr/bin/python2.7
# -*- encoding: utf-8 -*-

import cgi, cgitb
import time
import os
import mmap

form = cgi.FieldStorage()
password = form.getvalue('passwordcheck')
inputformular = form.getvalue('myfield')
x=inputformular
print ("""Content-Type:text/html\n
<!DOCTYPE html>
<html>
<head>
<title>Passwordcheck</title>
</head>
<body>
""")
start = time.time()
##################################

FIELD_SIZE=40+1  # Also include a newline separator
def binarySearch(mm, l, r, x):
    while l <= r:
        mid = int(l + (r - l)/2);
        # Check if x is present at mid
        mid_slice = mm[mid*FIELD_SIZE:(mid+1)*FIELD_SIZE]
        mid_slice = mid_slice.decode('utf-8').strip()
        #print(mid_slice)
        if mid_slice == x:
            return mid
        # If x is greater, ignore left half
        elif mid_slice < x:
            l = mid + 1
            #print l
        # If x is smaller, ignore right half
        else:
            r = mid - 1
            #print r

    # If we reach here, then the element
    # was not present
    return -1

# text=f.readlines()
# data=text
#print data
#x = 'C78A6A8BFA18BABB7762CEF6AEFA14EE299F10AF'
#x = '0000000CAEF405439D57847A8657218C618160B2'

with open('../stripedpwned.txt', 'r+b') as f:
    mm = mmap.mmap(f.fileno(), 0)
    f.seek(0, os.SEEK_END)
    size = f.tell()
    result = binarySearch(mm, 0, size/FIELD_SIZE, x)
    if result != -1:
        print("Element is present at index % d" % result)
    else:
        print("Element is not present in array")


###################################
print("<br />")
print("Uebermittelte Daten:<br />")
print("Password:")
print(password)
print("<br />")
print("Der Hash davon:")
print(x)
print("<br />")

end = time.time()
print(end - start)

print("""
</body>
</html>
""")

Я хотел бы прочитать переменную "result" на HTML-странице, не обращаясь к сценарию CGI.

EDIT:

У меня есть следующий код JavaScriptв моем HTML-файле:

function loadCGI(){
var httpRequest = new XMLHttpRequest();
httpRequest.open('GET', '../cgi-bin/einlesen.py', false);
httpRequest.send(null);
document.write(httpRequest.responseText);
}

Таким образом, я мог прочитать переменную, которую я выводил через скрипт CGI. Например, Value = true или что-то в этом роде. Но как мне управлять тем, что сначала FormInput моей HTML-страницы переносится в CGI-скрипт, а затем я получаю результат? Затем я мог бы прочитать это как переменную JavaScript.

...