Hilfe mit CGI

U

User123

Grünschnabel
Hallo,

Ich bräuchte da mal ein bisschen Hilfe zu Perl/CGI.

Ich habe einen Apache Webserver der funktioniert. Ich habe nun ein HTML Formular erstellt sowie ein kleines CGI Script geschrieben. Nun würde ich gerne die Daten die man ins Formular eingibt in eine weiteres File abspeichern. Könnte mir da jemand helfen?

Sollte dann etwa so aussehen:

Vorname: Test
Nachname: Test
Text: Test

Hier das CGI Script:

Code:
#!/usr/bin/perl -w
use CGI(":standard");
use strict;

my $first = param("txtFirst");
my $last = param("txtLast");
my $message = param("txtMessage");

open(SCHREIBEN,">> /opt/apache2/cgi-bin/daten.txt");

print <<irgend_was_komisch;
Content-type: text/html \n\n
<html>
<head><title>Namen der Datenbank</title></head>
<body bgcolor="#FFFFFF">
<h2>Name von Datenbank</h2>

<p><b>First Name: </b>$first<br></p>
<p><b>Last Name: </b>$last<br></p>
<p><b>Message: </b>$message<br></p>

</body>
</html>
irgend_was_komisch

print SCHREIBEN "First Name: $first\n";
print SCHREIBEN "Last Name: $last\n";
print SCHREIBEN "Message: $message\n";

close(SCHREIBEN);

Sowie das Formular:

Code:
<html>
<head>
<title>Formular</title>
</head>
<body bgcolor="FFFFFF">
<h2>Formular</h2>
<p>Bitte geben sie ihren Namen und ihre Nachricht ein</p>
<form action="/cgi-bin/0002.cgi" method=post>
<p>Vorname: <input type="text" name="txtFirst" size="25" maxlength="24"><br>
Nachname: <input type="text" name="txtLast" size="25" maxlength="25"></p>
Message:<br>
<textarea name="txtMessage" rows="4" cols="55" wrap="virtual"></textarea><br>
<input type="Submit" name="Submit" value="Submit">
<input type="Reset" name="Reset" value="Reset"
</form>
</body>
</html>


Danke für die Hilfe
 
Hi,

also das Problem das ich mit deinem Post habe, ist dass ich nicht wirklich verstehe wo dir jetzt der Schuh drueckt.
Was funktioniert denn an deinem Code noch nicht?

mfg,
bytepool
 
Hallo,

Danke erstmal für die Antworten.

Ja das mit den Fehlermeldungen ist ja ein wenig das Problem..Irgendwie gibt es keine..

Eigentlich sollte es nachdem ich das Dokument ausgefüllt und abgeschickt habe im /opt/apache2/cgi-bin eine .txt Datei erstellen mit den Daten aus dem Dokument.

Ausfüllen geht auch, sieht das etwa so aus:

Code:
Name von Datenbank

First Name: Hallo

Last Name: Hallo

Message: Hallo

Diese Daten sollten nun in das .txt File geschriben werden, was aber irgendwie nicht passiert.

Wenn ich das cgi Script von Hand ausführe, also

perl test.cgi

erstellt es mir das Textfile, halt einfach ohne Daten. Also nur

First Name:
Last Name:
Message:

Hoffe ihr könnte damit etwas anfangen :think:

Gruss
 
Hi,

also wenn ich dich richtig verstanden habe, wird die Textdatei gar nicht erst angelegt, wenn der Apache das Skript ausfuehrt. Das klingt doch stark so, als haette marce recht, und es ist ein Rechte Problem:

ob der Apache da schreiben darf? AFAIK sollte das Verzeichnis nur rx sein...

Ich wuerde also die Rechte mal ueberpruefen, bzw. mal ein anderes Verzeichnis ausprobieren, in dem der Apache definitiv Schreibrechte hat.

mfg,
bytepool
 
Hallo,

Funktioniert :)

Hab mal den user und die group angepasst sowie bissel die Rechte geändert und funktioniert nun perfekt :))

Danke für eure Hilfe
 

Ähnliche Themen

CentOS 5.8 –SQL Abfrage– HTML wird generiert und daraus müssen mehrere Mails versendet werden

ca. 1200 PDF-Dateien auslesen und bestimmte Daten in eine CSV-Datei speichern

dovecot und postfix Konfiguration Problem

Hilfe mit CGI

NagiosGrapher 1.7.1 funktioniert nicht

Zurück
Oben