Chcę wiedzieć, czy możliwe jest użycie podstawowego formularza HTML / JavaScript do danych wejściowych, a następnie po kliknięciu przycisku Prześlij wynik jest utworzeniem nowego dokumentu HTML na serwerze WWW. Wstępna zawartość formularza byłaby użyta do określenia, które dane są dodawane do nowej strony HTML, gdy jest tworzony. Przypuszczalnie przy użyciu PHP / MySQL. Dzięki.

0
William 2 październik 2012, 05:09

3 odpowiedzi

Najlepsza odpowiedź

JavaScript działa na kliencie, a nie serwer, więc nie może tworzyć plików bezpośrednio. Wykonano to za pomocą skryptu PHP na serwerze, który przetwarza formularz. Jest bardzo podobny do wyświetlania strony na podstawie danych formularza, ale zamiast tego pisze do pliku:

$f = fopen($filename, 'w') or die "Can't create file $filename";
fprintf($f, "<html>\n<body>\n");
// and so on
fprintf($f, "</body>\n</html>\n");
fclose($f);
1
Barmar 2 październik 2012, 01:22

Możesz to zrobić, ale zdecydowanie polecam przed oddaniem czegoś takiego w miejscu. Narzędzie tak łatwo umożliwioby atakującemu umieścić każdy rodzaj kodu na swojej stronie, którą zadowoliło. Jeśli utworzysz taki narzędzie, możesz użyć hasła, chronić katalog za pomocą serwera WebServer lub utwórz jakiś system uwierzytelniania. Jeśli chcesz być w stanie edytować strony za pomocą bazy danych, istnieje wiele systemów zarządzania treściami, aby umożliwić Ci to zrobić. Drupal lub WordPress to kilka dobrych miejsc do rozpoczęcia.

0
Dan B 2 październik 2012, 01:39

Nie ma rzeczywistej potrzeby tworzenia całej strony HTML na serwerze. Dużo lepszy sposób zapisać dane formularza w bazie danych. Kiedy musisz wyświetlić dane, wystarczy wypełnić szablon i podawać. To znacznie łatwiejsze zarządzanie wszystkimi stronami, ponieważ każda zmiana musi być wykonana tylko szablon, a nie do utworzonych plików.

Na przykład, należy wziąć pod uwagę, że formularz ma imię, nazwisko i pole komentarzy. Prawdopodobnie przechowujesz.

{ firstName: 'John', lastName: 'Doe', comment: 'This was good' }
{ firstName: 'Jane', lastName: 'Doe', comment: 'This was bad' }

I prawdopodobnie miałbyś template.html na serwerze, tak jak:

<html>
<head><title>View Comment</title></head>
<body>
    Name: {{lastName}}, {{firstName}}
    Comment: {{comment}}
</body>
</html>

Wykorzystuje to Mustache.js Składnia specyficzna, ale możesz wybrać Cokolwiek chcesz. Po dokonaniu żądania po prostu wypełniasz symbole zastępcze z danymi i voila! Dynamiczna strona HTML.

0
biswarup 2 październik 2012, 02:54